diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index a4efc378c6269e1b8a6924030e8896a5cb90aad5..328dd2fc6eb27c0fd11eb3551895c3ddf3c77189 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.355 2005-06-09 17:22:04 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.356 2005-06-10 20:59:14 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -567,7 +567,8 @@ int _save_options(char *name)
 
 int _save_geo(char *name)
 {
-  return geo_dialog(name);
+  CreateOutputFile(name, FORMAT_GEO);
+  return 1;
 }
 
 int _save_msh(char *name)
diff --git a/Fltk/GUI_Extras.cpp b/Fltk/GUI_Extras.cpp
index 9854962c572e8c006907d321c24d346e7988cfb2..9c5d2b0d93fa7fd01686de4763978a9eecb81a76 100644
--- a/Fltk/GUI_Extras.cpp
+++ b/Fltk/GUI_Extras.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI_Extras.cpp,v 1.10 2005-02-20 06:36:54 geuzaine Exp $
+// $Id: GUI_Extras.cpp,v 1.11 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -509,59 +509,3 @@ int msh_dialog(char *name)
   return 0;
 }
 
-// geo options dialog
-
-int geo_dialog(char *name)
-{
-  struct _geo_dialog{
-    Fl_Window *window;
-    Fl_Check_Button *b[2];
-    Fl_Button *ok, *cancel;
-  };
-  static _geo_dialog *dialog = NULL;
-
-  if(!dialog){
-    dialog = new _geo_dialog;
-    int h = 3*10 + 25 + 2*25, y = 0;
-    // not a "Dialog_Window" since it is modal 
-    dialog->window = new Fl_Double_Window(200, h, "GEO options"); y = 10;
-    dialog->window->box(GMSH_WINDOW_BOX);
-    dialog->b[0] = new Fl_Check_Button(10, y, 180, 25, "Save discrete curves"); y += 25;
-    dialog->b[0]->value(1);
-    dialog->b[0]->type(FL_TOGGLE_BUTTON);
-    dialog->b[0]->down_box(GMSH_TOGGLE_BOX);
-    dialog->b[0]->selection_color(GMSH_TOGGLE_COLOR);
-    dialog->b[1] = new Fl_Check_Button(10, y, 180, 25, "Save discrete surfaces"); y += 25;
-    dialog->b[1]->value(1);
-    dialog->b[1]->type(FL_TOGGLE_BUTTON);
-    dialog->b[1]->down_box(GMSH_TOGGLE_BOX);
-    dialog->b[1]->selection_color(GMSH_TOGGLE_COLOR);
-    dialog->ok = new Fl_Return_Button(10, y+10, 85, 25, "OK");
-    dialog->cancel = new Fl_Button(105, y+10, 85, 25, "Cancel");
-    dialog->window->set_modal();
-    dialog->window->end();
-    dialog->window->hotspot(dialog->window);
-  }
-  
-  dialog->window->show();
-
-  extern Mesh *THEM;
-
-  while(dialog->window->shown()){
-    Fl::wait();
-    for (;;) {
-      Fl_Widget* o = Fl::readqueue();
-      if (!o) break;
-      if (o == dialog->ok) {
-	Print_Geo(THEM, name, dialog->b[0]->value(), dialog->b[1]->value());
-	dialog->window->hide();
-	return 1;
-      }
-      if (o == dialog->window || o == dialog->cancel){
-	dialog->window->hide();
-	return 0;
-      }
-    }
-  }
-  return 0;
-}
diff --git a/Fltk/GUI_Extras.h b/Fltk/GUI_Extras.h
index 18a2e30bf0134d9a7c9c7d1955d9e62028d7b115..6fafea95ab3392d300b12d4110a0f7ff6beaa5ff 100644
--- a/Fltk/GUI_Extras.h
+++ b/Fltk/GUI_Extras.h
@@ -33,7 +33,6 @@ int gif_dialog(char *filename);
 int gl2ps_dialog(char *filename, char *title, int format, int TeX);
 int options_dialog(char *filename);
 int msh_dialog(char *filename);
-int geo_dialog(char *filename);
 
 #endif
 
diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp
index 25bf22ba83a86b81628195a51a1c86208546b38e..4739a0a864884b51c3c7304605939c838fcfa986 100644
--- a/Geo/Print_Geo.cpp
+++ b/Geo/Print_Geo.cpp
@@ -1,4 +1,4 @@
-// $Id: Print_Geo.cpp,v 1.40 2005-05-15 01:44:25 geuzaine Exp $
+// $Id: Print_Geo.cpp,v 1.41 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -274,7 +274,7 @@ void Print_PhysicalGroups(void *a, void *b)
 
 }
 
-void Print_Geo(Mesh * M, char *filename, int discrete_curve, int discrete_surface)
+void Print_Geo(Mesh * M, char *filename)
 {
   if(filename) {
     FOUT = fopen(filename, "w");
diff --git a/Mesh/2D_Mesh.cpp b/Mesh/2D_Mesh.cpp
index f98c1a40ec3a259001b88dd9b07e382870090bd0..cb520c0f371b9a1fdee6297a32a49c07ba98a83e 100644
--- a/Mesh/2D_Mesh.cpp
+++ b/Mesh/2D_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: 2D_Mesh.cpp,v 1.77 2005-06-09 22:19:02 geuzaine Exp $
+// $Id: 2D_Mesh.cpp,v 1.78 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -66,12 +66,10 @@ void Plan_Moyen(void *data, void *dum)
   int i, j;
   Vertex *v;
   Curve *pC;
-  Surface **pS, *s;
   static List_T *points;
   static int deb = 1;
 
-  pS = (Surface **) data;
-  s = *pS;
+  Surface *s = *(Surface **) data;
 
   if(deb) {
     points = List_Create(10, 10, sizeof(Vertex *));
@@ -842,16 +840,23 @@ void ReOrientSurfaceMesh(Surface *s)
 
 void Maillage_Surface(void *data, void *dum)
 {
-  Surface **pS, *s;
   Tree_T *tnxe;
   int ori;
 
-  pS = (Surface **) data;
-  s = *pS;
+  Surface *s = *(Surface **) data;
 
   if(!s->Support)
     return;
 
+  Msg(STATUS3, "Meshing surface %d", s->Num);
+
+  if(MeshDiscreteSurface(s)){
+    Tree_Action(THEM->Points, PutVertex_OnSurf);
+    Tree_Action(s->Vertices, PutVertex_OnSurf);
+    Tree_Action(s->Vertices, Add_In_Mesh);
+    return;
+  }
+
   THESUPPORT = s->Support;
   THESURFACE = s;
 
@@ -862,10 +867,7 @@ void Maillage_Surface(void *data, void *dum)
     Tree_Delete(s->Vertices);
   s->Vertices = Tree_Create(sizeof(Vertex *), compareVertex);
 
-  Msg(STATUS3, "Meshing surface %d", s->Num);
-
-  if(MeshDiscreteSurface(s) ||
-     MeshTransfiniteSurface(s) ||
+  if(MeshTransfiniteSurface(s) ||
      MeshEllipticSurface(s) ||
      MeshCylindricalSurface(s) ||
      MeshParametricSurface(s) ||
@@ -882,7 +884,7 @@ void Maillage_Surface(void *data, void *dum)
     }
 
     int TypSurface = s->Typ;
-    Plan_Moyen(pS, dum);
+    Plan_Moyen(&s, dum);
     Tree_Action(THEM->Points, Freeze_Vertex);
     Tree_Action(s->Vertices, Freeze_Vertex);
     Tree_Action(THEM->Points, Projette_Plan_Moyen);
diff --git a/Mesh/3D_Extrude.cpp b/Mesh/3D_Extrude.cpp
index a608735f0a00c66e67125651a609e253053ddbaf..3c37ee28d4b6593ba8574cf58d8a919699da4750 100644
--- a/Mesh/3D_Extrude.cpp
+++ b/Mesh/3D_Extrude.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude.cpp,v 1.88 2005-05-17 22:03:18 geuzaine Exp $
+// $Id: 3D_Extrude.cpp,v 1.89 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -611,24 +611,20 @@ void Extrude_Surface1(Surface * s)
 {
   THES = s;
   Tree_Action(s->Vertices, Extrude_Vertex);
-  if(!ep->mesh.Recombine){
+  if(!ep->mesh.Recombine)
     Tree_Action(s->Simplexes, Extrude_Simplex_Phase1);
-    Tree_Action(s->SimplexesBase, Extrude_Simplex_Phase1);
-  }
 }
 
 void Extrude_Surface2(Surface * s)
 {
   THES = s;
   Tree_Action(s->Simplexes, Extrude_Simplex_Phase2);
-  Tree_Action(s->SimplexesBase, Extrude_Simplex_Phase2);
 }
 
 void Extrude_Surface3(Surface * s)
 {
   THES = s;
   Tree_Action(s->Simplexes, Extrude_Simplex_Phase3);
-  Tree_Action(s->SimplexesBase, Extrude_Simplex_Phase3);
   Tree_Action(s->Quadrangles, Extrude_Quadrangle_Phase3);
 }
 
@@ -1037,7 +1033,6 @@ int Extrude_Mesh(Surface * s)
   }
 
   Tree_Action(s->Simplexes, AddSimVertsInSurf);
-  Tree_Action(s->SimplexesBase, AddSimVertsInSurf);
   Tree_Action(s->Quadrangles, AddQuadVertsInSurf);
 
   ReOrientSurfaceMesh(s);
diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp
index 54e309ac8ae7f890c2ef57e4f392dbbbfd0a8258..779cae54a4fcac44501c2729edffa7fdf2a9369d 100644
--- a/Mesh/3D_Extrude_Old.cpp
+++ b/Mesh/3D_Extrude_Old.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude_Old.cpp,v 1.33 2005-06-10 16:46:30 geuzaine Exp $
+// $Id: 3D_Extrude_Old.cpp,v 1.34 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -483,10 +483,8 @@ static void Extrude_Surface1(void *data, void *dum)
 
   Tree_Action(s->Vertices, Extrude_Vertex);
 
-  if(!CTX.mesh.oldxtrude_recombine){
+  if(!CTX.mesh.oldxtrude_recombine)
     Tree_Action(s->Simplexes, Extrude_Simplex_Phase1);
-    Tree_Action(s->SimplexesBase, Extrude_Simplex_Phase1);
-  }
 }
 
 static void Extrude_Surface2(void *data, void *dum)
@@ -497,7 +495,6 @@ static void Extrude_Surface2(void *data, void *dum)
   THES = s;
 
   Tree_Action(s->Simplexes, Extrude_Simplex_Phase2);
-  Tree_Action(s->SimplexesBase, Extrude_Simplex_Phase2);
 }
 
 static void Extrude_Surface3(void *data, void *dum)
@@ -519,7 +516,6 @@ static void Extrude_Surface3(void *data, void *dum)
   }
 
   Tree_Action(s->Simplexes, Extrude_Simplex_Phase3);
-  Tree_Action(s->SimplexesBase, Extrude_Simplex_Phase3);
   Tree_Action(s->Quadrangles, Extrude_Quadrangle_Phase3);
 }
 
@@ -608,7 +604,6 @@ static void Extrude_Curve(void *data, void *dum)
   // This is better than extruding based on c->Vertices (since it also
   // works if for some reason v->Vertices is not ordered)
   Tree_Action(c->Simplexes, Extrude_Seg);
-  Tree_Action(c->SimplexesBase, Extrude_Seg);
 }
 
 static void Extrude_Pnt(Vertex * V1)
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 143922f3f6a0e445af0ba50818f47ce6557d485e..38d062f8547c66f0f8e8f34d3f903adeaa7a2f03 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// $Id: Generator.cpp,v 1.69 2005-06-10 00:31:28 geuzaine Exp $
+// $Id: Generator.cpp,v 1.70 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -198,11 +198,47 @@ void ApplyLcFactor(Mesh * M)
   List_Action(M->Metric->Attractors, ApplyLcFactor_Attractor);
 }
 
+void Move_SimplexBaseToSimplex(Mesh * M, int dimension)
+{
+  if(dimension >= 1){
+    List_T *Curves = Tree2List(M->Curves);
+    for(int i = 0; i < List_Nbr(Curves); i++) {
+      Curve *c;
+      List_Read(Curves, i, &c);
+      Move_SimplexBaseToSimplex(&c->SimplexesBase, c->Simplexes);
+    }
+    List_Delete(Curves);
+  }
+
+  if(dimension >= 2){
+    List_T *Surfaces = Tree2List(M->Surfaces);
+    for(int i = 0; i < List_Nbr(Surfaces); i++){
+      Surface *s;
+      List_Read(Surfaces, i, &s);
+      Move_SimplexBaseToSimplex(&s->SimplexesBase, s->Simplexes);
+    }
+    List_Delete(Surfaces);
+  }
+  
+  if(dimension >= 3){
+    List_T *Volumes = Tree2List(M->Volumes);
+    for(int i = 0; i < List_Nbr(Volumes); i++){
+      Volume *v;
+      List_Read(Volumes, i, &v);
+      Move_SimplexBaseToSimplex(&v->SimplexesBase, v->Simplexes);
+    }
+    List_Delete(Volumes);
+  }
+}
+
 void Maillage_Dimension_1(Mesh * M)
 {
   double t1, t2;
 
   t1 = Cpu();
+
+  Move_SimplexBaseToSimplex(M, 1);
+
   Tree_Action(M->Curves, Maillage_Curve);
   t2 = Cpu();
   M->timing[0] = t2 - t1;
@@ -216,6 +252,8 @@ void Maillage_Dimension_2(Mesh * M)
 
   t1 = Cpu();
 
+  Move_SimplexBaseToSimplex(M, 2);
+
   // create reverse 1D meshes
 
   List_T *Curves = Tree2List(M->Curves);
@@ -270,6 +308,8 @@ void Maillage_Dimension_3(Mesh * M)
 
   t1 = Cpu();
 
+  Move_SimplexBaseToSimplex(M, 3);
+
   // merge all the delaunay parts in a single special volume
   v = Create_Volume(99999, 99999);
   List_T *list = Tree2List(M->Volumes);
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 908e26e62856f3e1ae0d7add9e62bb35733d2e78..08441e20011466d6720c8a068be0ec377863740e 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.87 2005-06-10 00:31:28 geuzaine Exp $
+# $Id: Makefile,v 1.88 2005-06-10 20:59:15 geuzaine Exp $
 #
 # Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 #
@@ -385,7 +385,7 @@ Read_Mesh.o: Read_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \
   ../Geo/ExtrudeParams.h Mesh.h 3D_Mesh.h Create.h Vertex.h \
-  ../Geo/MinMax.h ../Common/Context.h
+  ../Geo/MinMax.h ../Numeric/Numeric.h ../Common/Context.h
 # 1 "/Users/geuzaine/.gmsh/Mesh//"
 DiscreteSurface.o: DiscreteSurface.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h
index 7b76dd8041a3739e865d4624678997a8b745ee5b..95db93d30a7990263df4cc669294e63037759a0d 100644
--- a/Mesh/Mesh.h
+++ b/Mesh/Mesh.h
@@ -442,7 +442,7 @@ void mai3d(Mesh *M, int Asked);
 void Init_Mesh0(Mesh *M);
 void Init_Mesh(Mesh *M);
 void Create_BgMesh(int i, double d, Mesh *m);
-void Print_Geo(Mesh *M, char *c, int discrete_curve=0, int discrete_surface=0);
+void Print_Geo(Mesh *M, char *c);
 void Print_Mesh(Mesh *M, char *c, int Type);
 void Read_Mesh(Mesh *M, FILE *fp, char *filename, int Type);
 void GetStatistics(double s[50]);
diff --git a/Mesh/Read_Mesh.cpp b/Mesh/Read_Mesh.cpp
index 6e11a5f58d54e7eca94805d55c515a4c38b93545..8f091d6671a52225dd6390655054191e4d280789 100644
--- a/Mesh/Read_Mesh.cpp
+++ b/Mesh/Read_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: Read_Mesh.cpp,v 1.90 2005-06-10 16:46:30 geuzaine Exp $
+// $Id: Read_Mesh.cpp,v 1.91 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -26,6 +26,7 @@
 #include "3D_Mesh.h"
 #include "Create.h"
 #include "MinMax.h"
+#include "Numeric.h"
 #include "Context.h"
 
 extern Context_T CTX;
@@ -144,6 +145,23 @@ int getNbrNodes(int Type)
   }
 }
 
+double SetLC(Vertex *v1, Vertex *v2, Vertex *v3, Vertex *v4 = 0)
+{ 
+  double lc1 = sqrt((v1->Pos.X - v2->Pos.X) * (v1->Pos.X - v2->Pos.X) +
+		    (v1->Pos.Y - v2->Pos.Y) * (v1->Pos.Y - v2->Pos.Y) +
+		    (v1->Pos.Z - v2->Pos.Z) * (v1->Pos.Z - v2->Pos.Z));
+  double lc2 = sqrt((v1->Pos.X - v3->Pos.X) * (v1->Pos.X - v3->Pos.X) +
+		    (v1->Pos.Y - v3->Pos.Y) * (v1->Pos.Y - v3->Pos.Y) +
+		    (v1->Pos.Z - v3->Pos.Z) * (v1->Pos.Z - v3->Pos.Z));
+  double lc3 = sqrt((v2->Pos.X - v3->Pos.X) * (v2->Pos.X - v3->Pos.X) +
+		    (v2->Pos.Y - v3->Pos.Y) * (v2->Pos.Y - v3->Pos.Y) +
+		    (v2->Pos.Z - v3->Pos.Z) * (v2->Pos.Z - v3->Pos.Z));
+  double lc = DMAX(lc1, DMAX(lc2, lc3)) * CTX.mesh.lc_factor;
+  v1->lc = v2->lc = v3->lc = lc;
+  if(v4) v4->lc = lc;
+  return lc;
+}
+
 static Curve *theCurve = NULL;
 
 static void TransferVertex(void *a, void *b)
@@ -389,6 +407,7 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp)
           simp->Num = Num;
           simp->iEnt = Elementary;
           simp->iPart = addMeshPartition(Partition, M);
+	  SetLC(vertsp[0], vertsp[1], vertsp[2]);
 	  if(Type == TRI2){
 	    simp->VSUP = (Vertex **) Malloc(3 * sizeof(Vertex *));
 	    for(i = 0; i < 3; i++){
@@ -413,6 +432,7 @@ void Read_Mesh_MSH(Mesh * M, FILE * fp)
           quad->Num = Num;
           quad->iEnt = Elementary;
           quad->iPart = addMeshPartition(Partition, M);
+	  SetLC(vertsp[0], vertsp[1], vertsp[2], vertsp[3]);
 	  if(Type == QUA2){
 	    quad->VSUP = (Vertex **) Malloc((4 + 1) * sizeof(Vertex *));
 	    for(i = 0; i < 4 + 1; i++){
diff --git a/Mesh/Simplex.cpp b/Mesh/Simplex.cpp
index 88cd8222f8fdc2669401f13bda71a0ef1ddff286..306acbfbdffe62153545fcfa846209c909e2ed20 100644
--- a/Mesh/Simplex.cpp
+++ b/Mesh/Simplex.cpp
@@ -1,4 +1,4 @@
-// $Id: Simplex.cpp,v 1.42 2005-06-08 19:12:05 geuzaine Exp $
+// $Id: Simplex.cpp,v 1.43 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -862,3 +862,43 @@ bool Simplex::SwapFace(int iFac, List_T * newsimp, List_T * delsimp)
   return true;
 }
 
+// Transfer SimplexBase to Simplex
+
+static Tree_T *simptree = NULL;
+
+void Copy_SimplexBaseToSimplex(void *a, void *b)
+{
+  SimplexBase *base = *(SimplexBase**)a;
+  Simplex *s = Create_Simplex(base->V[0], base->V[1], base->V[2], base->V[3]);
+  s->iEnt = base->iEnt;
+  s->Num = base->Num;
+  s->iPart = base->iPart;
+  s->Visible = base->Visible;
+  if(base->VSUP){
+    int ns;
+    if(base->V[3])
+      ns = 6;
+    else if(base->V[2])
+      ns = 3;
+    else if(base->V[1])
+      ns = 1;
+    else
+      ns = 0;
+    if(ns){
+      s->VSUP = (Vertex **) Malloc(ns * sizeof(Vertex *));
+      memcpy(s->VSUP, base->VSUP, ns * sizeof(Vertex *));
+    }
+  }
+  Tree_Insert(simptree, &s);
+}
+
+void Move_SimplexBaseToSimplex(Tree_T **base, Tree_T *simp)
+{
+  if(!Tree_Nbr(*base)) return;
+  simptree = simp;
+  Tree_Action(*base, Copy_SimplexBaseToSimplex);
+  Tree_Action(*base, Free_SimplexBase);
+  Tree_Delete(*base);
+  *base = Tree_Create(sizeof(SimplexBase *), compareSimplexBase);
+}
+
diff --git a/Mesh/Simplex.h b/Mesh/Simplex.h
index c6db93b2ff134803af6daff05d97a62e6ecef74d..ffe68f78894f30d932176d7b21b8b9a3be2f89aa 100644
--- a/Mesh/Simplex.h
+++ b/Mesh/Simplex.h
@@ -21,6 +21,7 @@
 // Please report all bugs and problems to <gmsh@geuz.org>.
 
 #include "List.h"
+#include "Tree.h"
 #include "Vertex.h"
 #include "Element.h"
 #include "Face.h"
@@ -81,4 +82,6 @@ int compareFace(const void *a, const void *b);
 Simplex *Create_Simplex (Vertex *v1, Vertex *v2, Vertex *v3, Vertex *v4);
 void Free_Simplex(void *a, void *b);
 
+void Move_SimplexBaseToSimplex(Tree_T **base, Tree_T *simp);
+
 #endif
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 56dba196dca18d5197be17773e2b49fef26886b6..6b7b84fe95f5d0480c8948a790f0140d73790be1 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -1,390 +1,174 @@
-/* A Bison parser, made by GNU Bison 1.875.  */
 
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
+/*  A Bison parser, made from Gmsh.y
+    by GNU Bison version 1.28  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	tDOUBLE	257
+#define	tSTRING	258
+#define	tBIGSTR	259
+#define	tEND	260
+#define	tAFFECT	261
+#define	tDOTS	262
+#define	tPi	263
+#define	tMPI_Rank	264
+#define	tMPI_Size	265
+#define	tExp	266
+#define	tLog	267
+#define	tLog10	268
+#define	tSqrt	269
+#define	tSin	270
+#define	tAsin	271
+#define	tCos	272
+#define	tAcos	273
+#define	tTan	274
+#define	tRand	275
+#define	tAtan	276
+#define	tAtan2	277
+#define	tSinh	278
+#define	tCosh	279
+#define	tTanh	280
+#define	tFabs	281
+#define	tFloor	282
+#define	tCeil	283
+#define	tFmod	284
+#define	tModulo	285
+#define	tHypot	286
+#define	tPrintf	287
+#define	tSprintf	288
+#define	tStrCat	289
+#define	tStrPrefix	290
+#define	tStrRelative	291
+#define	tBoundingBox	292
+#define	tDraw	293
+#define	tToday	294
+#define	tPoint	295
+#define	tCircle	296
+#define	tEllipse	297
+#define	tLine	298
+#define	tSurface	299
+#define	tSpline	300
+#define	tVolume	301
+#define	tCharacteristic	302
+#define	tLength	303
+#define	tParametric	304
+#define	tElliptic	305
+#define	tPlane	306
+#define	tRuled	307
+#define	tTransfinite	308
+#define	tComplex	309
+#define	tPhysical	310
+#define	tUsing	311
+#define	tBump	312
+#define	tProgression	313
+#define	tPlugin	314
+#define	tRotate	315
+#define	tTranslate	316
+#define	tSymmetry	317
+#define	tDilate	318
+#define	tExtrude	319
+#define	tDuplicata	320
+#define	tLoop	321
+#define	tRecombine	322
+#define	tDelete	323
+#define	tCoherence	324
+#define	tIntersect	325
+#define	tAttractor	326
+#define	tLayers	327
+#define	tAlias	328
+#define	tAliasWithOptions	329
+#define	tText2D	330
+#define	tText3D	331
+#define	tInterpolationScheme	332
+#define	tTime	333
+#define	tCombine	334
+#define	tBSpline	335
+#define	tBezier	336
+#define	tNurbs	337
+#define	tOrder	338
+#define	tWith	339
+#define	tBounds	340
+#define	tKnots	341
+#define	tColor	342
+#define	tColorTable	343
+#define	tFor	344
+#define	tIn	345
+#define	tEndFor	346
+#define	tIf	347
+#define	tEndIf	348
+#define	tExit	349
+#define	tReturn	350
+#define	tCall	351
+#define	tFunction	352
+#define	tTrimmed	353
+#define	tShow	354
+#define	tHide	355
+#define	tGetValue	356
+#define	tGMSH_MAJOR_VERSION	357
+#define	tGMSH_MINOR_VERSION	358
+#define	tGMSH_PATCH_VERSION	359
+#define	tB_SPLINE_SURFACE_WITH_KNOTS	360
+#define	tB_SPLINE_CURVE_WITH_KNOTS	361
+#define	tCARTESIAN_POINT	362
+#define	tTRUE	363
+#define	tFALSE	364
+#define	tUNSPECIFIED	365
+#define	tU	366
+#define	tV	367
+#define	tEDGE_CURVE	368
+#define	tVERTEX_POINT	369
+#define	tORIENTED_EDGE	370
+#define	tPLANE	371
+#define	tFACE_OUTER_BOUND	372
+#define	tEDGE_LOOP	373
+#define	tADVANCED_FACE	374
+#define	tVECTOR	375
+#define	tDIRECTION	376
+#define	tAXIS2_PLACEMENT_3D	377
+#define	tISO	378
+#define	tENDISO	379
+#define	tENDSEC	380
+#define	tDATA	381
+#define	tHEADER	382
+#define	tFILE_DESCRIPTION	383
+#define	tFILE_SCHEMA	384
+#define	tFILE_NAME	385
+#define	tMANIFOLD_SOLID_BREP	386
+#define	tCLOSED_SHELL	387
+#define	tADVANCED_BREP_SHAPE_REPRESENTATION	388
+#define	tFACE_BOUND	389
+#define	tCYLINDRICAL_SURFACE	390
+#define	tCONICAL_SURFACE	391
+#define	tCIRCLE	392
+#define	tTRIMMED_CURVE	393
+#define	tGEOMETRIC_SET	394
+#define	tCOMPOSITE_CURVE_SEGMENT	395
+#define	tCONTINUOUS	396
+#define	tCOMPOSITE_CURVE	397
+#define	tTOROIDAL_SURFACE	398
+#define	tPRODUCT_DEFINITION	399
+#define	tPRODUCT_DEFINITION_SHAPE	400
+#define	tSHAPE_DEFINITION_REPRESENTATION	401
+#define	tELLIPSE	402
+#define	tAFFECTPLUS	403
+#define	tAFFECTMINUS	404
+#define	tAFFECTTIMES	405
+#define	tAFFECTDIVIDE	406
+#define	tOR	407
+#define	tAND	408
+#define	tEQUAL	409
+#define	tNOTEQUAL	410
+#define	tAPPROXEQUAL	411
+#define	tLESSOREQUAL	412
+#define	tGREATEROREQUAL	413
+#define	tCROSSPRODUCT	414
+#define	tPLUSPLUS	415
+#define	tMINUSMINUS	416
+#define	UNARYPREC	417
 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     tDOUBLE = 258,
-     tSTRING = 259,
-     tBIGSTR = 260,
-     tEND = 261,
-     tAFFECT = 262,
-     tDOTS = 263,
-     tPi = 264,
-     tMPI_Rank = 265,
-     tMPI_Size = 266,
-     tExp = 267,
-     tLog = 268,
-     tLog10 = 269,
-     tSqrt = 270,
-     tSin = 271,
-     tAsin = 272,
-     tCos = 273,
-     tAcos = 274,
-     tTan = 275,
-     tRand = 276,
-     tAtan = 277,
-     tAtan2 = 278,
-     tSinh = 279,
-     tCosh = 280,
-     tTanh = 281,
-     tFabs = 282,
-     tFloor = 283,
-     tCeil = 284,
-     tFmod = 285,
-     tModulo = 286,
-     tHypot = 287,
-     tPrintf = 288,
-     tSprintf = 289,
-     tStrCat = 290,
-     tStrPrefix = 291,
-     tStrRelative = 292,
-     tBoundingBox = 293,
-     tDraw = 294,
-     tToday = 295,
-     tPoint = 296,
-     tCircle = 297,
-     tEllipse = 298,
-     tLine = 299,
-     tSurface = 300,
-     tSpline = 301,
-     tVolume = 302,
-     tCharacteristic = 303,
-     tLength = 304,
-     tParametric = 305,
-     tElliptic = 306,
-     tPlane = 307,
-     tRuled = 308,
-     tTransfinite = 309,
-     tComplex = 310,
-     tPhysical = 311,
-     tUsing = 312,
-     tBump = 313,
-     tProgression = 314,
-     tPlugin = 315,
-     tRotate = 316,
-     tTranslate = 317,
-     tSymmetry = 318,
-     tDilate = 319,
-     tExtrude = 320,
-     tDuplicata = 321,
-     tLoop = 322,
-     tRecombine = 323,
-     tDelete = 324,
-     tCoherence = 325,
-     tIntersect = 326,
-     tAttractor = 327,
-     tLayers = 328,
-     tAlias = 329,
-     tAliasWithOptions = 330,
-     tText2D = 331,
-     tText3D = 332,
-     tInterpolationScheme = 333,
-     tTime = 334,
-     tCombine = 335,
-     tBSpline = 336,
-     tBezier = 337,
-     tNurbs = 338,
-     tOrder = 339,
-     tWith = 340,
-     tBounds = 341,
-     tKnots = 342,
-     tColor = 343,
-     tColorTable = 344,
-     tFor = 345,
-     tIn = 346,
-     tEndFor = 347,
-     tIf = 348,
-     tEndIf = 349,
-     tExit = 350,
-     tReturn = 351,
-     tCall = 352,
-     tFunction = 353,
-     tTrimmed = 354,
-     tShow = 355,
-     tHide = 356,
-     tGetValue = 357,
-     tGMSH_MAJOR_VERSION = 358,
-     tGMSH_MINOR_VERSION = 359,
-     tGMSH_PATCH_VERSION = 360,
-     tB_SPLINE_SURFACE_WITH_KNOTS = 361,
-     tB_SPLINE_CURVE_WITH_KNOTS = 362,
-     tCARTESIAN_POINT = 363,
-     tTRUE = 364,
-     tFALSE = 365,
-     tUNSPECIFIED = 366,
-     tU = 367,
-     tV = 368,
-     tEDGE_CURVE = 369,
-     tVERTEX_POINT = 370,
-     tORIENTED_EDGE = 371,
-     tPLANE = 372,
-     tFACE_OUTER_BOUND = 373,
-     tEDGE_LOOP = 374,
-     tADVANCED_FACE = 375,
-     tVECTOR = 376,
-     tDIRECTION = 377,
-     tAXIS2_PLACEMENT_3D = 378,
-     tISO = 379,
-     tENDISO = 380,
-     tENDSEC = 381,
-     tDATA = 382,
-     tHEADER = 383,
-     tFILE_DESCRIPTION = 384,
-     tFILE_SCHEMA = 385,
-     tFILE_NAME = 386,
-     tMANIFOLD_SOLID_BREP = 387,
-     tCLOSED_SHELL = 388,
-     tADVANCED_BREP_SHAPE_REPRESENTATION = 389,
-     tFACE_BOUND = 390,
-     tCYLINDRICAL_SURFACE = 391,
-     tCONICAL_SURFACE = 392,
-     tCIRCLE = 393,
-     tTRIMMED_CURVE = 394,
-     tGEOMETRIC_SET = 395,
-     tCOMPOSITE_CURVE_SEGMENT = 396,
-     tCONTINUOUS = 397,
-     tCOMPOSITE_CURVE = 398,
-     tTOROIDAL_SURFACE = 399,
-     tPRODUCT_DEFINITION = 400,
-     tPRODUCT_DEFINITION_SHAPE = 401,
-     tSHAPE_DEFINITION_REPRESENTATION = 402,
-     tELLIPSE = 403,
-     tAFFECTDIVIDE = 404,
-     tAFFECTTIMES = 405,
-     tAFFECTMINUS = 406,
-     tAFFECTPLUS = 407,
-     tOR = 408,
-     tAND = 409,
-     tAPPROXEQUAL = 410,
-     tNOTEQUAL = 411,
-     tEQUAL = 412,
-     tGREATEROREQUAL = 413,
-     tLESSOREQUAL = 414,
-     tCROSSPRODUCT = 415,
-     UNARYPREC = 416,
-     tMINUSMINUS = 417,
-     tPLUSPLUS = 418
-   };
-#endif
-#define tDOUBLE 258
-#define tSTRING 259
-#define tBIGSTR 260
-#define tEND 261
-#define tAFFECT 262
-#define tDOTS 263
-#define tPi 264
-#define tMPI_Rank 265
-#define tMPI_Size 266
-#define tExp 267
-#define tLog 268
-#define tLog10 269
-#define tSqrt 270
-#define tSin 271
-#define tAsin 272
-#define tCos 273
-#define tAcos 274
-#define tTan 275
-#define tRand 276
-#define tAtan 277
-#define tAtan2 278
-#define tSinh 279
-#define tCosh 280
-#define tTanh 281
-#define tFabs 282
-#define tFloor 283
-#define tCeil 284
-#define tFmod 285
-#define tModulo 286
-#define tHypot 287
-#define tPrintf 288
-#define tSprintf 289
-#define tStrCat 290
-#define tStrPrefix 291
-#define tStrRelative 292
-#define tBoundingBox 293
-#define tDraw 294
-#define tToday 295
-#define tPoint 296
-#define tCircle 297
-#define tEllipse 298
-#define tLine 299
-#define tSurface 300
-#define tSpline 301
-#define tVolume 302
-#define tCharacteristic 303
-#define tLength 304
-#define tParametric 305
-#define tElliptic 306
-#define tPlane 307
-#define tRuled 308
-#define tTransfinite 309
-#define tComplex 310
-#define tPhysical 311
-#define tUsing 312
-#define tBump 313
-#define tProgression 314
-#define tPlugin 315
-#define tRotate 316
-#define tTranslate 317
-#define tSymmetry 318
-#define tDilate 319
-#define tExtrude 320
-#define tDuplicata 321
-#define tLoop 322
-#define tRecombine 323
-#define tDelete 324
-#define tCoherence 325
-#define tIntersect 326
-#define tAttractor 327
-#define tLayers 328
-#define tAlias 329
-#define tAliasWithOptions 330
-#define tText2D 331
-#define tText3D 332
-#define tInterpolationScheme 333
-#define tTime 334
-#define tCombine 335
-#define tBSpline 336
-#define tBezier 337
-#define tNurbs 338
-#define tOrder 339
-#define tWith 340
-#define tBounds 341
-#define tKnots 342
-#define tColor 343
-#define tColorTable 344
-#define tFor 345
-#define tIn 346
-#define tEndFor 347
-#define tIf 348
-#define tEndIf 349
-#define tExit 350
-#define tReturn 351
-#define tCall 352
-#define tFunction 353
-#define tTrimmed 354
-#define tShow 355
-#define tHide 356
-#define tGetValue 357
-#define tGMSH_MAJOR_VERSION 358
-#define tGMSH_MINOR_VERSION 359
-#define tGMSH_PATCH_VERSION 360
-#define tB_SPLINE_SURFACE_WITH_KNOTS 361
-#define tB_SPLINE_CURVE_WITH_KNOTS 362
-#define tCARTESIAN_POINT 363
-#define tTRUE 364
-#define tFALSE 365
-#define tUNSPECIFIED 366
-#define tU 367
-#define tV 368
-#define tEDGE_CURVE 369
-#define tVERTEX_POINT 370
-#define tORIENTED_EDGE 371
-#define tPLANE 372
-#define tFACE_OUTER_BOUND 373
-#define tEDGE_LOOP 374
-#define tADVANCED_FACE 375
-#define tVECTOR 376
-#define tDIRECTION 377
-#define tAXIS2_PLACEMENT_3D 378
-#define tISO 379
-#define tENDISO 380
-#define tENDSEC 381
-#define tDATA 382
-#define tHEADER 383
-#define tFILE_DESCRIPTION 384
-#define tFILE_SCHEMA 385
-#define tFILE_NAME 386
-#define tMANIFOLD_SOLID_BREP 387
-#define tCLOSED_SHELL 388
-#define tADVANCED_BREP_SHAPE_REPRESENTATION 389
-#define tFACE_BOUND 390
-#define tCYLINDRICAL_SURFACE 391
-#define tCONICAL_SURFACE 392
-#define tCIRCLE 393
-#define tTRIMMED_CURVE 394
-#define tGEOMETRIC_SET 395
-#define tCOMPOSITE_CURVE_SEGMENT 396
-#define tCONTINUOUS 397
-#define tCOMPOSITE_CURVE 398
-#define tTOROIDAL_SURFACE 399
-#define tPRODUCT_DEFINITION 400
-#define tPRODUCT_DEFINITION_SHAPE 401
-#define tSHAPE_DEFINITION_REPRESENTATION 402
-#define tELLIPSE 403
-#define tAFFECTDIVIDE 404
-#define tAFFECTTIMES 405
-#define tAFFECTMINUS 406
-#define tAFFECTPLUS 407
-#define tOR 408
-#define tAND 409
-#define tAPPROXEQUAL 410
-#define tNOTEQUAL 411
-#define tEQUAL 412
-#define tGREATEROREQUAL 413
-#define tLESSOREQUAL 414
-#define tCROSSPRODUCT 415
-#define UNARYPREC 416
-#define tMINUSMINUS 417
-#define tPLUSPLUS 418
-
-
-
-
-/* Copy the first part of user declarations.  */
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.237 2005-04-19 16:03:11 remacle Exp $
+// $Id: Gmsh.tab.cpp,v 1.238 2005-06-10 20:59:15 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -460,23 +244,8 @@ void skip_until(char *skip, char *until);
 int PrintListOfDouble(char *format, List_T *list, char *buffer);
 int CheckViewErrorFlags(Post_View *v);
 
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 #line 79 "Gmsh.y"
-typedef union YYSTYPE {
+typedef union {
   char *c;
   int i;
   unsigned int u;
@@ -485,2845 +254,2411 @@ typedef union YYSTYPE {
   Shape s;
   List_T *l;
 } YYSTYPE;
-/* Line 191 of yacc.c.  */
-#line 489 "Gmsh.tab.cpp"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations.  */
-
-
-/* Line 214 of yacc.c.  */
-#line 501 "Gmsh.tab.cpp"
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-	 || (YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  short yyss;
-  YYSTYPE yyvs;
-  };
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
-      + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  register YYSIZE_T yyi;		\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)					\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack, Stack, yysize);				\
-	Stack = &yyptr->Stack;						\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (0)
+#include <stdio.h>
 
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
 #endif
-
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short yysigned_char;
 #endif
 
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL  6
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   6252
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  183
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  69
-/* YYNRULES -- Number of rules. */
-#define YYNRULES  367
-/* YYNRULES -- Number of states. */
-#define YYNSTATES  1504
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   418
-
-#define YYTRANSLATE(YYX) 						\
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   169,     2,   179,     2,   167,     2,     2,
-     174,   175,   165,   163,   180,   164,   178,   166,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     159,     2,   160,   153,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   176,     2,   177,   173,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   181,     2,   182,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     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,   154,   155,
-     156,   157,   158,   161,   162,   168,   170,   171,   172
-};
 
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const unsigned short yyprhs[] =
-{
-       0,     0,     3,     5,     7,    10,    11,    14,    16,    18,
-      20,    23,    26,    29,    32,    35,    43,    49,    67,    77,
-     101,   133,   149,   161,   173,   189,   199,   213,   223,   235,
-     249,   259,   269,   281,   291,   303,   313,   325,   339,   353,
-     365,   379,   397,   407,   419,   431,   445,   457,   467,   468,
-     471,   473,   475,   477,   479,   481,   483,   485,   487,   489,
-     491,   493,   495,   497,   499,   505,   513,   520,   529,   530,
-     533,   536,   539,   542,   545,   547,   551,   553,   557,   558,
-     559,   570,   572,   576,   577,   591,   593,   597,   598,   614,
-     623,   624,   631,   633,   635,   637,   639,   641,   643,   645,
-     650,   658,   668,   675,   679,   686,   693,   703,   710,   720,
-     726,   735,   744,   756,   763,   773,   783,   793,   801,   810,
-     823,   830,   838,   846,   854,   864,   872,   882,   900,   908,
-     916,   928,   937,   950,   959,   968,   977,   990,  1013,  1034,
-    1043,  1052,  1061,  1069,  1078,  1084,  1096,  1102,  1112,  1114,
-    1116,  1118,  1119,  1122,  1129,  1136,  1143,  1150,  1155,  1162,
-    1169,  1176,  1181,  1188,  1192,  1197,  1203,  1207,  1211,  1216,
-    1221,  1225,  1233,  1237,  1245,  1249,  1252,  1255,  1271,  1274,
-    1281,  1290,  1299,  1310,  1312,  1315,  1317,  1321,  1326,  1328,
-    1337,  1350,  1365,  1366,  1379,  1380,  1397,  1398,  1417,  1426,
-    1439,  1454,  1455,  1468,  1469,  1486,  1487,  1506,  1515,  1528,
-    1543,  1544,  1557,  1558,  1575,  1576,  1595,  1597,  1600,  1610,
-    1618,  1621,  1628,  1638,  1648,  1657,  1666,  1675,  1682,  1687,
-    1690,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1709,  1712,
-    1715,  1718,  1722,  1726,  1730,  1734,  1738,  1742,  1746,  1750,
-    1754,  1758,  1762,  1766,  1770,  1774,  1780,  1785,  1790,  1795,
-    1800,  1805,  1810,  1815,  1820,  1825,  1830,  1837,  1842,  1847,
-    1852,  1857,  1862,  1867,  1874,  1881,  1888,  1893,  1898,  1903,
-    1908,  1913,  1918,  1923,  1928,  1933,  1938,  1943,  1950,  1955,
-    1960,  1965,  1970,  1975,  1980,  1987,  1994,  2001,  2006,  2008,
-    2010,  2012,  2014,  2016,  2018,  2020,  2022,  2027,  2032,  2035,
-    2041,  2045,  2052,  2057,  2065,  2072,  2074,  2077,  2080,  2084,
-    2088,  2100,  2110,  2118,  2126,  2127,  2131,  2133,  2137,  2138,
-    2142,  2146,  2148,  2152,  2154,  2156,  2160,  2165,  2169,  2175,
-    2180,  2182,  2184,  2186,  2190,  2195,  2202,  2210,  2212,  2214,
-    2218,  2222,  2232,  2240,  2242,  2248,  2252,  2259,  2261,  2265,
-    2267,  2269,  2276,  2281,  2286,  2291,  2298,  2305
+
+#define	YYFINAL		1504
+#define	YYFLAG		-32768
+#define	YYNTBASE	183
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 417 ? yytranslate[x] : 251)
+
+static const short yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,   169,     2,   179,     2,   167,     2,     2,   174,
+   175,   165,   163,   180,   164,   178,   166,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,   159,
+     2,   161,   153,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+   176,     2,   177,   173,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,   181,     2,   182,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     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,   154,   155,   156,   157,
+   158,   160,   162,   168,   170,   171,   172
 };
 
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const short yyrhs[] =
-{
-     184,     0,    -1,   185,    -1,   190,    -1,     1,     6,    -1,
-      -1,   185,   186,    -1,   187,    -1,   189,    -1,   188,    -1,
-     124,     6,    -1,   125,     6,    -1,   127,     6,    -1,   126,
-       6,    -1,   128,     6,    -1,   129,   174,   241,   180,     5,
-     175,     6,    -1,   130,   174,   241,   175,     6,    -1,   131,
-     174,     5,   180,     5,   180,   241,   180,   241,   180,     5,
-     180,     5,   180,     5,   175,     6,    -1,     3,     7,   108,
-     174,     5,   180,   239,   175,     6,    -1,     3,     7,   107,
-     174,     5,   180,   237,   180,   245,   180,   236,   180,   236,
-     180,   236,   180,   245,   180,   245,   180,   236,   175,     6,
-      -1,     3,     7,   106,   174,     5,   180,   237,   180,   237,
-     180,   243,   180,   236,   180,   236,   180,   236,   180,   236,
-     180,   245,   180,   245,   180,   245,   180,   245,   180,   236,
-     175,     6,    -1,     3,     7,   114,   174,     5,   180,     3,
-     180,     3,   180,     3,   180,   236,   175,     6,    -1,     3,
-       7,   118,   174,     5,   180,     3,   180,   236,   175,     6,
-      -1,     3,     7,   135,   174,     5,   180,     3,   180,   236,
-     175,     6,    -1,     3,     7,   116,   174,     5,   180,   165,
-     180,   165,   180,   237,   180,   236,   175,     6,    -1,     3,
-       7,   119,   174,     5,   180,   245,   175,     6,    -1,     3,
-       7,   120,   174,     5,   180,   245,   180,     3,   180,   236,
-     175,     6,    -1,     3,     7,   115,   174,     5,   180,     3,
-     175,     6,    -1,     3,     7,   121,   174,     5,   180,     3,
-     180,   237,   175,     6,    -1,     3,     7,   123,   174,     5,
-     180,     3,   180,     3,   180,     3,   175,     6,    -1,     3,
-       7,   122,   174,     5,   180,   239,   175,     6,    -1,     3,
-       7,   117,   174,     5,   180,     3,   175,     6,    -1,     3,
-       7,    44,   174,     5,   180,     3,   180,     3,   175,     6,
-      -1,     3,     7,   133,   174,     5,   180,   245,   175,     6,
-      -1,     3,     7,   134,   174,     5,   180,   245,   180,     3,
-     175,     6,    -1,     3,     7,   132,   174,     5,   180,     3,
-     175,     6,    -1,     3,     7,   136,   174,     5,   180,     3,
-     180,   237,   175,     6,    -1,     3,     7,   137,   174,     5,
-     180,     3,   180,   237,   180,   237,   175,     6,    -1,     3,
-       7,   144,   174,     5,   180,     3,   180,   237,   180,   237,
-     175,     6,    -1,     3,     7,   138,   174,     5,   180,     3,
-     180,   237,   175,     6,    -1,     3,     7,   148,   174,     5,
-     180,     3,   180,   237,   180,   237,   175,     6,    -1,     3,
-       7,   139,   174,     5,   180,     3,   180,   245,   180,   245,
-     180,   236,   180,   236,   175,     6,    -1,     3,     7,   140,
-     174,     5,   180,   245,   175,     6,    -1,     3,     7,   141,
-     174,   142,   180,   236,   180,     3,   175,     6,    -1,     3,
-       7,   143,   174,     5,   180,   245,   180,   236,   175,     6,
-      -1,     3,     7,   145,   174,     5,   180,     5,   180,     3,
-     180,     3,   175,     6,    -1,     3,     7,   146,   174,     5,
-     180,     5,   180,     3,   175,     6,    -1,     3,     7,   147,
-     174,     3,   180,     3,   175,     6,    -1,    -1,   190,   191,
-      -1,   193,    -1,   192,    -1,   211,    -1,   212,    -1,   213,
-      -1,   216,    -1,   217,    -1,   218,    -1,   219,    -1,   222,
-      -1,   234,    -1,   235,    -1,   221,    -1,   220,    -1,    33,
-     174,     5,   175,     6,    -1,    33,   174,     5,   180,   247,
-     175,     6,    -1,     4,     5,   181,   194,   182,     6,    -1,
-       4,     5,     4,   239,   181,   194,   182,     6,    -1,    -1,
-     194,   197,    -1,   194,   201,    -1,   194,   204,    -1,   194,
-     206,    -1,   194,   207,    -1,   237,    -1,   195,   180,   237,
-      -1,   237,    -1,   196,   180,   237,    -1,    -1,    -1,     4,
-     198,   174,   195,   175,   199,   181,   196,   182,     6,    -1,
-     251,    -1,   200,   180,   251,    -1,    -1,    76,   174,   237,
-     180,   237,   180,   237,   175,   202,   181,   200,   182,     6,
-      -1,   251,    -1,   203,   180,   251,    -1,    -1,    77,   174,
-     237,   180,   237,   180,   237,   180,   237,   175,   205,   181,
-     203,   182,     6,    -1,    78,   181,   244,   182,   181,   244,
-     182,     6,    -1,    -1,    79,   208,   181,   196,   182,     6,
-      -1,     7,    -1,   152,    -1,   151,    -1,   150,    -1,   149,
-      -1,   172,    -1,   171,    -1,     4,   209,   237,     6,    -1,
-       4,   176,   237,   177,   209,   237,     6,    -1,     4,   176,
-     181,   247,   182,   177,   209,   245,     6,    -1,     4,   176,
-     177,     7,   245,     6,    -1,     4,   210,     6,    -1,     4,
-     176,   237,   177,   210,     6,    -1,     4,   178,     4,     7,
-     251,     6,    -1,     4,   176,   237,   177,   178,     4,     7,
-     251,     6,    -1,     4,   178,     4,   209,   237,     6,    -1,
-       4,   176,   237,   177,   178,     4,   209,   237,     6,    -1,
-       4,   178,     4,   210,     6,    -1,     4,   176,   237,   177,
-     178,     4,   210,     6,    -1,     4,   178,    88,   178,     4,
-       7,   248,     6,    -1,     4,   176,   237,   177,   178,    88,
-     178,     4,     7,   248,     6,    -1,     4,   178,    89,     7,
-     249,     6,    -1,     4,   176,   237,   177,   178,    89,     7,
-     249,     6,    -1,    60,   174,     4,   175,   178,     4,     7,
-     237,     6,    -1,    60,   174,     4,   175,   178,     4,     7,
-     251,     6,    -1,    41,   174,   237,   175,     7,   239,     6,
-      -1,    56,    41,   174,   237,   175,     7,   245,     6,    -1,
-      72,    41,   245,     7,   181,   237,   180,   237,   180,   237,
-     182,     6,    -1,    48,    49,   245,     7,   237,     6,    -1,
-      44,   174,   237,   175,     7,   245,     6,    -1,    46,   174,
-     237,   175,     7,   245,     6,    -1,    42,   174,   237,   175,
-       7,   245,     6,    -1,    42,   174,   237,   175,     7,   245,
-      52,   239,     6,    -1,    43,   174,   237,   175,     7,   245,
-       6,    -1,    43,   174,   237,   175,     7,   245,    52,   239,
-       6,    -1,    50,   174,   237,   175,     7,   181,   237,   180,
-     237,   180,     5,   180,     5,   180,     5,   182,     6,    -1,
-      81,   174,   237,   175,     7,   245,     6,    -1,    82,   174,
-     237,   175,     7,   245,     6,    -1,    83,   174,   237,   175,
-       7,   245,    87,   245,    84,   237,     6,    -1,    44,    67,
-     174,   237,   175,     7,   245,     6,    -1,    72,    44,   245,
-       7,   181,   237,   180,   237,   180,   237,   182,     6,    -1,
-      56,    44,   174,   237,   175,     7,   245,     6,    -1,    52,
-      45,   174,   237,   175,     7,   245,     6,    -1,    53,    45,
-     174,   237,   175,     7,   245,     6,    -1,    99,    45,   174,
-     237,   175,     7,   181,   237,   180,   245,   182,     6,    -1,
-      83,    45,    85,    86,   174,   237,   175,     7,   243,    87,
-     181,   245,   180,   245,   182,    84,   181,   237,   180,   237,
-     182,     6,    -1,    83,    45,   174,   237,   175,     7,   243,
-      87,   181,   245,   180,   245,   182,    84,   181,   237,   180,
-     237,   182,     6,    -1,    45,    67,   174,   237,   175,     7,
-     245,     6,    -1,    56,    45,   174,   237,   175,     7,   245,
-       6,    -1,    55,    47,   174,   237,   175,     7,   245,     6,
-      -1,    47,   174,   237,   175,     7,   245,     6,    -1,    56,
-      47,   174,   237,   175,     7,   245,     6,    -1,    62,   239,
-     181,   214,   182,    -1,    61,   181,   239,   180,   239,   180,
-     237,   182,   181,   214,   182,    -1,    63,   239,   181,   214,
-     182,    -1,    64,   181,   239,   180,   237,   182,   181,   214,
-     182,    -1,   216,    -1,   215,    -1,   213,    -1,    -1,   215,
-     212,    -1,   215,    41,   181,   247,   182,     6,    -1,   215,
-      44,   181,   247,   182,     6,    -1,   215,    45,   181,   247,
-     182,     6,    -1,   215,    47,   181,   247,   182,     6,    -1,
-      66,   181,   215,   182,    -1,    66,     4,   176,   237,   177,
-       6,    -1,    74,     4,   176,   237,   177,     6,    -1,    75,
-       4,   176,   237,   177,     6,    -1,    69,   181,   215,   182,
-      -1,    69,     4,   176,   237,   177,     6,    -1,    69,     4,
-       6,    -1,    69,     4,     4,     6,    -1,    88,   248,   181,
-     215,   182,    -1,   100,   251,     6,    -1,   101,   251,     6,
-      -1,   100,   181,   215,   182,    -1,   101,   181,   215,   182,
-      -1,     4,   251,     6,    -1,     4,     4,   176,   237,   177,
-     251,     6,    -1,     4,   237,     6,    -1,    60,   174,     4,
-     175,   178,     4,     6,    -1,    80,     4,     6,    -1,    95,
-       6,    -1,    38,     6,    -1,    38,   181,   237,   180,   237,
-     180,   237,   180,   237,   180,   237,   180,   237,   182,     6,
-      -1,    39,     6,    -1,    90,   174,   237,     8,   237,   175,
-      -1,    90,   174,   237,     8,   237,     8,   237,   175,    -1,
-      90,     4,    91,   181,   237,     8,   237,   182,    -1,    90,
-       4,    91,   181,   237,     8,   237,     8,   237,   182,    -1,
-      92,    -1,    98,     4,    -1,    96,    -1,    97,     4,     6,
-      -1,    93,   174,   237,   175,    -1,    94,    -1,    65,    41,
-     181,   237,   180,   239,   182,     6,    -1,    65,    41,   181,
-     237,   180,   239,   180,   239,   180,   237,   182,     6,    -1,
-      65,    41,   181,   237,   180,   239,   180,   239,   180,   239,
-     180,   237,   182,     6,    -1,    -1,    65,    41,   181,   237,
-     180,   239,   182,   223,   181,   232,   182,     6,    -1,    -1,
-      65,    41,   181,   237,   180,   239,   180,   239,   180,   237,
-     182,   224,   181,   232,   182,     6,    -1,    -1,    65,    41,
-     181,   237,   180,   239,   180,   239,   180,   239,   180,   237,
-     182,   225,   181,   232,   182,     6,    -1,    65,    44,   181,
-     237,   180,   239,   182,     6,    -1,    65,    44,   181,   237,
-     180,   239,   180,   239,   180,   237,   182,     6,    -1,    65,
-      44,   181,   237,   180,   239,   180,   239,   180,   239,   180,
-     237,   182,     6,    -1,    -1,    65,    44,   181,   237,   180,
-     239,   182,   226,   181,   232,   182,     6,    -1,    -1,    65,
-      44,   181,   237,   180,   239,   180,   239,   180,   237,   182,
-     227,   181,   232,   182,     6,    -1,    -1,    65,    44,   181,
-     237,   180,   239,   180,   239,   180,   239,   180,   237,   182,
-     228,   181,   232,   182,     6,    -1,    65,    45,   181,   237,
-     180,   239,   182,     6,    -1,    65,    45,   181,   237,   180,
-     239,   180,   239,   180,   237,   182,     6,    -1,    65,    45,
-     181,   237,   180,   239,   180,   239,   180,   239,   180,   237,
-     182,     6,    -1,    -1,    65,    45,   181,   237,   180,   239,
-     182,   229,   181,   232,   182,     6,    -1,    -1,    65,    45,
-     181,   237,   180,   239,   180,   239,   180,   237,   182,   230,
-     181,   232,   182,     6,    -1,    -1,    65,    45,   181,   237,
-     180,   239,   180,   239,   180,   239,   180,   237,   182,   231,
-     181,   232,   182,     6,    -1,   233,    -1,   232,   233,    -1,
-      73,   181,   245,   180,   245,   180,   245,   182,     6,    -1,
-      73,   181,   245,   180,   245,   182,     6,    -1,    68,     6,
-      -1,    54,    44,   245,     7,   237,     6,    -1,    54,    44,
-     245,     7,   237,    57,    59,   237,     6,    -1,    54,    44,
-     245,     7,   237,    57,    58,   237,     6,    -1,    54,    45,
-     181,   237,   182,     7,   245,     6,    -1,    51,    45,   181,
-     237,   182,     7,   245,     6,    -1,    54,    47,   181,   237,
-     182,     7,   245,     6,    -1,    68,    45,   245,     7,   237,
-       6,    -1,    68,    45,   245,     6,    -1,    70,     6,    -1,
-      71,     6,    -1,   109,    -1,   110,    -1,   111,    -1,   112,
-      -1,   113,    -1,   238,    -1,   174,   237,   175,    -1,   164,
-     237,    -1,   163,   237,    -1,   169,   237,    -1,   237,   164,
-     237,    -1,   237,   163,   237,    -1,   237,   165,   237,    -1,
-     237,   166,   237,    -1,   237,   167,   237,    -1,   237,   173,
-     237,    -1,   237,   159,   237,    -1,   237,   160,   237,    -1,
-     237,   162,   237,    -1,   237,   161,   237,    -1,   237,   158,
-     237,    -1,   237,   157,   237,    -1,   237,   155,   237,    -1,
-     237,   154,   237,    -1,   237,   153,   237,     8,   237,    -1,
-      12,   174,   237,   175,    -1,    13,   174,   237,   175,    -1,
-      14,   174,   237,   175,    -1,    15,   174,   237,   175,    -1,
-      16,   174,   237,   175,    -1,    17,   174,   237,   175,    -1,
-      18,   174,   237,   175,    -1,    19,   174,   237,   175,    -1,
-      20,   174,   237,   175,    -1,    22,   174,   237,   175,    -1,
-      23,   174,   237,   180,   237,   175,    -1,    24,   174,   237,
-     175,    -1,    25,   174,   237,   175,    -1,    26,   174,   237,
-     175,    -1,    27,   174,   237,   175,    -1,    28,   174,   237,
-     175,    -1,    29,   174,   237,   175,    -1,    30,   174,   237,
-     180,   237,   175,    -1,    31,   174,   237,   180,   237,   175,
-      -1,    32,   174,   237,   180,   237,   175,    -1,    21,   174,
-     237,   175,    -1,    12,   176,   237,   177,    -1,    13,   176,
-     237,   177,    -1,    14,   176,   237,   177,    -1,    15,   176,
-     237,   177,    -1,    16,   176,   237,   177,    -1,    17,   176,
-     237,   177,    -1,    18,   176,   237,   177,    -1,    19,   176,
-     237,   177,    -1,    20,   176,   237,   177,    -1,    22,   176,
-     237,   177,    -1,    23,   176,   237,   180,   237,   177,    -1,
-      24,   176,   237,   177,    -1,    25,   176,   237,   177,    -1,
-      26,   176,   237,   177,    -1,    27,   176,   237,   177,    -1,
-      28,   176,   237,   177,    -1,    29,   176,   237,   177,    -1,
-      30,   176,   237,   180,   237,   177,    -1,    31,   176,   237,
-     180,   237,   177,    -1,    32,   176,   237,   180,   237,   177,
-      -1,    21,   176,   237,   177,    -1,     3,    -1,     9,    -1,
-      10,    -1,    11,    -1,   103,    -1,   104,    -1,   105,    -1,
-       4,    -1,     4,   176,   237,   177,    -1,   179,     4,   176,
-     177,    -1,     4,   210,    -1,     4,   176,   237,   177,   210,
-      -1,     4,   178,     4,    -1,     4,   176,   237,   177,   178,
-       4,    -1,     4,   178,     4,   210,    -1,     4,   176,   237,
-     177,   178,     4,   210,    -1,   102,   174,     5,   180,   237,
-     175,    -1,   240,    -1,   164,   239,    -1,   163,   239,    -1,
-     239,   164,   239,    -1,   239,   163,   239,    -1,   181,   237,
-     180,   237,   180,   237,   180,   237,   180,   237,   182,    -1,
-     181,   237,   180,   237,   180,   237,   180,   237,   182,    -1,
-     181,   237,   180,   237,   180,   237,   182,    -1,   174,   237,
-     180,   237,   180,   237,   175,    -1,    -1,   174,   242,   175,
-      -1,     5,    -1,   242,   180,     5,    -1,    -1,   181,   244,
-     182,    -1,   174,   244,   175,    -1,   245,    -1,   244,   180,
-     245,    -1,   237,    -1,   246,    -1,   181,   247,   182,    -1,
-     164,   181,   247,   182,    -1,   237,     8,   237,    -1,   237,
-       8,   237,     8,   237,    -1,    41,   181,   237,   182,    -1,
-     213,    -1,   216,    -1,   222,    -1,     4,   176,   177,    -1,
-     164,     4,   176,   177,    -1,     4,   176,   181,   247,   182,
-     177,    -1,   164,     4,   176,   181,   247,   182,   177,    -1,
-     237,    -1,   246,    -1,   247,   180,   237,    -1,   247,   180,
-     246,    -1,   181,   237,   180,   237,   180,   237,   180,   237,
-     182,    -1,   181,   237,   180,   237,   180,   237,   182,    -1,
-       4,    -1,     4,   178,    88,   178,     4,    -1,   181,   250,
-     182,    -1,     4,   176,   237,   177,   178,    89,    -1,   248,
-      -1,   250,   180,   248,    -1,     5,    -1,    40,    -1,    35,
-     174,   251,   180,   251,   175,    -1,    36,   174,   251,   175,
-      -1,    37,   174,   251,   175,    -1,    34,   174,   251,   175,
-      -1,    34,   174,   251,   180,   247,   175,    -1,    34,   174,
-       4,   178,     4,   175,    -1,    34,   174,     4,   176,   237,
-     177,   178,     4,   175,    -1
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     2,     4,     7,     8,    11,    13,    15,    17,    20,
+    23,    26,    29,    32,    40,    46,    64,    74,    98,   130,
+   146,   158,   170,   186,   196,   210,   220,   232,   246,   256,
+   266,   278,   288,   300,   310,   322,   336,   350,   362,   376,
+   394,   404,   416,   428,   442,   454,   464,   465,   468,   470,
+   472,   474,   476,   478,   480,   482,   484,   486,   488,   490,
+   492,   494,   496,   502,   510,   517,   526,   527,   530,   533,
+   536,   539,   542,   544,   548,   550,   554,   555,   556,   567,
+   569,   573,   574,   588,   590,   594,   595,   611,   620,   621,
+   628,   630,   632,   634,   636,   638,   640,   642,   647,   655,
+   665,   672,   676,   683,   690,   700,   707,   717,   723,   732,
+   741,   753,   760,   770,   780,   790,   798,   807,   820,   827,
+   835,   843,   851,   861,   869,   879,   897,   905,   913,   925,
+   934,   947,   956,   965,   974,   987,  1010,  1031,  1040,  1049,
+  1058,  1066,  1075,  1081,  1093,  1099,  1109,  1111,  1113,  1115,
+  1116,  1119,  1126,  1133,  1140,  1147,  1152,  1159,  1166,  1173,
+  1178,  1185,  1189,  1194,  1200,  1204,  1208,  1213,  1218,  1222,
+  1230,  1234,  1242,  1246,  1249,  1252,  1268,  1271,  1278,  1287,
+  1296,  1307,  1309,  1312,  1314,  1318,  1323,  1325,  1334,  1347,
+  1362,  1363,  1376,  1377,  1394,  1395,  1414,  1423,  1436,  1451,
+  1452,  1465,  1466,  1483,  1484,  1503,  1512,  1525,  1540,  1541,
+  1554,  1555,  1572,  1573,  1592,  1594,  1597,  1607,  1615,  1618,
+  1625,  1635,  1645,  1654,  1663,  1672,  1679,  1684,  1687,  1690,
+  1692,  1694,  1696,  1698,  1700,  1702,  1706,  1709,  1712,  1715,
+  1719,  1723,  1727,  1731,  1735,  1739,  1743,  1747,  1751,  1755,
+  1759,  1763,  1767,  1771,  1777,  1782,  1787,  1792,  1797,  1802,
+  1807,  1812,  1817,  1822,  1827,  1834,  1839,  1844,  1849,  1854,
+  1859,  1864,  1871,  1878,  1885,  1890,  1895,  1900,  1905,  1910,
+  1915,  1920,  1925,  1930,  1935,  1940,  1947,  1952,  1957,  1962,
+  1967,  1972,  1977,  1984,  1991,  1998,  2003,  2005,  2007,  2009,
+  2011,  2013,  2015,  2017,  2019,  2024,  2029,  2032,  2038,  2042,
+  2049,  2054,  2062,  2069,  2071,  2074,  2077,  2081,  2085,  2097,
+  2107,  2115,  2123,  2124,  2128,  2130,  2134,  2135,  2139,  2143,
+  2145,  2149,  2151,  2153,  2157,  2162,  2166,  2172,  2177,  2179,
+  2181,  2183,  2187,  2192,  2199,  2207,  2209,  2211,  2215,  2219,
+  2229,  2237,  2239,  2245,  2249,  2256,  2258,  2262,  2264,  2266,
+  2273,  2278,  2283,  2288,  2295,  2302
 };
 
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short yyrline[] =
-{
-       0,   158,   158,   159,   160,   170,   172,   176,   177,   178,
-     182,   187,   192,   193,   194,   198,   201,   204,   211,   215,
-     221,   229,   234,   238,   244,   249,   253,   258,   262,   265,
-     270,   274,   278,   282,   287,   291,   294,   298,   302,   306,
-     310,   314,   318,   321,   325,   328,   332,   335,   342,   344,
-     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
-     358,   359,   360,   361,   365,   370,   388,   395,   406,   412,
-     413,   414,   415,   416,   420,   422,   427,   429,   435,   625,
-     434,   653,   658,   667,   666,   680,   685,   694,   693,   707,
-     716,   715,   727,   728,   729,   730,   731,   735,   736,   743,
-     774,   813,   867,   884,   895,   914,   928,   945,   971,   998,
-    1012,  1029,  1043,  1060,  1080,  1103,  1113,  1132,  1148,  1164,
-    1183,  1202,  1220,  1238,  1256,  1282,  1300,  1326,  1346,  1370,
-    1394,  1420,  1437,  1455,  1474,  1493,  1532,  1557,  1576,  1595,
-    1611,  1631,  1648,  1665,  1686,  1691,  1696,  1701,  1709,  1710,
-    1711,  1716,  1719,  1723,  1739,  1755,  1771,  1792,  1806,  1812,
-    1818,  1830,  1839,  1849,  1859,  1878,  1892,  1900,  1906,  1917,
-    1931,  1975,  1990,  2006,  2016,  2038,  2042,  2046,  2050,  2063,
-    2078,  2094,  2120,  2147,  2179,  2186,  2191,  2197,  2201,  2212,
-    2228,  2244,  2261,  2260,  2282,  2281,  2303,  2302,  2325,  2348,
-    2371,  2395,  2394,  2423,  2422,  2451,  2450,  2481,  2504,  2527,
-    2551,  2550,  2579,  2578,  2608,  2607,  2639,  2642,  2648,  2674,
-    2698,  2707,  2725,  2743,  2761,  2788,  2814,  2840,  2854,  2873,
-    2877,  2887,  2888,  2889,  2890,  2891,  2895,  2896,  2897,  2898,
-    2899,  2900,  2901,  2902,  2903,  2910,  2911,  2912,  2913,  2914,
-    2915,  2916,  2917,  2918,  2919,  2920,  2921,  2922,  2923,  2924,
-    2925,  2926,  2927,  2928,  2929,  2930,  2931,  2932,  2933,  2934,
-    2935,  2936,  2937,  2938,  2939,  2940,  2941,  2943,  2944,  2945,
-    2946,  2947,  2948,  2949,  2950,  2951,  2952,  2953,  2954,  2955,
-    2956,  2957,  2958,  2959,  2960,  2961,  2962,  2963,  2972,  2973,
-    2974,  2975,  2976,  2977,  2978,  2982,  2995,  3015,  3029,  3042,
-    3065,  3083,  3101,  3119,  3137,  3145,  3149,  3153,  3157,  3161,
-    3168,  3172,  3176,  3180,  3188,  3190,  3196,  3199,  3206,  3208,
-    3212,  3219,  3224,  3232,  3237,  3241,  3245,  3257,  3263,  3274,
-    3294,  3304,  3314,  3326,  3343,  3362,  3386,  3415,  3420,  3424,
-    3428,  3441,  3445,  3457,  3464,  3486,  3490,  3505,  3510,  3517,
-    3521,  3529,  3537,  3551,  3565,  3569,  3588,  3610
+static const short yyrhs[] = {   184,
+     0,   189,     0,     1,     6,     0,     0,   184,   185,     0,
+   186,     0,   188,     0,   187,     0,   124,     6,     0,   125,
+     6,     0,   127,     6,     0,   126,     6,     0,   128,     6,
+     0,   129,   174,   240,   180,     5,   175,     6,     0,   130,
+   174,   240,   175,     6,     0,   131,   174,     5,   180,     5,
+   180,   240,   180,   240,   180,     5,   180,     5,   180,     5,
+   175,     6,     0,     3,     7,   108,   174,     5,   180,   238,
+   175,     6,     0,     3,     7,   107,   174,     5,   180,   236,
+   180,   244,   180,   235,   180,   235,   180,   235,   180,   244,
+   180,   244,   180,   235,   175,     6,     0,     3,     7,   106,
+   174,     5,   180,   236,   180,   236,   180,   242,   180,   235,
+   180,   235,   180,   235,   180,   235,   180,   244,   180,   244,
+   180,   244,   180,   244,   180,   235,   175,     6,     0,     3,
+     7,   114,   174,     5,   180,     3,   180,     3,   180,     3,
+   180,   235,   175,     6,     0,     3,     7,   118,   174,     5,
+   180,     3,   180,   235,   175,     6,     0,     3,     7,   135,
+   174,     5,   180,     3,   180,   235,   175,     6,     0,     3,
+     7,   116,   174,     5,   180,   165,   180,   165,   180,   236,
+   180,   235,   175,     6,     0,     3,     7,   119,   174,     5,
+   180,   244,   175,     6,     0,     3,     7,   120,   174,     5,
+   180,   244,   180,     3,   180,   235,   175,     6,     0,     3,
+     7,   115,   174,     5,   180,     3,   175,     6,     0,     3,
+     7,   121,   174,     5,   180,     3,   180,   236,   175,     6,
+     0,     3,     7,   123,   174,     5,   180,     3,   180,     3,
+   180,     3,   175,     6,     0,     3,     7,   122,   174,     5,
+   180,   238,   175,     6,     0,     3,     7,   117,   174,     5,
+   180,     3,   175,     6,     0,     3,     7,    44,   174,     5,
+   180,     3,   180,     3,   175,     6,     0,     3,     7,   133,
+   174,     5,   180,   244,   175,     6,     0,     3,     7,   134,
+   174,     5,   180,   244,   180,     3,   175,     6,     0,     3,
+     7,   132,   174,     5,   180,     3,   175,     6,     0,     3,
+     7,   136,   174,     5,   180,     3,   180,   236,   175,     6,
+     0,     3,     7,   137,   174,     5,   180,     3,   180,   236,
+   180,   236,   175,     6,     0,     3,     7,   144,   174,     5,
+   180,     3,   180,   236,   180,   236,   175,     6,     0,     3,
+     7,   138,   174,     5,   180,     3,   180,   236,   175,     6,
+     0,     3,     7,   148,   174,     5,   180,     3,   180,   236,
+   180,   236,   175,     6,     0,     3,     7,   139,   174,     5,
+   180,     3,   180,   244,   180,   244,   180,   235,   180,   235,
+   175,     6,     0,     3,     7,   140,   174,     5,   180,   244,
+   175,     6,     0,     3,     7,   141,   174,   142,   180,   235,
+   180,     3,   175,     6,     0,     3,     7,   143,   174,     5,
+   180,   244,   180,   235,   175,     6,     0,     3,     7,   145,
+   174,     5,   180,     5,   180,     3,   180,     3,   175,     6,
+     0,     3,     7,   146,   174,     5,   180,     5,   180,     3,
+   175,     6,     0,     3,     7,   147,   174,     3,   180,     3,
+   175,     6,     0,     0,   189,   190,     0,   192,     0,   191,
+     0,   210,     0,   211,     0,   212,     0,   215,     0,   216,
+     0,   217,     0,   218,     0,   221,     0,   233,     0,   234,
+     0,   220,     0,   219,     0,    33,   174,     5,   175,     6,
+     0,    33,   174,     5,   180,   246,   175,     6,     0,     4,
+     5,   181,   193,   182,     6,     0,     4,     5,     4,   238,
+   181,   193,   182,     6,     0,     0,   193,   196,     0,   193,
+   200,     0,   193,   203,     0,   193,   205,     0,   193,   206,
+     0,   236,     0,   194,   180,   236,     0,   236,     0,   195,
+   180,   236,     0,     0,     0,     4,   197,   174,   194,   175,
+   198,   181,   195,   182,     6,     0,   250,     0,   199,   180,
+   250,     0,     0,    76,   174,   236,   180,   236,   180,   236,
+   175,   201,   181,   199,   182,     6,     0,   250,     0,   202,
+   180,   250,     0,     0,    77,   174,   236,   180,   236,   180,
+   236,   180,   236,   175,   204,   181,   202,   182,     6,     0,
+    78,   181,   243,   182,   181,   243,   182,     6,     0,     0,
+    79,   207,   181,   195,   182,     6,     0,     7,     0,   149,
+     0,   150,     0,   151,     0,   152,     0,   170,     0,   171,
+     0,     4,   208,   236,     6,     0,     4,   176,   236,   177,
+   208,   236,     6,     0,     4,   176,   181,   246,   182,   177,
+   208,   244,     6,     0,     4,   176,   177,     7,   244,     6,
+     0,     4,   209,     6,     0,     4,   176,   236,   177,   209,
+     6,     0,     4,   178,     4,     7,   250,     6,     0,     4,
+   176,   236,   177,   178,     4,     7,   250,     6,     0,     4,
+   178,     4,   208,   236,     6,     0,     4,   176,   236,   177,
+   178,     4,   208,   236,     6,     0,     4,   178,     4,   209,
+     6,     0,     4,   176,   236,   177,   178,     4,   209,     6,
+     0,     4,   178,    88,   178,     4,     7,   247,     6,     0,
+     4,   176,   236,   177,   178,    88,   178,     4,     7,   247,
+     6,     0,     4,   178,    89,     7,   248,     6,     0,     4,
+   176,   236,   177,   178,    89,     7,   248,     6,     0,    60,
+   174,     4,   175,   178,     4,     7,   236,     6,     0,    60,
+   174,     4,   175,   178,     4,     7,   250,     6,     0,    41,
+   174,   236,   175,     7,   238,     6,     0,    56,    41,   174,
+   236,   175,     7,   244,     6,     0,    72,    41,   244,     7,
+   181,   236,   180,   236,   180,   236,   182,     6,     0,    48,
+    49,   244,     7,   236,     6,     0,    44,   174,   236,   175,
+     7,   244,     6,     0,    46,   174,   236,   175,     7,   244,
+     6,     0,    42,   174,   236,   175,     7,   244,     6,     0,
+    42,   174,   236,   175,     7,   244,    52,   238,     6,     0,
+    43,   174,   236,   175,     7,   244,     6,     0,    43,   174,
+   236,   175,     7,   244,    52,   238,     6,     0,    50,   174,
+   236,   175,     7,   181,   236,   180,   236,   180,     5,   180,
+     5,   180,     5,   182,     6,     0,    81,   174,   236,   175,
+     7,   244,     6,     0,    82,   174,   236,   175,     7,   244,
+     6,     0,    83,   174,   236,   175,     7,   244,    87,   244,
+    84,   236,     6,     0,    44,    67,   174,   236,   175,     7,
+   244,     6,     0,    72,    44,   244,     7,   181,   236,   180,
+   236,   180,   236,   182,     6,     0,    56,    44,   174,   236,
+   175,     7,   244,     6,     0,    52,    45,   174,   236,   175,
+     7,   244,     6,     0,    53,    45,   174,   236,   175,     7,
+   244,     6,     0,    99,    45,   174,   236,   175,     7,   181,
+   236,   180,   244,   182,     6,     0,    83,    45,    85,    86,
+   174,   236,   175,     7,   242,    87,   181,   244,   180,   244,
+   182,    84,   181,   236,   180,   236,   182,     6,     0,    83,
+    45,   174,   236,   175,     7,   242,    87,   181,   244,   180,
+   244,   182,    84,   181,   236,   180,   236,   182,     6,     0,
+    45,    67,   174,   236,   175,     7,   244,     6,     0,    56,
+    45,   174,   236,   175,     7,   244,     6,     0,    55,    47,
+   174,   236,   175,     7,   244,     6,     0,    47,   174,   236,
+   175,     7,   244,     6,     0,    56,    47,   174,   236,   175,
+     7,   244,     6,     0,    62,   238,   181,   213,   182,     0,
+    61,   181,   238,   180,   238,   180,   236,   182,   181,   213,
+   182,     0,    63,   238,   181,   213,   182,     0,    64,   181,
+   238,   180,   236,   182,   181,   213,   182,     0,   215,     0,
+   214,     0,   212,     0,     0,   214,   211,     0,   214,    41,
+   181,   246,   182,     6,     0,   214,    44,   181,   246,   182,
+     6,     0,   214,    45,   181,   246,   182,     6,     0,   214,
+    47,   181,   246,   182,     6,     0,    66,   181,   214,   182,
+     0,    66,     4,   176,   236,   177,     6,     0,    74,     4,
+   176,   236,   177,     6,     0,    75,     4,   176,   236,   177,
+     6,     0,    69,   181,   214,   182,     0,    69,     4,   176,
+   236,   177,     6,     0,    69,     4,     6,     0,    69,     4,
+     4,     6,     0,    88,   247,   181,   214,   182,     0,   100,
+   250,     6,     0,   101,   250,     6,     0,   100,   181,   214,
+   182,     0,   101,   181,   214,   182,     0,     4,   250,     6,
+     0,     4,     4,   176,   236,   177,   250,     6,     0,     4,
+   236,     6,     0,    60,   174,     4,   175,   178,     4,     6,
+     0,    80,     4,     6,     0,    95,     6,     0,    38,     6,
+     0,    38,   181,   236,   180,   236,   180,   236,   180,   236,
+   180,   236,   180,   236,   182,     6,     0,    39,     6,     0,
+    90,   174,   236,     8,   236,   175,     0,    90,   174,   236,
+     8,   236,     8,   236,   175,     0,    90,     4,    91,   181,
+   236,     8,   236,   182,     0,    90,     4,    91,   181,   236,
+     8,   236,     8,   236,   182,     0,    92,     0,    98,     4,
+     0,    96,     0,    97,     4,     6,     0,    93,   174,   236,
+   175,     0,    94,     0,    65,    41,   181,   236,   180,   238,
+   182,     6,     0,    65,    41,   181,   236,   180,   238,   180,
+   238,   180,   236,   182,     6,     0,    65,    41,   181,   236,
+   180,   238,   180,   238,   180,   238,   180,   236,   182,     6,
+     0,     0,    65,    41,   181,   236,   180,   238,   182,   222,
+   181,   231,   182,     6,     0,     0,    65,    41,   181,   236,
+   180,   238,   180,   238,   180,   236,   182,   223,   181,   231,
+   182,     6,     0,     0,    65,    41,   181,   236,   180,   238,
+   180,   238,   180,   238,   180,   236,   182,   224,   181,   231,
+   182,     6,     0,    65,    44,   181,   236,   180,   238,   182,
+     6,     0,    65,    44,   181,   236,   180,   238,   180,   238,
+   180,   236,   182,     6,     0,    65,    44,   181,   236,   180,
+   238,   180,   238,   180,   238,   180,   236,   182,     6,     0,
+     0,    65,    44,   181,   236,   180,   238,   182,   225,   181,
+   231,   182,     6,     0,     0,    65,    44,   181,   236,   180,
+   238,   180,   238,   180,   236,   182,   226,   181,   231,   182,
+     6,     0,     0,    65,    44,   181,   236,   180,   238,   180,
+   238,   180,   238,   180,   236,   182,   227,   181,   231,   182,
+     6,     0,    65,    45,   181,   236,   180,   238,   182,     6,
+     0,    65,    45,   181,   236,   180,   238,   180,   238,   180,
+   236,   182,     6,     0,    65,    45,   181,   236,   180,   238,
+   180,   238,   180,   238,   180,   236,   182,     6,     0,     0,
+    65,    45,   181,   236,   180,   238,   182,   228,   181,   231,
+   182,     6,     0,     0,    65,    45,   181,   236,   180,   238,
+   180,   238,   180,   236,   182,   229,   181,   231,   182,     6,
+     0,     0,    65,    45,   181,   236,   180,   238,   180,   238,
+   180,   238,   180,   236,   182,   230,   181,   231,   182,     6,
+     0,   232,     0,   231,   232,     0,    73,   181,   244,   180,
+   244,   180,   244,   182,     6,     0,    73,   181,   244,   180,
+   244,   182,     6,     0,    68,     6,     0,    54,    44,   244,
+     7,   236,     6,     0,    54,    44,   244,     7,   236,    57,
+    59,   236,     6,     0,    54,    44,   244,     7,   236,    57,
+    58,   236,     6,     0,    54,    45,   181,   236,   182,     7,
+   244,     6,     0,    51,    45,   181,   236,   182,     7,   244,
+     6,     0,    54,    47,   181,   236,   182,     7,   244,     6,
+     0,    68,    45,   244,     7,   236,     6,     0,    68,    45,
+   244,     6,     0,    70,     6,     0,    71,     6,     0,   109,
+     0,   110,     0,   111,     0,   112,     0,   113,     0,   237,
+     0,   174,   236,   175,     0,   164,   236,     0,   163,   236,
+     0,   169,   236,     0,   236,   164,   236,     0,   236,   163,
+   236,     0,   236,   165,   236,     0,   236,   166,   236,     0,
+   236,   167,   236,     0,   236,   173,   236,     0,   236,   159,
+   236,     0,   236,   161,   236,     0,   236,   160,   236,     0,
+   236,   162,   236,     0,   236,   156,   236,     0,   236,   157,
+   236,     0,   236,   155,   236,     0,   236,   154,   236,     0,
+   236,   153,   236,     8,   236,     0,    12,   174,   236,   175,
+     0,    13,   174,   236,   175,     0,    14,   174,   236,   175,
+     0,    15,   174,   236,   175,     0,    16,   174,   236,   175,
+     0,    17,   174,   236,   175,     0,    18,   174,   236,   175,
+     0,    19,   174,   236,   175,     0,    20,   174,   236,   175,
+     0,    22,   174,   236,   175,     0,    23,   174,   236,   180,
+   236,   175,     0,    24,   174,   236,   175,     0,    25,   174,
+   236,   175,     0,    26,   174,   236,   175,     0,    27,   174,
+   236,   175,     0,    28,   174,   236,   175,     0,    29,   174,
+   236,   175,     0,    30,   174,   236,   180,   236,   175,     0,
+    31,   174,   236,   180,   236,   175,     0,    32,   174,   236,
+   180,   236,   175,     0,    21,   174,   236,   175,     0,    12,
+   176,   236,   177,     0,    13,   176,   236,   177,     0,    14,
+   176,   236,   177,     0,    15,   176,   236,   177,     0,    16,
+   176,   236,   177,     0,    17,   176,   236,   177,     0,    18,
+   176,   236,   177,     0,    19,   176,   236,   177,     0,    20,
+   176,   236,   177,     0,    22,   176,   236,   177,     0,    23,
+   176,   236,   180,   236,   177,     0,    24,   176,   236,   177,
+     0,    25,   176,   236,   177,     0,    26,   176,   236,   177,
+     0,    27,   176,   236,   177,     0,    28,   176,   236,   177,
+     0,    29,   176,   236,   177,     0,    30,   176,   236,   180,
+   236,   177,     0,    31,   176,   236,   180,   236,   177,     0,
+    32,   176,   236,   180,   236,   177,     0,    21,   176,   236,
+   177,     0,     3,     0,     9,     0,    10,     0,    11,     0,
+   103,     0,   104,     0,   105,     0,     4,     0,     4,   176,
+   236,   177,     0,   179,     4,   176,   177,     0,     4,   209,
+     0,     4,   176,   236,   177,   209,     0,     4,   178,     4,
+     0,     4,   176,   236,   177,   178,     4,     0,     4,   178,
+     4,   209,     0,     4,   176,   236,   177,   178,     4,   209,
+     0,   102,   174,     5,   180,   236,   175,     0,   239,     0,
+   164,   238,     0,   163,   238,     0,   238,   164,   238,     0,
+   238,   163,   238,     0,   181,   236,   180,   236,   180,   236,
+   180,   236,   180,   236,   182,     0,   181,   236,   180,   236,
+   180,   236,   180,   236,   182,     0,   181,   236,   180,   236,
+   180,   236,   182,     0,   174,   236,   180,   236,   180,   236,
+   175,     0,     0,   174,   241,   175,     0,     5,     0,   241,
+   180,     5,     0,     0,   181,   243,   182,     0,   174,   243,
+   175,     0,   244,     0,   243,   180,   244,     0,   236,     0,
+   245,     0,   181,   246,   182,     0,   164,   181,   246,   182,
+     0,   236,     8,   236,     0,   236,     8,   236,     8,   236,
+     0,    41,   181,   236,   182,     0,   212,     0,   215,     0,
+   221,     0,     4,   176,   177,     0,   164,     4,   176,   177,
+     0,     4,   176,   181,   246,   182,   177,     0,   164,     4,
+   176,   181,   246,   182,   177,     0,   236,     0,   245,     0,
+   246,   180,   236,     0,   246,   180,   245,     0,   181,   236,
+   180,   236,   180,   236,   180,   236,   182,     0,   181,   236,
+   180,   236,   180,   236,   182,     0,     4,     0,     4,   178,
+    88,   178,     4,     0,   181,   249,   182,     0,     4,   176,
+   236,   177,   178,    89,     0,   247,     0,   249,   180,   247,
+     0,     5,     0,    40,     0,    35,   174,   250,   180,   250,
+   175,     0,    36,   174,   250,   175,     0,    37,   174,   250,
+   175,     0,    34,   174,   250,   175,     0,    34,   174,   250,
+   180,   246,   175,     0,    34,   174,     4,   178,     4,   175,
+     0,    34,   174,     4,   176,   236,   177,   178,     4,   175,
+     0
 };
+
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "tDOUBLE", "tSTRING", "tBIGSTR", "tEND", 
-  "tAFFECT", "tDOTS", "tPi", "tMPI_Rank", "tMPI_Size", "tExp", "tLog", 
-  "tLog10", "tSqrt", "tSin", "tAsin", "tCos", "tAcos", "tTan", "tRand", 
-  "tAtan", "tAtan2", "tSinh", "tCosh", "tTanh", "tFabs", "tFloor", 
-  "tCeil", "tFmod", "tModulo", "tHypot", "tPrintf", "tSprintf", "tStrCat", 
-  "tStrPrefix", "tStrRelative", "tBoundingBox", "tDraw", "tToday", 
-  "tPoint", "tCircle", "tEllipse", "tLine", "tSurface", "tSpline", 
-  "tVolume", "tCharacteristic", "tLength", "tParametric", "tElliptic", 
-  "tPlane", "tRuled", "tTransfinite", "tComplex", "tPhysical", "tUsing", 
-  "tBump", "tProgression", "tPlugin", "tRotate", "tTranslate", 
-  "tSymmetry", "tDilate", "tExtrude", "tDuplicata", "tLoop", "tRecombine", 
-  "tDelete", "tCoherence", "tIntersect", "tAttractor", "tLayers", 
-  "tAlias", "tAliasWithOptions", "tText2D", "tText3D", 
-  "tInterpolationScheme", "tTime", "tCombine", "tBSpline", "tBezier", 
-  "tNurbs", "tOrder", "tWith", "tBounds", "tKnots", "tColor", 
-  "tColorTable", "tFor", "tIn", "tEndFor", "tIf", "tEndIf", "tExit", 
-  "tReturn", "tCall", "tFunction", "tTrimmed", "tShow", "tHide", 
-  "tGetValue", "tGMSH_MAJOR_VERSION", "tGMSH_MINOR_VERSION", 
-  "tGMSH_PATCH_VERSION", "tB_SPLINE_SURFACE_WITH_KNOTS", 
-  "tB_SPLINE_CURVE_WITH_KNOTS", "tCARTESIAN_POINT", "tTRUE", "tFALSE", 
-  "tUNSPECIFIED", "tU", "tV", "tEDGE_CURVE", "tVERTEX_POINT", 
-  "tORIENTED_EDGE", "tPLANE", "tFACE_OUTER_BOUND", "tEDGE_LOOP", 
-  "tADVANCED_FACE", "tVECTOR", "tDIRECTION", "tAXIS2_PLACEMENT_3D", 
-  "tISO", "tENDISO", "tENDSEC", "tDATA", "tHEADER", "tFILE_DESCRIPTION", 
-  "tFILE_SCHEMA", "tFILE_NAME", "tMANIFOLD_SOLID_BREP", "tCLOSED_SHELL", 
-  "tADVANCED_BREP_SHAPE_REPRESENTATION", "tFACE_BOUND", 
-  "tCYLINDRICAL_SURFACE", "tCONICAL_SURFACE", "tCIRCLE", "tTRIMMED_CURVE", 
-  "tGEOMETRIC_SET", "tCOMPOSITE_CURVE_SEGMENT", "tCONTINUOUS", 
-  "tCOMPOSITE_CURVE", "tTOROIDAL_SURFACE", "tPRODUCT_DEFINITION", 
-  "tPRODUCT_DEFINITION_SHAPE", "tSHAPE_DEFINITION_REPRESENTATION", 
-  "tELLIPSE", "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", 
-  "tAFFECTPLUS", "'?'", "tOR", "tAND", "tAPPROXEQUAL", "tNOTEQUAL", 
-  "tEQUAL", "'<'", "'>'", "tGREATEROREQUAL", "tLESSOREQUAL", "'+'", "'-'", 
-  "'*'", "'/'", "'%'", "tCROSSPRODUCT", "'!'", "UNARYPREC", "tMINUSMINUS", 
-  "tPLUSPLUS", "'^'", "'('", "')'", "'['", "']'", "'.'", "'#'", "','", 
-  "'{'", "'}'", "$accept", "All", "StepFormatItems", "StepFormatItem", 
-  "StepSpecial", "StepHeaderItem", "StepDataItem", "GeoFormatItems", 
-  "GeoFormatItem", "Printf", "View", "Views", "ElementCoords", 
-  "ElementValues", "Element", "@1", "@2", "Text2DValues", "Text2D", "@3", 
-  "Text3DValues", "Text3D", "@4", "InterpolationMatrix", "Time", "@5", 
-  "NumericAffectation", "NumericIncrement", "Affectation", "Shape", 
-  "Transform", "MultipleShape", "ListOfShapes", "Duplicata", "Delete", 
-  "Colorify", "Visibility", "Command", "Loop", "Extrude", "@6", "@7", 
-  "@8", "@9", "@10", "@11", "@12", "@13", "@14", "ExtrudeParameters", 
-  "ExtrudeParameter", "Transfinite", "Coherence", "BoolExpr", "FExpr", 
-  "FExpr_Single", "VExpr", "VExpr_Single", "ListOfStrings", 
-  "RecursiveListOfStrings", "ListOfListOfDouble", 
-  "RecursiveListOfListOfDouble", "ListOfDouble", "FExpr_Multi", 
-  "RecursiveListOfDouble", "ColorExpr", "ListOfColor", 
-  "RecursiveListOfColor", "StringExpr", 0
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+   157,   159,   160,   170,   172,   175,   177,   178,   181,   187,
+   192,   193,   194,   197,   201,   204,   210,   215,   221,   229,
+   234,   238,   244,   249,   253,   258,   262,   265,   270,   274,
+   278,   282,   287,   291,   294,   298,   302,   306,   310,   314,
+   318,   321,   325,   328,   332,   335,   342,   344,   347,   349,
+   350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
+   360,   361,   364,   370,   387,   395,   404,   412,   413,   414,
+   415,   416,   419,   422,   426,   429,   433,   624,   642,   652,
+   658,   665,   673,   679,   685,   692,   700,   706,   714,   719,
+   726,   728,   729,   730,   731,   734,   736,   739,   774,   813,
+   867,   884,   895,   914,   928,   945,   971,   998,  1012,  1029,
+  1043,  1060,  1080,  1103,  1113,  1128,  1148,  1164,  1183,  1202,
+  1220,  1238,  1256,  1282,  1300,  1326,  1346,  1370,  1394,  1420,
+  1437,  1455,  1474,  1493,  1532,  1557,  1576,  1595,  1611,  1631,
+  1648,  1665,  1685,  1691,  1696,  1701,  1708,  1710,  1711,  1714,
+  1719,  1723,  1739,  1755,  1771,  1791,  1806,  1812,  1818,  1829,
+  1839,  1849,  1863,  1881,  1895,  1904,  1910,  1921,  1934,  1979,
+  1994,  2010,  2020,  2042,  2046,  2050,  2054,  2065,  2082,  2098,
+  2124,  2151,  2183,  2190,  2195,  2201,  2205,  2213,  2232,  2248,
+  2264,  2269,  2285,  2290,  2306,  2311,  2329,  2352,  2375,  2398,
+  2403,  2426,  2431,  2454,  2459,  2485,  2508,  2531,  2554,  2559,
+  2582,  2588,  2611,  2617,  2642,  2646,  2651,  2678,  2702,  2710,
+  2729,  2747,  2765,  2792,  2818,  2844,  2858,  2876,  2881,  2890,
+  2892,  2893,  2894,  2895,  2898,  2900,  2901,  2902,  2903,  2904,
+  2905,  2906,  2907,  2914,  2915,  2916,  2917,  2918,  2919,  2920,
+  2921,  2922,  2923,  2924,  2925,  2926,  2927,  2928,  2929,  2930,
+  2931,  2932,  2933,  2934,  2935,  2936,  2937,  2938,  2939,  2940,
+  2941,  2942,  2943,  2944,  2945,  2947,  2948,  2949,  2950,  2951,
+  2952,  2953,  2954,  2955,  2956,  2957,  2958,  2959,  2960,  2961,
+  2962,  2963,  2964,  2965,  2966,  2967,  2972,  2977,  2978,  2979,
+  2980,  2981,  2982,  2986,  2999,  3019,  3033,  3046,  3069,  3087,
+  3105,  3123,  3141,  3148,  3153,  3157,  3161,  3165,  3171,  3176,
+  3180,  3184,  3190,  3194,  3199,  3203,  3208,  3212,  3216,  3222,
+  3228,  3235,  3241,  3245,  3249,  3260,  3267,  3278,  3298,  3308,
+  3318,  3330,  3347,  3366,  3390,  3418,  3424,  3428,  3432,  3444,
+  3449,  3461,  3468,  3489,  3494,  3508,  3514,  3520,  3525,  3533,
+  3541,  3555,  3569,  3573,  3592,  3614
 };
 #endif
 
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const unsigned short yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,    63,   408,   409,   410,   411,   412,    60,
-      62,   413,   414,    43,    45,    42,    47,    37,   415,    33,
-     416,   417,   418,    94,    40,    41,    91,    93,    46,    35,
-      44,   123,   125
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
-{
-       0,   183,   184,   184,   184,   185,   185,   186,   186,   186,
-     187,   187,   187,   187,   187,   188,   188,   188,   189,   189,
-     189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   189,   189,   189,   189,   189,   189,   189,   190,   190,
-     191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
-     191,   191,   191,   191,   192,   192,   193,   193,   194,   194,
-     194,   194,   194,   194,   195,   195,   196,   196,   198,   199,
-     197,   200,   200,   202,   201,   203,   203,   205,   204,   206,
-     208,   207,   209,   209,   209,   209,   209,   210,   210,   211,
-     211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
-     211,   211,   211,   211,   211,   211,   211,   212,   212,   212,
-     212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
-     212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
-     212,   212,   212,   212,   213,   213,   213,   213,   214,   214,
-     214,   215,   215,   215,   215,   215,   215,   216,   216,   216,
-     216,   217,   217,   217,   217,   218,   219,   219,   219,   219,
-     220,   220,   220,   220,   220,   220,   220,   220,   220,   221,
-     221,   221,   221,   221,   221,   221,   221,   221,   221,   222,
-     222,   222,   223,   222,   224,   222,   225,   222,   222,   222,
-     222,   226,   222,   227,   222,   228,   222,   222,   222,   222,
-     229,   222,   230,   222,   231,   222,   232,   232,   233,   233,
-     233,   234,   234,   234,   234,   234,   234,   234,   234,   235,
-     235,   236,   236,   236,   236,   236,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   238,   238,
-     238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
-     238,   238,   238,   238,   238,   239,   239,   239,   239,   239,
-     240,   240,   240,   240,   241,   241,   242,   242,   243,   243,
-     243,   244,   244,   245,   245,   245,   245,   246,   246,   246,
-     246,   246,   246,   246,   246,   246,   246,   247,   247,   247,
-     247,   248,   248,   248,   248,   249,   249,   250,   250,   251,
-     251,   251,   251,   251,   251,   251,   251,   251
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = {   "$","error","$undefined.","tDOUBLE",
+"tSTRING","tBIGSTR","tEND","tAFFECT","tDOTS","tPi","tMPI_Rank","tMPI_Size","tExp",
+"tLog","tLog10","tSqrt","tSin","tAsin","tCos","tAcos","tTan","tRand","tAtan",
+"tAtan2","tSinh","tCosh","tTanh","tFabs","tFloor","tCeil","tFmod","tModulo",
+"tHypot","tPrintf","tSprintf","tStrCat","tStrPrefix","tStrRelative","tBoundingBox",
+"tDraw","tToday","tPoint","tCircle","tEllipse","tLine","tSurface","tSpline",
+"tVolume","tCharacteristic","tLength","tParametric","tElliptic","tPlane","tRuled",
+"tTransfinite","tComplex","tPhysical","tUsing","tBump","tProgression","tPlugin",
+"tRotate","tTranslate","tSymmetry","tDilate","tExtrude","tDuplicata","tLoop",
+"tRecombine","tDelete","tCoherence","tIntersect","tAttractor","tLayers","tAlias",
+"tAliasWithOptions","tText2D","tText3D","tInterpolationScheme","tTime","tCombine",
+"tBSpline","tBezier","tNurbs","tOrder","tWith","tBounds","tKnots","tColor","tColorTable",
+"tFor","tIn","tEndFor","tIf","tEndIf","tExit","tReturn","tCall","tFunction",
+"tTrimmed","tShow","tHide","tGetValue","tGMSH_MAJOR_VERSION","tGMSH_MINOR_VERSION",
+"tGMSH_PATCH_VERSION","tB_SPLINE_SURFACE_WITH_KNOTS","tB_SPLINE_CURVE_WITH_KNOTS",
+"tCARTESIAN_POINT","tTRUE","tFALSE","tUNSPECIFIED","tU","tV","tEDGE_CURVE","tVERTEX_POINT",
+"tORIENTED_EDGE","tPLANE","tFACE_OUTER_BOUND","tEDGE_LOOP","tADVANCED_FACE",
+"tVECTOR","tDIRECTION","tAXIS2_PLACEMENT_3D","tISO","tENDISO","tENDSEC","tDATA",
+"tHEADER","tFILE_DESCRIPTION","tFILE_SCHEMA","tFILE_NAME","tMANIFOLD_SOLID_BREP",
+"tCLOSED_SHELL","tADVANCED_BREP_SHAPE_REPRESENTATION","tFACE_BOUND","tCYLINDRICAL_SURFACE",
+"tCONICAL_SURFACE","tCIRCLE","tTRIMMED_CURVE","tGEOMETRIC_SET","tCOMPOSITE_CURVE_SEGMENT",
+"tCONTINUOUS","tCOMPOSITE_CURVE","tTOROIDAL_SURFACE","tPRODUCT_DEFINITION","tPRODUCT_DEFINITION_SHAPE",
+"tSHAPE_DEFINITION_REPRESENTATION","tELLIPSE","tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES",
+"tAFFECTDIVIDE","'?'","tOR","tAND","tEQUAL","tNOTEQUAL","tAPPROXEQUAL","'<'",
+"tLESSOREQUAL","'>'","tGREATEROREQUAL","'+'","'-'","'*'","'/'","'%'","tCROSSPRODUCT",
+"'!'","tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'","'('","')'","'['","']'","'.'",
+"'#'","','","'{'","'}'","All","StepFormatItems","StepFormatItem","StepSpecial",
+"StepHeaderItem","StepDataItem","GeoFormatItems","GeoFormatItem","Printf","View",
+"Views","ElementCoords","ElementValues","Element","@1","@2","Text2DValues","Text2D",
+"@3","Text3DValues","Text3D","@4","InterpolationMatrix","Time","@5","NumericAffectation",
+"NumericIncrement","Affectation","Shape","Transform","MultipleShape","ListOfShapes",
+"Duplicata","Delete","Colorify","Visibility","Command","Loop","Extrude","@6",
+"@7","@8","@9","@10","@11","@12","@13","@14","ExtrudeParameters","ExtrudeParameter",
+"Transfinite","Coherence","BoolExpr","FExpr","FExpr_Single","VExpr","VExpr_Single",
+"ListOfStrings","RecursiveListOfStrings","ListOfListOfDouble","RecursiveListOfListOfDouble",
+"ListOfDouble","FExpr_Multi","RecursiveListOfDouble","ColorExpr","ListOfColor",
+"RecursiveListOfColor","StringExpr", NULL
 };
+#endif
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
-{
-       0,     2,     1,     1,     2,     0,     2,     1,     1,     1,
-       2,     2,     2,     2,     2,     7,     5,    17,     9,    23,
-      31,    15,    11,    11,    15,     9,    13,     9,    11,    13,
-       9,     9,    11,     9,    11,     9,    11,    13,    13,    11,
-      13,    17,     9,    11,    11,    13,    11,     9,     0,     2,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     5,     7,     6,     8,     0,     2,
-       2,     2,     2,     2,     1,     3,     1,     3,     0,     0,
-      10,     1,     3,     0,    13,     1,     3,     0,    15,     8,
-       0,     6,     1,     1,     1,     1,     1,     1,     1,     4,
-       7,     9,     6,     3,     6,     6,     9,     6,     9,     5,
-       8,     8,    11,     6,     9,     9,     9,     7,     8,    12,
-       6,     7,     7,     7,     9,     7,     9,    17,     7,     7,
-      11,     8,    12,     8,     8,     8,    12,    22,    20,     8,
-       8,     8,     7,     8,     5,    11,     5,     9,     1,     1,
-       1,     0,     2,     6,     6,     6,     6,     4,     6,     6,
-       6,     4,     6,     3,     4,     5,     3,     3,     4,     4,
-       3,     7,     3,     7,     3,     2,     2,    15,     2,     6,
-       8,     8,    10,     1,     2,     1,     3,     4,     1,     8,
-      12,    14,     0,    12,     0,    16,     0,    18,     8,    12,
-      14,     0,    12,     0,    16,     0,    18,     8,    12,    14,
-       0,    12,     0,    16,     0,    18,     1,     2,     9,     7,
-       2,     6,     9,     9,     8,     8,     8,     6,     4,     2,
-       2,     1,     1,     1,     1,     1,     1,     3,     2,     2,
-       2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     5,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     6,     4,     4,     4,
-       4,     4,     4,     6,     6,     6,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     6,     4,     4,
-       4,     4,     4,     4,     6,     6,     6,     4,     1,     1,
-       1,     1,     1,     1,     1,     1,     4,     4,     2,     5,
-       3,     6,     4,     7,     6,     1,     2,     2,     3,     3,
-      11,     9,     7,     7,     0,     3,     1,     3,     0,     3,
-       3,     1,     3,     1,     1,     3,     4,     3,     5,     4,
-       1,     1,     1,     3,     4,     6,     7,     1,     1,     3,
-       3,     9,     7,     1,     5,     3,     6,     1,     3,     1,
-       1,     6,     4,     4,     4,     6,     6,     9
+static const short yyr1[] = {     0,
+   183,   183,   183,   184,   184,   185,   185,   185,   186,   186,
+   186,   186,   186,   187,   187,   187,   188,   188,   188,   188,
+   188,   188,   188,   188,   188,   188,   188,   188,   188,   188,
+   188,   188,   188,   188,   188,   188,   188,   188,   188,   188,
+   188,   188,   188,   188,   188,   188,   189,   189,   190,   190,
+   190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
+   190,   190,   191,   191,   192,   192,   193,   193,   193,   193,
+   193,   193,   194,   194,   195,   195,   197,   198,   196,   199,
+   199,   201,   200,   202,   202,   204,   203,   205,   207,   206,
+   208,   208,   208,   208,   208,   209,   209,   210,   210,   210,
+   210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
+   210,   210,   210,   210,   210,   211,   211,   211,   211,   211,
+   211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
+   211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
+   211,   211,   212,   212,   212,   212,   213,   213,   213,   214,
+   214,   214,   214,   214,   214,   215,   215,   215,   215,   216,
+   216,   216,   216,   217,   218,   218,   218,   218,   219,   219,
+   219,   219,   219,   219,   219,   219,   219,   220,   220,   220,
+   220,   220,   220,   220,   220,   220,   220,   221,   221,   221,
+   222,   221,   223,   221,   224,   221,   221,   221,   221,   225,
+   221,   226,   221,   227,   221,   221,   221,   221,   228,   221,
+   229,   221,   230,   221,   231,   231,   232,   232,   232,   233,
+   233,   233,   233,   233,   233,   233,   233,   234,   234,   235,
+   235,   235,   235,   235,   236,   236,   236,   236,   236,   236,
+   236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
+   236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
+   236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
+   236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
+   236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
+   236,   236,   236,   236,   236,   236,   237,   237,   237,   237,
+   237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
+   237,   237,   237,   238,   238,   238,   238,   238,   239,   239,
+   239,   239,   240,   240,   241,   241,   242,   242,   242,   243,
+   243,   244,   244,   244,   244,   245,   245,   245,   245,   245,
+   245,   245,   245,   245,   245,   246,   246,   246,   246,   247,
+   247,   247,   247,   248,   248,   249,   249,   250,   250,   250,
+   250,   250,   250,   250,   250,   250
 };
 
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const unsigned short yydefact[] =
-{
-       0,     0,     0,     2,     3,     4,     1,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     6,     7,     9,     8,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   183,
-       0,   188,     0,   185,     0,     0,     0,     0,     0,    49,
-      51,    50,    52,    53,    54,    55,    56,    57,    58,    63,
-      62,    59,    60,    61,     0,    10,    11,    13,    12,    14,
-     324,   324,     0,   298,   305,   359,    92,   299,   300,   301,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   360,     0,   302,   303,   304,
-      96,    95,    94,    93,     0,     0,     0,    98,    97,     0,
-       0,     0,     0,     0,     0,     0,   236,     0,     0,   176,
-       0,   178,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     315,     0,     0,     0,     0,     0,     0,   151,     0,     0,
-     151,   229,   230,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   353,     0,     0,     0,     0,     0,   175,     0,
-     184,     0,   359,   151,     0,   151,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   308,     0,    68,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   305,   239,   238,   240,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   103,   172,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   170,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   305,     0,     0,     0,   340,   341,
-     342,   333,     0,   334,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   317,   316,
-       0,     0,     0,     0,   151,   151,     0,     0,     0,     0,
-       0,     0,     0,     0,   163,     0,     0,     0,     0,     0,
-       0,   174,     0,     0,     0,     0,     0,     0,     0,   151,
-       0,     0,     0,   186,     0,     0,   166,     0,   167,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   326,
-       0,     0,     0,     0,     0,   310,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   237,     0,     0,
-     347,   348,     0,     0,    92,     0,     0,     0,     0,     0,
-      99,     0,   254,   253,   252,   251,   247,   248,   250,   249,
-     242,   241,   243,   244,   245,   246,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   305,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     319,   318,   150,     0,   149,   148,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   157,   152,   228,     0,
-     164,     0,   161,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   187,     0,   168,
-     169,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   325,     0,     0,    16,     0,   306,   312,    68,    78,
-       0,     0,     0,    90,     0,    69,    70,    71,    72,    73,
-     256,   277,   257,   278,   258,   279,   259,   280,   260,   281,
-     261,   282,   262,   283,   263,   284,   264,   285,   276,   297,
-     265,   286,     0,     0,   267,   288,   268,   289,   269,   290,
-     270,   291,   271,   292,   272,   293,     0,     0,     0,     0,
-       0,     0,     0,     0,   364,     0,     0,   362,   363,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   109,
-       0,     0,     0,     0,   307,     0,    64,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   343,     0,     0,
-       0,     0,   335,   337,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   144,   146,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   165,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   327,
-       0,   324,     0,   309,     0,     0,     0,     0,     0,     0,
-       0,    66,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   306,   102,   349,   350,     0,
-       0,     0,     0,     0,   104,   105,   107,     0,     0,   357,
-       0,   113,   255,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   339,   344,     0,   336,     0,   120,
-       0,     0,     0,     0,   221,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   158,     0,     0,     0,     0,   227,   162,     0,     0,
-     159,   160,     0,     0,     0,   328,     0,   354,     0,     0,
-       0,   179,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   231,   232,   233,   234,
-     235,     0,     0,     0,     0,     0,     0,     0,    15,     0,
-     311,   171,     0,     0,     0,     0,     0,   331,     0,   266,
-     287,   273,   294,   274,   295,   275,   296,     0,   366,   365,
-     361,   314,     0,    92,     0,     0,     0,     0,   100,     0,
-       0,     0,   355,    65,     0,   117,   123,     0,   125,     0,
-       0,   121,     0,   122,   142,     0,     0,   338,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   173,     0,     0,     0,     0,   151,     0,   192,     0,
-     201,     0,   210,     0,     0,     0,     0,     0,     0,   128,
-     129,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     324,   313,    67,     0,    74,     0,     0,     0,     0,     0,
-      76,     0,     0,     0,     0,   110,     0,     0,   111,     0,
-     358,     0,     0,     0,   131,   139,   345,     0,     0,   225,
-     134,   135,     0,     0,   224,   226,   141,   118,   133,   140,
-     143,     0,     0,     0,   323,     0,   322,     0,     0,   189,
-       0,     0,   198,     0,     0,   207,     0,   153,   154,   155,
-     156,     0,     0,   328,     0,     0,     0,     0,     0,   352,
-       0,   181,   180,     0,     0,     0,     0,    18,     0,    27,
-       0,    31,     0,    25,     0,     0,    30,     0,    35,    33,
-       0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
-       0,     0,    47,     0,     0,    79,     0,     0,     0,   332,
-       0,     0,     0,     0,   101,   106,   108,     0,   114,     0,
-       0,   124,   126,   346,     0,   223,   222,   115,   116,   151,
-       0,   147,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   330,   329,     0,     0,     0,     0,     0,     0,   328,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    75,     0,     0,     0,    77,    91,   367,     0,   356,
-       0,     0,     0,     0,   321,     0,     0,     0,     0,     0,
-       0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   351,   182,     0,    32,     0,
-       0,     0,     0,    22,     0,    28,     0,    34,    23,    36,
-       0,    39,     0,    43,    44,     0,     0,    46,     0,     0,
-       0,     0,     0,     0,   112,     0,     0,   145,     0,     0,
-     194,     0,   220,     0,     0,   217,   203,     0,     0,   212,
-       0,     0,     0,     0,     0,     0,   130,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    83,     0,    89,     0,     0,   320,   190,     0,     0,
-       0,   193,   199,     0,     0,   202,   208,     0,     0,   211,
-     119,   132,     0,     0,   136,     0,     0,     0,     0,    26,
-      29,    37,     0,    38,    45,    40,     0,     0,     0,     0,
-       0,     0,     0,   196,     0,     0,   205,     0,   214,     0,
-       0,     0,     0,     0,     0,     0,     0,    80,     0,    87,
-       0,     0,     0,   191,     0,     0,     0,   200,     0,     0,
-     209,     0,     0,     0,     0,     0,    21,    24,     0,     0,
-       0,    81,     0,   177,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   195,     0,     0,   219,   204,     0,   213,
-       0,     0,     0,     0,     0,    41,    17,    82,    84,     0,
-      85,   127,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   197,   218,   206,   215,     0,     0,     0,     0,
-      86,    88,     0,     0,     0,     0,     0,   138,     0,     0,
-       0,     0,     0,   137,     0,    19,     0,     0,     0,     0,
-       0,     0,     0,    20
+static const short yyr2[] = {     0,
+     1,     1,     2,     0,     2,     1,     1,     1,     2,     2,
+     2,     2,     2,     7,     5,    17,     9,    23,    31,    15,
+    11,    11,    15,     9,    13,     9,    11,    13,     9,     9,
+    11,     9,    11,     9,    11,    13,    13,    11,    13,    17,
+     9,    11,    11,    13,    11,     9,     0,     2,     1,     1,
+     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     1,     1,     5,     7,     6,     8,     0,     2,     2,     2,
+     2,     2,     1,     3,     1,     3,     0,     0,    10,     1,
+     3,     0,    13,     1,     3,     0,    15,     8,     0,     6,
+     1,     1,     1,     1,     1,     1,     1,     4,     7,     9,
+     6,     3,     6,     6,     9,     6,     9,     5,     8,     8,
+    11,     6,     9,     9,     9,     7,     8,    12,     6,     7,
+     7,     7,     9,     7,     9,    17,     7,     7,    11,     8,
+    12,     8,     8,     8,    12,    22,    20,     8,     8,     8,
+     7,     8,     5,    11,     5,     9,     1,     1,     1,     0,
+     2,     6,     6,     6,     6,     4,     6,     6,     6,     4,
+     6,     3,     4,     5,     3,     3,     4,     4,     3,     7,
+     3,     7,     3,     2,     2,    15,     2,     6,     8,     8,
+    10,     1,     2,     1,     3,     4,     1,     8,    12,    14,
+     0,    12,     0,    16,     0,    18,     8,    12,    14,     0,
+    12,     0,    16,     0,    18,     8,    12,    14,     0,    12,
+     0,    16,     0,    18,     1,     2,     9,     7,     2,     6,
+     9,     9,     8,     8,     8,     6,     4,     2,     2,     1,
+     1,     1,     1,     1,     1,     3,     2,     2,     2,     3,
+     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+     3,     3,     3,     5,     4,     4,     4,     4,     4,     4,
+     4,     4,     4,     4,     6,     4,     4,     4,     4,     4,
+     4,     6,     6,     6,     4,     4,     4,     4,     4,     4,
+     4,     4,     4,     4,     4,     6,     4,     4,     4,     4,
+     4,     4,     6,     6,     6,     4,     1,     1,     1,     1,
+     1,     1,     1,     1,     4,     4,     2,     5,     3,     6,
+     4,     7,     6,     1,     2,     2,     3,     3,    11,     9,
+     7,     7,     0,     3,     1,     3,     0,     3,     3,     1,
+     3,     1,     1,     3,     4,     3,     5,     4,     1,     1,
+     1,     3,     4,     6,     7,     1,     1,     3,     3,     9,
+     7,     1,     5,     3,     6,     1,     3,     1,     1,     6,
+     4,     4,     4,     6,     6,     9
 };
 
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
-{
-      -1,     2,     3,    16,    17,    18,    19,     4,    69,    70,
-      71,   447,  1073,  1079,   645,   816,  1240,  1420,   646,  1378,
-    1459,   647,  1422,   648,   649,   820,   143,   253,    72,   577,
-     348,   563,   564,   349,    76,    77,    78,    79,    80,   350,
-    1120,  1348,  1404,  1123,  1353,  1408,  1126,  1357,  1411,  1262,
-    1263,    82,    83,   941,   351,   146,   368,   180,   248,   440,
-    1034,   956,   957,   353,   502,   204,   713,   850,   147
+static const short yydefact[] = {     0,
+     0,     1,     2,     3,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     5,     6,     8,     7,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   182,     0,   187,     0,
+   184,     0,     0,     0,     0,     0,    48,    50,    49,    51,
+    52,    53,    54,    55,    56,    57,    62,    61,    58,    59,
+    60,     0,     9,    10,    12,    11,    13,   323,   323,     0,
+   297,   304,   358,    91,   298,   299,   300,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   359,     0,   301,   302,   303,    92,    93,    94,
+    95,     0,     0,     0,    96,    97,     0,     0,     0,     0,
+     0,     0,     0,   235,     0,     0,   175,     0,   177,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
+     0,     0,     0,     0,   150,     0,     0,   150,   228,   229,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   352,
+     0,     0,     0,     0,     0,   174,     0,   183,     0,   358,
+   150,     0,   150,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   307,     0,    67,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   304,   238,   237,   239,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   102,   171,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   169,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   304,     0,     0,     0,   339,   340,   341,   332,     0,
+   333,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   316,   315,     0,     0,     0,
+     0,   150,   150,     0,     0,     0,     0,     0,     0,     0,
+     0,   162,     0,     0,     0,     0,     0,     0,   173,     0,
+     0,     0,     0,     0,     0,     0,   150,     0,     0,     0,
+   185,     0,     0,   165,     0,   166,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   325,     0,     0,     0,
+     0,     0,   309,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   236,     0,     0,   346,   347,     0,
+     0,    91,     0,     0,     0,     0,     0,    98,     0,   253,
+   252,   250,   251,   246,   248,   247,   249,   241,   240,   242,
+   243,   244,   245,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   304,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   318,   317,   149,
+     0,   148,   147,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   156,   151,   227,     0,   163,     0,   160,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   186,     0,   167,   168,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   324,     0,
+     0,    15,     0,   305,   311,    67,    77,     0,     0,     0,
+    89,     0,    68,    69,    70,    71,    72,   255,   276,   256,
+   277,   257,   278,   258,   279,   259,   280,   260,   281,   261,
+   282,   262,   283,   263,   284,   275,   296,   264,   285,     0,
+     0,   266,   287,   267,   288,   268,   289,   269,   290,   270,
+   291,   271,   292,     0,     0,     0,     0,     0,     0,     0,
+     0,   363,     0,     0,   361,   362,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   108,     0,     0,     0,
+     0,   306,     0,    63,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   342,     0,     0,     0,     0,   334,
+   336,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   143,   145,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   164,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   326,     0,   323,     0,
+   308,     0,     0,     0,     0,     0,     0,     0,    65,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   305,   101,   348,   349,     0,     0,     0,     0,
+     0,   103,   104,   106,     0,     0,   356,     0,   112,   254,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   338,   343,     0,   335,     0,   119,     0,     0,     0,
+     0,   220,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   157,     0,
+     0,     0,     0,   226,   161,     0,     0,   158,   159,     0,
+     0,     0,   327,     0,   353,     0,     0,     0,   178,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   230,   231,   232,   233,   234,     0,     0,
+     0,     0,     0,     0,     0,    14,     0,   310,   170,     0,
+     0,     0,     0,     0,   330,     0,   265,   286,   272,   293,
+   273,   294,   274,   295,     0,   365,   364,   360,   313,     0,
+    91,     0,     0,     0,     0,    99,     0,     0,     0,   354,
+    64,     0,   116,   122,     0,   124,     0,     0,   120,     0,
+   121,   141,     0,     0,   337,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
+     0,     0,     0,   150,     0,   191,     0,   200,     0,   209,
+     0,     0,     0,     0,     0,     0,   127,   128,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   323,   312,    66,
+     0,    73,     0,     0,     0,     0,     0,    75,     0,     0,
+     0,     0,   109,     0,     0,   110,     0,   357,     0,     0,
+     0,   130,   138,   344,     0,     0,   224,   133,   134,     0,
+     0,   223,   225,   140,   117,   132,   139,   142,     0,     0,
+     0,   322,     0,   321,     0,     0,   188,     0,     0,   197,
+     0,     0,   206,     0,   152,   153,   154,   155,     0,     0,
+   327,     0,     0,     0,     0,     0,   351,     0,   180,   179,
+     0,     0,     0,     0,    17,     0,    26,     0,    30,     0,
+    24,     0,     0,    29,     0,    34,    32,     0,     0,     0,
+     0,     0,     0,    41,     0,     0,     0,     0,     0,    46,
+     0,     0,    78,     0,     0,     0,   331,     0,     0,     0,
+     0,   100,   105,   107,     0,   113,     0,     0,   123,   125,
+   345,     0,   222,   221,   114,   115,   150,     0,   146,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   329,   328,
+     0,     0,     0,     0,     0,     0,   327,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
+     0,     0,    76,    90,   366,     0,   355,     0,     0,     0,
+     0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
+   215,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   350,   181,     0,    31,     0,     0,     0,     0,
+    21,     0,    27,     0,    33,    22,    35,     0,    38,     0,
+    42,    43,     0,     0,    45,     0,     0,     0,     0,     0,
+     0,   111,     0,     0,   144,     0,     0,   193,     0,   219,
+     0,     0,   216,   202,     0,     0,   211,     0,     0,     0,
+     0,     0,     0,   129,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    82,     0,
+    88,     0,     0,   319,   189,     0,     0,     0,   192,   198,
+     0,     0,   201,   207,     0,     0,   210,   118,   131,     0,
+     0,   135,     0,     0,     0,     0,    25,    28,    36,     0,
+    37,    44,    39,     0,     0,     0,     0,     0,     0,     0,
+   195,     0,     0,   204,     0,   213,     0,     0,     0,     0,
+     0,     0,     0,     0,    79,     0,    86,     0,     0,     0,
+   190,     0,     0,     0,   199,     0,     0,   208,     0,     0,
+     0,     0,     0,    20,    23,     0,     0,     0,    80,     0,
+   176,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   194,     0,     0,   218,   203,     0,   212,     0,     0,     0,
+     0,     0,    40,    16,    81,    83,     0,    84,   126,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
+   217,   205,   214,     0,     0,     0,     0,    85,    87,     0,
+     0,     0,     0,     0,   137,     0,     0,     0,     0,     0,
+   136,     0,    18,     0,     0,     0,     0,     0,     0,     0,
+    19,     0,     0,     0
 };
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -1251
-static const short yypact[] =
-{
-    2449,    39,    64,    38,  2598, -1251, -1251,    90,   107,   116,
-     125,   134,   155,     1,    18,    29, -1251, -1251, -1251, -1251,
-    1901,    36,    24,   178,    40,    55,   114,   -29,   230,   146,
-     150,   289,   172,   319,   337,   344,   457,   350,   702,   251,
-     224,   -82,   -82,   258,   465,     9,   397,    10,   430,   439,
-     311,   459,   474,   511,   352,   356,   -14,    16,    14, -1251,
-     362, -1251,   521, -1251,   542,   552,   512,    12,    23, -1251,
-   -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251, -1251, -1251, -1251,  2478, -1251, -1251, -1251, -1251, -1251,
-     386,   386,   556, -1251,   353,    20, -1251, -1251, -1251, -1251,
-     -87,   -25,   -21,    54,   140,   156,   259,   314,   345,   361,
-     374,   395,   420,   421,   461,   469,   470,   475,   500,   522,
-     523,   398,   404,   408,   451, -1251,   452, -1251, -1251, -1251,
-   -1251, -1251, -1251, -1251,  2146,  2146,  2146, -1251, -1251,  2146,
-     900,    84,   596,  2146,   598,   610, -1251,   614,   624, -1251,
-    2146, -1251,  2146,  2146,  2146,   462,  2146,   476,  2146,  2146,
-    1454,  2146,   479,   491,   499,  1454,   483,   496,   506,   507,
-     510,   535,   539,   697,   -82,   -82,   -82,  2146,  2146,   170,
-   -1251,   204,   -82,   533,   537,   540,   583, -1251,  1454,    33,
-   -1251, -1251, -1251,  1454,  1454,   586,   590,   742,  2146,  2146,
-     -56,  2146,   600,  2146,   615,   688,  2146,  2146, -1251,   789,
-   -1251,   625, -1251, -1251,   798, -1251,   826,   661,   666,   670,
-     682,   684,   685,   686,   687,   689,   696,   708,   709,   710,
-     711,   712,   717,   718,   719,   720,   721,   722,   723,   724,
-     726,   727,   728,   731,   732,   734,   763,   857,   759,   765,
-     761,  2146,   938, -1251,   -82, -1251,  2146,  2146,  2146,  2146,
-    2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
-    2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
-    2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
-    2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,   372,   313,
-     313,   313,   942,   373,   770,   770,   770,  4812,   937,  2078,
-    4182,   391,   771,   941,   774,   627, -1251, -1251,  2146,  2146,
-    2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
-    2146,  2146,  2146, -1251,  -101,  3150,  4835,  4858,  4881,  2146,
-    4904,  2146,  4927,  4950,   446,   772,  1665,  2078, -1251, -1251,
-   -1251,   569,   944, -1251,  4973,  2146,  2146,  2146,   948,  2146,
-    2146,  2146,  2146,  2146,  2146,  2146,   781,  -113, -1251, -1251,
-    3174,  3198,   -82,   -82,   641,   641,   231,  2146,  2146,  2146,
-    2146,  2182,    70,   951, -1251,  2146,  2247,   952,   953,  2146,
-    2146, -1251,  4996,  5019,   872,  2146,  5042,   873,  3222, -1251,
-     782,  1599,  5065, -1251,  2146,  2324, -1251,  2345, -1251,   959,
-     960,   961,   962,   963,   964,   965,   967,   970,   971,   972,
-     973,   974,   975,   976,   980,   981,   982,   983,   984,   988,
-     989,   990,   831,   991,   992,   993,   994,   987,   995, -1251,
-     -54,   996,  1000,  1004,  4203,   246,   229,     7,  5088,  4224,
-    5111,  4245,  5134,  4266,  5157,  4287,  5180,  4308,  5203,  4329,
-    5226,  4350,  5249,  4371,  5272,  4392,  5295,  4413,  5318,  4434,
-    3246,  3270,  5341,  4455,  5364,  4476,  5387,  4497,  5410,  4518,
-    5433,  4539,  5456,  4560,  3294,  3318,  3342,  3366,  3390,  3414,
-     541,   186,   830,   836,   837,   833,  2146, -1251,  1454,  2181,
-     569, -1251,   571,   272,   313,  2146,  1008,  1013,    21,   841,
-   -1251,  1621,  1267,  1014,   527,   527,   401,   401,   401,   401,
-     -19,   -19,   770,   770,   770,   770,  1016,  2078,  2146,  1017,
-    1018,  1019,  5479,  1020,  5502,  1021,  1022,  1242,  2146,   456,
-    2078,   572,  2146,  2146,  1023,  1339,  5525,  5548,  2146,  2632,
-    2658,  5571,  5594,  5617,  5640,  5663,   845,   -82,  2146,  2146,
-   -1251, -1251, -1251,   850,  2659, -1251,   851,  2146,  3438,  3462,
-    3486,  4581,   -69,   -31,   -44,   -57, -1251, -1251, -1251,  2146,
-   -1251,  4602, -1251,   853,   854,  4623,  4644,  1029,  1030,   867,
-    5686,  1035,   865,  2146,  2390,  2146,  2146, -1251,  5709, -1251,
-   -1251,   864,   866,   868,   870,   871,   874,   877,   878,   879,
-     880,   881,   882,   885,   886,   887,   888,   890,   892,   893,
-     895,   896,   902,   903,   904,   905,   906,   907,   908,   909,
-     910, -1251,  1042,   916, -1251,   927,    35, -1251, -1251, -1251,
-     934,   935,   899, -1251,  1046, -1251, -1251, -1251, -1251, -1251,
-   -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251, -1251,  2146,  2146, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251, -1251, -1251, -1251, -1251, -1251,  2146,  2146,  2146,  2146,
-    2146,  2146,  2146,  1049, -1251,  2078,   313, -1251, -1251,  2146,
-    4665,  1104,  2078,   936,   292,  2146,  1105,  1108,   648, -1251,
-    1109,   943,    16,  1111, -1251,  2146, -1251,   211,  3510,   -82,
-    1454,  1454,  1117,  1454,  1129,  1454,  1454, -1251,  2078,  2684,
-    1634,   575, -1251,  1726,   714,   956,  1146,  1147,  1148,   426,
-    1150,  1152,  1153,  1155,  1156,  1157,  1158,  1162,   236,  3534,
-    3558, -1251, -1251,  2710,   -82,   -82,   -82,  1164,  2078,  2078,
-    2078,  2078,   939,  1177,  2146,  2146,  1179,  1184,  1454,  1454,
-    2146,  1161,  1454,  1187,  3582, -1251,  1864,   448,  1185,  1112,
-    2146,  2146,   -82,  1190,  1192,  1031,  1197,  1202,  1454,  1454,
-    1203,   -82,  1204,  1205,  1454,  1454,  1206,  1208,  1209,  1210,
-    1211,  1454,   546,  1454,  1213,  1212,  1214,  1217,  1218, -1251,
-    1219,   386,  1220, -1251,  1221,    17,  1052,  2146,  2146,  1454,
-    1047, -1251,  5732,  4686,  5755,  4707,  5778,  4728,  5801,  4749,
-    4770,  1054,   240,  1056,  5824,   -70, -1251,   569, -1251,    66,
-     490,  1062,  1225,   968, -1251, -1251, -1251,    16,  2146, -1251,
-     576, -1251,  1176,  1228,  2146,    60,    26,    28,  1454,  1236,
-    1454,  1241,  1243,   636, -1251, -1251,  2078, -1251,  2146, -1251,
-    2146,  1454,  1454,  1454, -1251,   394,  1454,  1454,  1454,  1454,
-    1454,  1454,  1454,   489,  2146,  2146,  2146,  1067,   -73,   -53,
-     208, -1251,   637,   640,   643,   644, -1251, -1251,  3606,  3630,
-   -1251, -1251,  1244,  1269,  5847,   -39,  1189, -1251,  2146,  2146,
-    2146, -1251,  1096,  1098,  3654,  3678,  -120,  1099,  1106,  1102,
-    1110,  1103,  1113,  1114,  1115,  -110,  1116,  1118,  1123,  1119,
-    1121,  1122,  1124,  1125,  1128,  1134, -1251, -1251, -1251, -1251,
-   -1251,  1130,  1131,  1135,  1136,  1137,  1139,  1138, -1251,  1140,
-     246, -1251,  1278,  2146,  3702,  3726,   647, -1251,  2146, -1251,
-   -1251, -1251, -1251, -1251, -1251, -1251, -1251,  1145, -1251, -1251,
-   -1251, -1251,  1454,   313,  2146,  1283,  1288,    21, -1251,  1297,
-    4791,    16, -1251, -1251,  3750, -1251, -1251,   -82, -1251,   -82,
-    1319, -1251,  1320, -1251, -1251,  1151,   651,  1176,  3774,  1321,
-    1342,  1344,  2146,  2146,  1348,  1360,  1361,  1362,  1363,  1364,
-    1366, -1251,  1954,  2736,  5870,  1881,   641,   -82,  1368,   -82,
-    1371,   -82,  1373,  1374,  1375,  1379,  1381,  2146,  2146, -1251,
-   -1251,  1385,  1454,  1454,  1301,  1454,  2563,   307,  5893,  2146,
-    1390,  2146,  1454,  1395,  1399,  1397,  1245,  1401,   546,  1402,
-    1406,  2146,  1407,  1414,  1412,  1429,  1417,   546,  2146,  2146,
-    2146,  1454,  1431,  1435,   546,  2146,  1436,  1438,  1437,  2146,
-     386, -1251, -1251,   271,  1176,  2146,  2146,  1454,  1231,   656,
-    1176,  1440,  1442,  1443,   985, -1251,  1444,  1446, -1251,  1264,
-   -1251,  2146,    62,   119, -1251, -1251, -1251,  1273,  2146, -1251,
-   -1251, -1251,  1198,  1377, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251,  1409,  1447,  1274, -1251,  2146, -1251,  1272,   239, -1251,
-    1275,   250, -1251,  1279,   277, -1251,  1280, -1251, -1251, -1251,
-   -1251,  3798,  3822,   -39,   274,   659,  1306,  1404,  2146, -1251,
-    2146, -1251, -1251,  3846,  1284,  3870,  1309, -1251,  1311, -1251,
-    1327, -1251,  1333, -1251,  1329,  5916, -1251,  1330, -1251, -1251,
-    1336,  1338,  5939,  3894,  5962,  1334, -1251,  1347,  1349,  3918,
-    1343,  1350, -1251,  3942,  1346, -1251,  2146,  3966,  3990, -1251,
-    1454,  2146,  1521,  1358, -1251, -1251, -1251,    16, -1251,  1456,
-    4014, -1251, -1251, -1251,  4038, -1251, -1251, -1251, -1251,   641,
-    2602, -1251,  1697,   409,  1697,   409,  1697,   409,  2146,  2146,
-    1459, -1251, -1251,  1454,  2146,  2762,  2788,  1454,  1541,   -39,
-     546,  1545,  2146,  1543,   546,  1546,  1548,  1549,  1555,  1559,
-    2146,  1571,  1454,  1572,  1574,  2146,  1551,  1575,  2146,  1578,
-    1403,  1176,  2146,  2146,   663,  1176, -1251, -1251,  1579, -1251,
-    2146,  1581,  1405,  2146, -1251,  1697,  1697,  2146,  2814,   295,
-    1582,  1408,   -12, -1251,  2840,   323,    30,  2866,   336,   103,
-    2892,  2918,  1410,  1428,  1439, -1251, -1251,  1427, -1251,  1430,
-    1433,  1434,  4062, -1251,  1415, -1251,  1441, -1251, -1251, -1251,
-    5985, -1251,  1445, -1251, -1251,  6008,  1449, -1251,  6031,  1450,
-    2146,  6054,  4086,  1605, -1251,  4110,  1451, -1251,  2944,  3126,
-    1609,  2146, -1251,  1454,  1613, -1251,  1614,  2146,  1615,  1616,
-    2146,  1620,  1626,  1628,  1454,  1454, -1251,  1630,   546,   546,
-     546,   546,  1633,  1635,  1636,   546,  1661,  1664,  1666,  1622,
-     667, -1251,  2146, -1251,  2146,  1668, -1251, -1251,  1490,  2970,
-    1460, -1251, -1251,  1517,  2996, -1251, -1251,  1518,  3022, -1251,
-   -1251, -1251,  1522,  1523, -1251,  1524,  1550,  1528,  1557, -1251,
-   -1251, -1251,  1553, -1251, -1251, -1251,  1560,  1735,  1561,  6077,
-    3048,  1563,   409,  1738,  1454,   409,  1739,   409,  1740,  1454,
-    1663,   546,   546,  1742,  1743,   546,  1746, -1251,   313, -1251,
-    1749,  1766,   109, -1251,  1592,   671,   112, -1251,  1596,   219,
-   -1251,  1608,  1610,  1612,  1611,  1624, -1251, -1251,  1631,  1632,
-     672, -1251,  1629, -1251,  1623,  1784,   409,  1454,  1789,  1790,
-     409,  1803,   409,  1728,  2146,   546,  1454,  1808,  1810,   313,
-    1811,   313,  1812, -1251,   222,  1637, -1251, -1251,   249, -1251,
-     255,  1639,  4134,  1641,  1642, -1251, -1251, -1251, -1251,   675,
-   -1251, -1251,  1817,  1818,  1819,  1820,  2146,  2146,   546,  1454,
-     313,  1821, -1251, -1251, -1251, -1251,  4158,  3074,  1650,  1652,
-   -1251, -1251,  2146,  1827,  1454,   546,  3100, -1251,  1655,  1662,
-    1830,  1454,  1832, -1251,  1660, -1251,  1454,  1667,  1454,  1669,
-     546,  1670,  1835, -1251
+static const short yydefgoto[] = {  1502,
+     2,    14,    15,    16,    17,     3,    67,    68,    69,   445,
+  1071,  1077,   643,   814,  1238,  1418,   644,  1376,  1457,   645,
+  1420,   646,   647,   818,   141,   251,    70,   575,   346,   561,
+   562,   347,    74,    75,    76,    77,    78,   348,  1118,  1346,
+  1402,  1121,  1351,  1406,  1124,  1355,  1409,  1260,  1261,    80,
+    81,   939,   349,   144,   366,   178,   246,   438,  1032,   954,
+   955,   351,   500,   202,   711,   848,   145
 };
 
-/* YYPGOTO[NTERM-NUM].  */
-static const short yypgoto[] =
-{
-   -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251,  1215, -1251,   548, -1251, -1251, -1251, -1251, -1251, -1251,
-   -1251, -1251, -1251, -1251, -1251, -1251,  -307,     2, -1251,  1846,
-      -1,  -369,  -180,     4, -1251, -1251, -1251, -1251, -1251,  1847,
-   -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1101,
-   -1250, -1251, -1251,  -837,   -20, -1251,   180, -1251,   -86, -1251,
-   -1091, -1006,   518,  -247,  -332,  -703,   875, -1251,   -66
+static const short yypact[] = {  2486,
+    36,    25,  2635,-32768,    38,    65,    91,   104,   134,   142,
+   -92,    -7,    29,-32768,-32768,-32768,-32768,  1901,    54,    15,
+   206,   118,   144,   150,   -31,   151,   154,   164,   318,   212,
+   347,   364,   372,   124,   353,   392,   256,   262,   -46,   -46,
+   294,   492,    10,   433,    11,   482,   510,   242,   502,   526,
+   540,   386,   389,   -28,    14,    30,-32768,   394,-32768,   565,
+-32768,   580,   596,   561,     3,    19,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,  2515,-32768,-32768,-32768,-32768,-32768,   443,   443,   620,
+-32768,   274,    16,-32768,-32768,-32768,-32768,   175,   179,   192,
+   232,   310,   345,   355,   374,   398,   420,   421,   444,   475,
+   486,   500,   522,   523,   528,   529,   533,   539,   459,   463,
+   468,   472,-32768,   476,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,  2146,  2146,  2146,-32768,-32768,  2146,   900,    76,   657,
+  2146,   658,   610,-32768,   659,   668,-32768,  2146,-32768,  2146,
+  2146,  2146,   506,  2146,   507,  2146,  2146,  1454,  2146,   496,
+   544,   562,  1454,   545,   554,   568,   569,   585,   588,   594,
+   680,   -46,   -46,   -46,  2146,  2146,  -100,-32768,   -94,   -46,
+   601,   603,   604,   525,-32768,  1454,    23,-32768,-32768,-32768,
+  1454,  1454,   611,   612,   780,  2146,  2146,   -53,  2146,   613,
+  2146,   608,   699,  2146,  2146,-32768,   786,-32768,   619,-32768,
+-32768,   788,-32768,   789,   625,   626,   632,   642,   643,   644,
+   646,   649,   650,   651,   652,   655,   656,   661,   662,   664,
+   665,   666,   667,   669,   670,   671,   673,   675,   677,   678,
+   679,   681,   682,   683,   791,   653,   647,   674,  2146,   827,
+-32768,   -46,-32768,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
+  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
+  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
+  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
+  2146,  2146,  2146,  2146,  2146,   367,   376,   376,   376,   853,
+   456,   686,   686,   686,  4901,   825,  2078,  4151,   375,   684,
+   854,   687,   648,-32768,-32768,  2146,  2146,  2146,  2146,  2146,
+  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
+-32768,  -108,  3205,  4924,  4947,  4970,  2146,  4993,  2146,  5016,
+  5039,   465,   691,  1665,  2078,-32768,-32768,-32768,  1618,   875,
+-32768,  5062,  2146,  2146,  2146,   876,  2146,  2146,  2146,  2146,
+  2146,  2146,  2146,   685,   -86,-32768,-32768,  3227,  3249,   -46,
+   -46,   503,   503,   -38,  2146,  2146,  2146,  2146,  2247,   370,
+   878,-32768,  2146,  2320,   879,   884,  2146,  2146,-32768,  5085,
+  5108,   799,  2146,  5131,   804,  3271,-32768,   712,  1726,  5154,
+-32768,  2146,  2341,-32768,  2389,-32768,   889,   890,   891,   892,
+   893,   895,   896,   897,   901,   903,   932,   934,   935,   936,
+   939,   940,   942,   943,   944,   945,   946,   948,   950,   763,
+   951,   952,   953,   954,   957,   956,-32768,   -77,   958,   959,
+   980,  4176,   283,   133,     7,  5177,  4201,  5200,  4226,  5223,
+  4251,  5246,  4276,  5269,  4301,  5292,  4326,  5315,  4351,  5338,
+  4376,  5361,  4401,  5384,  4426,  5407,  4451,  3293,  3315,  5430,
+  4476,  5453,  4501,  5476,  4526,  5499,  4551,  5522,  4576,  5545,
+  4601,  3337,  3359,  3381,  3403,  3425,  3447,   373,   145,   762,
+   812,   814,   784,  2146,-32768,  1454,  2181,  1618,-32768,     8,
+   271,   376,  2146,   982,   986,    21,   816,-32768,  1864,  1337,
+  1014,   527,   527,   336,   336,   336,   336,   292,   292,   686,
+   686,   686,   686,   985,  2078,  2146,   987,   988,   989,  5568,
+   990,  5591,   991,   992,  1242,  2146,   469,  2078,   442,  2146,
+  2146,   993,  2697,  5614,  5637,  2146,  2721,  2745,  5660,  5683,
+  5706,  5729,  5752,   823,   -46,  2146,  2146,-32768,-32768,-32768,
+   824,  2696,-32768,   828,  2146,  3469,  3491,  3513,  4626,  -116,
+   -37,   -19,   -73,-32768,-32768,-32768,  2146,-32768,  4651,-32768,
+   830,   831,  4676,  4701,  1002,  1006,   840,  5775,  1010,   844,
+  2146,  2410,  2146,  2146,-32768,  5798,-32768,-32768,   838,   843,
+   845,   846,   847,   848,   849,   850,   852,   855,   856,   857,
+   861,   862,   863,   864,   866,   867,   868,   870,   871,   872,
+   873,   874,   877,   880,   881,   882,   885,   886,-32768,  1019,
+   858,-32768,   887,    39,-32768,-32768,-32768,   860,   894,   899,
+-32768,  1052,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2146,
+  2146,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  2146,  2146,  2146,  2146,  2146,  2146,  2146,
+  1055,-32768,  2078,   376,-32768,-32768,  2146,  4726,  1064,  2078,
+   898,   141,  2146,  1066,  1067,   714,-32768,  1069,   906,    14,
+  1077,-32768,  2146,-32768,   210,  3535,   -46,  1454,  1454,  1078,
+  1454,  1079,  1454,  1454,-32768,  2078,  2769,  1634,   534,-32768,
+  2061,   813,   907,  1080,  1082,  1098,   426,  1099,  1100,  1101,
+  1102,  1104,  1105,  1106,  1110,   153,  3557,  3579,-32768,-32768,
+  2793,   -46,   -46,   -46,  1109,  2078,  2078,  2078,  2078,   937,
+  1111,  2146,  2146,  1113,  1115,  1454,  1454,  2146,  1116,  1454,
+  1112,  3601,-32768,  2105,   448,  1117,  1081,  2146,  2146,   -46,
+  1119,  1122,   961,  1124,  1130,  1454,  1454,  1140,   -46,  1141,
+  1142,  1454,  1454,  1143,  1144,  1146,  1147,  1148,  1454,   546,
+  1454,  1149,  1150,  1152,  1151,  1155,-32768,  1153,   443,  1156,
+-32768,  1157,    12,   979,  2146,  2146,  1454,   981,-32768,  5821,
+  4751,  5844,  4776,  5867,  4801,  5890,  4826,  4851,   997,   302,
+  1008,  5913,   326,-32768,  1618,-32768,    24,   391,  1007,  1158,
+   975,-32768,-32768,-32768,    14,  2146,-32768,   537,-32768,  1592,
+  1160,  2146,    51,    43,    44,  1454,  1162,  1454,  1184,  1185,
+   541,-32768,-32768,  2078,-32768,  2146,-32768,  2146,  1454,  1454,
+  1454,-32768,   498,  1454,  1454,  1454,  1454,  1454,  1454,  1454,
+   622,  2146,  2146,  2146,   983,   -71,   -58,   -51,-32768,   542,
+   547,   548,   551,-32768,-32768,  3623,  3645,-32768,-32768,  1186,
+  1187,  5936,   114,  1108,-32768,  2146,  2146,  2146,-32768,  1015,
+  1020,  3667,  3689,   159,  1025,  1031,  1027,  1033,  1029,  1036,
+  1032,  1034,   265,  1037,  1038,  1041,  1039,  1040,  1044,  1045,
+  1046,  1047,  1053,-32768,-32768,-32768,-32768,-32768,  1049,  1051,
+  1054,  1060,  1062,  1057,  1068,-32768,  1070,   283,-32768,  1215,
+  2146,  3711,  3733,   552,-32768,  2146,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,  1071,-32768,-32768,-32768,-32768,  1454,
+   376,  2146,  1241,  1271,    21,-32768,  1270,  4876,    14,-32768,
+-32768,  3755,-32768,-32768,   -46,-32768,   -46,  1272,-32768,  1273,
+-32768,-32768,  1118,   566,  1592,  3777,  1275,  1276,  1277,  2146,
+  2146,  1279,  1282,  1283,  1286,  1287,  1288,  1290,-32768,  1954,
+  2817,  5959,  2600,   503,   -46,  1292,   -46,  1293,   -46,  1295,
+  1296,  1297,  1298,  1299,  2146,  2146,-32768,-32768,  1301,  1454,
+  1454,  1190,  1454,  2637,   307,  5982,  2146,  1306,  2146,  1454,
+  1304,  1308,  1309,  1161,  1310,   546,  1311,  1315,  2146,  1314,
+  1320,  1319,  1321,  1325,   546,  2146,  2146,  2146,  1454,  1323,
+  1327,   546,  2146,  1328,  1330,  1329,  2146,   443,-32768,-32768,
+   315,  1592,  2146,  2146,  1454,  1133,   567,  1592,  1332,  1331,
+  1333,  1198,-32768,  1334,  1336,-32768,  1165,-32768,  2146,    60,
+    62,-32768,-32768,-32768,  1163,  2146,-32768,-32768,-32768,  1278,
+  1377,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1409,  1342,
+  1168,-32768,  2146,-32768,  1174,   166,-32768,  1169,   168,-32768,
+  1188,   200,-32768,  1189,-32768,-32768,-32768,-32768,  3799,  3821,
+   114,   335,   571,  1191,  1250,  2146,-32768,  2146,-32768,-32768,
+  3843,  1192,  3865,  1194,-32768,  1197,-32768,  1199,-32768,  1193,
+-32768,  1200,  6005,-32768,  1201,-32768,-32768,  1210,  1212,  6028,
+  3887,  6051,  1208,-32768,  1217,  1218,  3909,  1221,  1227,-32768,
+  3931,  1223,-32768,  2146,  3953,  3975,-32768,  1454,  2146,  1360,
+  1232,-32768,-32768,-32768,    14,-32768,  1249,  3997,-32768,-32768,
+-32768,  4019,-32768,-32768,-32768,-32768,   503,  2667,-32768,  1697,
+   378,  1697,   378,  1697,   378,  2146,  2146,  1322,-32768,-32768,
+  1454,  2146,  2841,  2865,  1454,  1402,   114,   546,  1407,  2146,
+  1406,   546,  1411,  1410,  1412,  1414,  1416,  2146,  1418,  1454,
+  1419,  1420,  2146,  1424,  1422,  2146,  1425,  1248,  1592,  2146,
+  2146,   572,  1592,-32768,-32768,  1442,-32768,  2146,  1445,  1274,
+  2146,-32768,  1697,  1697,  2146,  2889,   225,  1446,  1280,   -22,
+-32768,  2913,   251,   -21,  2937,   255,    31,  2961,  2985,  1307,
+  1326,  1443,-32768,-32768,  1305,-32768,  1341,  1343,  1344,  4041,
+-32768,  1284,-32768,  1285,-32768,-32768,-32768,  6074,-32768,  1345,
+-32768,-32768,  6097,  1316,-32768,  6120,  1346,  2146,  6143,  4063,
+  1447,-32768,  4085,  1347,-32768,  3009,  3177,  1448,  2146,-32768,
+  1454,  1449,-32768,  1483,  2146,  1499,  1501,  2146,  1502,  1503,
+  1505,  1454,  1454,-32768,  1506,   546,   546,   546,   546,  1507,
+  1508,  1516,   546,  1529,  1539,  1540,  1542,   575,-32768,  2146,
+-32768,  2146,  1543,-32768,-32768,  1368,  3033,  1371,-32768,-32768,
+  1373,  3057,-32768,-32768,  1374,  3081,-32768,-32768,-32768,  1372,
+  1379,-32768,  1387,  1397,  1403,  1405,-32768,-32768,-32768,  1401,
+-32768,-32768,-32768,  1404,  1577,  1408,  6166,  3105,  1413,   378,
+  1579,  1454,   378,  1580,   378,  1581,  1454,  1504,   546,   546,
+  1584,  1585,   546,  1587,-32768,   376,-32768,  1588,  1596,    34,
+-32768,  1430,   576,   109,-32768,  1431,   112,-32768,  1432,  1433,
+  1438,  1434,  1440,-32768,-32768,  1450,  1452,   598,-32768,  1441,
+-32768,  1439,  1623,   378,  1454,  1624,  1625,   378,  1626,   378,
+  1550,  2146,   546,  1454,  1630,  1633,   376,  1635,   376,  1636,
+-32768,   211,  1458,-32768,-32768,   214,-32768,   217,  1486,  4107,
+  1444,  1490,-32768,-32768,-32768,-32768,   599,-32768,-32768,  1666,
+  1667,  1692,  1693,  2146,  2146,   546,  1454,   376,  1696,-32768,
+-32768,-32768,-32768,  4129,  3129,  1491,  1523,-32768,-32768,  2146,
+  1698,  1454,   546,  3153,-32768,  1525,  1555,  1727,  1454,  1734,
+-32768,  1552,-32768,  1454,  1561,  1454,  1562,   546,  1568,  1738,
+-32768,  1760,  1761,-32768
 };
 
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -49
-static const short yytable[] =
-{
-     145,   214,   216,    74,   505,   249,   566,   381,    75,   849,
-     386,   639,  1315,   186,   189,   541,  1315,   212,   205,  1315,
-     202,   639,   144,   157,   254,   711,  1134,  1135,   212,   394,
-     149,   200,   986,   405,   988,   407,   155,   383,   155,   384,
-     212,     7,  1210,   372,   373,     5,   121,   122,   123,   124,
-     372,   373,   125,   372,   373,  1043,  1260,   121,   122,   123,
-     124,  1261,   501,   125,     6,  1052,   985,   557,  1191,   121,
-     122,   123,   124,    96,   526,   125,   578,   579,   987,   527,
-     989,   175,   176,   640,   641,   642,   643,   256,   311,   257,
-     372,   373,   177,   640,   641,   642,   643,    84,  1260,   178,
-     501,   137,   138,  1261,  1266,   152,  1269,  1017,   812,  1018,
-     372,   373,   758,    85,   304,   305,   306,   159,   395,   307,
-     310,   631,    86,   315,   761,  1192,   632,  1019,  1279,  1020,
-     335,    87,   336,   337,   338,  1032,   340,   760,   342,   343,
-      88,   354,  1033,   156,   979,   156,   329,   330,   331,   258,
-     759,   259,  1315,   260,   332,   261,  1315,   370,   371,  1315,
-     201,    89,     8,     9,    10,    11,    12,    13,    14,    15,
-    1314,  1260,   312,   313,  1244,    90,  1261,  1260,   392,   393,
-    1260,   396,  1261,   398,   151,  1261,   401,   402,   206,   644,
-     187,   190,    91,   213,  1315,   717,   705,   203,  1315,   952,
-    1315,   255,   712,    92,   215,   150,   137,   138,   731,   385,
-     148,  1152,  1318,   812,   152,   130,   131,   132,   133,   594,
-    1161,   179,   181,   372,   373,   372,   373,  1168,   262,   153,
-     263,   444,   491,   492,   493,   494,   448,   449,   450,   451,
-     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
-     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
-     482,   483,   484,   485,   486,   487,   488,   489,  1090,    96,
-     501,  1402,   372,   373,  1406,  1321,  1409,  1260,   154,   500,
-    1260,  1425,  1261,   501,  1429,  1261,   840,   157,   511,   512,
-     513,   514,   515,   516,   517,   518,   519,   520,   521,   522,
-     523,   524,   525,   506,   264,  1140,   265,  1260,   212,   532,
-     158,   534,  1261,  1260,   159,  1444,   305,   500,  1261,  1448,
-     266,  1450,   267,   372,   373,   545,   546,   547,   160,   549,
-     550,   551,   552,   553,   554,   555,   161,   121,   122,   123,
-     124,   374,   193,   125,   367,   194,   369,   568,   569,   570,
-     571,   694,   376,   832,   162,   581,   695,   372,   373,   585,
-     586,   372,   373,   562,   562,   590,   490,   212,   565,   565,
-     841,   842,   163,  1280,   598,   375,   853,  1284,  1021,   164,
-    1022,   702,   372,   373,   372,   373,   863,   168,   504,   372,
-     373,  1431,   372,   373,  1462,   174,   121,   122,   123,   124,
-     638,   567,   125,   372,   373,   969,   884,   137,   138,  1202,
-     702,   130,   131,   132,   133,   173,   892,   893,   894,   895,
-    1204,  1464,   874,   268,   446,   269,   191,  1465,   707,   182,
-     372,   373,   188,   137,   138,   192,  1175,   637,   501,  1211,
-     704,  1176,  1002,  1003,  1077,   838,   910,  1206,   372,   373,
-     318,   319,   320,   195,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,  1311,   700,  1260,   196,   305,
-     332,   501,  1261,   875,  1248,   708,   372,   373,   270,  1141,
-     271,  1365,  1366,  1367,  1368,  1011,  1012,   973,  1372,   372,
-     373,   165,   166,  1317,   167,   706,   183,   500,   718,   184,
-     185,   501,   501,   501,   501,   197,  1320,   700,   729,   272,
-     500,   273,   733,   734,   137,   138,   198,   208,   739,   251,
-     199,   252,   972,   974,   996,   274,   207,   275,   749,   750,
-     130,   131,   132,   133,   137,   138,   209,   753,   276,   496,
-     277,   252,   560,   561,  1414,  1415,   210,   211,  1418,   762,
-     247,   250,   137,   138,   327,   328,   329,   330,   331,   278,
-     814,   279,   298,   774,   332,   776,   777,   542,   299,   318,
-     319,   320,   300,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,   280,   282,   281,   283,  1453,   332,
-     314,   318,   319,   320,   316,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,   317,   137,   138,   501,
-     333,   332,   537,   911,   252,   301,   302,   137,   138,   334,
-     833,  1478,   730,   510,   252,   284,   339,   285,   813,   130,
-     131,   132,   133,   286,   288,   287,   289,  1117,  1489,   290,
-     341,   291,   822,   823,   846,   936,   937,   938,   939,   940,
-     355,   137,   138,  1501,   359,   356,   824,   825,   826,   827,
-     828,   829,   830,   357,   292,   500,   293,   360,   352,   834,
-     361,   362,   837,   358,   363,   843,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,   852,   294,   296,   295,   297,
-     332,   366,    40,    41,    42,    43,   382,    45,   500,   364,
-     700,   387,   388,   365,   377,    51,    52,   692,   378,   693,
-     869,   379,   318,   319,   320,   949,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   748,   500,   500,
-     500,   500,   332,   169,   898,   899,   170,   171,   391,   172,
-     904,   702,   702,   703,   732,   702,   981,   867,   982,   380,
-     914,   915,   389,   318,   319,   320,   390,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,   397,   400,
-     318,   319,   320,   332,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,   403,   399,   954,   955,   404,
-     332,   318,   319,   320,   406,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,   702,   702,   995,  1023,
-     702,   332,  1024,   702,   702,  1025,  1026,  1077,   980,  1078,
-    1252,   702,   408,  1097,   984,   409,  1181,   813,  1182,  1077,
-     410,  1212,   975,  1077,   411,  1303,   500,  1181,   997,  1377,
-     998,  1427,  1439,  1428,  1440,  1470,   412,  1471,   413,   414,
-     415,   416,   439,   417,  1013,  1014,  1015,   318,   319,   320,
-     418,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,   419,   420,   421,   422,   423,   332,  1036,  1037,
-    1038,   424,   425,   426,   427,   428,   429,   430,   431,   855,
-     432,   433,   434,    93,   303,   435,   436,  1083,   437,    97,
-      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
-     118,   119,   120,  1074,   888,   889,   890,   438,  1080,   441,
-     442,   443,   445,   332,   498,   896,  1112,   495,   508,   507,
-     509,   543,  1071,   538,  1084,   548,   556,   580,   589,   583,
-     584,   592,   916,   595,   601,   602,   603,   604,   605,   606,
-     607,   925,   608,   624,   978,   609,   610,   611,   612,   613,
-     614,   615,  1102,  1103,  1174,   616,   617,   618,   619,   620,
-     629,  1186,  1111,   621,   622,   623,   625,   626,   627,   628,
-     630,   633,   126,   127,   128,   129,   634,  1131,  1132,   635,
-     696,   697,   698,   699,   709,   562,   701,   710,   714,  1143,
-     565,  1145,   716,   747,   719,   720,   721,   723,   725,   726,
-     735,  1155,   751,   752,   764,   765,   768,   769,  1162,  1163,
-    1164,   770,   772,   773,   779,  1169,   780,   809,   781,  1173,
-     782,   783,   821,   831,   784,  1177,  1178,   785,   786,   787,
-     788,   789,   790,   134,   135,   791,   792,   793,   794,   136,
-     795,  1190,   796,   797,   139,   798,   799,   308,  1194,   142,
-     819,   309,   800,   801,   802,   803,   804,   805,   806,   807,
-     808,   810,   318,   319,   320,  1200,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   811,   817,   818,
-     836,   844,   332,   839,   845,   913,   847,   851,  1215,   848,
-    1216,   318,   319,   320,   858,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,   860,   870,   318,   319,
-     320,   332,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,   871,   872,   873,  1241,   876,   332,   877,
-     878,  1245,   879,   880,   881,   882,   883,  1092,   905,  1093,
-     891,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,  1258,   897,  1264,   900,  1267,   332,  1270,  1271,
-     901,   907,   912,   917,  1274,   918,   919,  1118,   562,  1121,
-     920,  1124,  1282,   565,  1195,   921,   924,   926,   927,   930,
-    1290,   931,   932,   933,   934,  1295,   943,   944,  1298,   945,
-     946,   947,  1301,  1302,   950,   948,   953,   951,   958,   968,
-    1305,   970,   977,  1308,   983,   304,   305,  1309,   856,   857,
-     976,   859,   991,   861,   862,    93,   303,   993,  1016,   994,
-    1029,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,  1030,  1035,  1039,  1040,  1044,
-    1080,  1045,  1046,  1048,  1072,  1047,   902,   903,  1049,  1085,
-     906,  1349,  1086,  1054,  1050,  1051,  1053,  1354,  1055,  1056,
-    1358,  1057,  1058,  1088,  1059,  1060,   922,   923,  1061,  1062,
-    1063,  1064,   928,   929,  1068,  1065,  1066,  1067,  1069,   935,
-    1070,   942,  1379,  1081,  1380,  1094,  1095,  1099,  1096,   318,
-     319,   320,  1421,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,   126,   127,   128,   129,  1100,   332,
-    1101,   318,   319,   320,  1104,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,  1105,  1106,  1107,  1108,
-    1109,   332,  1110,  1457,  1119,  1460,   990,  1122,   992,  1125,
-    1127,  1128,  1259,  1196,  1265,  1129,  1268,  1130,  1136,   999,
-    1000,  1001,  1133,  1144,  1004,  1005,  1006,  1007,  1008,  1009,
-    1010,  1147,  1148,  1149,  1480,   134,   135,  1151,  1153,  1154,
-    1150,   136,  1180,  1156,  1452,  1197,   139,  1157,  1158,   727,
-    1160,   142,   320,   728,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,  1159,   369,  1166,  1167,  1170,
-     332,  1171,  1189,  1172,  1183,  1326,  1476,  1477,  1184,  1185,
-    1193,  1187,  1188,  1198,  1201,  1199,  1203,    93,   344,  1218,
-    1205,  1207,  1486,    97,    98,    99,   100,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,  1213,  1214,  1220,
-    1082,  1221,   318,   319,   320,   345,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,  1222,  1223,  1224,
-    1226,  1227,   332,  1228,  1232,    40,    41,    42,    43,    44,
-      45,   736,  1233,  1236,  1234,  1237,  1239,  1246,    51,    52,
-     318,   319,   320,  1247,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,  1249,  1272,  1278,  1281,  1283,
-     332,  1286,  1285,  1137,  1296,  1287,   126,   127,   128,   129,
-    1146,  1288,   318,   319,   320,  1289,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,  1291,  1293,  1165,
-    1294,  1297,   332,  1299,  1300,  1304,  1306,  1307,  1312,  1313,
-    1332,  1324,   318,   319,   320,  1179,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   596,  1325,  1327,
-    1328,  1343,   332,  1329,  1330,  1347,  1333,   134,   346,  1351,
-    1352,  1355,  1356,   136,  1337,  1335,  1359,  1376,   139,   715,
-    1339,  1345,  1360,   142,  1361,   347,  1364,    93,   303,  1369,
-    1384,  1370,  1371,    97,    98,    99,   100,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,  1373,    93,   539,
-    1374,  1382,  1375,  1381,    97,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,  1385,  1387,
-      93,   303,  1389,  1393,  1391,  1390,    97,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-    1392,  1273,  1394,  1395,   868,  1277,   126,   127,   128,   129,
-    1396,  1397,  1398,  1401,  1403,  1407,  1410,  1413,  1416,  1417,
-    1292,  1419,   318,   319,   320,  1423,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   126,   127,   128,
-     129,  1424,   332,  1426,   318,   319,   320,  1430,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,  1432,
-    1443,  1435,  1433,  1434,   332,  1446,  1447,   134,   135,   126,
-     127,   128,   129,   136,  1436,  1442,  1437,  1438,   139,  1449,
-    1441,   865,  1451,   142,  1455,   866,  1456,  1458,  1461,  1463,
-    1466,  1468,  1469,  1472,  1473,  1474,  1475,  1481,   134,   135,
-    1484,  1350,  1485,  1487,   136,  1491,  1493,  1492,  1495,   139,
-    1496,  1503,  1362,  1363,   142,  1502,   540,  1498,  1340,  1500,
-      73,    81,  1087,   815,     0,     0,     0,     0,     0,     0,
-    1255,  1256,     0,     0,     0,     0,   136,     0,     0,     0,
-       0,  1257,   909,     0,     0,     0,   142,     0,   178,   318,
-     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,  1405,     0,    93,    94,    95,  1412,    96,     0,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,     0,   121,   122,   123,   124,     0,
-       0,   125,     0,     0,     0,  1445,     0,     0,     0,     0,
-       0,     0,     0,     0,  1454,     0,     0,    93,   303,   212,
-       0,     0,     0,    97,    98,    99,   100,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,  1479,   121,   122,
-     123,   124,     0,     0,   125,     0,     0,     0,     0,     0,
-       0,     0,  1488,   126,   127,   128,   129,     0,     0,  1494,
-       0,     0,     0,     0,  1497,     0,  1499,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,   318,   319,   320,   332,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-     130,   131,   132,   133,   332,     0,   126,   127,   128,   129,
-       0,  1115,     0,  1116,   134,   135,     0,     0,     0,     0,
-     136,     0,   137,   138,     0,   139,     0,   140,     0,   141,
-     142,    93,   344,     0,     0,     0,     0,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,     0,     0,     0,     0,     0,     0,   134,   135,   345,
-       0,     0,     0,   136,     0,     0,     0,     0,   139,     0,
-       0,     0,     0,   142,     0,     0,     0,     0,     0,    40,
-      41,    42,    43,    44,    45,     0,     0,     0,     0,    93,
-     303,     0,    51,    52,     0,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,     0,
-     126,   127,   128,   129,    93,   539,     0,     0,     0,     0,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   572,    25,    26,   573,   574,    29,   575,
-      31,     0,    32,     0,    34,    35,     0,    37,    38,     0,
-       0,   134,   499,     0,     0,     0,     0,   136,   126,   127,
-     128,   129,   139,     0,    50,     0,     0,   142,     0,     0,
-       0,     0,     0,    54,    55,    56,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    66,     0,   126,   127,   128,   129,     0,   572,    25,
-      26,   573,   574,    29,   575,    31,     0,    32,     0,    34,
-      35,     0,    37,    38,     0,     0,     0,     0,     0,   134,
-     135,     0,     0,     0,     0,   136,     0,     0,     0,    50,
-     139,     0,     0,     0,     0,   142,     0,     0,    54,    55,
-      56,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   134,   135,    66,     0,     0,     0,
-     136,     0,     0,     0,     0,   139,     0,     0,     0,     0,
-     142,     0,     0,     0,   576,   572,    25,    26,   573,   574,
-      29,   575,    31,     0,    32,     0,    34,    35,     0,    37,
-      38,     0,     0,     0,     0,     0,   572,    25,    26,   573,
-     574,    29,   575,    31,     0,    32,    50,    34,    35,     0,
-      37,    38,     0,     0,     0,    54,    55,    56,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
-       0,     0,     0,    66,     0,     0,    54,    55,    56,   582,
-       0,   572,    25,    26,   573,   574,    29,   575,    31,     0,
-      32,     0,    34,    35,    66,    37,    38,     0,     0,    -5,
-       1,     0,    -5,   -48,     0,     0,     0,     0,     0,     0,
-       0,     0,    50,     0,     0,     0,     0,     0,     0,     0,
-       0,    54,    55,    56,     0,     0,     0,     0,     0,     0,
-       0,     0,   -48,     0,     0,     0,     0,   -48,   -48,    66,
-     -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,     0,   -48,
-     -48,   -48,   -48,   -48,   -48,   -48,   599,     0,     0,   -48,
-     -48,   -48,   -48,   -48,   -48,   -48,     0,   -48,   -48,   -48,
-     -48,   -48,   217,   -48,   -48,     0,     0,   600,     0,   -48,
-     -48,   -48,   -48,     0,     0,     0,     0,   -48,     0,   -48,
-       0,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,
-     -48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   775,    -5,    -5,    -5,    -5,    -5,    -5,    -5,
-      -5,     0,     0,     0,   218,   219,   220,     0,     0,     0,
-       0,     0,   221,   222,   223,   224,   225,   226,   227,   228,
-     229,   230,    20,     0,     0,     0,     0,     0,     0,     0,
-     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
-       0,   241,   242,   243,   244,   245,   246,     0,     0,     0,
-       0,    21,     0,     0,     0,     0,    22,    23,     0,    24,
-      25,    26,    27,    28,    29,    30,    31,     0,    32,    33,
-      34,    35,    36,    37,    38,     0,     0,     0,    39,    40,
-      41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
-      50,     0,    51,    52,     0,     0,     0,     0,    53,    54,
-      55,    56,     0,     0,     0,     0,    57,     0,    58,     0,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-     572,    25,    26,   573,   574,    29,   575,    31,     0,    32,
-       0,    34,    35,     0,    37,    38,   318,   319,   320,     0,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,    50,     0,     0,     0,     0,   332,     0,     0,     0,
-      54,    55,    56,  1138,     0,  1139,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   318,   319,   320,    66,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,     0,
-       0,     0,  1253,     0,  1254,   318,   319,   320,     0,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,     0,
-       0,   318,   319,   320,   740,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,     0,     0,   318,   319,   320,
-     741,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,     0,     0,   318,   319,   320,   864,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,     0,     0,   318,
-     319,   320,   887,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,     0,     0,   318,   319,   320,  1113,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,     0,
-       0,   318,   319,   320,  1275,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,     0,     0,   318,   319,   320,
-    1276,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,     0,     0,   318,   319,   320,  1310,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,     0,     0,   318,
-     319,   320,  1316,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,     0,     0,   318,   319,   320,  1319,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,     0,
-       0,   318,   319,   320,  1322,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,     0,     0,   318,   319,   320,
-    1323,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,     0,     0,   318,   319,   320,  1346,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,     0,     0,   318,
-     319,   320,  1383,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,     0,     0,   318,   319,   320,  1386,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,     0,
-       0,   318,   319,   320,  1388,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,     0,     0,   318,   319,   320,
-    1400,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,     0,     0,   318,   319,   320,  1483,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,     0,     0,   318,
-     319,   320,  1490,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,   497,     0,   318,   319,   320,   558,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-     528,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,   558,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,   559,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,   593,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,   672,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-     673,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,   686,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,   687,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,   688,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,   689,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-     690,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,   691,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,   754,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,   755,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,   756,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-     854,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,   885,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,   886,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,   908,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,  1027,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-    1028,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,  1041,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,  1042,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,  1075,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,  1076,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-    1091,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,  1098,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,  1208,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,  1209,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,  1217,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-    1219,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,  1230,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,  1235,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,  1238,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,  1242,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-    1243,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,  1250,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,  1251,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,     0,     0,   318,
-     319,   320,  1331,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,     0,     0,   318,   319,   320,  1342,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,     0,     0,   318,   319,   320,
-    1344,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,     0,
-       0,   318,   319,   320,  1467,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,     0,     0,   318,   319,   320,  1482,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,   318,   319,   320,   503,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,   318,   319,   320,
-     636,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,   318,   319,
-     320,   651,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,   318,
-     319,   320,   653,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-     318,   319,   320,   655,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,   318,   319,   320,   657,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,   318,   319,   320,   659,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,   318,   319,   320,   661,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,   318,   319,   320,   663,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,   318,   319,   320,   665,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,   318,   319,   320,   667,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,   318,   319,   320,
-     669,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,   318,   319,
-     320,   671,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,   318,
-     319,   320,   675,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-     318,   319,   320,   677,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,   318,   319,   320,   679,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,   318,   319,   320,   681,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,   318,   319,   320,   683,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,   318,   319,   320,   685,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,   318,   319,   320,   757,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,   318,   319,   320,   763,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,   318,   319,   320,
-     766,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,   318,   319,
-     320,   767,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,   318,
-     319,   320,   835,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-     318,   319,   320,   960,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,   318,   319,   320,   962,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,   318,   319,   320,   964,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,   318,   319,   320,   966,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,   318,   319,   320,   967,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,   318,   319,   320,  1089,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,   497,   318,   319,
-     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,     0,
-     529,   318,   319,   320,     0,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,   530,   318,   319,   320,     0,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,     0,   531,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,   533,
-     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,     0,   535,   318,   319,   320,     0,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,   536,   318,   319,   320,     0,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,     0,   544,   318,
-     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,   587,   318,   319,   320,     0,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,     0,   588,   318,   319,   320,     0,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,   591,   318,   319,
-     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,     0,
-     597,   318,   319,   320,     0,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,   650,   318,   319,   320,     0,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,     0,   652,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,   654,
-     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,     0,   656,   318,   319,   320,     0,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,   658,   318,   319,   320,     0,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,     0,   660,   318,
-     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,   662,   318,   319,   320,     0,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,     0,   664,   318,   319,   320,     0,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,   666,   318,   319,
-     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,     0,
-     668,   318,   319,   320,     0,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,   670,   318,   319,   320,     0,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,     0,   674,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,   676,
-     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,     0,   678,   318,   319,   320,     0,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,   680,   318,   319,   320,     0,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,     0,   682,   318,
-     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,   684,   318,   319,   320,     0,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,     0,   722,   318,   319,   320,     0,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,   724,   318,   319,
-     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,     0,
-     737,   318,   319,   320,     0,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,   738,   318,   319,   320,     0,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,     0,   742,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,   743,
-     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,     0,   744,   318,   319,   320,     0,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,   745,   318,   319,   320,     0,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,     0,   746,   318,
-     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,   771,   318,   319,   320,     0,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,     0,   778,   318,   319,   320,     0,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,   959,   318,   319,
-     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,     0,
-     961,   318,   319,   320,     0,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,   963,   318,   319,   320,     0,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,     0,   965,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,   971,
-     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,     0,  1031,   318,   319,   320,     0,   321,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
-       0,     0,     0,   332,     0,  1114,   318,   319,   320,     0,
-     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-     331,     0,     0,     0,     0,     0,   332,     0,  1142,   318,
-     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,   331,     0,     0,     0,     0,     0,   332,
-       0,  1225,   318,   319,   320,     0,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,     0,     0,     0,
-       0,     0,   332,     0,  1229,   318,   319,   320,     0,   321,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
-       0,     0,     0,     0,     0,   332,     0,  1231,   318,   319,
-     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,   331,     0,     0,     0,     0,     0,   332,     0,
-    1334,   318,   319,   320,     0,   321,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,   331,     0,     0,     0,     0,
-       0,   332,     0,  1336,   318,   319,   320,     0,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
-       0,     0,     0,     0,   332,     0,  1338,   318,   319,   320,
-       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,     0,     0,     0,     0,     0,   332,     0,  1341,
-     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,   331,     0,     0,     0,     0,     0,
-     332,     0,  1399
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1126,
+-32768,   466,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,  -303,     4,-32768,  1763,     1,  -370,
+  -178,     6,-32768,-32768,-32768,-32768,-32768,  1773,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, -1033, -1241,-32768,
+-32768,  -835,   -18,-32768,   182,-32768,   -84,-32768, -1090,  -970,
+   520,  -245,  -332,  -698,   811,-32768,   -64
 };
 
-static const short yycheck[] =
-{
-      20,    67,    68,     4,   311,    91,   375,   187,     4,   712,
-     190,     4,  1262,     4,     4,   347,  1266,     5,     4,  1269,
-       4,     4,    20,    67,     4,     4,  1032,  1033,     5,    85,
-       6,    45,     6,   213,     6,   215,    67,     4,    67,     6,
-       5,     3,  1133,   163,   164,     6,    34,    35,    36,    37,
-     163,   164,    40,   163,   164,   175,    68,    34,    35,    36,
-      37,    73,   309,    40,     0,   175,     6,   180,     6,    34,
-      35,    36,    37,     7,   175,    40,     6,     7,    52,   180,
-      52,   163,   164,    76,    77,    78,    79,   174,     4,   176,
-     163,   164,   174,    76,    77,    78,    79,     7,    68,   181,
-     347,   171,   172,    73,  1205,   174,  1207,   180,   178,   182,
-     163,   164,   181,     6,   134,   135,   136,   174,   174,   139,
-     140,   175,     6,   143,   181,     6,   180,   180,  1219,   182,
-     150,     6,   152,   153,   154,   174,   156,   181,   158,   159,
-       6,   161,   181,   174,   847,   174,   165,   166,   167,   174,
-     181,   176,  1402,   174,   173,   176,  1406,   177,   178,  1409,
-     174,     6,   124,   125,   126,   127,   128,   129,   130,   131,
-     182,    68,    88,    89,  1180,   174,    73,    68,   198,   199,
-      68,   201,    73,   203,     6,    73,   206,   207,   174,   182,
-     181,   181,   174,   181,  1444,   527,   503,   181,  1448,   182,
-    1450,   181,   181,   174,   181,   181,   171,   172,   540,   176,
-     174,  1048,   182,   178,   174,   149,   150,   151,   152,   399,
-    1057,    41,    42,   163,   164,   163,   164,  1064,   174,   174,
-     176,   251,   298,   299,   300,   301,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   981,     7,
-     527,  1382,   163,   164,  1385,   182,  1387,    68,   174,   309,
-      68,   182,    73,   540,   182,    73,     4,    67,   318,   319,
-     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,   331,   332,   311,   174,     8,   176,    68,     5,   339,
-     174,   341,    73,    68,   174,  1426,   346,   347,    73,  1430,
-     174,  1432,   176,   163,   164,   355,   356,   357,    49,   359,
-     360,   361,   362,   363,   364,   365,   174,    34,    35,    36,
-      37,   181,    41,    40,   174,    44,   176,   377,   378,   379,
-     380,   175,   182,   695,    45,   385,   180,   163,   164,   389,
-     390,   163,   164,   374,   375,   395,     4,     5,   374,   375,
-      88,    89,    45,  1220,   404,   181,   175,  1224,   180,    45,
-     182,   180,   163,   164,   163,   164,   728,    47,     7,   163,
-     164,   182,   163,   164,   182,   181,    34,    35,    36,    37,
-     181,   180,    40,   163,   164,   175,   180,   171,   172,   180,
-     180,   149,   150,   151,   152,   174,   758,   759,   760,   761,
-     180,   182,     6,   174,   254,   176,     6,   182,   504,   181,
-     163,   164,    45,   171,   172,     6,   175,   445,   695,   175,
-     178,   180,    58,    59,   180,   702,     8,   180,   163,   164,
-     153,   154,   155,     4,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   180,   496,    68,     4,   499,
-     173,   728,    73,    57,  1187,   505,   163,   164,   174,   182,
-     176,  1328,  1329,  1330,  1331,     6,     7,     7,  1335,   163,
-     164,    44,    45,   180,    47,   503,    41,   527,   528,    44,
-      45,   758,   759,   760,   761,     4,   180,   537,   538,   174,
-     540,   176,   542,   543,   171,   172,   174,     6,   548,   176,
-     174,   178,   839,   840,   866,   174,   174,   176,   558,   559,
-     149,   150,   151,   152,   171,   172,     4,   567,   174,   176,
-     176,   178,   372,   373,  1391,  1392,     4,    45,  1395,   579,
-     174,     5,   171,   172,   163,   164,   165,   166,   167,   174,
-     636,   176,   174,   593,   173,   595,   596,     8,   174,   153,
-     154,   155,   174,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   174,   174,   176,   176,  1435,   173,
-       4,   153,   154,   155,     6,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,     6,   171,   172,   866,
-       6,   173,   176,   175,   178,   174,   174,   171,   172,     5,
-     696,  1468,   176,     6,   178,   174,   174,   176,   636,   149,
-     150,   151,   152,   174,   174,   176,   176,  1016,  1485,   174,
-     174,   176,   672,   673,     6,   109,   110,   111,   112,   113,
-     181,   171,   172,  1500,   181,   174,   686,   687,   688,   689,
-     690,   691,   692,   174,   174,   695,   176,   181,   160,   699,
-     174,   174,   702,   165,   174,   705,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   715,   174,   174,   176,   176,
-     173,     4,    61,    62,    63,    64,   188,    66,   728,   174,
-     730,   193,   194,   174,   181,    74,    75,   176,   181,   178,
-       6,   181,   153,   154,   155,   811,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   557,   758,   759,
-     760,   761,   173,    41,   764,   765,    44,    45,     6,    47,
-     770,   180,   180,   182,   182,   180,   180,   182,   182,   176,
-     780,   781,   176,   153,   154,   155,   176,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,   178,    91,
-     153,   154,   155,   173,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,     6,   181,   817,   818,   174,
-     173,   153,   154,   155,     6,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   180,   180,   182,   182,
-     180,   173,   182,   180,   180,   182,   182,   180,   848,   182,
-    1199,   180,     6,   182,   854,   174,   180,   835,   182,   180,
-     174,   182,   840,   180,   174,   182,   866,   180,   868,   182,
-     870,   180,   180,   182,   182,   180,   174,   182,   174,   174,
-     174,   174,     5,   174,   884,   885,   886,   153,   154,   155,
-     174,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   174,   174,   174,   174,   174,   173,   908,   909,
-     910,   174,   174,   174,   174,   174,   174,   174,   174,   719,
-     174,   174,   174,     3,     4,   174,   174,   973,   174,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,   953,   754,   755,   756,   174,   958,   180,
-     175,   180,     4,   173,     7,     6,  1012,     5,     7,   178,
-     176,     7,   950,   181,   974,     7,   175,     6,    86,     7,
-       7,    88,   782,   181,     5,     5,     5,     5,     5,     5,
-       5,   791,     5,   142,     6,     5,     5,     5,     5,     5,
-       5,     5,  1002,  1003,  1070,     5,     5,     5,     5,     5,
-       3,     6,  1012,     5,     5,     5,     5,     5,     5,     5,
-       5,     5,   102,   103,   104,   105,     6,  1027,  1028,     5,
-     180,   175,   175,   180,     6,  1016,   498,     4,   177,  1039,
-    1016,  1041,     6,   178,     7,     7,     7,     7,     7,     7,
-       7,  1051,   182,   182,   181,   181,     7,     7,  1058,  1059,
-    1060,   174,     7,   178,   180,  1065,   180,     5,   180,  1069,
-     180,   180,     6,     4,   180,  1075,  1076,   180,   180,   180,
-     180,   180,   180,   163,   164,   180,   180,   180,   180,   169,
-     180,  1091,   180,   180,   174,   180,   180,   177,  1098,   179,
-     181,   181,   180,   180,   180,   180,   180,   180,   180,   180,
-     180,   175,   153,   154,   155,  1115,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   180,   174,   174,
-       6,     6,   173,   177,     6,     3,     7,     6,  1138,   176,
-    1140,   153,   154,   155,     7,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,     7,   181,   153,   154,
-     155,   173,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,     7,     7,     7,  1176,     7,   173,     7,
-       7,  1181,     7,     7,     7,     7,     4,   987,     7,   989,
-       6,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,  1202,     6,  1204,     6,  1206,   173,  1208,  1209,
-       6,     4,     7,     3,  1214,     3,   165,  1017,  1199,  1019,
-       3,  1021,  1222,  1199,     6,     3,     3,     3,     3,     3,
-    1230,     3,     3,     3,     3,  1235,     3,     5,  1238,     5,
-       3,     3,  1242,  1243,     4,     6,   174,     6,   181,   175,
-    1250,   175,     7,  1253,     6,  1255,  1256,  1257,   720,   721,
-     178,   723,     6,   725,   726,     3,     4,     6,   181,     6,
-       6,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,     6,    87,   181,   180,   180,
-    1300,   175,   180,   180,     6,   175,   768,   769,   175,     6,
-     772,  1311,     4,   175,   180,   180,   180,  1317,   175,   180,
-    1320,   180,   180,     6,   180,   180,   788,   789,   180,   175,
-     180,   180,   794,   795,   175,   180,   180,   180,   180,   801,
-     180,   803,  1342,   178,  1344,     6,     6,     6,   177,   153,
-     154,   155,  1398,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   102,   103,   104,   105,     6,   173,
-       6,   153,   154,   155,     6,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,     6,     6,     6,     6,
-       6,   173,     6,  1439,     6,  1441,   858,     6,   860,     6,
-       6,     6,  1202,     6,  1204,     6,  1206,     6,    87,   871,
-     872,   873,     7,     3,   876,   877,   878,   879,   880,   881,
-     882,     6,     3,     6,  1470,   163,   164,     6,     6,     3,
-     165,   169,   181,     6,  1434,     6,   174,     3,     6,   177,
-       3,   179,   155,   181,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,     6,  1256,     6,     3,     3,
-     173,     3,   178,     6,     4,     6,  1466,  1467,     6,     6,
-     177,     7,     6,     6,   182,   181,   181,     3,     4,   175,
-     181,   181,  1482,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,   181,    84,   180,
-     972,   180,   153,   154,   155,    41,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   180,   175,   180,
-     180,   175,   173,   175,   180,    61,    62,    63,    64,    65,
-      66,   182,   175,   180,   175,   175,   180,     6,    74,    75,
-     153,   154,   155,   175,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    89,    87,     6,     3,     6,
-     173,     3,     6,  1035,     3,     6,   102,   103,   104,   105,
-    1042,     6,   153,   154,   155,     6,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,     6,     6,  1061,
-       6,     6,   173,     5,   181,     6,     5,   182,     6,   181,
-     175,   181,   153,   154,   155,  1077,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,     8,   180,   182,
-     180,     6,   173,   180,   180,     6,   175,   163,   164,     6,
-       6,     6,     6,   169,   175,   180,     6,     5,   174,     8,
-     180,   180,     6,   179,     6,   181,     6,     3,     4,     6,
-     180,     6,     6,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,     6,     3,     4,
-       6,   181,     6,     5,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,   181,   181,
-       3,     4,   180,   175,   180,   182,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-     180,  1213,   175,   180,     8,  1217,   102,   103,   104,   105,
-     180,     6,   181,   180,     6,     6,     6,    84,     6,     6,
-    1232,     5,   153,   154,   155,     6,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   102,   103,   104,
-     105,     5,   173,   181,   153,   154,   155,   181,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   181,
-       6,   180,   182,   181,   173,     6,     6,   163,   164,   102,
-     103,   104,   105,   169,   180,   182,   175,   175,   174,     6,
-     181,   177,    84,   179,     6,   181,     6,     6,     6,   182,
-     181,   180,   180,     6,     6,     6,     6,     6,   163,   164,
-     180,  1313,   180,     6,   169,   180,     6,   175,     6,   174,
-     180,     6,  1324,  1325,   179,   175,   181,   180,  1300,   180,
-       4,     4,   977,   638,    -1,    -1,    -1,    -1,    -1,    -1,
-     163,   164,    -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,
-      -1,   174,     8,    -1,    -1,    -1,   179,    -1,   181,   153,
-     154,   155,    -1,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,  1384,    -1,     3,     4,     5,  1389,     7,    -1,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    -1,    34,    35,    36,    37,    -1,
-      -1,    40,    -1,    -1,    -1,  1427,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1436,    -1,    -1,     3,     4,     5,
-      -1,    -1,    -1,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,  1469,    34,    35,
-      36,    37,    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1484,   102,   103,   104,   105,    -1,    -1,  1491,
-      -1,    -1,    -1,    -1,  1496,    -1,  1498,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,   153,   154,   155,   173,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-     149,   150,   151,   152,   173,    -1,   102,   103,   104,   105,
-      -1,   180,    -1,   182,   163,   164,    -1,    -1,    -1,    -1,
-     169,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
-     179,     3,     4,    -1,    -1,    -1,    -1,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    -1,    -1,    -1,    -1,    -1,    -1,   163,   164,    41,
-      -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,   174,    -1,
-      -1,    -1,    -1,   179,    -1,    -1,    -1,    -1,    -1,    61,
-      62,    63,    64,    65,    66,    -1,    -1,    -1,    -1,     3,
-       4,    -1,    74,    75,    -1,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
-     102,   103,   104,   105,     3,     4,    -1,    -1,    -1,    -1,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    41,    42,    43,    44,    45,    46,    47,
-      48,    -1,    50,    -1,    52,    53,    -1,    55,    56,    -1,
-      -1,   163,   164,    -1,    -1,    -1,    -1,   169,   102,   103,
-     104,   105,   174,    -1,    72,    -1,    -1,   179,    -1,    -1,
-      -1,    -1,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    99,    -1,   102,   103,   104,   105,    -1,    41,    42,
-      43,    44,    45,    46,    47,    48,    -1,    50,    -1,    52,
-      53,    -1,    55,    56,    -1,    -1,    -1,    -1,    -1,   163,
-     164,    -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,    72,
-     174,    -1,    -1,    -1,    -1,   179,    -1,    -1,    81,    82,
-      83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   163,   164,    99,    -1,    -1,    -1,
-     169,    -1,    -1,    -1,    -1,   174,    -1,    -1,    -1,    -1,
-     179,    -1,    -1,    -1,   182,    41,    42,    43,    44,    45,
-      46,    47,    48,    -1,    50,    -1,    52,    53,    -1,    55,
-      56,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
-      45,    46,    47,    48,    -1,    50,    72,    52,    53,    -1,
-      55,    56,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
-      -1,    -1,    -1,    99,    -1,    -1,    81,    82,    83,   182,
-      -1,    41,    42,    43,    44,    45,    46,    47,    48,    -1,
-      50,    -1,    52,    53,    99,    55,    56,    -1,    -1,     0,
-       1,    -1,     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    33,    -1,    -1,    -1,    -1,    38,    39,    99,
-      41,    42,    43,    44,    45,    46,    47,    48,    -1,    50,
-      51,    52,    53,    54,    55,    56,   182,    -1,    -1,    60,
-      61,    62,    63,    64,    65,    66,    -1,    68,    69,    70,
-      71,    72,    44,    74,    75,    -1,    -1,   182,    -1,    80,
-      81,    82,    83,    -1,    -1,    -1,    -1,    88,    -1,    90,
-      -1,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   182,   124,   125,   126,   127,   128,   129,   130,
-     131,    -1,    -1,    -1,   106,   107,   108,    -1,    -1,    -1,
-      -1,    -1,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,     4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-      -1,   143,   144,   145,   146,   147,   148,    -1,    -1,    -1,
-      -1,    33,    -1,    -1,    -1,    -1,    38,    39,    -1,    41,
-      42,    43,    44,    45,    46,    47,    48,    -1,    50,    51,
-      52,    53,    54,    55,    56,    -1,    -1,    -1,    60,    61,
-      62,    63,    64,    65,    66,    -1,    68,    69,    70,    71,
-      72,    -1,    74,    75,    -1,    -1,    -1,    -1,    80,    81,
-      82,    83,    -1,    -1,    -1,    -1,    88,    -1,    90,    -1,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      41,    42,    43,    44,    45,    46,    47,    48,    -1,    50,
-      -1,    52,    53,    -1,    55,    56,   153,   154,   155,    -1,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    72,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,
-      81,    82,    83,   180,    -1,   182,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   153,   154,   155,    99,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,
-      -1,    -1,   180,    -1,   182,   153,   154,   155,    -1,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,
-      -1,   153,   154,   155,   182,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,    -1,    -1,   153,   154,   155,
-     182,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,    -1,    -1,   153,   154,   155,   182,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,   153,
-     154,   155,   182,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,    -1,    -1,   153,   154,   155,   182,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,
-      -1,   153,   154,   155,   182,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,    -1,    -1,   153,   154,   155,
-     182,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,    -1,    -1,   153,   154,   155,   182,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,   153,
-     154,   155,   182,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,    -1,    -1,   153,   154,   155,   182,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,
-      -1,   153,   154,   155,   182,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,    -1,    -1,   153,   154,   155,
-     182,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,    -1,    -1,   153,   154,   155,   182,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,   153,
-     154,   155,   182,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,    -1,    -1,   153,   154,   155,   182,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,
-      -1,   153,   154,   155,   182,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,    -1,    -1,   153,   154,   155,
-     182,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,    -1,    -1,   153,   154,   155,   182,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,   153,
-     154,   155,   182,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,   175,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
-     154,   155,   180,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,    -1,    -1,   153,   154,   155,   180,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
-     180,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
-      -1,   153,   154,   155,   180,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,    -1,    -1,   153,   154,   155,   180,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,   153,   154,   155,   177,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,   153,   154,   155,
-     177,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,   153,   154,
-     155,   177,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,   153,
-     154,   155,   177,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-     153,   154,   155,   177,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,   153,   154,   155,   177,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,   153,   154,   155,   177,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,   153,   154,   155,   177,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,   153,   154,   155,   177,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,   153,   154,   155,   177,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,   153,   154,   155,   177,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,   153,   154,   155,
-     177,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,   153,   154,
-     155,   177,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,   153,
-     154,   155,   177,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-     153,   154,   155,   177,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,   153,   154,   155,   177,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,   153,   154,   155,   177,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,   153,   154,   155,   177,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,   153,   154,   155,   177,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,   153,   154,   155,   177,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,   153,   154,   155,   177,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,   153,   154,   155,
-     177,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,   153,   154,
-     155,   177,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,   153,
-     154,   155,   177,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-     153,   154,   155,   177,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,   153,   154,   155,   177,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,   153,   154,   155,   177,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,   153,   154,   155,   177,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,   153,   154,   155,   177,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,   153,   154,   155,   177,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
-     155,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
-     175,   153,   154,   155,    -1,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,   175,   153,   154,   155,    -1,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
-     153,   154,   155,    -1,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,    -1,   175,   153,   154,   155,    -1,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
-     154,   155,    -1,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,   175,   153,   154,   155,    -1,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
-     155,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
-     175,   153,   154,   155,    -1,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,   175,   153,   154,   155,    -1,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
-     153,   154,   155,    -1,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,    -1,   175,   153,   154,   155,    -1,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
-     154,   155,    -1,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,   175,   153,   154,   155,    -1,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
-     155,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
-     175,   153,   154,   155,    -1,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,   175,   153,   154,   155,    -1,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
-     153,   154,   155,    -1,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,    -1,   175,   153,   154,   155,    -1,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
-     154,   155,    -1,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,   175,   153,   154,   155,    -1,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
-     155,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
-     175,   153,   154,   155,    -1,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,   175,   153,   154,   155,    -1,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
-     153,   154,   155,    -1,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,    -1,   175,   153,   154,   155,    -1,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
-     154,   155,    -1,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,   175,   153,   154,   155,    -1,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
-     155,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
-     175,   153,   154,   155,    -1,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,   175,   153,   154,   155,    -1,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
-     153,   154,   155,    -1,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,    -1,   175,   153,   154,   155,    -1,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
-      -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
-     154,   155,    -1,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
-      -1,   175,   153,   154,   155,    -1,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
-      -1,    -1,   173,    -1,   175,   153,   154,   155,    -1,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
-     155,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
-     175,   153,   154,   155,    -1,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
-      -1,   173,    -1,   175,   153,   154,   155,    -1,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
-      -1,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
-     153,   154,   155,    -1,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
-     173,    -1,   175
+
+#define	YYLAST		6341
+
+
+static const short yytable[] = {   143,
+   212,   214,   564,    72,   247,   503,   379,   210,    73,   384,
+   637,   847,   539,   184,   187,   637,   198,   200,  1313,   252,
+   147,   142,  1313,   210,   709,  1313,   381,     5,   382,   153,
+    94,   392,   403,   203,   405,   153,   119,   120,   121,   122,
+  1208,     4,   123,   210,    82,  1258,  1258,   155,   984,   986,
+  1259,  1259,   119,   120,   121,   122,   983,   150,   123,  1132,
+  1133,   499,   370,   371,   756,  1189,   524,  1190,   370,   371,
+    83,   525,   119,   120,   121,   122,   370,   371,   123,   309,
+   372,    88,   638,   639,   640,   641,   373,   638,   639,   640,
+   641,   370,   371,   555,   985,   987,    84,   629,  1258,   499,
+   157,  1258,   630,  1259,   370,   371,  1259,   759,  1015,    85,
+  1016,   370,   371,   302,   303,   304,   173,   174,   305,   308,
+   393,  1017,   313,  1018,   370,   371,  1277,   175,  1019,   333,
+  1020,   334,   335,   336,   176,   338,   154,   340,   341,    86,
+   352,   565,   154,   757,   838,   199,   977,    87,     6,     7,
+     8,     9,    10,    11,    12,    13,   368,   369,  1313,  1312,
+  1316,   758,  1313,   310,   311,  1313,    89,   163,   164,  1264,
+   165,  1267,   128,   129,   130,   131,  1258,   390,   391,  1258,
+   394,  1259,   396,   211,  1259,   399,   400,   700,   642,   701,
+   185,   188,   715,   950,   201,   148,   253,   703,   383,   213,
+  1313,   710,    90,   204,  1313,   729,  1313,  1242,   135,   136,
+  1150,   149,  1319,   370,   371,  1423,   810,   155,   592,  1159,
+   177,   179,   370,   371,   370,   371,  1166,   146,   839,   840,
+   442,   489,   490,   491,   492,   446,   447,   448,   449,   450,
+   451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
+   461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
+   471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
+   481,   482,   483,   484,   485,   486,   487,    94,  1258,   499,
+  1088,  1258,   191,  1259,  1258,   192,  1259,  1030,   498,  1259,
+  1427,   150,   499,  1429,  1031,   370,   371,   509,   510,   511,
+   512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
+   522,   523,   504,   636,  1138,   370,   371,   151,   530,   692,
+   532,   370,   371,   152,   693,   303,   498,   156,   370,   371,
+   370,   371,   882,  1041,   543,   544,   545,   157,   547,   548,
+   549,   550,   551,   552,   553,  1200,  1400,  1202,   254,  1404,
+   255,  1407,   256,   365,   257,   367,   566,   567,   568,   569,
+   830,   374,   370,   371,   579,   258,   158,   259,   583,   584,
+   488,   210,   560,   560,   588,   576,   577,   563,   563,  1204,
+   210,   502,  1278,   596,   851,   159,  1282,   370,   371,   700,
+  1442,   160,  1460,   861,  1446,  1462,  1448,   971,  1463,   166,
+   119,   120,   121,   122,  1309,   260,   123,   261,   161,   119,
+   120,   121,   122,   370,   371,   123,   162,   370,   371,   128,
+   129,   130,   131,   890,   891,   892,   893,   370,   371,   171,
+  1315,   872,   167,   444,  1318,   168,   169,   705,   170,  1050,
+   135,   136,   172,   135,   136,  1258,   635,   499,   702,   249,
+  1259,   250,   135,   136,   836,   908,   327,   328,   329,   316,
+   317,   318,   319,   320,   330,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,   180,   698,   967,   186,   303,   330,
+   499,   700,   873,   262,   706,   263,  1246,   189,  1139,  1173,
+  1363,  1364,  1365,  1366,  1174,   135,   136,  1370,   325,   326,
+   327,   328,   329,   810,   704,   193,   498,   716,   330,  1209,
+   499,   499,   499,   499,  1075,   190,   698,   727,   264,   498,
+   265,   731,   732,   128,   129,   130,   131,   737,   266,   194,
+   267,   994,   181,   970,   972,   182,   183,   747,   748,   128,
+   129,   130,   131,   195,   135,   136,   751,   268,   690,   269,
+   691,   558,   559,  1412,  1413,  1000,  1001,  1416,   760,   196,
+   135,   136,   197,    38,    39,    40,    41,   205,    43,   812,
+   206,   270,   772,   271,   774,   775,    49,    50,   316,   317,
+   318,   319,   320,   207,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,   272,   274,   273,   275,  1451,   330,   208,
+   316,   317,   318,   319,   320,   209,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,   315,   245,   276,   499,   277,
+   330,   700,   909,   730,   248,   135,   136,  1009,  1010,   831,
+  1476,   494,   296,   250,   135,   136,   297,   811,   135,   136,
+   535,   298,   250,  1115,   728,   299,   250,  1487,   278,   300,
+   279,   820,   821,   508,   934,   935,   936,   937,   938,   280,
+   312,   281,  1499,   314,   331,   822,   823,   824,   825,   826,
+   827,   828,   332,   282,   498,   283,   353,   350,   832,   337,
+   339,   835,   356,   364,   841,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,   850,   284,   286,   285,   287,   330,
+   378,   288,   290,   289,   291,   380,   292,   498,   293,   698,
+   385,   386,   294,   700,   295,   865,   979,   354,   980,   844,
+   700,   700,   993,  1021,   947,   357,   700,   700,  1022,  1023,
+   700,  1075,  1024,  1076,   358,   355,   746,   498,   498,   498,
+   498,   359,   360,   896,   897,   700,  1179,  1095,  1180,   902,
+  1075,  1075,  1210,  1301,  1179,  1425,  1375,  1426,   361,   912,
+   913,   362,   316,   317,   318,   319,   320,   363,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,  1437,  1468,  1438,
+  1469,   375,   330,   376,   377,   389,   387,   388,   397,   398,
+   395,   401,   402,   404,   406,   437,   952,   953,   407,   408,
+   316,   317,   318,   319,   320,   409,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,   410,   411,   412,   867,   413,
+   330,   440,   414,   415,   416,   417,  1250,   978,   418,   419,
+   443,   496,   439,   982,   420,   421,   811,   422,   423,   424,
+   425,   973,   426,   427,   428,   498,   429,   995,   430,   996,
+   431,   432,   433,   441,   434,   435,   436,   493,   330,   554,
+   506,   505,   507,  1011,  1012,  1013,   316,   317,   318,   319,
+   320,   536,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,   541,   546,   578,   587,   581,   330,  1034,  1035,  1036,
+   582,   590,   593,   599,   600,   601,   602,   603,   853,   604,
+   605,   606,    91,   301,   622,   607,  1081,   608,    95,    96,
+    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+   107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+   117,   118,  1072,   886,   887,   888,   609,  1078,   610,   611,
+   612,   694,   894,   613,   614,  1110,   615,   616,   617,   618,
+   619,  1069,   620,  1082,   621,   623,   624,   625,   626,   627,
+   628,   914,   631,   697,   632,   316,   317,   318,   319,   320,
+   923,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+   976,  1100,  1101,  1172,   633,   330,   695,   707,   696,   708,
+   714,  1109,   712,   717,   718,   719,   721,   723,   724,   733,
+   745,   124,   125,   126,   127,   749,  1129,  1130,   766,   750,
+   762,   763,   767,   768,   560,   699,   770,   777,  1141,   563,
+  1143,   771,   778,   807,   779,   780,   781,   782,   783,   784,
+  1153,   785,   808,   815,   786,   787,   788,  1160,  1161,  1162,
+   789,   790,   791,   792,  1167,   793,   794,   795,  1171,   796,
+   797,   798,   799,   800,  1175,  1176,   801,   819,   829,   802,
+   803,   804,   132,   133,   805,   806,   809,   816,   134,   834,
+  1188,   842,   843,   137,   837,   845,   306,  1192,   140,   817,
+   307,   846,   849,   911,   856,   858,   869,   868,   870,   316,
+   317,   318,   319,   320,  1198,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,   871,   874,   875,   876,   877,   330,
+   878,   879,   880,   881,   889,   905,   895,  1213,   898,  1214,
+   899,   915,   903,   910,   916,   917,   918,   316,   317,   318,
+   319,   320,   919,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,   922,   924,   925,   928,   929,   330,   930,   931,
+   932,   941,   951,   944,   942,  1239,   943,   945,   946,   948,
+  1243,   956,   949,  1014,   975,   981,  1090,   989,  1091,   319,
+   320,   966,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,  1256,   968,  1262,   974,  1265,   330,  1268,  1269,   991,
+   992,  1027,  1028,  1272,  1033,  1037,  1116,   560,  1119,  1038,
+  1122,  1280,   563,  1184,  1042,  1043,  1044,  1045,  1046,  1288,
+  1047,  1048,  1052,  1049,  1293,  1053,  1051,  1296,  1054,  1055,
+  1070,  1299,  1300,  1056,  1057,  1058,  1059,  1060,  1061,  1303,
+  1062,  1066,  1306,  1063,   302,   303,  1307,   854,   855,  1064,
+   857,  1065,   859,   860,    91,   301,  1083,  1067,  1079,  1068,
+    95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+   105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+   115,   116,   117,   118,  1084,  1086,  1134,  1092,  1093,  1078,
+  1097,  1098,  1099,  1193,  1102,   900,   901,  1103,  1104,   904,
+  1347,  1105,  1106,  1107,  1094,  1108,  1352,  1117,  1120,  1356,
+  1123,  1125,  1126,  1127,  1128,   920,   921,  1131,  1142,  1145,
+  1146,   926,   927,  1178,  1147,  1149,  1151,  1152,   933,  1154,
+   940,  1377,  1155,  1378,  1156,  1148,  1157,  1158,  1164,  1165,
+  1168,  1419,  1169,  1212,  1170,  1181,  1182,  1247,  1183,  1191,
+  1185,  1186,  1187,   124,   125,   126,   127,  1196,  1197,  1201,
+   316,   317,   318,   319,   320,  1199,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,  1244,  1216,  1221,  1203,  1205,
+   330,  1211,  1455,  1218,  1458,   988,  1219,   990,  1220,  1222,
+  1224,  1257,  1194,  1263,  1225,  1266,  1226,  1230,   997,   998,
+   999,  1231,  1232,  1002,  1003,  1004,  1005,  1006,  1007,  1008,
+  1234,  1235,  1237,  1478,   132,   133,  1245,  1276,  1270,  1279,
+   134,  1281,  1284,  1450,  1195,   137,  1283,  1285,   725,  1286,
+   140,  1287,   726,  1289,  1291,  1292,  1294,  1295,  1298,  1297,
+   316,   317,   318,   319,   320,   367,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,  1474,  1475,  1302,  1324,  1304,
+   330,  1310,  1341,  1345,  1349,  1305,    91,   342,  1330,  1331,
+  1311,  1484,    95,    96,    97,    98,    99,   100,   101,   102,
+   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+   113,   114,   115,   116,   117,   118,  1325,  1322,  1350,  1080,
+  1335,   318,   319,   320,   343,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,  1353,  1323,  1354,  1357,  1358,   330,
+  1359,  1362,  1367,  1368,    38,    39,    40,    41,    42,    43,
+  1326,  1369,  1327,  1328,  1333,  1337,  1343,    49,    50,   316,
+   317,   318,   319,   320,  1371,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,  1372,  1373,  1374,  1379,  1380,   330,
+  1382,  1387,  1135,  1383,  1385,   124,   125,   126,   127,  1144,
+  1388,   316,   317,   318,   319,   320,  1389,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,  1390,  1391,  1163,  1392,
+  1393,   330,  1395,  1394,  1401,  1405,  1408,  1411,  1396,  1414,
+  1415,  1417,  1399,  1421,  1177,   316,   317,   318,   319,   320,
+  1422,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+  1424,  1428,  1430,  1433,  1431,   330,   132,   344,  1432,  1434,
+  1440,  1439,   134,  1466,  1435,   540,  1436,   137,  1441,  1444,
+  1445,  1447,   140,  1449,   345,  1453,    91,   301,  1454,  1461,
+  1456,  1459,    95,    96,    97,    98,    99,   100,   101,   102,
+   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+   113,   114,   115,   116,   117,   118,  1464,    91,   537,  1467,
+  1482,  1470,  1471,    95,    96,    97,    98,    99,   100,   101,
+   102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+   112,   113,   114,   115,   116,   117,   118,  1472,  1473,    91,
+   301,  1479,  1483,  1485,  1489,    95,    96,    97,    98,    99,
+   100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+   110,   111,   112,   113,   114,   115,   116,   117,   118,  1490,
+  1271,  1494,  1491,   594,  1275,   124,   125,   126,   127,  1493,
+  1496,  1498,  1500,  1501,   316,   317,   318,   319,   320,  1290,
+   321,   322,   323,   324,   325,   326,   327,   328,   329,  1503,
+  1504,   813,     0,  1338,   330,    71,   124,   125,   126,   127,
+   316,   317,   318,   319,   320,    79,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,  1085,     0,     0,     0,     0,
+   330,     0,     0,     0,     0,     0,   132,   133,   124,   125,
+   126,   127,   134,     0,     0,     0,     0,   137,     0,     0,
+   863,     0,   140,     0,   864,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   132,   133,     0,
+  1348,     0,     0,   134,     0,     0,     0,     0,   137,     0,
+     0,  1360,  1361,   140,     0,   538,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,  1253,
+  1254,     0,     0,     0,     0,   134,     0,     0,     0,     0,
+  1255,   713,     0,     0,     0,   140,     0,   176,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,  1403,     0,    91,    92,    93,  1410,    94,     0,    95,
+    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+   106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+   116,   117,   118,     0,   119,   120,   121,   122,     0,     0,
+   123,     0,     0,     0,  1443,     0,     0,     0,     0,     0,
+     0,     0,     0,  1452,     0,     0,    91,   301,   210,     0,
+     0,     0,    95,    96,    97,    98,    99,   100,   101,   102,
+   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+   113,   114,   115,   116,   117,   118,  1477,   119,   120,   121,
+   122,     0,     0,   123,     0,     0,     0,     0,     0,     0,
+     0,  1486,   124,   125,   126,   127,     0,     0,  1492,     0,
+     0,     0,     0,  1495,     0,  1497,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   128,
+   129,   130,   131,     0,     0,   124,   125,   126,   127,     0,
+     0,     0,     0,   132,   133,     0,     0,     0,   866,   134,
+   135,   136,     0,     0,   137,     0,   138,     0,   139,   140,
+    91,   342,     0,     0,     0,     0,    95,    96,    97,    98,
+    99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+   109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
+     0,     0,   907,     0,     0,     0,   132,   133,   343,     0,
+     0,     0,   134,     0,     0,     0,     0,   137,     0,     0,
+     0,     0,   140,     0,     0,     0,     0,     0,    38,    39,
+    40,    41,    42,    43,     0,     0,     0,     0,    91,   301,
+     0,    49,    50,     0,    95,    96,    97,    98,    99,   100,
+   101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+   111,   112,   113,   114,   115,   116,   117,   118,     0,   124,
+   125,   126,   127,    91,   537,     0,     0,     0,     0,    95,
+    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+   106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+   116,   117,   118,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,     0,     0,     0,
+   132,   497,     0,     0,     0,     0,   134,   124,   125,   126,
+   127,   137,     0,     0,     0,     0,   140,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,     0,
+     0,     0,   124,   125,   126,   127,     0,   570,    23,    24,
+   571,   572,    27,   573,    29,     0,    30,     0,    32,    33,
+     0,    35,    36,     0,     0,     0,     0,     0,   132,   133,
+     0,     0,     0,     0,   134,     0,     0,     0,    48,   137,
+     0,     0,     0,     0,   140,     0,     0,    52,    53,    54,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   132,   133,    64,     0,     0,     0,   134,
+     0,     0,     0,     0,   137,     0,     0,     0,     0,   140,
+   570,    23,    24,   571,   572,    27,   573,    29,     0,    30,
+     0,    32,    33,     0,    35,    36,     0,     0,     0,     0,
+     0,   570,    23,    24,   571,   572,    27,   573,    29,     0,
+    30,    48,    32,    33,     0,    35,    36,     0,     0,     0,
+    52,    53,    54,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    48,     0,     0,     0,     0,     0,    64,     0,
+     0,    52,    53,    54,     0,     0,     0,     0,   574,   570,
+    23,    24,   571,   572,    27,   573,    29,     0,    30,    64,
+    32,    33,     0,    35,    36,     0,     0,     0,     0,     0,
+   570,    23,    24,   571,   572,    27,   573,    29,     0,    30,
+    48,    32,    33,     0,    35,    36,     0,     0,     0,    52,
+    53,    54,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    48,     0,     0,     0,    -4,     1,    64,    -4,   -47,
+    52,    53,    54,     0,     0,     0,     0,     0,     0,     0,
+     0,   580,     0,     0,     0,     0,     0,     0,    64,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   -47,     0,
+     0,     0,   597,   -47,   -47,     0,   -47,   -47,   -47,   -47,
+   -47,   -47,   -47,   -47,     0,   -47,   -47,   -47,   -47,   -47,
+   -47,   -47,     0,     0,     0,   -47,   -47,   -47,   -47,   -47,
+   -47,   -47,     0,   -47,   -47,   -47,   -47,   -47,   215,   -47,
+   -47,     0,     0,     0,     0,   -47,   -47,   -47,   -47,     0,
+   598,     0,     0,   -47,     0,   -47,     0,   -47,   -47,   -47,
+   -47,   -47,   -47,   -47,   -47,   -47,   -47,     0,     0,     0,
+     0,   773,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    -4,
+    -4,    -4,    -4,    -4,    -4,    -4,    -4,     0,     0,     0,
+   216,   217,   218,     0,     0,     0,     0,     0,   219,   220,
+   221,   222,   223,   224,   225,   226,   227,   228,    18,     0,
+     0,     0,     0,     0,     0,     0,   229,   230,   231,   232,
+   233,   234,   235,   236,   237,   238,     0,   239,   240,   241,
+   242,   243,   244,     0,     0,     0,     0,    19,     0,     0,
+     0,     0,    20,    21,     0,    22,    23,    24,    25,    26,
+    27,    28,    29,     0,    30,    31,    32,    33,    34,    35,
+    36,     0,     0,     0,    37,    38,    39,    40,    41,    42,
+    43,     0,    44,    45,    46,    47,    48,     0,    49,    50,
+     0,     0,     0,     0,    51,    52,    53,    54,     0,     0,
+     0,     0,    55,     0,    56,     0,    57,    58,    59,    60,
+    61,    62,    63,    64,    65,    66,   570,    23,    24,   571,
+   572,    27,   573,    29,     0,    30,     0,    32,    33,     0,
+    35,    36,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,    48,     0,     0,
+     0,     0,   330,     0,     0,     0,    52,    53,    54,  1113,
+     0,  1114,     0,     0,     0,     0,     0,     0,     0,   316,
+   317,   318,   319,   320,    64,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,     0,     0,     0,     0,     0,  1136,     0,  1137,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,     0,     0,     0,     0,     0,  1251,     0,  1252,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,     0,     0,   316,   317,   318,   319,   320,   734,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   316,   317,   318,
+   319,   320,   738,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,     0,
+     0,   316,   317,   318,   319,   320,   739,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,     0,     0,   316,   317,   318,   319,   320,
+   862,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,     0,     0,   316,
+   317,   318,   319,   320,   885,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,     0,     0,   316,   317,   318,   319,   320,  1111,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   316,   317,   318,
+   319,   320,  1273,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,     0,
+     0,   316,   317,   318,   319,   320,  1274,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,     0,     0,   316,   317,   318,   319,   320,
+  1308,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,     0,     0,   316,
+   317,   318,   319,   320,  1314,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,     0,     0,   316,   317,   318,   319,   320,  1317,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   316,   317,   318,
+   319,   320,  1320,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,     0,
+     0,   316,   317,   318,   319,   320,  1321,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,     0,     0,   316,   317,   318,   319,   320,
+  1344,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,     0,     0,   316,
+   317,   318,   319,   320,  1381,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,     0,     0,   316,   317,   318,   319,   320,  1384,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   316,   317,   318,
+   319,   320,  1386,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,     0,
+     0,   316,   317,   318,   319,   320,  1398,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,     0,     0,   316,   317,   318,   319,   320,
+  1481,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,     0,     0,   316,
+   317,   318,   319,   320,  1488,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   495,     0,     0,     0,     0,   556,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,   526,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,   556,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,   557,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+   591,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,   670,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,   671,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,   684,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,   685,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+   686,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,   687,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,   688,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,   689,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,   752,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+   753,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,   754,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,   852,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,   883,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,   884,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+   906,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,  1025,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,  1026,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,  1039,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,  1040,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+  1073,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,  1074,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,  1089,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,  1096,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,  1206,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+  1207,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,  1215,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,  1217,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,  1228,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,  1233,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+  1236,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,  1240,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,  1241,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,  1248,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,  1249,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   316,   317,   318,   319,   320,
+  1329,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   316,   317,   318,
+   319,   320,  1340,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   316,
+   317,   318,   319,   320,  1342,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   316,   317,   318,   319,   320,  1465,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   316,   317,   318,   319,   320,  1480,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   501,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   634,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   649,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   651,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   653,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   655,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   657,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   659,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   661,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   663,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   665,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   667,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   669,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   673,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   675,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   677,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   679,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   681,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   683,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   755,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   761,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   764,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   765,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   833,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   958,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   960,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   962,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,   964,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,     0,     0,   965,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+     0,     0,  1087,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   495,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,   527,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   528,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,     0,     0,     0,
+     0,     0,   330,     0,   529,   316,   317,   318,   319,   320,
+     0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   531,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+   533,   316,   317,   318,   319,   320,     0,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   534,   316,   317,   318,   319,   320,     0,
+   321,   322,   323,   324,   325,   326,   327,   328,   329,     0,
+     0,     0,     0,     0,   330,     0,   542,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   585,
+   316,   317,   318,   319,   320,     0,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,     0,     0,     0,     0,     0,
+   330,     0,   586,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   589,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,   595,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   648,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,     0,     0,     0,
+     0,     0,   330,     0,   650,   316,   317,   318,   319,   320,
+     0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   652,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+   654,   316,   317,   318,   319,   320,     0,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   656,   316,   317,   318,   319,   320,     0,
+   321,   322,   323,   324,   325,   326,   327,   328,   329,     0,
+     0,     0,     0,     0,   330,     0,   658,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   660,
+   316,   317,   318,   319,   320,     0,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,     0,     0,     0,     0,     0,
+   330,     0,   662,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   664,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,   666,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   668,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,     0,     0,     0,
+     0,     0,   330,     0,   672,   316,   317,   318,   319,   320,
+     0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   674,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+   676,   316,   317,   318,   319,   320,     0,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   678,   316,   317,   318,   319,   320,     0,
+   321,   322,   323,   324,   325,   326,   327,   328,   329,     0,
+     0,     0,     0,     0,   330,     0,   680,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   682,
+   316,   317,   318,   319,   320,     0,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,     0,     0,     0,     0,     0,
+   330,     0,   720,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   722,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,   735,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   736,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,     0,     0,     0,
+     0,     0,   330,     0,   740,   316,   317,   318,   319,   320,
+     0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   741,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+   742,   316,   317,   318,   319,   320,     0,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,   743,   316,   317,   318,   319,   320,     0,
+   321,   322,   323,   324,   325,   326,   327,   328,   329,     0,
+     0,     0,     0,     0,   330,     0,   744,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,   769,
+   316,   317,   318,   319,   320,     0,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,     0,     0,     0,     0,     0,
+   330,     0,   776,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,   957,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,   959,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,   961,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,     0,     0,     0,
+     0,     0,   330,     0,   963,   316,   317,   318,   319,   320,
+     0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,   969,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+  1029,   316,   317,   318,   319,   320,     0,   321,   322,   323,
+   324,   325,   326,   327,   328,   329,     0,     0,     0,     0,
+     0,   330,     0,  1112,   316,   317,   318,   319,   320,     0,
+   321,   322,   323,   324,   325,   326,   327,   328,   329,     0,
+     0,     0,     0,     0,   330,     0,  1140,   316,   317,   318,
+   319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,     0,     0,     0,     0,     0,   330,     0,  1223,
+   316,   317,   318,   319,   320,     0,   321,   322,   323,   324,
+   325,   326,   327,   328,   329,     0,     0,     0,     0,     0,
+   330,     0,  1227,   316,   317,   318,   319,   320,     0,   321,
+   322,   323,   324,   325,   326,   327,   328,   329,     0,     0,
+     0,     0,     0,   330,     0,  1229,   316,   317,   318,   319,
+   320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,     0,     0,     0,     0,     0,   330,     0,  1332,   316,
+   317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
+   326,   327,   328,   329,     0,     0,     0,     0,     0,   330,
+     0,  1334,   316,   317,   318,   319,   320,     0,   321,   322,
+   323,   324,   325,   326,   327,   328,   329,     0,     0,     0,
+     0,     0,   330,     0,  1336,   316,   317,   318,   319,   320,
+     0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     0,     0,     0,     0,     0,   330,     0,  1339,   316,   317,
+   318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
+   327,   328,   329,     0,     0,     0,     0,     0,   330,     0,
+  1397
 };
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
-{
-       0,     1,   184,   185,   190,     6,     0,     3,   124,   125,
-     126,   127,   128,   129,   130,   131,   186,   187,   188,   189,
-       4,    33,    38,    39,    41,    42,    43,    44,    45,    46,
-      47,    48,    50,    51,    52,    53,    54,    55,    56,    60,
-      61,    62,    63,    64,    65,    66,    68,    69,    70,    71,
-      72,    74,    75,    80,    81,    82,    83,    88,    90,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   191,
-     192,   193,   211,   212,   213,   216,   217,   218,   219,   220,
-     221,   222,   234,   235,     7,     6,     6,     6,     6,     6,
-     174,   174,   174,     3,     4,     5,     7,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    34,    35,    36,    37,    40,   102,   103,   104,   105,
-     149,   150,   151,   152,   163,   164,   169,   171,   172,   174,
-     176,   178,   179,   209,   210,   237,   238,   251,   174,     6,
-     181,     6,   174,   174,   174,    67,   174,    67,   174,   174,
-      49,   174,    45,    45,    45,    44,    45,    47,    47,    41,
-      44,    45,    47,   174,   181,   163,   164,   174,   181,   239,
-     240,   239,   181,    41,    44,    45,     4,   181,    45,     4,
-     181,     6,     6,    41,    44,     4,     4,     4,   174,   174,
-      45,   174,     4,   181,   248,     4,   174,   174,     6,     4,
-       4,    45,     5,   181,   251,   181,   251,    44,   106,   107,
-     108,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   143,   144,   145,   146,   147,   148,   174,   241,   241,
-       5,   176,   178,   210,     4,   181,   174,   176,   174,   176,
-     174,   176,   174,   176,   174,   176,   174,   176,   174,   176,
-     174,   176,   174,   176,   174,   176,   174,   176,   174,   176,
-     174,   176,   174,   176,   174,   176,   174,   176,   174,   176,
-     174,   176,   174,   176,   174,   176,   174,   176,   174,   174,
-     174,   174,   174,     4,   237,   237,   237,   237,   177,   181,
-     237,     4,    88,    89,     4,   237,     6,     6,   153,   154,
-     155,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   173,     6,     5,   237,   237,   237,   237,   174,
-     237,   174,   237,   237,     4,    41,   164,   181,   213,   216,
-     222,   237,   245,   246,   237,   181,   174,   174,   245,   181,
-     181,   174,   174,   174,   174,   174,     4,   239,   239,   239,
-     237,   237,   163,   164,   181,   181,   239,   181,   181,   181,
-     176,   215,   245,     4,     6,   176,   215,   245,   245,   176,
-     176,     6,   237,   237,    85,   174,   237,   178,   237,   181,
-      91,   237,   237,     6,   174,   215,     6,   215,     6,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,   174,
-     174,   174,   174,   174,   174,   174,   174,   174,   174,     5,
-     242,   180,   175,   180,   237,     4,   239,   194,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-       4,   251,   251,   251,   251,     5,   176,   175,     7,   164,
-     237,   246,   247,   177,     7,   209,   210,   178,     7,   176,
-       6,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,   237,   237,   237,   237,   237,   175,   180,   180,   175,
-     175,   175,   237,   175,   237,   175,   175,   176,   181,     4,
-     181,   247,     8,     7,   175,   237,   237,   237,     7,   237,
-     237,   237,   237,   237,   237,   237,   175,   180,   180,   180,
-     239,   239,   213,   214,   215,   216,   214,   180,   237,   237,
-     237,   237,    41,    44,    45,    47,   182,   212,     6,     7,
-       6,   237,   182,     7,     7,   237,   237,   175,   175,    86,
-     237,   175,    88,   180,   215,   181,     8,   175,   237,   182,
-     182,     5,     5,     5,     5,     5,     5,     5,     5,     5,
-       5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
-       5,     5,     5,     5,   142,     5,     5,     5,     5,     3,
-       5,   175,   180,     5,     6,     5,   177,   210,   181,     4,
-      76,    77,    78,    79,   182,   197,   201,   204,   206,   207,
-     175,   177,   175,   177,   175,   177,   175,   177,   175,   177,
-     175,   177,   175,   177,   175,   177,   175,   177,   175,   177,
-     175,   177,   180,   180,   175,   177,   175,   177,   175,   177,
-     175,   177,   175,   177,   175,   177,   180,   180,   180,   180,
-     180,   180,   176,   178,   175,   180,   180,   175,   175,   180,
-     237,   245,   180,   182,   178,   209,   210,   251,   237,     6,
-       4,     4,   181,   249,   177,     8,     6,   247,   237,     7,
-       7,     7,   175,     7,   175,     7,     7,   177,   181,   237,
-     176,   247,   182,   237,   237,     7,   182,   175,   175,   237,
-     182,   182,   175,   175,   175,   175,   175,   178,   239,   237,
-     237,   182,   182,   237,   180,   180,   180,   177,   181,   181,
-     181,   181,   237,   177,   181,   181,   177,   177,     7,     7,
-     174,   175,     7,   178,   237,   182,   237,   237,   175,   180,
-     180,   180,   180,   180,   180,   180,   180,   180,   180,   180,
-     180,   180,   180,   180,   180,   180,   180,   180,   180,   180,
-     180,   180,   180,   180,   180,   180,   180,   180,   180,     5,
-     175,   180,   178,   210,   251,   194,   198,   174,   174,   181,
-     208,     6,   237,   237,   237,   237,   237,   237,   237,   237,
-     237,     4,   247,   251,   237,   177,     6,   237,   246,   177,
-       4,    88,    89,   237,     6,     6,     6,     7,   176,   248,
-     250,     6,   237,   175,   180,   239,   245,   245,     7,   245,
-       7,   245,   245,   247,   182,   177,   181,   182,     8,     6,
-     181,     7,     7,     7,     6,    57,     7,     7,     7,     7,
-       7,     7,     7,     4,   180,   180,   180,   182,   239,   239,
-     239,     6,   247,   247,   247,   247,     6,     6,   237,   237,
-       6,     6,   245,   245,   237,     7,   245,     4,   180,     8,
-       8,   175,     7,     3,   237,   237,   239,     3,     3,   165,
-       3,     3,   245,   245,     3,   239,     3,     3,   245,   245,
-       3,     3,     3,     3,     3,   245,   109,   110,   111,   112,
-     113,   236,   245,     3,     5,     5,     3,     3,     6,   241,
-       4,     6,   182,   174,   237,   237,   244,   245,   181,   175,
-     177,   175,   177,   175,   177,   175,   177,   177,   175,   175,
-     175,   175,   209,     7,   209,   210,   178,     7,     6,   248,
-     237,   180,   182,     6,   237,     6,     6,    52,     6,    52,
-     245,     6,   245,     6,     6,   182,   247,   237,   237,   245,
-     245,   245,    58,    59,   245,   245,   245,   245,   245,   245,
-     245,     6,     7,   237,   237,   237,   181,   180,   182,   180,
-     182,   180,   182,   182,   182,   182,   182,   180,   180,     6,
-       6,   175,   174,   181,   243,    87,   237,   237,   237,   181,
-     180,   180,   180,   175,   180,   175,   180,   175,   180,   175,
-     180,   180,   175,   180,   175,   175,   180,   180,   180,   180,
-     180,   180,   175,   180,   180,   180,   180,   180,   175,   180,
-     180,   210,     6,   195,   237,   180,   180,   180,   182,   196,
-     237,   178,   245,   251,   237,     6,     4,   249,     6,   177,
-     248,   180,   239,   239,     6,     6,   177,   182,   180,     6,
-       6,     6,   237,   237,     6,     6,     6,     6,     6,     6,
-       6,   237,   251,   182,   175,   180,   182,   214,   239,     6,
-     223,   239,     6,   226,   239,     6,   229,     6,     6,     6,
-       6,   237,   237,     7,   244,   244,    87,   245,   180,   182,
-       8,   182,   175,   237,     3,   237,   245,     6,     3,     6,
-     165,     6,   236,     6,     3,   237,     6,     3,     6,     6,
-       3,   236,   237,   237,   237,   245,     6,     3,   236,   237,
-       3,     3,     6,   237,   241,   175,   180,   237,   237,   245,
-     181,   180,   182,     4,     6,     6,     6,     7,     6,   178,
-     237,     6,     6,   177,   237,     6,     6,     6,     6,   181,
-     237,   182,   180,   181,   180,   181,   180,   181,   180,   180,
-     243,   175,   182,   181,    84,   237,   237,   180,   175,   180,
-     180,   180,   180,   175,   180,   175,   180,   175,   175,   175,
-     180,   175,   180,   175,   175,   180,   180,   175,   180,   180,
-     199,   237,   180,   180,   244,   237,     6,   175,   248,    89,
-     180,   180,   214,   180,   182,   163,   164,   174,   237,   239,
-      68,    73,   232,   233,   237,   239,   232,   237,   239,   232,
-     237,   237,    87,   245,   237,   182,   182,   245,     6,   243,
-     236,     3,   237,     6,   236,     6,     3,     6,     6,     6,
-     237,     6,   245,     6,     6,   237,     3,     6,   237,     5,
-     181,   237,   237,   182,     6,   237,     5,   182,   237,   237,
-     182,   180,     6,   181,   182,   233,   182,   180,   182,   182,
-     180,   182,   182,   182,   181,   180,     6,   182,   180,   180,
-     180,   180,   175,   175,   175,   180,   175,   175,   175,   180,
-     196,   175,   180,     6,   180,   180,   182,     6,   224,   237,
-     245,     6,     6,   227,   237,     6,     6,   230,   237,     6,
-       6,     6,   245,   245,     6,   236,   236,   236,   236,     6,
-       6,     6,   236,     6,     6,     6,     5,   182,   202,   237,
-     237,     5,   181,   182,   180,   181,   182,   181,   182,   180,
-     182,   180,   180,   175,   175,   180,   180,     6,   181,   175,
-     182,   180,   232,     6,   225,   245,   232,     6,   228,   232,
-       6,   231,   245,    84,   236,   236,     6,     6,   236,     5,
-     200,   251,   205,     6,     5,   182,   181,   180,   182,   182,
-     181,   182,   181,   182,   181,   180,   180,   175,   175,   180,
-     182,   181,   182,     6,   232,   245,     6,     6,   232,     6,
-     232,    84,   237,   236,   245,     6,     6,   251,     6,   203,
-     251,     6,   182,   182,   182,   182,   181,   180,   180,   180,
-     180,   182,     6,     6,     6,     6,   237,   237,   236,   245,
-     251,     6,   180,   182,   180,   180,   237,     6,   245,   236,
-     182,   180,   175,     6,   245,     6,   180,   245,   180,   245,
-     180,   236,   175,     6
+static const short yycheck[] = {    18,
+    65,    66,   373,     3,    89,   309,   185,     5,     3,   188,
+     4,   710,   345,     4,     4,     4,    45,     4,  1260,     4,
+     6,    18,  1264,     5,     4,  1267,     4,     3,     6,    67,
+     7,    85,   211,     4,   213,    67,    34,    35,    36,    37,
+  1131,     6,    40,     5,     7,    68,    68,    67,     6,     6,
+    73,    73,    34,    35,    36,    37,     6,   174,    40,  1030,
+  1031,   307,   163,   164,   181,     6,   175,     6,   163,   164,
+     6,   180,    34,    35,    36,    37,   163,   164,    40,     4,
+   181,   174,    76,    77,    78,    79,   181,    76,    77,    78,
+    79,   163,   164,   180,    52,    52,     6,   175,    68,   345,
+   174,    68,   180,    73,   163,   164,    73,   181,   180,     6,
+   182,   163,   164,   132,   133,   134,   163,   164,   137,   138,
+   174,   180,   141,   182,   163,   164,  1217,   174,   180,   148,
+   182,   150,   151,   152,   181,   154,   174,   156,   157,     6,
+   159,   180,   174,   181,     4,   174,   845,     6,   124,   125,
+   126,   127,   128,   129,   130,   131,   175,   176,  1400,   182,
+   182,   181,  1404,    88,    89,  1407,   174,    44,    45,  1203,
+    47,  1205,   149,   150,   151,   152,    68,   196,   197,    68,
+   199,    73,   201,   181,    73,   204,   205,   180,   182,   182,
+   181,   181,   525,   182,   181,   181,   181,   501,   176,   181,
+  1442,   181,   174,   174,  1446,   538,  1448,  1178,   170,   171,
+  1046,     6,   182,   163,   164,   182,   178,    67,   397,  1055,
+    39,    40,   163,   164,   163,   164,  1062,   174,    88,    89,
+   249,   296,   297,   298,   299,   254,   255,   256,   257,   258,
+   259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+   279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
+   289,   290,   291,   292,   293,   294,   295,     7,    68,   525,
+   979,    68,    41,    73,    68,    44,    73,   174,   307,    73,
+   182,   174,   538,   182,   181,   163,   164,   316,   317,   318,
+   319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
+   329,   330,   309,   181,     8,   163,   164,   174,   337,   175,
+   339,   163,   164,   174,   180,   344,   345,   174,   163,   164,
+   163,   164,   180,   175,   353,   354,   355,   174,   357,   358,
+   359,   360,   361,   362,   363,   180,  1380,   180,   174,  1383,
+   176,  1385,   174,   172,   176,   174,   375,   376,   377,   378,
+   693,   180,   163,   164,   383,   174,    49,   176,   387,   388,
+     4,     5,   372,   373,   393,     6,     7,   372,   373,   180,
+     5,     7,  1218,   402,   175,   174,  1222,   163,   164,   180,
+  1424,    45,   182,   726,  1428,   182,  1430,     7,   182,    47,
+    34,    35,    36,    37,   180,   174,    40,   176,    45,    34,
+    35,    36,    37,   163,   164,    40,    45,   163,   164,   149,
+   150,   151,   152,   756,   757,   758,   759,   163,   164,   174,
+   180,     6,    41,   252,   180,    44,    45,   502,    47,   175,
+   170,   171,   181,   170,   171,    68,   443,   693,   178,   176,
+    73,   178,   170,   171,   700,     8,   165,   166,   167,   153,
+   154,   155,   156,   157,   173,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   181,   494,   175,    45,   497,   173,
+   726,   180,    57,   174,   503,   176,  1185,     6,   182,   175,
+  1326,  1327,  1328,  1329,   180,   170,   171,  1333,   163,   164,
+   165,   166,   167,   178,   501,     4,   525,   526,   173,   175,
+   756,   757,   758,   759,   180,     6,   535,   536,   174,   538,
+   176,   540,   541,   149,   150,   151,   152,   546,   174,     4,
+   176,   864,    41,   837,   838,    44,    45,   556,   557,   149,
+   150,   151,   152,     4,   170,   171,   565,   174,   176,   176,
+   178,   370,   371,  1389,  1390,    58,    59,  1393,   577,   174,
+   170,   171,   174,    61,    62,    63,    64,   174,    66,   634,
+     6,   174,   591,   176,   593,   594,    74,    75,   153,   154,
+   155,   156,   157,     4,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,   174,   174,   176,   176,  1433,   173,     4,
+   153,   154,   155,   156,   157,    45,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,     6,   174,   174,   864,   176,
+   173,   180,   175,   182,     5,   170,   171,     6,     7,   694,
+  1466,   176,   174,   178,   170,   171,   174,   634,   170,   171,
+   176,   174,   178,  1014,   176,   174,   178,  1483,   174,   174,
+   176,   670,   671,     6,   109,   110,   111,   112,   113,   174,
+     4,   176,  1498,     6,     6,   684,   685,   686,   687,   688,
+   689,   690,     5,   174,   693,   176,   181,   158,   697,   174,
+   174,   700,   163,     4,   703,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   713,   174,   174,   176,   176,   173,
+   176,   174,   174,   176,   176,   186,   174,   726,   176,   728,
+   191,   192,   174,   180,   176,   182,   180,   174,   182,     6,
+   180,   180,   182,   182,   809,   181,   180,   180,   182,   182,
+   180,   180,   182,   182,   181,   174,   555,   756,   757,   758,
+   759,   174,   174,   762,   763,   180,   180,   182,   182,   768,
+   180,   180,   182,   182,   180,   180,   182,   182,   174,   778,
+   779,   174,   153,   154,   155,   156,   157,   174,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   180,   180,   182,
+   182,   181,   173,   181,   181,     6,   176,   176,   181,    91,
+   178,     6,   174,     6,     6,     5,   815,   816,   174,   174,
+   153,   154,   155,   156,   157,   174,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,   174,   174,   174,     6,   174,
+   173,   175,   174,   174,   174,   174,  1197,   846,   174,   174,
+     4,     7,   180,   852,   174,   174,   833,   174,   174,   174,
+   174,   838,   174,   174,   174,   864,   174,   866,   174,   868,
+   174,   174,   174,   180,   174,   174,   174,     5,   173,   175,
+     7,   178,   176,   882,   883,   884,   153,   154,   155,   156,
+   157,   181,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,     7,     7,     6,    86,     7,   173,   906,   907,   908,
+     7,    88,   181,     5,     5,     5,     5,     5,   717,     5,
+     5,     5,     3,     4,   142,     5,   971,     5,     9,    10,
+    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+    31,    32,   951,   752,   753,   754,     5,   956,     5,     5,
+     5,   180,     6,     5,     5,  1010,     5,     5,     5,     5,
+     5,   948,     5,   972,     5,     5,     5,     5,     5,     3,
+     5,   780,     5,   180,     6,   153,   154,   155,   156,   157,
+   789,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     6,  1000,  1001,  1068,     5,   173,   175,     6,   175,     4,
+     6,  1010,   177,     7,     7,     7,     7,     7,     7,     7,
+   178,   102,   103,   104,   105,   182,  1025,  1026,     7,   182,
+   181,   181,     7,   174,  1014,   496,     7,   180,  1037,  1014,
+  1039,   178,   180,     5,   180,   180,   180,   180,   180,   180,
+  1049,   180,   175,   174,   180,   180,   180,  1056,  1057,  1058,
+   180,   180,   180,   180,  1063,   180,   180,   180,  1067,   180,
+   180,   180,   180,   180,  1073,  1074,   180,     6,     4,   180,
+   180,   180,   163,   164,   180,   180,   180,   174,   169,     6,
+  1089,     6,     6,   174,   177,     7,   177,  1096,   179,   181,
+   181,   176,     6,     3,     7,     7,     7,   181,     7,   153,
+   154,   155,   156,   157,  1113,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,     7,     7,     7,     7,     7,   173,
+     7,     7,     7,     4,     6,     4,     6,  1136,     6,  1138,
+     6,     3,     7,     7,     3,   165,     3,   153,   154,   155,
+   156,   157,     3,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,     3,     3,     3,     3,     3,   173,     3,     3,
+     3,     3,   174,     3,     5,  1174,     5,     3,     6,     4,
+  1179,   181,     6,   181,     7,     6,   985,     6,   987,   156,
+   157,   175,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,  1200,   175,  1202,   178,  1204,   173,  1206,  1207,     6,
+     6,     6,     6,  1212,    87,   181,  1015,  1197,  1017,   180,
+  1019,  1220,  1197,     6,   180,   175,   180,   175,   180,  1228,
+   175,   180,   175,   180,  1233,   175,   180,  1236,   180,   180,
+     6,  1240,  1241,   180,   180,   180,   180,   175,   180,  1248,
+   180,   175,  1251,   180,  1253,  1254,  1255,   718,   719,   180,
+   721,   180,   723,   724,     3,     4,     6,   180,   178,   180,
+     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,    30,    31,    32,     4,     6,    87,     6,     6,  1298,
+     6,     6,     6,     6,     6,   766,   767,     6,     6,   770,
+  1309,     6,     6,     6,   177,     6,  1315,     6,     6,  1318,
+     6,     6,     6,     6,     6,   786,   787,     7,     3,     6,
+     3,   792,   793,   181,     6,     6,     6,     3,   799,     6,
+   801,  1340,     3,  1342,     6,   165,     6,     3,     6,     3,
+     3,  1396,     3,    84,     6,     4,     6,    89,     6,   177,
+     7,     6,   178,   102,   103,   104,   105,     6,   181,   181,
+   153,   154,   155,   156,   157,   182,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,     6,   175,   175,   181,   181,
+   173,   181,  1437,   180,  1439,   856,   180,   858,   180,   180,
+   180,  1200,     6,  1202,   175,  1204,   175,   180,   869,   870,
+   871,   175,   175,   874,   875,   876,   877,   878,   879,   880,
+   180,   175,   180,  1468,   163,   164,   175,     6,    87,     3,
+   169,     6,     3,  1432,     6,   174,     6,     6,   177,     6,
+   179,     6,   181,     6,     6,     6,     3,     6,   181,     5,
+   153,   154,   155,   156,   157,  1254,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,  1464,  1465,     6,     6,     5,
+   173,     6,     6,     6,     6,   182,     3,     4,   175,   175,
+   181,  1480,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,   182,   181,     6,   970,
+   175,   155,   156,   157,    41,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,     6,   180,     6,     6,     6,   173,
+     6,     6,     6,     6,    61,    62,    63,    64,    65,    66,
+   180,     6,   180,   180,   180,   180,   180,    74,    75,   153,
+   154,   155,   156,   157,     6,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,     6,     6,     5,     5,   181,   173,
+   180,   180,  1033,   181,   181,   102,   103,   104,   105,  1040,
+   182,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   180,   175,  1059,   175,
+   180,   173,     6,   180,     6,     6,     6,    84,   181,     6,
+     6,     5,   180,     6,  1075,   153,   154,   155,   156,   157,
+     5,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   181,   181,   181,   180,   182,   173,   163,   164,   181,   180,
+   182,   181,   169,   180,   175,     8,   175,   174,     6,     6,
+     6,     6,   179,    84,   181,     6,     3,     4,     6,   182,
+     6,     6,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,   181,     3,     4,   180,
+   180,     6,     6,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    32,     6,     6,     3,
+     4,     6,   180,     6,   180,     9,    10,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    28,    29,    30,    31,    32,   175,
+  1211,   180,     6,     8,  1215,   102,   103,   104,   105,     6,
+   180,   180,   175,     6,   153,   154,   155,   156,   157,  1230,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,     0,
+     0,   636,    -1,  1298,   173,     3,   102,   103,   104,   105,
+   153,   154,   155,   156,   157,     3,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,   975,    -1,    -1,    -1,    -1,
+   173,    -1,    -1,    -1,    -1,    -1,   163,   164,   102,   103,
+   104,   105,   169,    -1,    -1,    -1,    -1,   174,    -1,    -1,
+   177,    -1,   179,    -1,   181,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,   164,    -1,
+  1311,    -1,    -1,   169,    -1,    -1,    -1,    -1,   174,    -1,
+    -1,  1322,  1323,   179,    -1,   181,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   163,
+   164,    -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,
+   174,     8,    -1,    -1,    -1,   179,    -1,   181,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,  1382,    -1,     3,     4,     5,  1387,     7,    -1,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    32,    -1,    34,    35,    36,    37,    -1,    -1,
+    40,    -1,    -1,    -1,  1425,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,  1434,    -1,    -1,     3,     4,     5,    -1,
+    -1,    -1,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,  1467,    34,    35,    36,
+    37,    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,  1482,   102,   103,   104,   105,    -1,    -1,  1489,    -1,
+    -1,    -1,    -1,  1494,    -1,  1496,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   149,
+   150,   151,   152,    -1,    -1,   102,   103,   104,   105,    -1,
+    -1,    -1,    -1,   163,   164,    -1,    -1,    -1,     8,   169,
+   170,   171,    -1,    -1,   174,    -1,   176,    -1,   178,   179,
+     3,     4,    -1,    -1,    -1,    -1,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+    -1,    -1,     8,    -1,    -1,    -1,   163,   164,    41,    -1,
+    -1,    -1,   169,    -1,    -1,    -1,    -1,   174,    -1,    -1,
+    -1,    -1,   179,    -1,    -1,    -1,    -1,    -1,    61,    62,
+    63,    64,    65,    66,    -1,    -1,    -1,    -1,     3,     4,
+    -1,    74,    75,    -1,     9,    10,    11,    12,    13,    14,
+    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    32,    -1,   102,
+   103,   104,   105,     3,     4,    -1,    -1,    -1,    -1,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    32,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,
+   163,   164,    -1,    -1,    -1,    -1,   169,   102,   103,   104,
+   105,   174,    -1,    -1,    -1,    -1,   179,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
+    -1,    -1,   102,   103,   104,   105,    -1,    41,    42,    43,
+    44,    45,    46,    47,    48,    -1,    50,    -1,    52,    53,
+    -1,    55,    56,    -1,    -1,    -1,    -1,    -1,   163,   164,
+    -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,    72,   174,
+    -1,    -1,    -1,    -1,   179,    -1,    -1,    81,    82,    83,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   163,   164,    99,    -1,    -1,    -1,   169,
+    -1,    -1,    -1,    -1,   174,    -1,    -1,    -1,    -1,   179,
+    41,    42,    43,    44,    45,    46,    47,    48,    -1,    50,
+    -1,    52,    53,    -1,    55,    56,    -1,    -1,    -1,    -1,
+    -1,    41,    42,    43,    44,    45,    46,    47,    48,    -1,
+    50,    72,    52,    53,    -1,    55,    56,    -1,    -1,    -1,
+    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    99,    -1,
+    -1,    81,    82,    83,    -1,    -1,    -1,    -1,   182,    41,
+    42,    43,    44,    45,    46,    47,    48,    -1,    50,    99,
+    52,    53,    -1,    55,    56,    -1,    -1,    -1,    -1,    -1,
+    41,    42,    43,    44,    45,    46,    47,    48,    -1,    50,
+    72,    52,    53,    -1,    55,    56,    -1,    -1,    -1,    81,
+    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    72,    -1,    -1,    -1,     0,     1,    99,     3,     4,
+    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   182,    -1,    -1,    -1,    -1,    -1,    -1,    99,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,    -1,
+    -1,    -1,   182,    38,    39,    -1,    41,    42,    43,    44,
+    45,    46,    47,    48,    -1,    50,    51,    52,    53,    54,
+    55,    56,    -1,    -1,    -1,    60,    61,    62,    63,    64,
+    65,    66,    -1,    68,    69,    70,    71,    72,    44,    74,
+    75,    -1,    -1,    -1,    -1,    80,    81,    82,    83,    -1,
+   182,    -1,    -1,    88,    -1,    90,    -1,    92,    93,    94,
+    95,    96,    97,    98,    99,   100,   101,    -1,    -1,    -1,
+    -1,   182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,
+   125,   126,   127,   128,   129,   130,   131,    -1,    -1,    -1,
+   106,   107,   108,    -1,    -1,    -1,    -1,    -1,   114,   115,
+   116,   117,   118,   119,   120,   121,   122,   123,     4,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   132,   133,   134,   135,
+   136,   137,   138,   139,   140,   141,    -1,   143,   144,   145,
+   146,   147,   148,    -1,    -1,    -1,    -1,    33,    -1,    -1,
+    -1,    -1,    38,    39,    -1,    41,    42,    43,    44,    45,
+    46,    47,    48,    -1,    50,    51,    52,    53,    54,    55,
+    56,    -1,    -1,    -1,    60,    61,    62,    63,    64,    65,
+    66,    -1,    68,    69,    70,    71,    72,    -1,    74,    75,
+    -1,    -1,    -1,    -1,    80,    81,    82,    83,    -1,    -1,
+    -1,    -1,    88,    -1,    90,    -1,    92,    93,    94,    95,
+    96,    97,    98,    99,   100,   101,    41,    42,    43,    44,
+    45,    46,    47,    48,    -1,    50,    -1,    52,    53,    -1,
+    55,    56,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    72,    -1,    -1,
+    -1,    -1,   173,    -1,    -1,    -1,    81,    82,    83,   180,
+    -1,   182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,
+   154,   155,   156,   157,    99,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,    -1,    -1,    -1,    -1,    -1,   180,    -1,   182,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,    -1,    -1,    -1,    -1,    -1,   180,    -1,   182,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,    -1,    -1,   153,   154,   155,   156,   157,   182,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
+   156,   157,   182,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
+    -1,   153,   154,   155,   156,   157,   182,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,    -1,    -1,   153,   154,   155,   156,   157,
+   182,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
+   154,   155,   156,   157,   182,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,    -1,    -1,   153,   154,   155,   156,   157,   182,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
+   156,   157,   182,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
+    -1,   153,   154,   155,   156,   157,   182,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,    -1,    -1,   153,   154,   155,   156,   157,
+   182,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
+   154,   155,   156,   157,   182,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,    -1,    -1,   153,   154,   155,   156,   157,   182,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
+   156,   157,   182,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
+    -1,   153,   154,   155,   156,   157,   182,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,    -1,    -1,   153,   154,   155,   156,   157,
+   182,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
+   154,   155,   156,   157,   182,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,    -1,    -1,   153,   154,   155,   156,   157,   182,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,   154,   155,
+   156,   157,   182,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,
+    -1,   153,   154,   155,   156,   157,   182,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,    -1,    -1,   153,   154,   155,   156,   157,
+   182,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,    -1,    -1,   153,
+   154,   155,   156,   157,   182,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,    -1,    -1,    -1,    -1,   180,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   153,   154,   155,   156,   157,
+   180,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,   154,   155,
+   156,   157,   180,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   153,
+   154,   155,   156,   157,   180,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   153,   154,   155,   156,   157,   180,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   153,   154,   155,   156,   157,   180,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,    -1,    -1,   177,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   177,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
+    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,   157,
+    -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+   175,   153,   154,   155,   156,   157,    -1,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   175,   153,   154,   155,   156,   157,    -1,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
+    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
+   153,   154,   155,   156,   157,    -1,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
+   173,    -1,   175,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
+    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,   157,
+    -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+   175,   153,   154,   155,   156,   157,    -1,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   175,   153,   154,   155,   156,   157,    -1,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
+    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
+   153,   154,   155,   156,   157,    -1,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
+   173,    -1,   175,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
+    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,   157,
+    -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+   175,   153,   154,   155,   156,   157,    -1,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   175,   153,   154,   155,   156,   157,    -1,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
+    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
+   153,   154,   155,   156,   157,    -1,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
+   173,    -1,   175,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
+    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,   157,
+    -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+   175,   153,   154,   155,   156,   157,    -1,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   175,   153,   154,   155,   156,   157,    -1,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
+    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
+   153,   154,   155,   156,   157,    -1,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
+   173,    -1,   175,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
+    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,   157,
+    -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+   175,   153,   154,   155,   156,   157,    -1,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,
+    -1,   173,    -1,   175,   153,   154,   155,   156,   157,    -1,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
+    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,
+   156,   157,    -1,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
+   153,   154,   155,   156,   157,    -1,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,
+   173,    -1,   175,   153,   154,   155,   156,   157,    -1,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,    -1,    -1,
+    -1,    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,
+   157,    -1,   159,   160,   161,   162,   163,   164,   165,   166,
+   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,
+   154,   155,   156,   157,    -1,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,
+    -1,   175,   153,   154,   155,   156,   157,    -1,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
+    -1,    -1,   173,    -1,   175,   153,   154,   155,   156,   157,
+    -1,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,   153,   154,
+   155,   156,   157,    -1,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,    -1,    -1,    -1,    -1,    -1,   173,    -1,
+   175
 };
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/share/bison.simple"
+/* This file comes from bison-1.28.  */
 
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+	 instead, just don't use alloca.  */
+#include <malloc.h>
 #endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+		 and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
 #endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
 #endif
 
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
 #define yyerrok		(yyerrstatus = 0)
 #define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		(-2)
+#define YYEMPTY		-2
 #define YYEOF		0
-
 #define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
+#define YYABORT 	goto yyabortlab
 #define YYERROR		goto yyerrlab1
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
-
 #define YYFAIL		goto yyerrlab
-
 #define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)					\
+#define YYBACKUP(token, value) \
 do								\
   if (yychar == YYEMPTY && yylen == 1)				\
-    {								\
-      yychar = (Token);						\
-      yylval = (Value);						\
-      yytoken = YYTRANSLATE (yychar);				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
       YYPOPSTACK;						\
       goto yybackup;						\
     }								\
   else								\
-    { 								\
-      yyerror ("syntax error: cannot back up");\
-      YYERROR;							\
-    }								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
 while (0)
 
 #define YYTERROR	1
 #define YYERRCODE	256
 
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).  */
-
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)         \
-  Current.first_line   = Rhs[1].first_line;      \
-  Current.first_column = Rhs[1].first_column;    \
-  Current.last_line    = Rhs[N].last_line;       \
-  Current.last_column  = Rhs[N].last_column;
+#ifndef YYPURE
+#define YYLEX		yylex()
 #endif
 
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
 #ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
 #else
-# define YYLEX yylex ()
+#define YYLEX		yylex(&yylval, &yylloc)
 #endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)			\
-do {						\
-  if (yydebug)					\
-    YYFPRINTF Args;				\
-} while (0)
-
-# define YYDSYMPRINT(Args)			\
-do {						\
-  if (yydebug)					\
-    yysymprint Args;				\
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location)		\
-do {								\
-  if (yydebug)							\
-    {								\
-      YYFPRINTF (stderr, "%s ", Title);				\
-      yysymprint (stderr, 					\
-                  Token, Value);	\
-      YYFPRINTF (stderr, "\n");					\
-    }								\
-} while (0)
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (cinluded).                                                   |
-`------------------------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_stack_print (short *bottom, short *top)
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
 #else
-static void
-yy_stack_print (bottom, top)
-    short *bottom;
-    short *top;
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
 #endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (/* Nothing. */; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
-  YYFPRINTF (stderr, "\n");
-}
 
-# define YY_STACK_PRINT(Bottom, Top)				\
-do {								\
-  if (yydebug)							\
-    yy_stack_print ((Bottom), (Top));				\
-} while (0)
+/* If nonreentrant, generate the variables here */
 
+#ifndef YYPURE
 
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
 
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_reduce_print (int yyrule)
-#else
-static void
-yy_reduce_print (yyrule)
-    int yyrule;
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
 #endif
-{
-  int yyi;
-  unsigned int yylineno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-             yyrule - 1, yylineno);
-  /* Print the symbols being reduced, and their result.  */
-  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-}
 
-# define YY_REDUCE_PRINT(Rule)		\
-do {					\
-  if (yydebug)				\
-    yy_reduce_print (Rule);		\
-} while (0)
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef	YYINITDEPTH
-# define YYINITDEPTH 200
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
 #endif
 
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
 
-   Do not make this value too large; the results are undefined if
-   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
 
 #if YYMAXDEPTH == 0
-# undef YYMAXDEPTH
+#undef YYMAXDEPTH
 #endif
 
 #ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
+#define YYMAXDEPTH 10000
 #endif
-
 
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined (__GLIBC__) && defined (_STRING_H)
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-static YYSIZE_T
-#   if defined (__STDC__) || defined (__cplusplus)
-yystrlen (const char *yystr)
-#   else
-yystrlen (yystr)
-     const char *yystr;
-#   endif
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (to, from, count)
+     char *to;
+     char *from;
+     unsigned int count;
 {
-  register const char *yys = yystr;
-
-  while (*yys++ != '\0')
-    continue;
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
 
-  return yys - yystr - 1;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-static char *
-#   if defined (__STDC__) || defined (__cplusplus)
-yystpcpy (char *yydest, const char *yysrc)
-#   else
-yystpcpy (yydest, yysrc)
-     char *yydest;
-     const char *yysrc;
-#   endif
-{
-  register char *yyd = yydest;
-  register const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
+  while (i-- > 0)
+    *t++ = *f++;
 }
-#  endif
-# endif
 
-#endif /* !YYERROR_VERBOSE */
-
-
+#else /* __cplusplus */
 
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
 static void
-yysymprint (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
+__yy_memcpy (char *to, char *from, unsigned int count)
 {
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-
-  if (yytype < YYNTOKENS)
-    {
-      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
-      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-    }
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+  register char *t = to;
+  register char *f = from;
+  register int i = count;
 
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-  YYFPRINTF (yyoutput, ")");
+  while (i-- > 0)
+    *t++ = *f++;
 }
 
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yytype, yyvaluep)
-    int yytype;
-    YYSTYPE *yyvaluep;
 #endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-
-  switch (yytype)
-    {
-
-      default:
-        break;
-    }
-}
+#endif
 
+#line 217 "/usr/share/bison.simple"
 
-/* Prevent warnings from -Wmissing-prototypes.  */
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
 
 #ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM);
-# else
-int yyparse ();
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
 #ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
-  void *YYPARSE_PARAM;
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int
-yyparse (void)
+int yyparse (void *);
 #else
-int
-yyparse ()
-
+int yyparse (void);
 #endif
 #endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+     YYPARSE_PARAM_DECL
 {
-  
   register int yystate;
   register int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
-
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
-
-  /* The state stack.  */
-  short	yyssa[YYINITDEPTH];
-  short *yyss = yyssa;
   register short *yyssp;
-
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
 
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
 
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
 
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
 #define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+  int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
 
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
 
-  /* When reducing, the number of symbols on the RHS of the reduced
-     rule.  */
   int yylen;
 
-  YYDPRINTF ((stderr, "Starting parse\n"));
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
 
   yystate = 0;
   yyerrstatus = 0;
@@ -3335,96 +2670,110 @@ yyparse ()
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
 
-  yyssp = yyss;
+  yyssp = yyss - 1;
   yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
 
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed. so pushing a state here evens the stacks.
-     */
-  yyssp++;
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
 
- yysetstate:
-  *yyssp = yystate;
+  *++yyssp = yystate;
 
-  if (yyss + yystacksize - 1 <= yyssp)
+  if (yyssp >= yyss + yystacksize - 1)
     {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
       /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
+      int size = yyssp - yyss + 1;
 
 #ifdef yyoverflow
-      {
-	/* Give user a chance to reallocate the stack. Use copies of
-	   these so that the &'s don't force the real ones into
-	   memory.  */
-	YYSTYPE *yyvs1 = yyvs;
-	short *yyss1 = yyss;
-
-
-	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
-	yyoverflow ("parser stack overflow",
-		    &yyss1, yysize * sizeof (*yyssp),
-		    &yyvs1, yysize * sizeof (*yyvsp),
-
-		    &yystacksize);
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
 
-	yyss = yyss1;
-	yyvs = yyvs1;
-      }
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
 #else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyoverflowlab;
-# else
       /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-	goto yyoverflowlab;
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  if (yyfree_stacks)
+	    {
+	      free (yyss);
+	      free (yyvs);
+#ifdef YYLSP_NEEDED
+	      free (yyls);
+#endif
+	    }
+	  return 2;
+	}
       yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
+      if (yystacksize > YYMAXDEPTH)
 	yystacksize = YYMAXDEPTH;
-
-      {
-	short *yyss1 = yyss;
-	union yyalloc *yyptr =
-	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-	if (! yyptr)
-	  goto yyoverflowlab;
-	YYSTACK_RELOCATE (yyss);
-	YYSTACK_RELOCATE (yyvs);
-
-#  undef YYSTACK_RELOCATE
-	if (yyss1 != yyssa)
-	  YYSTACK_FREE (yyss1);
-      }
-# endif
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+		   size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+		   size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+		   size * (unsigned int) sizeof (*yylsp));
+#endif
 #endif /* no yyoverflow */
 
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
 
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-		  (unsigned long int) yystacksize));
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
 
-      if (yyss + yystacksize - 1 <= yyssp)
+      if (yyssp >= yyss + yystacksize - 1)
 	YYABORT;
     }
 
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
 
   goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
+ yybackup:
 
 /* Do appropriate processing given the current state.  */
 /* Read a lookahead token if we need one and don't already have one.  */
@@ -3433,435 +2782,417 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
+  if (yyn == YYFLAG)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
   if (yychar == YYEMPTY)
     {
-      YYDPRINTF ((stderr, "Reading a token: "));
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
       yychar = YYLEX;
     }
 
-  if (yychar <= YYEOF)
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
     {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
     }
   else
     {
-      yytoken = YYTRANSLATE (yychar);
-      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
     }
 
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
     goto yydefault;
+
   yyn = yytable[yyn];
-  if (yyn <= 0)
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
     {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
+      if (yyn == YYFLAG)
 	goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
+  else if (yyn == 0)
+    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
 
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
 
   yystate = yyn;
   goto yynewstate;
 
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
+/* Do the default action for the current state.  */
 yydefault:
+
   yyn = yydefact[yystate];
   if (yyn == 0)
     goto yyerrlab;
-  goto yyreduce;
-
 
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
 yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
 
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
 
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
 
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
 
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 4:
-#line 160 "Gmsh.y"
-    { yyerrok; return 1; ;}
-    break;
 
-  case 7:
-#line 176 "Gmsh.y"
-    { return 1; ;}
-    break;
+  switch (yyn) {
 
-  case 8:
+case 3:
+#line 160 "Gmsh.y"
+{ yyerrok; return 1; ;
+    break;}
+case 6:
+#line 176 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 7:
 #line 177 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 9:
+{ return 1; ;
+    break;}
+case 8:
 #line 178 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 10:
+{ return 1; ;
+    break;}
+case 9:
 #line 183 "Gmsh.y"
-    {
+{
       yymsg(INFO, "Reading Step Iso-10303-21 data");
       Create_Step_Solid_BRep();
-    ;}
-    break;
-
-  case 11:
+    ;
+    break;}
+case 10:
 #line 188 "Gmsh.y"
-    {
+{
       Resolve_BREP ();
       yymsg(INFO, "Read Step Iso-10303-21 data");
-    ;}
-    break;
-
-  case 15:
+    ;
+    break;}
+case 14:
 #line 199 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 16:
+{
+    ;
+    break;}
+case 15:
 #line 202 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 17:
+{
+    ;
+    break;}
+case 16:
 #line 206 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 18:
+{
+    ;
+    break;}
+case 17:
 #line 212 "Gmsh.y"
-    {
+{
       Add_Cartesian_Point((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
-    ;}
-    break;
-
-  case 19:
+    ;
+    break;}
+case 18:
 #line 218 "Gmsh.y"
-    {
+{
       Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l,	yyvsp[-6].l, yyvsp[-4].l, 0., 1.);
-    ;}
-    break;
-
-  case 20:
+    ;
+    break;}
+case 19:
 #line 225 "Gmsh.y"
-    {
+{
       Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l,
 				      yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. );
-    ;}
-    break;
-
-  case 21:
+    ;
+    break;}
+case 20:
 #line 231 "Gmsh.y"
-    {
+{
       Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
-    ;}
-    break;
-
-  case 22:
+    ;
+    break;}
+case 21:
 #line 235 "Gmsh.y"
-    {
+{
       Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 1);
-    ;}
-    break;
-
-  case 23:
+    ;
+    break;}
+case 22:
 #line 239 "Gmsh.y"
-    {
+{
       // check the norm! Face_Bound : hole outside surface!
       yymsg(INFO, "Found a face bound");
       Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 0);
-    ;}
-    break;
-
-  case 24:
+    ;
+    break;}
+case 23:
 #line 246 "Gmsh.y"
-    {
+{
       Add_Oriented_Edge((int)yyvsp[-14].d, yyvsp[-10].c, (int)yyvsp[-4].d, yyvsp[-2].i);
-    ;}
-    break;
-
-  case 25:
+    ;
+    break;}
+case 24:
 #line 250 "Gmsh.y"
-    {
+{
       Add_Edge_Loop((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].l);
-    ;}
-    break;
-
-  case 26:
+    ;
+    break;}
+case 25:
 #line 255 "Gmsh.y"
-    {
+{
       Add_Advanced_Face((int)yyvsp[-12].d, yyvsp[-8].c, yyvsp[-6].l, (int)yyvsp[-4].d, yyvsp[-2].i);
-    ;}
-    break;
-
-  case 27:
+    ;
+    break;}
+case 26:
 #line 259 "Gmsh.y"
-    {
+{
       Add_Vertex_Point((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d);
-    ;}
-    break;
-
-  case 28:
+    ;
+    break;}
+case 27:
 #line 263 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 29:
+{
+    ;
+    break;}
+case 28:
 #line 267 "Gmsh.y"
-    {
+{
       Add_Axis2_Placement3D  ((int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);
-    ;}
-    break;
-
-  case 30:
+    ;
+    break;}
+case 29:
 #line 271 "Gmsh.y"
-    {
+{
       Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
-    ;}
-    break;
-
-  case 31:
+    ;
+    break;}
+case 30:
 #line 275 "Gmsh.y"
-    {
+{
       Add_Plane((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d);
-    ;}
-    break;
-
-  case 32:
+    ;
+    break;}
+case 31:
 #line 279 "Gmsh.y"
-    {
+{
       Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
-    ;}
-    break;
-
-  case 33:
+    ;
+    break;}
+case 32:
 #line 283 "Gmsh.y"
-    {
+{
       yymsg(INFO, "Found a closed shell");
       Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l);
-    ;}
-    break;
-
-  case 34:
+    ;
+    break;}
+case 33:
 #line 289 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 35:
+{
+    ;
+    break;}
+case 34:
 #line 292 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 36:
+{
+    ;
+    break;}
+case 35:
 #line 295 "Gmsh.y"
-    {
+{
       Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
-    ;}
-    break;
-
-  case 37:
+    ;
+    break;}
+case 36:
 #line 299 "Gmsh.y"
-    {
+{
       Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
-    ;}
-    break;
-
-  case 38:
+    ;
+    break;}
+case 37:
 #line 303 "Gmsh.y"
-    {
+{
       Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
-    ;}
-    break;
-
-  case 39:
+    ;
+    break;}
+case 38:
 #line 307 "Gmsh.y"
-    {
+{
       Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
-    ;}
-    break;
-
-  case 40:
+    ;
+    break;}
+case 39:
 #line 311 "Gmsh.y"
-    {
+{
       Add_Ellipse((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
-    ;}
-    break;
-
-  case 41:
+    ;
+    break;}
+case 40:
 #line 316 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 42:
+{
+    ;
+    break;}
+case 41:
 #line 319 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 43:
+{
+    ;
+    break;}
+case 42:
 #line 323 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 44:
+{
+    ;
+    break;}
+case 43:
 #line 326 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 45:
+{
+    ;
+    break;}
+case 44:
 #line 330 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 46:
+{
+    ;
+    break;}
+case 45:
 #line 333 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 47:
+{
+    ;
+    break;}
+case 46:
 #line 336 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 50:
+{
+    ;
+    break;}
+case 49:
 #line 348 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 51:
+{ return 1; ;
+    break;}
+case 50:
 #line 349 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 52:
+{ return 1; ;
+    break;}
+case 51:
 #line 350 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 53:
+{ return 1; ;
+    break;}
+case 52:
 #line 351 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 54:
+{ return 1; ;
+    break;}
+case 53:
 #line 352 "Gmsh.y"
-    { List_Delete(yyvsp[0].l); return 1; ;}
-    break;
-
-  case 55:
+{ List_Delete(yyvsp[0].l); return 1; ;
+    break;}
+case 54:
 #line 353 "Gmsh.y"
-    { List_Delete(yyvsp[0].l); return 1; ;}
-    break;
-
-  case 56:
+{ List_Delete(yyvsp[0].l); return 1; ;
+    break;}
+case 55:
 #line 354 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 57:
+{ return 1; ;
+    break;}
+case 56:
 #line 355 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 58:
+{ return 1; ;
+    break;}
+case 57:
 #line 356 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 59:
+{ return 1; ;
+    break;}
+case 58:
 #line 357 "Gmsh.y"
-    { List_Delete(yyvsp[0].l); return 1; ;}
-    break;
-
-  case 60:
+{ List_Delete(yyvsp[0].l); return 1; ;
+    break;}
+case 59:
 #line 358 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 61:
+{ return 1; ;
+    break;}
+case 60:
 #line 359 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 62:
+{ return 1; ;
+    break;}
+case 61:
 #line 360 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 63:
+{ return 1; ;
+    break;}
+case 62:
 #line 361 "Gmsh.y"
-    { return 1; ;}
-    break;
-
-  case 64:
+{ return 1; ;
+    break;}
+case 63:
 #line 366 "Gmsh.y"
-    {
+{
       Msg(DIRECT, yyvsp[-2].c);
       Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 65:
+    ;
+    break;}
+case 64:
 #line 371 "Gmsh.y"
-    {
+{
       char tmpstring[1024];
       int i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring);
       if(i < 0) 
@@ -3872,62 +3203,54 @@ yyreduce:
 	Msg(DIRECT, tmpstring);
       Free(yyvsp[-4].c);
       List_Delete(yyvsp[-2].l);
-    ;}
-    break;
-
-  case 66:
+    ;
+    break;}
+case 65:
 #line 389 "Gmsh.y"
-    { 
+{ 
       if(!strcmp(yyvsp[-5].c, "View") && !CheckViewErrorFlags(View)){
 	EndView(View, 0, yyname, yyvsp[-4].c);
       }
       Free(yyvsp[-5].c); Free(yyvsp[-4].c);
-    ;}
-    break;
-
-  case 67:
+    ;
+    break;}
+case 66:
 #line 396 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[-7].c, "View") && !CheckViewErrorFlags(View)){
 	EndView(View, 0, yyname, yyvsp[-6].c);
       }
       Free(yyvsp[-7].c); Free(yyvsp[-6].c); Free(yyvsp[-5].c);
-    ;}
-    break;
-
-  case 68:
+    ;
+    break;}
+case 67:
 #line 406 "Gmsh.y"
-    {
+{
       View = BeginView(1); 
       for(int i = 0; i < VIEW_NB_ELEMENT_TYPES; i++){
 	ViewErrorFlags[i] = 0;
       }
-    ;}
-    break;
-
-  case 74:
+    ;
+    break;}
+case 73:
 #line 421 "Gmsh.y"
-    { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ;}
-    break;
-
-  case 75:
+{ ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ;
+    break;}
+case 74:
 #line 423 "Gmsh.y"
-    { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ;}
-    break;
-
-  case 76:
+{ ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ;
+    break;}
+case 75:
 #line 428 "Gmsh.y"
-    { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ;}
-    break;
-
-  case 77:
+{ if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ;
+    break;}
+case 76:
 #line 430 "Gmsh.y"
-    { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ;}
-    break;
-
-  case 78:
+{ if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ;
+    break;}
+case 77:
 #line 435 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[0].c, "SP")){
 	ViewElementIdx = 0; ViewNumNodes = 1; ViewNumComp = 1;
 	ViewValueList = View->SP; ViewNumList = &View->NbSP;
@@ -4115,12 +3438,11 @@ yyreduce:
       }
       Free(yyvsp[0].c);
       ViewCoordIdx = 0;
-    ;}
-    break;
-
-  case 79:
+    ;
+    break;}
+case 78:
 #line 625 "Gmsh.y"
-    {
+{
       if(ViewValueList){
 	if(ViewCoordIdx != 3 * ViewNumNodes){
 	  yymsg(GERROR, "Wrong number of node coordinates (%d != %d)", 
@@ -4136,144 +3458,124 @@ yyreduce:
 	}
 	ViewNumListTmp = List_Nbr(ViewValueList);
       }
-    ;}
-    break;
-
-  case 80:
+    ;
+    break;}
+case 79:
 #line 643 "Gmsh.y"
-    {
+{
       if(ViewValueList){  
 	if((List_Nbr(ViewValueList) - ViewNumListTmp) % (ViewNumComp * ViewNumNodes)) 
 	  ViewErrorFlags[ViewElementIdx]++;
 	(*ViewNumList)++;
       }
-    ;}
-    break;
-
-  case 81:
+    ;
+    break;}
+case 80:
 #line 654 "Gmsh.y"
-    { 
+{ 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 82:
+    ;
+    break;}
+case 81:
 #line 659 "Gmsh.y"
-    { 
+{ 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 83:
+    ;
+    break;}
+case 82:
 #line 667 "Gmsh.y"
-    { 
+{ 
       List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d);
       List_Add(View->T2D, &yyvsp[-1].d); 
       double d = List_Nbr(View->T2C);
       List_Add(View->T2D, &d); 
-    ;}
-    break;
-
-  case 84:
+    ;
+    break;}
+case 83:
 #line 674 "Gmsh.y"
-    {
+{
       View->NbT2++;
-    ;}
-    break;
-
-  case 85:
+    ;
+    break;}
+case 84:
 #line 681 "Gmsh.y"
-    { 
+{ 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 86:
+    ;
+    break;}
+case 85:
 #line 686 "Gmsh.y"
-    { 
+{ 
       for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); 
       Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 87:
+    ;
+    break;}
+case 86:
 #line 694 "Gmsh.y"
-    { 
+{ 
       List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d);
       List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d); 
       double d = List_Nbr(View->T3C);
       List_Add(View->T3D, &d); 
-    ;}
-    break;
-
-  case 88:
+    ;
+    break;}
+case 87:
 #line 701 "Gmsh.y"
-    {
+{
       View->NbT3++;
-    ;}
-    break;
-
-  case 89:
+    ;
+    break;}
+case 88:
 #line 709 "Gmsh.y"
-    {
+{
       View->adaptive = new Adaptive_Post_View(View, yyvsp[-5].l, yyvsp[-2].l);
-    ;}
-    break;
-
-  case 90:
+    ;
+    break;}
+case 89:
 #line 716 "Gmsh.y"
-    {
+{
       ViewValueList = View->Time;
-    ;}
-    break;
-
-  case 91:
+    ;
+    break;}
+case 90:
 #line 720 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 92:
+{
+    ;
+    break;}
+case 91:
 #line 727 "Gmsh.y"
-    { yyval.i = 0; ;}
-    break;
-
-  case 93:
+{ yyval.i = 0; ;
+    break;}
+case 92:
 #line 728 "Gmsh.y"
-    { yyval.i = 1; ;}
-    break;
-
-  case 94:
+{ yyval.i = 1; ;
+    break;}
+case 93:
 #line 729 "Gmsh.y"
-    { yyval.i = 2; ;}
-    break;
-
-  case 95:
+{ yyval.i = 2; ;
+    break;}
+case 94:
 #line 730 "Gmsh.y"
-    { yyval.i = 3; ;}
-    break;
-
-  case 96:
+{ yyval.i = 3; ;
+    break;}
+case 95:
 #line 731 "Gmsh.y"
-    { yyval.i = 4; ;}
-    break;
-
-  case 97:
+{ yyval.i = 4; ;
+    break;}
+case 96:
 #line 735 "Gmsh.y"
-    { yyval.i = 1; ;}
-    break;
-
-  case 98:
+{ yyval.i = 1; ;
+    break;}
+case 97:
 #line 736 "Gmsh.y"
-    { yyval.i = -1; ;}
-    break;
-
-  case 99:
+{ yyval.i = -1; ;
+    break;}
+case 98:
 #line 744 "Gmsh.y"
-    {
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-3].c;
       Symbol *pSymbol;
@@ -4302,12 +3604,11 @@ yyreduce:
 	}
 	Free(yyvsp[-3].c);
       }
-    ;}
-    break;
-
-  case 100:
+    ;
+    break;}
+case 99:
 #line 775 "Gmsh.y"
-    {
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-6].c;
       Symbol *pSymbol;
@@ -4344,12 +3645,11 @@ yyreduce:
 	}
 	Free(yyvsp[-6].c);
       }
-    ;}
-    break;
-
-  case 101:
+    ;
+    break;}
+case 100:
 #line 814 "Gmsh.y"
-    {
+{
       if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l)){
 	yymsg(GERROR, "Incompatible array dimensions in affectation");
 	Free(yyvsp[-8].c);
@@ -4401,12 +3701,11 @@ yyreduce:
       }
       List_Delete(yyvsp[-5].l);
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 102:
+    ;
+    break;}
+case 101:
 #line 868 "Gmsh.y"
-    {
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-5].c;
       Symbol *pSymbol;
@@ -4421,12 +3720,11 @@ yyreduce:
 	Free(yyvsp[-5].c);
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 103:
+    ;
+    break;}
+case 102:
 #line 885 "Gmsh.y"
-    {
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
       Symbol *pSymbol;
@@ -4435,12 +3733,11 @@ yyreduce:
       else
 	*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[-1].i;
       Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 104:
+    ;
+    break;}
+case 103:
 #line 896 "Gmsh.y"
-    {
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-5].c;
       Symbol *pSymbol;
@@ -4454,12 +3751,11 @@ yyreduce:
 	  yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, (int)yyvsp[-3].d);
       }
       Free(yyvsp[-5].c);
-    ;}
-    break;
-
-  case 105:
+    ;
+    break;}
+case 104:
 #line 915 "Gmsh.y"
-    { 
+{ 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c)))
@@ -4471,12 +3767,11 @@ yyreduce:
 	  pStrOpt(0, GMSH_SET|GMSH_GUI, yyvsp[-1].c);
       }
       Free(yyvsp[-5].c); Free(yyvsp[-3].c); //FIXME: somtimes leak $5
-    ;}
-    break;
-
-  case 106:
+    ;
+    break;}
+case 105:
 #line 929 "Gmsh.y"
-    { 
+{ 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-8].c)))
@@ -4488,12 +3783,11 @@ yyreduce:
 	  pStrOpt((int)yyvsp[-6].d, GMSH_SET|GMSH_GUI, yyvsp[-1].c);
       }
       Free(yyvsp[-8].c); Free(yyvsp[-3].c); //FIXME: somtimes leak $8
-    ;}
-    break;
-
-  case 107:
+    ;
+    break;}
+case 106:
 #line 946 "Gmsh.y"
-    {
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
@@ -4517,12 +3811,11 @@ yyreduce:
 	}
       }
       Free(yyvsp[-5].c); Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 108:
+    ;
+    break;}
+case 107:
 #line 972 "Gmsh.y"
-    {
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-8].c)))
@@ -4547,12 +3840,11 @@ yyreduce:
 	}
       }
       Free(yyvsp[-8].c); Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 109:
+    ;
+    break;}
+case 108:
 #line 999 "Gmsh.y"
-    {
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
@@ -4564,12 +3856,11 @@ yyreduce:
 	  pNumOpt(0, GMSH_SET|GMSH_GUI, pNumOpt(0, GMSH_GET, 0)+yyvsp[-1].i);
       }
       Free(yyvsp[-4].c); Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 110:
+    ;
+    break;}
+case 109:
 #line 1013 "Gmsh.y"
-    {
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-7].c)))
@@ -4581,12 +3872,11 @@ yyreduce:
 	  pNumOpt((int)yyvsp[-5].d, GMSH_SET|GMSH_GUI, pNumOpt((int)yyvsp[-5].d, GMSH_GET, 0)+yyvsp[-1].i);
       }
       Free(yyvsp[-7].c); Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 111:
+    ;
+    break;}
+case 110:
 #line 1030 "Gmsh.y"
-    {
+{
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c)))
@@ -4598,12 +3888,11 @@ yyreduce:
 	  pColOpt(0, GMSH_SET|GMSH_GUI, yyvsp[-1].u);
       }
       Free(yyvsp[-7].c); Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 112:
+    ;
+    break;}
+case 111:
 #line 1044 "Gmsh.y"
-    {
+{
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-10].c)))
@@ -4615,12 +3904,11 @@ yyreduce:
 	  pColOpt((int)yyvsp[-8].d, GMSH_SET|GMSH_GUI, yyvsp[-1].u);
       }
       Free(yyvsp[-10].c); Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 113:
+    ;
+    break;}
+case 112:
 #line 1061 "Gmsh.y"
-    {
+{
       GmshColorTable *ct = Get_ColorTable(0);
       if(!ct)
 	yymsg(GERROR, "View[%d] does not exist", 0);
@@ -4638,12 +3926,11 @@ yyreduce:
       }
       Free(yyvsp[-5].c);
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 114:
+    ;
+    break;}
+case 113:
 #line 1081 "Gmsh.y"
-    {
+{
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d);
       if(!ct)
 	yymsg(GERROR, "View[%d] does not exist", (int)yyvsp[-6].d);
@@ -4661,12 +3948,11 @@ yyreduce:
       }
       Free(yyvsp[-8].c);
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 115:
+    ;
+    break;}
+case 114:
 #line 1104 "Gmsh.y"
-    {
+{
       try {
 	GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].d); 
       }
@@ -4674,12 +3960,11 @@ yyreduce:
 	yymsg(GERROR, "Unknown option '%s' or plugin '%s'", yyvsp[-3].c, yyvsp[-6].c);
       }
       Free(yyvsp[-6].c); Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 116:
+    ;
+    break;}
+case 115:
 #line 1114 "Gmsh.y"
-    {
+{
       try {
 	GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].c); 
       }
@@ -4687,12 +3972,11 @@ yyreduce:
 	yymsg(GERROR, "Unknown option '%s' or plugin '%s'", yyvsp[-3].c, yyvsp[-6].c);
       }
       Free(yyvsp[-6].c); Free(yyvsp[-3].c); // FIXME: sometimes leak $8
-    ;}
-    break;
-
-  case 117:
+    ;
+    break;}
+case 116:
 #line 1133 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindPoint(num, THEM)){
 	yymsg(GERROR, "Point %d already exists", num);
@@ -4706,12 +3990,11 @@ yyreduce:
       }
       yyval.s.Type = MSH_POINT;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 118:
+    ;
+    break;}
+case 117:
 #line 1149 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT, THEM)){
 	yymsg(GERROR, "Physical point %d already exists", num);
@@ -4725,12 +4008,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_PHYSICAL_POINT;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 119:
+    ;
+    break;}
+case 118:
 #line 1165 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){
 	double p;
       	List_Read(yyvsp[-9].l, i, &p);
@@ -4747,12 +4029,11 @@ yyreduce:
       // dummy values
       yyval.s.Type = 0;
       yyval.s.Num = 0;
-    ;}
-    break;
-
-  case 120:
+    ;
+    break;}
+case 119:
 #line 1184 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
 	List_Read(yyvsp[-3].l, i, &d);
@@ -4766,12 +4047,11 @@ yyreduce:
       // dummy values
       yyval.s.Type = 0;
       yyval.s.Num = 0;
-    ;}
-    break;
-
-  case 121:
+    ;
+    break;}
+case 120:
 #line 1203 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4787,12 +4067,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_LINE;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 122:
+    ;
+    break;}
+case 121:
 #line 1221 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4808,12 +4087,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_SPLN;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 123:
+    ;
+    break;}
+case 122:
 #line 1239 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4829,12 +4107,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_CIRC;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 124:
+    ;
+    break;}
+case 123:
 #line 1257 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-6].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4858,12 +4135,11 @@ yyreduce:
       List_Delete(yyvsp[-3].l);
       yyval.s.Type = MSH_SEGM_CIRC;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 125:
+    ;
+    break;}
+case 124:
 #line 1283 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4879,12 +4155,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_ELLI;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 126:
+    ;
+    break;}
+case 125:
 #line 1301 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-6].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4908,12 +4183,11 @@ yyreduce:
       List_Delete(yyvsp[-3].l);
       yyval.s.Type = MSH_SEGM_ELLI;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 127:
+    ;
+    break;}
+case 126:
 #line 1328 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-14].d;
       if(FindCurve(num, THEM)){
 	yymsg(GERROR, "Curve %d already exists", num);
@@ -4930,12 +4204,11 @@ yyreduce:
       Free(yyvsp[-6].c); Free(yyvsp[-4].c); Free(yyvsp[-2].c);
       yyval.s.Type = MSH_SEGM_PARAMETRIC;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 128:
+    ;
+    break;}
+case 127:
 #line 1347 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(List_Nbr(yyvsp[-1].l) < 4){
 	yymsg(GERROR, "Too few control points for BSpline %d (%d < 4)", num,
@@ -4957,12 +4230,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_BSPLN;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 129:
+    ;
+    break;}
+case 128:
 #line 1371 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(List_Nbr(yyvsp[-1].l) < 4){
 	yymsg(GERROR, "Too few control points for Bezier curve %d (%d < 4)", num,
@@ -4984,12 +4256,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_BEZIER;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 130:
+    ;
+    break;}
+case 129:
 #line 1395 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-8].d;
       if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){
 	yymsg(GERROR, "Wrong definition of Nurbs Curve %d: "
@@ -5013,12 +4284,11 @@ yyreduce:
       List_Delete(yyvsp[-3].l);
       yyval.s.Type = MSH_SEGM_NURBS;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 131:
+    ;
+    break;}
+case 130:
 #line 1421 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindEdgeLoop(num, THEM)){
 	yymsg(GERROR, "Line loop %d already exists", num);
@@ -5033,12 +4303,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SEGM_LOOP;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 132:
+    ;
+    break;}
+case 131:
 #line 1438 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){
 	double p;
       	List_Read(yyvsp[-9].l, i, &p);
@@ -5054,12 +4323,11 @@ yyreduce:
       // dummy values
       yyval.s.Type = 0;
       yyval.s.Num = 0;
-    ;}
-    break;
-
-  case 133:
+    ;
+    break;}
+case 132:
 #line 1456 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE, THEM)){
 	yymsg(GERROR, "Physical line %d already exists", num);
@@ -5073,12 +4341,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_PHYSICAL_LINE;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 134:
+    ;
+    break;}
+case 133:
 #line 1475 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindSurface(num, THEM)){
 	yymsg(GERROR, "Surface %d already exists", num);
@@ -5095,12 +4362,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SURF_PLAN;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 135:
+    ;
+    break;}
+case 134:
 #line 1494 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d, type = 0;
       if(FindSurface(num, THEM)){
 	yymsg(GERROR, "Surface %d already exists", num);
@@ -5137,12 +4403,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = type;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 136:
+    ;
+    break;}
+case 135:
 #line 1533 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-8].d;
       Surface *support = FindSurface((int)yyvsp[-4].d, THEM);
       if(!support){
@@ -5165,12 +4430,11 @@ yyreduce:
       List_Delete(yyvsp[-2].l);
       yyval.s.Type = MSH_SURF_TRIMMED;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 137:
+    ;
+    break;}
+case 136:
 #line 1560 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-16].d;
       if(FindSurface(num, THEM)){
 	yymsg(GERROR, "Surface %d already exists", num);
@@ -5185,12 +4449,11 @@ yyreduce:
       List_Delete(yyvsp[-8].l);
       yyval.s.Type = MSH_SURF_NURBS;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 138:
+    ;
+    break;}
+case 137:
 #line 1579 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-16].d;
       if(FindSurface(num, THEM)){
 	yymsg(GERROR, "Surface %d already exists", num);
@@ -5205,12 +4468,11 @@ yyreduce:
       List_Delete(yyvsp[-8].l);
       yyval.s.Type = MSH_SURF_NURBS;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 139:
+    ;
+    break;}
+case 138:
 #line 1596 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindSurfaceLoop(num, THEM)){
 	yymsg(GERROR, "Surface loop %d already exists", num);
@@ -5224,12 +4486,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_SURF_LOOP;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 140:
+    ;
+    break;}
+case 139:
 #line 1612 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE, THEM)){
 	yymsg(GERROR, "Physical surface %d already exists", num);
@@ -5243,12 +4504,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_PHYSICAL_SURFACE;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 141:
+    ;
+    break;}
+case 140:
 #line 1632 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindVolume(num, THEM)){
 	yymsg(GERROR, "Volume %d already exists", num);
@@ -5263,12 +4523,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 142:
+    ;
+    break;}
+case 141:
 #line 1649 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindVolume(num, THEM)){
 	yymsg(GERROR, "Volume %d already exists", num);
@@ -5283,12 +4542,11 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 143:
+    ;
+    break;}
+case 142:
 #line 1666 "Gmsh.y"
-    {
+{
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME, THEM)){
 	yymsg(GERROR, "Physical volume %d already exists", num);
@@ -5302,73 +4560,63 @@ yyreduce:
       List_Delete(yyvsp[-1].l);
       yyval.s.Type = MSH_PHYSICAL_VOLUME;
       yyval.s.Num = num;
-    ;}
-    break;
-
-  case 144:
+    ;
+    break;}
+case 143:
 #line 1687 "Gmsh.y"
-    {
+{
       TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 145:
+    ;
+    break;}
+case 144:
 #line 1692 "Gmsh.y"
-    {
+{
       RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 146:
+    ;
+    break;}
+case 145:
 #line 1697 "Gmsh.y"
-    {
+{
       SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 147:
+    ;
+    break;}
+case 146:
 #line 1702 "Gmsh.y"
-    {
+{
       DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1);
       yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 148:
+    ;
+    break;}
+case 147:
 #line 1709 "Gmsh.y"
-    { yyval.l = yyvsp[0].l; ;}
-    break;
-
-  case 149:
+{ yyval.l = yyvsp[0].l; ;
+    break;}
+case 148:
 #line 1710 "Gmsh.y"
-    { yyval.l = yyvsp[0].l; ;}
-    break;
-
-  case 150:
+{ yyval.l = yyvsp[0].l; ;
+    break;}
+case 149:
 #line 1711 "Gmsh.y"
-    { yyval.l = yyvsp[0].l; ;}
-    break;
-
-  case 151:
+{ yyval.l = yyvsp[0].l; ;
+    break;}
+case 150:
 #line 1716 "Gmsh.y"
-    {
+{
       yyval.l = List_Create(3, 3, sizeof(Shape));
-    ;}
-    break;
-
-  case 152:
+    ;
+    break;}
+case 151:
 #line 1720 "Gmsh.y"
-    {
+{
       List_Add(yyval.l, &yyvsp[0].s);
-    ;}
-    break;
-
-  case 153:
+    ;
+    break;}
+case 152:
 #line 1724 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
 	List_Read(yyvsp[-2].l, i, &d);
@@ -5382,12 +4630,11 @@ yyreduce:
 	  List_Add(yyval.l, &TheShape);
 	}
       }
-    ;}
-    break;
-
-  case 154:
+    ;
+    break;}
+case 153:
 #line 1740 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
 	List_Read(yyvsp[-2].l, i, &d);
@@ -5401,12 +4648,11 @@ yyreduce:
 	  List_Add(yyval.l, &TheShape);
 	}
       }
-    ;}
-    break;
-
-  case 155:
+    ;
+    break;}
+case 154:
 #line 1756 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
 	List_Read(yyvsp[-2].l, i, &d);
@@ -5420,12 +4666,11 @@ yyreduce:
 	  List_Add(yyval.l, &TheShape);
 	}
       }
-    ;}
-    break;
-
-  case 156:
+    ;
+    break;}
+case 155:
 #line 1772 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
 	List_Read(yyvsp[-2].l, i, &d);
@@ -5439,12 +4684,11 @@ yyreduce:
 	  List_Add(yyval.l, &TheShape);
 	}
       }
-    ;}
-    break;
-
-  case 157:
+    ;
+    break;}
+case 156:
 #line 1793 "Gmsh.y"
-    {
+{
       yyval.l = List_Create(3, 3, sizeof(Shape));
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -5455,51 +4699,46 @@ yyreduce:
 	List_Add(yyval.l, &TheShape);
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 158:
+    ;
+    break;}
+case 157:
 #line 1807 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0);
       Free(yyvsp[-4].c);
       yyval.l = NULL;
-    ;}
-    break;
-
-  case 159:
+    ;
+    break;}
+case 158:
 #line 1813 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0);
       Free(yyvsp[-4].c);
       yyval.l = NULL;
-    ;}
-    break;
-
-  case 160:
+    ;
+    break;}
+case 159:
 #line 1819 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1);
       Free(yyvsp[-4].c);
       yyval.l = NULL;
-    ;}
-    break;
-
-  case 161:
+    ;
+    break;}
+case 160:
 #line 1831 "Gmsh.y"
-    {
+{
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
 	List_Read(yyvsp[-1].l, i, &TheShape);
 	DeleteShape(TheShape.Type, TheShape.Num);
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 162:
+    ;
+    break;}
+case 161:
 #line 1840 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[-4].c, "View")){
 	RemoveViewByIndex((int)yyvsp[-2].d);
       }
@@ -5507,25 +4746,27 @@ yyreduce:
 	yymsg(GERROR, "Unknown command 'Delete %s'", yyvsp[-4].c);
       }
       Free(yyvsp[-4].c);
-    ;}
-    break;
-
-  case 163:
+    ;
+    break;}
+case 162:
 #line 1850 "Gmsh.y"
-    {
+{
       if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){
 	Init_Mesh(THEM);
       }
+      else if(!strcmp(yyvsp[-1].c, "Physicals")){
+	List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
+	List_Reset(THEM->PhysicalGroups);
+      }
       else{
 	yymsg(GERROR, "Unknown command 'Delete %s'", yyvsp[-1].c);
       }
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 164:
-#line 1860 "Gmsh.y"
-    {
+    ;
+    break;}
+case 163:
+#line 1864 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){
 	for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){
 	  Post_View *v = *(Post_View **) List_Pointer(CTX.post.list, i);
@@ -5537,44 +4778,40 @@ yyreduce:
 	yymsg(GERROR, "Unknown command 'Delete %s %s'", yyvsp[-2].c, yyvsp[-1].c);
       }
       Free(yyvsp[-2].c); Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 165:
-#line 1879 "Gmsh.y"
-    {
+    ;
+    break;}
+case 164:
+#line 1883 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
 	List_Read(yyvsp[-1].l, i, &TheShape);
 	ColorShape(TheShape.Type, TheShape.Num, yyvsp[-3].u);
       }
       List_Delete(yyvsp[-1].l);      
-    ;}
-    break;
-
-  case 166:
-#line 1893 "Gmsh.y"
-    {
+    ;
+    break;}
+case 165:
+#line 1897 "Gmsh.y"
+{
       int m = (CTX.visibility_mode == 2) ? VIS_MESH : 
 	((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
       for(int i = 2; i < 6; i++)
 	SetVisibilityByNumber(yyvsp[-1].c, i, m);
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 167:
-#line 1901 "Gmsh.y"
-    {
+    ;
+    break;}
+case 166:
+#line 1905 "Gmsh.y"
+{
       for(int i = 2; i < 6; i++)
 	SetVisibilityByNumber(yyvsp[-1].c, i, 0);
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 168:
-#line 1907 "Gmsh.y"
-    {
+    ;
+    break;}
+case 167:
+#line 1911 "Gmsh.y"
+{
       int m = (CTX.visibility_mode == 2) ? VIS_MESH :
 	((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
@@ -5582,25 +4819,23 @@ yyreduce:
 	List_Read(yyvsp[-1].l, i, &TheShape);
 	VisibilityShape(TheShape.Type, TheShape.Num, m);
       }
-      List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 169:
-#line 1918 "Gmsh.y"
-    {
+      List_Delete(yyvsp[-1].l);
+    ;
+    break;}
+case 168:
+#line 1922 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
 	List_Read(yyvsp[-1].l, i, &TheShape);
 	VisibilityShape(TheShape.Type, TheShape.Num, 0);
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 170:
-#line 1932 "Gmsh.y"
-    {
+    ;
+    break;}
+case 169:
+#line 1936 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-2].c, "Include")){
 	char tmpstring[1024];
 	FixRelativePath(yyvsp[-1].c, tmpstring);
@@ -5642,12 +4877,11 @@ yyreduce:
 	yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c);
       }
       Free(yyvsp[-2].c); Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 171:
-#line 1976 "Gmsh.y"
-    {
+    ;
+    break;}
+case 170:
+#line 1980 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){
 	Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d);
 	if(vv){
@@ -5660,12 +4894,11 @@ yyreduce:
 	yymsg(GERROR, "Unknown command '%s'", yyvsp[-6].c);
       }
       Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 172:
-#line 1991 "Gmsh.y"
-    {
+    ;
+    break;}
+case 171:
+#line 1995 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-2].c, "Sleep")){
 	long sleep_time = GetTime();
 	while(1){
@@ -5679,12 +4912,11 @@ yyreduce:
 	yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c);
       }
       Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 173:
-#line 2007 "Gmsh.y"
-    {
+    ;
+    break;}
+case 172:
+#line 2011 "Gmsh.y"
+{
        try {
 	 GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0);
        }
@@ -5692,12 +4924,11 @@ yyreduce:
 	 yymsg(GERROR, "Unknown action '%s' or plugin '%s'", yyvsp[-1].c, yyvsp[-4].c);
        }
        Free(yyvsp[-4].c); Free(yyvsp[-1].c);
-     ;}
-    break;
-
-  case 174:
-#line 2017 "Gmsh.y"
-    {
+     ;
+    break;}
+case 173:
+#line 2021 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews"))
 	CombineViews(0, 1, CTX.post.combine_remove_orig);
       else if(!strcmp(yyvsp[-1].c, "ElementsFromVisibleViews"))
@@ -5717,43 +4948,38 @@ yyreduce:
       else
 	yymsg(GERROR, "Unknown 'Combine' command");
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 175:
-#line 2039 "Gmsh.y"
-    {
-      exit(0);
-    ;}
-    break;
-
-  case 176:
+    ;
+    break;}
+case 174:
 #line 2043 "Gmsh.y"
-    {
-      SetBoundingBox();
-    ;}
-    break;
-
-  case 177:
+{
+      exit(0);
+    ;
+    break;}
+case 175:
 #line 2047 "Gmsh.y"
-    {
-      SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
-    ;}
-    break;
-
-  case 178:
+{
+      SetBoundingBox();
+    ;
+    break;}
+case 176:
 #line 2051 "Gmsh.y"
-    {
+{
+      SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
+    ;
+    break;}
+case 177:
+#line 2055 "Gmsh.y"
+{
 #if defined(HAVE_FLTK)
       if(!CTX.batch) // we're in interactive mode
 	Draw();
 #endif
-    ;}
-    break;
-
-  case 179:
-#line 2064 "Gmsh.y"
-    {
+    ;
+    break;}
+case 178:
+#line 2068 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
       LoopControlVariablesTab[ImbricatedLoop][2] = 1.0;
@@ -5766,12 +4992,11 @@ yyreduce:
 	ImbricatedLoop = MAX_RECUR_LOOPS-1;
       }
       if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
-    ;}
-    break;
-
-  case 180:
-#line 2079 "Gmsh.y"
-    {
+    ;
+    break;}
+case 179:
+#line 2083 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d;
@@ -5785,12 +5010,11 @@ yyreduce:
       }
       if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d))
 	skip_until("For", "EndFor");
-    ;}
-    break;
-
-  case 181:
-#line 2095 "Gmsh.y"
-    {
+    ;
+    break;}
+case 180:
+#line 2099 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
       LoopControlVariablesTab[ImbricatedLoop][2] = 1.0;
@@ -5814,12 +5038,11 @@ yyreduce:
 	ImbricatedLoop = MAX_RECUR_LOOPS-1;
       }
       if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
-    ;}
-    break;
-
-  case 182:
-#line 2121 "Gmsh.y"
-    {
+    ;
+    break;}
+case 181:
+#line 2125 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d;
@@ -5844,12 +5067,11 @@ yyreduce:
       }
       if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d))
 	skip_until("For", "EndFor");
-    ;}
-    break;
-
-  case 183:
-#line 2148 "Gmsh.y"
-    {
+    ;
+    break;}
+case 182:
+#line 2152 "Gmsh.y"
+{
       if(ImbricatedLoop <= 0){
 	yymsg(GERROR, "Invalid For/EndFor loop");
 	ImbricatedLoop = 0;
@@ -5879,52 +5101,46 @@ yyreduce:
 	  ImbricatedLoop--;
 	}
       }
-    ;}
-    break;
-
-  case 184:
-#line 2180 "Gmsh.y"
-    {
+    ;
+    break;}
+case 183:
+#line 2184 "Gmsh.y"
+{
       if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno))
 	yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c);
       skip_until(NULL, "Return");
       //FIXME: wee leak $2
-    ;}
-    break;
-
-  case 185:
-#line 2187 "Gmsh.y"
-    {
+    ;
+    break;}
+case 184:
+#line 2191 "Gmsh.y"
+{
       if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno))
 	yymsg(GERROR, "Error while exiting function");
-    ;}
-    break;
-
-  case 186:
-#line 2192 "Gmsh.y"
-    {
+    ;
+    break;}
+case 185:
+#line 2196 "Gmsh.y"
+{
       if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno))
 	yymsg(GERROR, "Unknown function %s", yyvsp[-1].c);
       //FIXME: wee leak $2
-    ;}
-    break;
-
-  case 187:
-#line 2198 "Gmsh.y"
-    {
-      if(!yyvsp[-1].d) skip_until("If", "EndIf");
-    ;}
-    break;
-
-  case 188:
+    ;
+    break;}
+case 186:
 #line 2202 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 189:
-#line 2213 "Gmsh.y"
-    {
+{
+      if(!yyvsp[-1].d) skip_until("If", "EndIf");
+    ;
+    break;}
+case 187:
+#line 2206 "Gmsh.y"
+{
+    ;
+    break;}
+case 188:
+#line 2217 "Gmsh.y"
+{
       Curve *pc, *prc;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudePoint(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2],
@@ -5938,12 +5154,11 @@ yyreduce:
 	TheShape.Type = pc->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 190:
-#line 2229 "Gmsh.y"
-    {
+    ;
+    break;}
+case 189:
+#line 2233 "Gmsh.y"
+{
       Curve *pc, *prc;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudePoint(ROTATE, (int)yyvsp[-8].d, 0., 0., 0.,
@@ -5957,12 +5172,11 @@ yyreduce:
 	TheShape.Type = pc->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 191:
-#line 2245 "Gmsh.y"
-    {
+    ;
+    break;}
+case 190:
+#line 2249 "Gmsh.y"
+{
       Curve *pc, *prc;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudePoint(TRANSLATE_ROTATE, (int)yyvsp[-10].d, yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2],
@@ -5976,20 +5190,18 @@ yyreduce:
 	TheShape.Type = pc->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 192:
-#line 2261 "Gmsh.y"
-    {
+    ;
+    break;}
+case 191:
+#line 2265 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 193:
-#line 2266 "Gmsh.y"
-    {
+    ;
+    break;}
+case 192:
+#line 2270 "Gmsh.y"
+{
       Curve *pc, *prc;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudePoint(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2],
@@ -6003,20 +5215,18 @@ yyreduce:
 	TheShape.Type = pc->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 194:
-#line 2282 "Gmsh.y"
-    {
+    ;
+    break;}
+case 193:
+#line 2286 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 195:
-#line 2287 "Gmsh.y"
-    {
+    ;
+    break;}
+case 194:
+#line 2291 "Gmsh.y"
+{
       Curve *pc, *prc;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudePoint(ROTATE, (int)yyvsp[-12].d, 0., 0., 0.,
@@ -6030,20 +5240,18 @@ yyreduce:
 	TheShape.Type = pc->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 196:
-#line 2303 "Gmsh.y"
-    {
+    ;
+    break;}
+case 195:
+#line 2307 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 197:
-#line 2308 "Gmsh.y"
-    {
+    ;
+    break;}
+case 196:
+#line 2312 "Gmsh.y"
+{
       Curve *pc, *prc;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudePoint(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2],
@@ -6057,12 +5265,11 @@ yyreduce:
 	TheShape.Type = pc->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 198:
-#line 2326 "Gmsh.y"
-    {
+    ;
+    break;}
+case 197:
+#line 2330 "Gmsh.y"
+{
       Surface *ps;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeCurve(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2],
@@ -6083,12 +5290,11 @@ yyreduce:
 	TheShape.Type = ps->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 199:
-#line 2349 "Gmsh.y"
-    {
+    ;
+    break;}
+case 198:
+#line 2353 "Gmsh.y"
+{
       Surface *ps;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeCurve(ROTATE, (int)yyvsp[-8].d, 0., 0., 0.,
@@ -6109,12 +5315,11 @@ yyreduce:
 	TheShape.Type = ps->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 200:
-#line 2372 "Gmsh.y"
-    {
+    ;
+    break;}
+case 199:
+#line 2376 "Gmsh.y"
+{
       Surface *ps;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeCurve(TRANSLATE_ROTATE, (int)yyvsp[-10].d, yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2],
@@ -6135,20 +5340,18 @@ yyreduce:
 	TheShape.Type = ps->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 201:
-#line 2395 "Gmsh.y"
-    {
+    ;
+    break;}
+case 200:
+#line 2399 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 202:
-#line 2400 "Gmsh.y"
-    {
+    ;
+    break;}
+case 201:
+#line 2404 "Gmsh.y"
+{
       Surface *ps;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeCurve(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2],
@@ -6169,20 +5372,18 @@ yyreduce:
 	TheShape.Type = ps->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 203:
-#line 2423 "Gmsh.y"
-    {
+    ;
+    break;}
+case 202:
+#line 2427 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 204:
-#line 2428 "Gmsh.y"
-    {
+    ;
+    break;}
+case 203:
+#line 2432 "Gmsh.y"
+{
       Surface *ps;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeCurve(ROTATE, (int)yyvsp[-12].d, 0., 0., 0.,
@@ -6203,20 +5404,18 @@ yyreduce:
 	TheShape.Type = ps->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 205:
-#line 2451 "Gmsh.y"
-    {
+    ;
+    break;}
+case 204:
+#line 2455 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 206:
-#line 2456 "Gmsh.y"
-    {
+    ;
+    break;}
+case 205:
+#line 2460 "Gmsh.y"
+{
       Surface *ps;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeCurve(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2],
@@ -6237,12 +5436,11 @@ yyreduce:
 	TheShape.Type = ps->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 207:
-#line 2482 "Gmsh.y"
-    {
+    ;
+    break;}
+case 206:
+#line 2486 "Gmsh.y"
+{
       Volume *pv;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeSurface(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2],
@@ -6263,12 +5461,11 @@ yyreduce:
 	TheShape.Type = pv->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 208:
-#line 2505 "Gmsh.y"
-    {
+    ;
+    break;}
+case 207:
+#line 2509 "Gmsh.y"
+{
       Volume *pv;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeSurface(ROTATE, (int)yyvsp[-8].d, 0., 0., 0.,
@@ -6289,12 +5486,11 @@ yyreduce:
 	TheShape.Type = pv->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 209:
-#line 2528 "Gmsh.y"
-    {
+    ;
+    break;}
+case 208:
+#line 2532 "Gmsh.y"
+{
       Volume *pv;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeSurface(TRANSLATE_ROTATE, (int)yyvsp[-10].d, yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2],
@@ -6315,20 +5511,18 @@ yyreduce:
 	TheShape.Type = pv->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 210:
-#line 2551 "Gmsh.y"
-    {
+    ;
+    break;}
+case 209:
+#line 2555 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 211:
-#line 2556 "Gmsh.y"
-    {
+    ;
+    break;}
+case 210:
+#line 2560 "Gmsh.y"
+{
       Volume *pv;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeSurface(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2],
@@ -6349,20 +5543,18 @@ yyreduce:
 	TheShape.Type = pv->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 212:
-#line 2579 "Gmsh.y"
-    {
+    ;
+    break;}
+case 211:
+#line 2583 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 213:
-#line 2585 "Gmsh.y"
-    {
+    ;
+    break;}
+case 212:
+#line 2589 "Gmsh.y"
+{
       Volume *pv;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeSurface(ROTATE, (int)yyvsp[-12].d, 0., 0., 0.,
@@ -6383,20 +5575,18 @@ yyreduce:
 	TheShape.Type = pv->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 214:
-#line 2608 "Gmsh.y"
-    {
+    ;
+    break;}
+case 213:
+#line 2612 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    ;}
-    break;
-
-  case 215:
-#line 2614 "Gmsh.y"
-    {
+    ;
+    break;}
+case 214:
+#line 2618 "Gmsh.y"
+{
       Volume *pv;
       Shape TheShape;
       TheShape.Num = Extrude_ProtudeSurface(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2],
@@ -6417,24 +5607,21 @@ yyreduce:
 	TheShape.Type = pv->Typ;
 	List_Add(yyval.l, &TheShape);
       }
-    ;}
-    break;
-
-  case 216:
-#line 2640 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 217:
-#line 2643 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 218:
-#line 2649 "Gmsh.y"
-    {
+    ;
+    break;}
+case 215:
+#line 2644 "Gmsh.y"
+{
+    ;
+    break;}
+case 216:
+#line 2647 "Gmsh.y"
+{
+    ;
+    break;}
+case 217:
+#line 2653 "Gmsh.y"
+{
       double d;
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l);
@@ -6458,12 +5645,11 @@ yyreduce:
       List_Delete(yyvsp[-6].l);
       List_Delete(yyvsp[-4].l);
       List_Delete(yyvsp[-2].l);
-    ;}
-    break;
-
-  case 219:
-#line 2675 "Gmsh.y"
-    {
+    ;
+    break;}
+case 218:
+#line 2679 "Gmsh.y"
+{
       double d;
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = List_Nbr(yyvsp[-4].l);
@@ -6485,19 +5671,17 @@ yyreduce:
       }
       List_Delete(yyvsp[-4].l);
       List_Delete(yyvsp[-2].l);
-    ;}
-    break;
-
-  case 220:
-#line 2699 "Gmsh.y"
-    {
+    ;
+    break;}
+case 219:
+#line 2703 "Gmsh.y"
+{
       extr.mesh.Recombine = true;
-    ;}
-    break;
-
-  case 221:
-#line 2708 "Gmsh.y"
-    {
+    ;
+    break;}
+case 220:
+#line 2712 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
 	List_Read(yyvsp[-3].l, i, &d);
@@ -6513,12 +5697,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-3].l);
-    ;}
-    break;
-
-  case 222:
-#line 2726 "Gmsh.y"
-    {
+    ;
+    break;}
+case 221:
+#line 2730 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
 	List_Read(yyvsp[-6].l, i, &d);
@@ -6534,12 +5717,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-6].l);
-    ;}
-    break;
-
-  case 223:
-#line 2744 "Gmsh.y"
-    {
+    ;
+    break;}
+case 222:
+#line 2748 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
 	List_Read(yyvsp[-6].l, i, &d);
@@ -6555,12 +5737,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-6].l);
-    ;}
-    break;
-
-  case 224:
-#line 2762 "Gmsh.y"
-    {
+    ;
+    break;}
+case 223:
+#line 2766 "Gmsh.y"
+{
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
 	yymsg(WARNING, "Unknown surface %d", (int)yyvsp[-4].d);
@@ -6585,12 +5766,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 225:
-#line 2789 "Gmsh.y"
-    {
+    ;
+    break;}
+case 224:
+#line 2793 "Gmsh.y"
+{
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
 	yymsg(WARNING, "Unknown surface %d", (int)yyvsp[-4].d);
@@ -6614,12 +5794,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 226:
-#line 2815 "Gmsh.y"
-    {
+    ;
+    break;}
+case 225:
+#line 2819 "Gmsh.y"
+{
       Volume *v = FindVolume((int)yyvsp[-4].d, THEM);
       if(!v)
 	yymsg(WARNING, "Unknown volume %d", (int)yyvsp[-4].d);
@@ -6643,12 +5822,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 227:
-#line 2841 "Gmsh.y"
-    {
+    ;
+    break;}
+case 226:
+#line 2845 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
 	List_Read(yyvsp[-3].l, i, &d);
@@ -6660,12 +5838,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-3].l);
-    ;}
-    break;
-
-  case 228:
-#line 2855 "Gmsh.y"
-    {
+    ;
+    break;}
+case 227:
+#line 2859 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	double d;
 	List_Read(yyvsp[-1].l, i, &d);
@@ -6676,401 +5853,324 @@ yyreduce:
         }
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 229:
-#line 2874 "Gmsh.y"
-    { 
-      ReplaceAllDuplicates(THEM);
-    ;}
-    break;
-
-  case 230:
+    ;
+    break;}
+case 228:
 #line 2878 "Gmsh.y"
-    { 
+{ 
+      ReplaceAllDuplicates(THEM);
+    ;
+    break;}
+case 229:
+#line 2882 "Gmsh.y"
+{ 
       IntersectAllSegmentsTogether();
-    ;}
-    break;
-
-  case 231:
-#line 2887 "Gmsh.y"
-    {yyval.i = 1;;}
-    break;
-
-  case 232:
-#line 2888 "Gmsh.y"
-    {yyval.i = 0;;}
-    break;
-
-  case 233:
-#line 2889 "Gmsh.y"
-    {yyval.i = -1;;}
-    break;
-
-  case 234:
-#line 2890 "Gmsh.y"
-    {yyval.i = -1;;}
-    break;
-
-  case 235:
+    ;
+    break;}
+case 230:
 #line 2891 "Gmsh.y"
-    {yyval.i = -1;;}
-    break;
-
-  case 236:
+{yyval.i = 1;;
+    break;}
+case 231:
+#line 2892 "Gmsh.y"
+{yyval.i = 0;;
+    break;}
+case 232:
+#line 2893 "Gmsh.y"
+{yyval.i = -1;;
+    break;}
+case 233:
+#line 2894 "Gmsh.y"
+{yyval.i = -1;;
+    break;}
+case 234:
 #line 2895 "Gmsh.y"
-    { yyval.d = yyvsp[0].d;           ;}
-    break;
-
-  case 237:
-#line 2896 "Gmsh.y"
-    { yyval.d = yyvsp[-1].d;           ;}
-    break;
-
-  case 238:
-#line 2897 "Gmsh.y"
-    { yyval.d = -yyvsp[0].d;          ;}
-    break;
-
-  case 239:
-#line 2898 "Gmsh.y"
-    { yyval.d = yyvsp[0].d;           ;}
-    break;
-
-  case 240:
+{yyval.i = -1;;
+    break;}
+case 235:
 #line 2899 "Gmsh.y"
-    { yyval.d = !yyvsp[0].d;          ;}
-    break;
-
-  case 241:
+{ yyval.d = yyvsp[0].d;           ;
+    break;}
+case 236:
 #line 2900 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d - yyvsp[0].d;      ;}
-    break;
-
-  case 242:
+{ yyval.d = yyvsp[-1].d;           ;
+    break;}
+case 237:
 #line 2901 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d + yyvsp[0].d;      ;}
-    break;
-
-  case 243:
+{ yyval.d = -yyvsp[0].d;          ;
+    break;}
+case 238:
 #line 2902 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d * yyvsp[0].d;      ;}
-    break;
-
-  case 244:
+{ yyval.d = yyvsp[0].d;           ;
+    break;}
+case 239:
+#line 2903 "Gmsh.y"
+{ yyval.d = !yyvsp[0].d;          ;
+    break;}
+case 240:
 #line 2904 "Gmsh.y"
-    { 
+{ yyval.d = yyvsp[-2].d - yyvsp[0].d;      ;
+    break;}
+case 241:
+#line 2905 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d + yyvsp[0].d;      ;
+    break;}
+case 242:
+#line 2906 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d * yyvsp[0].d;      ;
+    break;}
+case 243:
+#line 2908 "Gmsh.y"
+{ 
       if(!yyvsp[0].d)
 	yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
       else
 	yyval.d = yyvsp[-2].d / yyvsp[0].d;     
-    ;}
-    break;
-
-  case 245:
-#line 2910 "Gmsh.y"
-    { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d;  ;}
-    break;
-
-  case 246:
-#line 2911 "Gmsh.y"
-    { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d);  ;}
-    break;
-
-  case 247:
-#line 2912 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d < yyvsp[0].d;      ;}
-    break;
-
-  case 248:
-#line 2913 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d > yyvsp[0].d;      ;}
-    break;
-
-  case 249:
+    ;
+    break;}
+case 244:
 #line 2914 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d <= yyvsp[0].d;     ;}
-    break;
-
-  case 250:
+{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d;  ;
+    break;}
+case 245:
 #line 2915 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d >= yyvsp[0].d;     ;}
-    break;
-
-  case 251:
+{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d);  ;
+    break;}
+case 246:
 #line 2916 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d == yyvsp[0].d;     ;}
-    break;
-
-  case 252:
+{ yyval.d = yyvsp[-2].d < yyvsp[0].d;      ;
+    break;}
+case 247:
 #line 2917 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d != yyvsp[0].d;     ;}
-    break;
-
-  case 253:
+{ yyval.d = yyvsp[-2].d > yyvsp[0].d;      ;
+    break;}
+case 248:
 #line 2918 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d && yyvsp[0].d;     ;}
-    break;
-
-  case 254:
+{ yyval.d = yyvsp[-2].d <= yyvsp[0].d;     ;
+    break;}
+case 249:
 #line 2919 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d || yyvsp[0].d;     ;}
-    break;
-
-  case 255:
+{ yyval.d = yyvsp[-2].d >= yyvsp[0].d;     ;
+    break;}
+case 250:
 #line 2920 "Gmsh.y"
-    { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d;  ;}
-    break;
-
-  case 256:
+{ yyval.d = yyvsp[-2].d == yyvsp[0].d;     ;
+    break;}
+case 251:
 #line 2921 "Gmsh.y"
-    { yyval.d = exp(yyvsp[-1].d);      ;}
-    break;
-
-  case 257:
+{ yyval.d = yyvsp[-2].d != yyvsp[0].d;     ;
+    break;}
+case 252:
 #line 2922 "Gmsh.y"
-    { yyval.d = log(yyvsp[-1].d);      ;}
-    break;
-
-  case 258:
+{ yyval.d = yyvsp[-2].d && yyvsp[0].d;     ;
+    break;}
+case 253:
 #line 2923 "Gmsh.y"
-    { yyval.d = log10(yyvsp[-1].d);    ;}
-    break;
-
-  case 259:
+{ yyval.d = yyvsp[-2].d || yyvsp[0].d;     ;
+    break;}
+case 254:
 #line 2924 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-1].d);     ;}
-    break;
-
-  case 260:
+{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d;  ;
+    break;}
+case 255:
 #line 2925 "Gmsh.y"
-    { yyval.d = sin(yyvsp[-1].d);      ;}
-    break;
-
-  case 261:
+{ yyval.d = exp(yyvsp[-1].d);      ;
+    break;}
+case 256:
 #line 2926 "Gmsh.y"
-    { yyval.d = asin(yyvsp[-1].d);     ;}
-    break;
-
-  case 262:
+{ yyval.d = log(yyvsp[-1].d);      ;
+    break;}
+case 257:
 #line 2927 "Gmsh.y"
-    { yyval.d = cos(yyvsp[-1].d);      ;}
-    break;
-
-  case 263:
+{ yyval.d = log10(yyvsp[-1].d);    ;
+    break;}
+case 258:
 #line 2928 "Gmsh.y"
-    { yyval.d = acos(yyvsp[-1].d);     ;}
-    break;
-
-  case 264:
+{ yyval.d = sqrt(yyvsp[-1].d);     ;
+    break;}
+case 259:
 #line 2929 "Gmsh.y"
-    { yyval.d = tan(yyvsp[-1].d);      ;}
-    break;
-
-  case 265:
+{ yyval.d = sin(yyvsp[-1].d);      ;
+    break;}
+case 260:
 #line 2930 "Gmsh.y"
-    { yyval.d = atan(yyvsp[-1].d);     ;}
-    break;
-
-  case 266:
+{ yyval.d = asin(yyvsp[-1].d);     ;
+    break;}
+case 261:
 #line 2931 "Gmsh.y"
-    { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;}
-    break;
-
-  case 267:
+{ yyval.d = cos(yyvsp[-1].d);      ;
+    break;}
+case 262:
 #line 2932 "Gmsh.y"
-    { yyval.d = sinh(yyvsp[-1].d);     ;}
-    break;
-
-  case 268:
+{ yyval.d = acos(yyvsp[-1].d);     ;
+    break;}
+case 263:
 #line 2933 "Gmsh.y"
-    { yyval.d = cosh(yyvsp[-1].d);     ;}
-    break;
-
-  case 269:
+{ yyval.d = tan(yyvsp[-1].d);      ;
+    break;}
+case 264:
 #line 2934 "Gmsh.y"
-    { yyval.d = tanh(yyvsp[-1].d);     ;}
-    break;
-
-  case 270:
+{ yyval.d = atan(yyvsp[-1].d);     ;
+    break;}
+case 265:
 #line 2935 "Gmsh.y"
-    { yyval.d = fabs(yyvsp[-1].d);     ;}
-    break;
-
-  case 271:
+{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
+    break;}
+case 266:
 #line 2936 "Gmsh.y"
-    { yyval.d = floor(yyvsp[-1].d);    ;}
-    break;
-
-  case 272:
+{ yyval.d = sinh(yyvsp[-1].d);     ;
+    break;}
+case 267:
 #line 2937 "Gmsh.y"
-    { yyval.d = ceil(yyvsp[-1].d);     ;}
-    break;
-
-  case 273:
+{ yyval.d = cosh(yyvsp[-1].d);     ;
+    break;}
+case 268:
 #line 2938 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;}
-    break;
-
-  case 274:
+{ yyval.d = tanh(yyvsp[-1].d);     ;
+    break;}
+case 269:
 #line 2939 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;}
-    break;
-
-  case 275:
+{ yyval.d = fabs(yyvsp[-1].d);     ;
+    break;}
+case 270:
 #line 2940 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;}
-    break;
-
-  case 276:
+{ yyval.d = floor(yyvsp[-1].d);    ;
+    break;}
+case 271:
 #line 2941 "Gmsh.y"
-    { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;}
-    break;
-
-  case 277:
+{ yyval.d = ceil(yyvsp[-1].d);     ;
+    break;}
+case 272:
+#line 2942 "Gmsh.y"
+{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
+    break;}
+case 273:
 #line 2943 "Gmsh.y"
-    { yyval.d = exp(yyvsp[-1].d);      ;}
-    break;
-
-  case 278:
+{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
+    break;}
+case 274:
 #line 2944 "Gmsh.y"
-    { yyval.d = log(yyvsp[-1].d);      ;}
-    break;
-
-  case 279:
+{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
+    break;}
+case 275:
 #line 2945 "Gmsh.y"
-    { yyval.d = log10(yyvsp[-1].d);    ;}
-    break;
-
-  case 280:
-#line 2946 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-1].d);     ;}
-    break;
-
-  case 281:
+{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
+    break;}
+case 276:
 #line 2947 "Gmsh.y"
-    { yyval.d = sin(yyvsp[-1].d);      ;}
-    break;
-
-  case 282:
+{ yyval.d = exp(yyvsp[-1].d);      ;
+    break;}
+case 277:
 #line 2948 "Gmsh.y"
-    { yyval.d = asin(yyvsp[-1].d);     ;}
-    break;
-
-  case 283:
+{ yyval.d = log(yyvsp[-1].d);      ;
+    break;}
+case 278:
 #line 2949 "Gmsh.y"
-    { yyval.d = cos(yyvsp[-1].d);      ;}
-    break;
-
-  case 284:
+{ yyval.d = log10(yyvsp[-1].d);    ;
+    break;}
+case 279:
 #line 2950 "Gmsh.y"
-    { yyval.d = acos(yyvsp[-1].d);     ;}
-    break;
-
-  case 285:
+{ yyval.d = sqrt(yyvsp[-1].d);     ;
+    break;}
+case 280:
 #line 2951 "Gmsh.y"
-    { yyval.d = tan(yyvsp[-1].d);      ;}
-    break;
-
-  case 286:
+{ yyval.d = sin(yyvsp[-1].d);      ;
+    break;}
+case 281:
 #line 2952 "Gmsh.y"
-    { yyval.d = atan(yyvsp[-1].d);     ;}
-    break;
-
-  case 287:
+{ yyval.d = asin(yyvsp[-1].d);     ;
+    break;}
+case 282:
 #line 2953 "Gmsh.y"
-    { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;}
-    break;
-
-  case 288:
+{ yyval.d = cos(yyvsp[-1].d);      ;
+    break;}
+case 283:
 #line 2954 "Gmsh.y"
-    { yyval.d = sinh(yyvsp[-1].d);     ;}
-    break;
-
-  case 289:
+{ yyval.d = acos(yyvsp[-1].d);     ;
+    break;}
+case 284:
 #line 2955 "Gmsh.y"
-    { yyval.d = cosh(yyvsp[-1].d);     ;}
-    break;
-
-  case 290:
+{ yyval.d = tan(yyvsp[-1].d);      ;
+    break;}
+case 285:
 #line 2956 "Gmsh.y"
-    { yyval.d = tanh(yyvsp[-1].d);     ;}
-    break;
-
-  case 291:
+{ yyval.d = atan(yyvsp[-1].d);     ;
+    break;}
+case 286:
 #line 2957 "Gmsh.y"
-    { yyval.d = fabs(yyvsp[-1].d);     ;}
-    break;
-
-  case 292:
+{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
+    break;}
+case 287:
 #line 2958 "Gmsh.y"
-    { yyval.d = floor(yyvsp[-1].d);    ;}
-    break;
-
-  case 293:
+{ yyval.d = sinh(yyvsp[-1].d);     ;
+    break;}
+case 288:
 #line 2959 "Gmsh.y"
-    { yyval.d = ceil(yyvsp[-1].d);     ;}
-    break;
-
-  case 294:
+{ yyval.d = cosh(yyvsp[-1].d);     ;
+    break;}
+case 289:
 #line 2960 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;}
-    break;
-
-  case 295:
+{ yyval.d = tanh(yyvsp[-1].d);     ;
+    break;}
+case 290:
 #line 2961 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;}
-    break;
-
-  case 296:
+{ yyval.d = fabs(yyvsp[-1].d);     ;
+    break;}
+case 291:
 #line 2962 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;}
-    break;
-
-  case 297:
+{ yyval.d = floor(yyvsp[-1].d);    ;
+    break;}
+case 292:
 #line 2963 "Gmsh.y"
-    { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;}
-    break;
-
-  case 298:
-#line 2972 "Gmsh.y"
-    { yyval.d = yyvsp[0].d; ;}
-    break;
-
-  case 299:
-#line 2973 "Gmsh.y"
-    { yyval.d = 3.141592653589793; ;}
-    break;
-
-  case 300:
-#line 2974 "Gmsh.y"
-    { yyval.d = ParUtil::Instance()->rank(); ;}
-    break;
-
-  case 301:
-#line 2975 "Gmsh.y"
-    { yyval.d = ParUtil::Instance()->size(); ;}
-    break;
-
-  case 302:
+{ yyval.d = ceil(yyvsp[-1].d);     ;
+    break;}
+case 293:
+#line 2964 "Gmsh.y"
+{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
+    break;}
+case 294:
+#line 2965 "Gmsh.y"
+{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
+    break;}
+case 295:
+#line 2966 "Gmsh.y"
+{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
+    break;}
+case 296:
+#line 2967 "Gmsh.y"
+{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
+    break;}
+case 297:
 #line 2976 "Gmsh.y"
-    { yyval.d = GMSH_MAJOR_VERSION; ;}
-    break;
-
-  case 303:
+{ yyval.d = yyvsp[0].d; ;
+    break;}
+case 298:
 #line 2977 "Gmsh.y"
-    { yyval.d = GMSH_MINOR_VERSION; ;}
-    break;
-
-  case 304:
+{ yyval.d = 3.141592653589793; ;
+    break;}
+case 299:
 #line 2978 "Gmsh.y"
-    { yyval.d = GMSH_PATCH_VERSION; ;}
-    break;
-
-  case 305:
-#line 2983 "Gmsh.y"
-    {
+{ yyval.d = ParUtil::Instance()->rank(); ;
+    break;}
+case 300:
+#line 2979 "Gmsh.y"
+{ yyval.d = ParUtil::Instance()->size(); ;
+    break;}
+case 301:
+#line 2980 "Gmsh.y"
+{ yyval.d = GMSH_MAJOR_VERSION; ;
+    break;}
+case 302:
+#line 2981 "Gmsh.y"
+{ yyval.d = GMSH_MINOR_VERSION; ;
+    break;}
+case 303:
+#line 2982 "Gmsh.y"
+{ yyval.d = GMSH_PATCH_VERSION; ;
+    break;}
+case 304:
+#line 2987 "Gmsh.y"
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[0].c;
       Symbol *pSymbol;
@@ -7081,12 +6181,11 @@ yyreduce:
       else
 	yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0);
       Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 306:
-#line 2996 "Gmsh.y"
-    {
+    ;
+    break;}
+case 305:
+#line 3000 "Gmsh.y"
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-3].c;
       Symbol *pSymbol;
@@ -7104,12 +6203,11 @@ yyreduce:
 	}
       }
       Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 307:
-#line 3016 "Gmsh.y"
-    {
+    ;
+    break;}
+case 306:
+#line 3020 "Gmsh.y"
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
       Symbol *pSymbol;
@@ -7121,12 +6219,11 @@ yyreduce:
 	yyval.d = List_Nbr(pSymbol->val);
       }
       Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 308:
-#line 3030 "Gmsh.y"
-    {
+    ;
+    break;}
+case 307:
+#line 3034 "Gmsh.y"
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-1].c;
       Symbol *pSymbol;
@@ -7137,12 +6234,11 @@ yyreduce:
       else
 	yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i);
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 309:
-#line 3043 "Gmsh.y"
-    {
+    ;
+    break;}
+case 308:
+#line 3047 "Gmsh.y"
+{
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-4].c;
       Symbol *pSymbol;
@@ -7160,12 +6256,11 @@ yyreduce:
 	}
       }
       Free(yyvsp[-4].c);
-    ;}
-    break;
-
-  case 310:
-#line 3066 "Gmsh.y"
-    {
+    ;
+    break;}
+case 309:
+#line 3070 "Gmsh.y"
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){
@@ -7181,12 +6276,11 @@ yyreduce:
 	  yyval.d = pNumOpt(0, GMSH_GET, 0);
       }
       Free(yyvsp[-2].c); Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 311:
-#line 3084 "Gmsh.y"
-    {
+    ;
+    break;}
+case 310:
+#line 3088 "Gmsh.y"
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){
@@ -7202,12 +6296,11 @@ yyreduce:
 	  yyval.d = pNumOpt((int)yyvsp[-3].d, GMSH_GET, 0);
       }
       Free(yyvsp[-5].c); Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 312:
-#line 3102 "Gmsh.y"
-    {
+    ;
+    break;}
+case 311:
+#line 3106 "Gmsh.y"
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){
@@ -7223,12 +6316,11 @@ yyreduce:
 	  yyval.d = pNumOpt(0, GMSH_SET|GMSH_GUI, pNumOpt(0, GMSH_GET, 0)+yyvsp[0].i);
       }
       Free(yyvsp[-3].c); Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 313:
-#line 3120 "Gmsh.y"
-    {
+    ;
+    break;}
+case 312:
+#line 3124 "Gmsh.y"
+{
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){
@@ -7244,185 +6336,160 @@ yyreduce:
 	  yyval.d = pNumOpt((int)yyvsp[-4].d, GMSH_SET|GMSH_GUI, pNumOpt((int)yyvsp[-4].d, GMSH_GET, 0)+yyvsp[0].i);
       }
       Free(yyvsp[-6].c); Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 314:
-#line 3138 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 313:
+#line 3142 "Gmsh.y"
+{ 
       yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d);
       Free(yyvsp[-3].c);
-    ;}
-    break;
-
-  case 315:
-#line 3146 "Gmsh.y"
-    {
-      memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double));
-    ;}
-    break;
-
-  case 316:
+    ;
+    break;}
+case 314:
 #line 3150 "Gmsh.y"
-    {
-      for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i];
-    ;}
-    break;
-
-  case 317:
+{
+      memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double));
+    ;
+    break;}
+case 315:
 #line 3154 "Gmsh.y"
-    { 
-      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i];
-    ;}
-    break;
-
-  case 318:
+{
+      for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i];
+    ;
+    break;}
+case 316:
 #line 3158 "Gmsh.y"
-    { 
-      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
-    ;}
-    break;
-
-  case 319:
+{ 
+      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i];
+    ;
+    break;}
+case 317:
 #line 3162 "Gmsh.y"
-    {
+{ 
+      for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
+    ;
+    break;}
+case 318:
+#line 3166 "Gmsh.y"
+{
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i];
-    ;}
-    break;
-
-  case 320:
-#line 3169 "Gmsh.y"
-    { 
-      yyval.v[0] = yyvsp[-9].d;  yyval.v[1] = yyvsp[-7].d;  yyval.v[2] = yyvsp[-5].d;  yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d;
-    ;}
-    break;
-
-  case 321:
+    ;
+    break;}
+case 319:
 #line 3173 "Gmsh.y"
-    { 
-      yyval.v[0] = yyvsp[-7].d;  yyval.v[1] = yyvsp[-5].d;  yyval.v[2] = yyvsp[-3].d;  yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0;
-    ;}
-    break;
-
-  case 322:
+{ 
+      yyval.v[0] = yyvsp[-9].d;  yyval.v[1] = yyvsp[-7].d;  yyval.v[2] = yyvsp[-5].d;  yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d;
+    ;
+    break;}
+case 320:
 #line 3177 "Gmsh.y"
-    {
-      yyval.v[0] = yyvsp[-5].d;  yyval.v[1] = yyvsp[-3].d;  yyval.v[2] = yyvsp[-1].d;  yyval.v[3] = 0.0; yyval.v[4] = 1.0;
-    ;}
-    break;
-
-  case 323:
+{ 
+      yyval.v[0] = yyvsp[-7].d;  yyval.v[1] = yyvsp[-5].d;  yyval.v[2] = yyvsp[-3].d;  yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0;
+    ;
+    break;}
+case 321:
 #line 3181 "Gmsh.y"
-    {
+{
       yyval.v[0] = yyvsp[-5].d;  yyval.v[1] = yyvsp[-3].d;  yyval.v[2] = yyvsp[-1].d;  yyval.v[3] = 0.0; yyval.v[4] = 1.0;
-    ;}
-    break;
-
-  case 324:
-#line 3188 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 325:
-#line 3191 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 326:
-#line 3197 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 327:
-#line 3200 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 328:
-#line 3206 "Gmsh.y"
-    {
-    ;}
-    break;
-
-  case 329:
-#line 3209 "Gmsh.y"
-    {
-       yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 330:
+    ;
+    break;}
+case 322:
+#line 3185 "Gmsh.y"
+{
+      yyval.v[0] = yyvsp[-5].d;  yyval.v[1] = yyvsp[-3].d;  yyval.v[2] = yyvsp[-1].d;  yyval.v[3] = 0.0; yyval.v[4] = 1.0;
+    ;
+    break;}
+case 323:
+#line 3192 "Gmsh.y"
+{
+    ;
+    break;}
+case 324:
+#line 3195 "Gmsh.y"
+{
+    ;
+    break;}
+case 325:
+#line 3201 "Gmsh.y"
+{
+    ;
+    break;}
+case 326:
+#line 3204 "Gmsh.y"
+{
+    ;
+    break;}
+case 327:
+#line 3210 "Gmsh.y"
+{
+    ;
+    break;}
+case 328:
 #line 3213 "Gmsh.y"
-    {
+{
        yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 331:
-#line 3220 "Gmsh.y"
-    {
+    ;
+    break;}
+case 329:
+#line 3217 "Gmsh.y"
+{
+       yyval.l = yyvsp[-1].l;
+    ;
+    break;}
+case 330:
+#line 3224 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(List_T*));
       List_Add(yyval.l, &(yyvsp[0].l));
-    ;}
-    break;
-
-  case 332:
-#line 3225 "Gmsh.y"
-    {
+    ;
+    break;}
+case 331:
+#line 3229 "Gmsh.y"
+{
       List_Add(yyval.l, &(yyvsp[0].l));
-    ;}
-    break;
-
-  case 333:
-#line 3233 "Gmsh.y"
-    {
+    ;
+    break;}
+case 332:
+#line 3237 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
-    ;}
-    break;
-
-  case 334:
-#line 3238 "Gmsh.y"
-    {
-      yyval.l = yyvsp[0].l;
-    ;}
-    break;
-
-  case 335:
+    ;
+    break;}
+case 333:
 #line 3242 "Gmsh.y"
-    {
-      yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 336:
+{
+      yyval.l = yyvsp[0].l;
+    ;
+    break;}
+case 334:
 #line 3246 "Gmsh.y"
-    {
+{
+      yyval.l = yyvsp[-1].l;
+    ;
+    break;}
+case 335:
+#line 3250 "Gmsh.y"
+{
       yyval.l = yyvsp[-1].l;
       double *pd;
       for(int i = 0; i < List_Nbr(yyval.l); i++){
 	pd = (double*)List_Pointer(yyval.l, i);
 	(*pd) = - (*pd);
       }
-    ;}
-    break;
-
-  case 337:
-#line 3258 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 336:
+#line 3262 "Gmsh.y"
+{ 
       yyval.l = List_Create(2, 1, sizeof(double)); 
       for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) 
 	List_Add(yyval.l, &d);
-    ;}
-    break;
-
-  case 338:
-#line 3264 "Gmsh.y"
-    {
+    ;
+    break;}
+case 337:
+#line 3268 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double)); 
       if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){
         yymsg(GERROR, "Wrong increment in '%g:%g:%g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d);
@@ -7431,12 +6498,11 @@ yyreduce:
       else
 	for(double d = yyvsp[-4].d; (yyvsp[0].d > 0) ? (d <= yyvsp[-2].d) : (d >= yyvsp[-2].d); d += yyvsp[0].d)
 	  List_Add(yyval.l, &d);
-   ;}
-    break;
-
-  case 339:
-#line 3275 "Gmsh.y"
-    {
+   ;
+    break;}
+case 338:
+#line 3279 "Gmsh.y"
+{
       // Returns the coordinates of a point and fills a list with it.
       // This allows to ensure e.g. that relative point positions are
       // always conserved
@@ -7454,12 +6520,11 @@ yyreduce:
 	List_Add(yyval.l, &v->Pos.Y);
 	List_Add(yyval.l, &v->Pos.Z);
       }
-    ;}
-    break;
-
-  case 340:
-#line 3295 "Gmsh.y"
-    {
+    ;
+    break;}
+case 339:
+#line 3299 "Gmsh.y"
+{
       yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double));
       for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
 	Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
@@ -7467,12 +6532,11 @@ yyreduce:
 	List_Add(yyval.l, &d);
       }
       List_Delete(yyvsp[0].l);
-    ;}
-    break;
-
-  case 341:
-#line 3305 "Gmsh.y"
-    {
+    ;
+    break;}
+case 340:
+#line 3309 "Gmsh.y"
+{
       yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double));
       for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
 	Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
@@ -7480,12 +6544,11 @@ yyreduce:
 	List_Add(yyval.l, &d);
       }
       List_Delete(yyvsp[0].l);
-    ;}
-    break;
-
-  case 342:
-#line 3315 "Gmsh.y"
-    {
+    ;
+    break;}
+case 341:
+#line 3319 "Gmsh.y"
+{
       // FIXME: The syntax for this is ugly: we get double semi-colons
       // at the end of the line
       yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double));
@@ -7495,12 +6558,11 @@ yyreduce:
 	List_Add(yyval.l, &d);
       }
       List_Delete(yyvsp[0].l);
-    ;}
-    break;
-
-  case 343:
-#line 3327 "Gmsh.y"
-    {
+    ;
+    break;}
+case 342:
+#line 3331 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
@@ -7515,12 +6577,11 @@ yyreduce:
 	  List_Add(yyval.l, (double*)List_Pointer_Fast(pSymbol->val, i));
       }
       Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 344:
-#line 3344 "Gmsh.y"
-    {
+    ;
+    break;}
+case 343:
+#line 3348 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
@@ -7537,12 +6598,11 @@ yyreduce:
 	}
       }
       Free(yyvsp[-2].c);
-    ;}
-    break;
-
-  case 345:
-#line 3363 "Gmsh.y"
-    {
+    ;
+    break;}
+case 344:
+#line 3367 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-5].c;
@@ -7564,12 +6624,11 @@ yyreduce:
       }
       Free(yyvsp[-5].c);
       List_Delete(yyvsp[-2].l);
-    ;}
-    break;
-
-  case 346:
-#line 3387 "Gmsh.y"
-    {
+    ;
+    break;}
+case 345:
+#line 3391 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-5].c;
@@ -7593,70 +6652,62 @@ yyreduce:
       }
       Free(yyvsp[-5].c);
       List_Delete(yyvsp[-2].l);
-    ;}
-    break;
-
-  case 347:
-#line 3416 "Gmsh.y"
-    {
+    ;
+    break;}
+case 346:
+#line 3420 "Gmsh.y"
+{
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
-    ;}
-    break;
-
-  case 348:
-#line 3421 "Gmsh.y"
-    {
-      yyval.l = yyvsp[0].l;
-    ;}
-    break;
-
-  case 349:
+    ;
+    break;}
+case 347:
 #line 3425 "Gmsh.y"
-    {
-      List_Add(yyval.l, &(yyvsp[0].d));
-    ;}
-    break;
-
-  case 350:
+{
+      yyval.l = yyvsp[0].l;
+    ;
+    break;}
+case 348:
 #line 3429 "Gmsh.y"
-    {
+{
+      List_Add(yyval.l, &(yyvsp[0].d));
+    ;
+    break;}
+case 349:
+#line 3433 "Gmsh.y"
+{
       for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
 	double d;
 	List_Read(yyvsp[0].l, i, &d);
 	List_Add(yyval.l, &d);
       }
       List_Delete(yyvsp[0].l);
-    ;}
-    break;
-
-  case 351:
-#line 3442 "Gmsh.y"
-    {
-      yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
-    ;}
-    break;
-
-  case 352:
+    ;
+    break;}
+case 350:
 #line 3446 "Gmsh.y"
-    {
+{
+      yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
+    ;
+    break;}
+case 351:
+#line 3450 "Gmsh.y"
+{
       yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
-    ;}
-    break;
-
-  case 353:
-#line 3458 "Gmsh.y"
-    {
+    ;
+    break;}
+case 352:
+#line 3462 "Gmsh.y"
+{
       int flag;
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
       if(flag) yymsg(GERROR, "Unknown color '%s'", yyvsp[0].c);
       Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 354:
-#line 3465 "Gmsh.y"
-    {
+    ;
+    break;}
+case 353:
+#line 3469 "Gmsh.y"
+{
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){
@@ -7673,19 +6724,17 @@ yyreduce:
 	}
       }
       Free(yyvsp[-4].c); Free(yyvsp[0].c);
-    ;}
-    break;
-
-  case 355:
-#line 3487 "Gmsh.y"
-    {
-      yyval.l = yyvsp[-1].l;
-    ;}
-    break;
-
-  case 356:
+    ;
+    break;}
+case 354:
 #line 3491 "Gmsh.y"
-    {
+{
+      yyval.l = yyvsp[-1].l;
+    ;
+    break;}
+case 355:
+#line 3495 "Gmsh.y"
+{
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d);
       if(!ct)
@@ -7695,56 +6744,50 @@ yyreduce:
 	  List_Add(yyval.l, &ct->table[i]);
       }
       Free(yyvsp[-5].c);
-    ;}
-    break;
-
-  case 357:
-#line 3506 "Gmsh.y"
-    {
+    ;
+    break;}
+case 356:
+#line 3510 "Gmsh.y"
+{
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       List_Add(yyval.l, &(yyvsp[0].u));
-    ;}
-    break;
-
-  case 358:
-#line 3511 "Gmsh.y"
-    {
+    ;
+    break;}
+case 357:
+#line 3515 "Gmsh.y"
+{
       List_Add(yyval.l, &(yyvsp[0].u));
-    ;}
-    break;
-
-  case 359:
-#line 3518 "Gmsh.y"
-    {
-      yyval.c = yyvsp[0].c;
-    ;}
-    break;
-
-  case 360:
+    ;
+    break;}
+case 358:
 #line 3522 "Gmsh.y"
-    {
+{
+      yyval.c = yyvsp[0].c;
+    ;
+    break;}
+case 359:
+#line 3526 "Gmsh.y"
+{
       yyval.c = (char *)Malloc(32*sizeof(char));
       time_t now;
       time(&now);
       strcpy(yyval.c, ctime(&now));
       yyval.c[strlen(yyval.c) - 1] = '\0';
-    ;}
-    break;
-
-  case 361:
-#line 3530 "Gmsh.y"
-    {
+    ;
+    break;}
+case 360:
+#line 3534 "Gmsh.y"
+{
       yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char));
       strcpy(yyval.c, yyvsp[-3].c);
       strcat(yyval.c, yyvsp[-1].c);
       Free(yyvsp[-3].c);
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 362:
-#line 3538 "Gmsh.y"
-    {
+    ;
+    break;}
+case 361:
+#line 3542 "Gmsh.y"
+{
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char));
       int i;
       for(i = strlen(yyvsp[-1].c)-1; i >= 0; i--){
@@ -7756,12 +6799,11 @@ yyreduce:
       }
       if(i <= 0) strcpy(yyval.c, yyvsp[-1].c);
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 363:
-#line 3552 "Gmsh.y"
-    {
+    ;
+    break;}
+case 362:
+#line 3556 "Gmsh.y"
+{
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char));
       int i;
       for(i = strlen(yyvsp[-1].c)-1; i >= 0; i--){
@@ -7773,19 +6815,17 @@ yyreduce:
       else
 	strcpy(yyval.c, &yyvsp[-1].c[i+1]);
       Free(yyvsp[-1].c);
-    ;}
-    break;
-
-  case 364:
-#line 3566 "Gmsh.y"
-    {
-      yyval.c = yyvsp[-1].c;
-    ;}
-    break;
-
-  case 365:
+    ;
+    break;}
+case 363:
 #line 3570 "Gmsh.y"
-    {
+{
+      yyval.c = yyvsp[-1].c;
+    ;
+    break;}
+case 364:
+#line 3574 "Gmsh.y"
+{
       char tmpstring[1024];
       int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring);
       if(i < 0){
@@ -7802,12 +6842,11 @@ yyreduce:
 	Free(yyvsp[-3].c);
       }
       List_Delete(yyvsp[-1].l);
-    ;}
-    break;
-
-  case 366:
-#line 3589 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 365:
+#line 3593 "Gmsh.y"
+{ 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-3].c))){
@@ -7827,12 +6866,11 @@ yyreduce:
 	  strcpy(yyval.c, str);
 	}
       }
-    ;}
-    break;
-
-  case 367:
-#line 3611 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 366:
+#line 3615 "Gmsh.y"
+{ 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-6].c))){
@@ -7852,224 +6890,231 @@ yyreduce:
 	  strcpy(yyval.c, str);
 	}
       }
-    ;}
-    break;
-
-
-    }
-
-/* Line 991 of yacc.c.  */
-#line 7862 "Gmsh.tab.cpp"
+    ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 543 "/usr/share/bison.simple"
 
   yyvsp -= yylen;
   yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
 
-
-  YY_STACK_PRINT (yyss, yyssp);
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
 
   *++yyvsp = yyval;
 
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
 
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTOKENS];
+    yystate = yydefgoto[yyn - YYNTBASE];
 
   goto yynewstate;
 
+yyerrlab:   /* here on detecting error */
 
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
     {
       ++yynerrs;
-#if YYERROR_VERBOSE
+
+#ifdef YYERROR_VERBOSE
       yyn = yypact[yystate];
 
-      if (YYPACT_NINF < yyn && yyn < YYLAST)
+      if (yyn > YYFLAG && yyn < YYLAST)
 	{
-	  YYSIZE_T yysize = 0;
-	  int yytype = YYTRANSLATE (yychar);
-	  char *yymsg;
-	  int yyx, yycount;
-
-	  yycount = 0;
-	  /* Start YYX at -YYN if negative to avoid negative indexes in
-	     YYCHECK.  */
-	  for (yyx = yyn < 0 ? -yyn : 0;
-	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-	  yysize += yystrlen ("syntax error, unexpected ") + 1;
-	  yysize += yystrlen (yytname[yytype]);
-	  yymsg = (char *) YYSTACK_ALLOC (yysize);
-	  if (yymsg != 0)
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
 	    {
-	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-	      yyp = yystpcpy (yyp, yytname[yytype]);
+	      strcpy(msg, "parse error");
 
-	      if (yycount < 5)
+	      if (count < 5)
 		{
-		  yycount = 0;
-		  for (yyx = yyn < 0 ? -yyn : 0;
-		       yyx < (int) (sizeof (yytname) / sizeof (char *));
-		       yyx++)
-		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
 		      {
-			const char *yyq = ! yycount ? ", expecting " : " or ";
-			yyp = yystpcpy (yyp, yyq);
-			yyp = yystpcpy (yyp, yytname[yyx]);
-			yycount++;
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
 		      }
 		}
-	      yyerror (yymsg);
-	      YYSTACK_FREE (yymsg);
+	      yyerror(msg);
+	      free(msg);
 	    }
 	  else
-	    yyerror ("syntax error; also virtual memory exhausted");
+	    yyerror ("parse error; also virtual memory exceeded");
 	}
       else
 #endif /* YYERROR_VERBOSE */
-	yyerror ("syntax error");
+	yyerror("parse error");
     }
 
-
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse lookahead token after an
-	 error, discard it.  */
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
 
-      /* Return failure if at end of input.  */
+      /* return failure if at end of input */
       if (yychar == YYEOF)
-        {
-	  /* Pop the error token.  */
-          YYPOPSTACK;
-	  /* Pop the rest of the stack.  */
-	  while (yyss < yyssp)
-	    {
-	      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-	      yydestruct (yystos[*yyssp], yyvsp);
-	      YYPOPSTACK;
-	    }
-	  YYABORT;
-        }
+	YYABORT;
 
-      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-      yydestruct (yytoken, &yylval);
-      yychar = YYEMPTY;
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
 
+      yychar = YYEMPTY;
     }
 
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab2;
-
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
 
-/*----------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action.  |
-`----------------------------------------------------*/
-yyerrlab1:
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
 
-  /* Suppress GCC warning that yyerrlab1 is unused when no action
-     invokes YYERROR.  */
-#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
-    && !defined __cplusplus
-  __attribute__ ((__unused__))
-#endif
+  goto yyerrhandle;
 
+yyerrdefault:  /* current state does not do anything special for the error token. */
 
-  goto yyerrlab2;
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
 
+yyerrpop:   /* pop the current state because it cannot handle the error token */
 
-/*---------------------------------------------------------------.
-| yyerrlab2 -- pop states until the error token can be shifted.  |
-`---------------------------------------------------------------*/
-yyerrlab2:
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
 
-  for (;;)
+#if YYDEBUG != 0
+  if (yydebug)
     {
-      yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
 
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-	YYABORT;
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
 
-      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-      yydestruct (yystos[yystate], yyvsp);
-      yyvsp--;
-      yystate = *--yyssp;
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
 
-      YY_STACK_PRINT (yyss, yyssp);
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
     }
+  else if (yyn == 0)
+    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  YYDPRINTF ((stderr, "Shifting error token, "));
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
 
   *++yyvsp = yylval;
-
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
 
   yystate = yyn;
   goto yynewstate;
 
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here.  |
-`----------------------------------------------*/
-yyoverflowlab:
-  yyerror ("parser stack overflow");
-  yyresult = 2;
-  /* Fall through.  */
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
 #endif
+    }
+  return 0;
 
-yyreturn:
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
 #endif
-  return yyresult;
+    }
+  return 1;
 }
-
-
-#line 3634 "Gmsh.y"
+#line 3638 "Gmsh.y"
 
 
 void DeleteSymbol(void *a, void *b){
@@ -8163,4 +7208,3 @@ void yymsg(int type, char *fmt, ...){
 
   if(type == GERROR) yyerrorstate++;
 }
-
diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp
index 85a77aa43915360cf754d5e70c7bd674bf9556ab..31ef5417bf4384090799d1263019b23d06f12db9 100644
--- a/Parser/Gmsh.tab.hpp
+++ b/Parser/Gmsh.tab.hpp
@@ -1,365 +1,4 @@
-/* A Bison parser, made by GNU Bison 1.875.  */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     tDOUBLE = 258,
-     tSTRING = 259,
-     tBIGSTR = 260,
-     tEND = 261,
-     tAFFECT = 262,
-     tDOTS = 263,
-     tPi = 264,
-     tMPI_Rank = 265,
-     tMPI_Size = 266,
-     tExp = 267,
-     tLog = 268,
-     tLog10 = 269,
-     tSqrt = 270,
-     tSin = 271,
-     tAsin = 272,
-     tCos = 273,
-     tAcos = 274,
-     tTan = 275,
-     tRand = 276,
-     tAtan = 277,
-     tAtan2 = 278,
-     tSinh = 279,
-     tCosh = 280,
-     tTanh = 281,
-     tFabs = 282,
-     tFloor = 283,
-     tCeil = 284,
-     tFmod = 285,
-     tModulo = 286,
-     tHypot = 287,
-     tPrintf = 288,
-     tSprintf = 289,
-     tStrCat = 290,
-     tStrPrefix = 291,
-     tStrRelative = 292,
-     tBoundingBox = 293,
-     tDraw = 294,
-     tToday = 295,
-     tPoint = 296,
-     tCircle = 297,
-     tEllipse = 298,
-     tLine = 299,
-     tSurface = 300,
-     tSpline = 301,
-     tVolume = 302,
-     tCharacteristic = 303,
-     tLength = 304,
-     tParametric = 305,
-     tElliptic = 306,
-     tPlane = 307,
-     tRuled = 308,
-     tTransfinite = 309,
-     tComplex = 310,
-     tPhysical = 311,
-     tUsing = 312,
-     tBump = 313,
-     tProgression = 314,
-     tPlugin = 315,
-     tRotate = 316,
-     tTranslate = 317,
-     tSymmetry = 318,
-     tDilate = 319,
-     tExtrude = 320,
-     tDuplicata = 321,
-     tLoop = 322,
-     tRecombine = 323,
-     tDelete = 324,
-     tCoherence = 325,
-     tIntersect = 326,
-     tAttractor = 327,
-     tLayers = 328,
-     tAlias = 329,
-     tAliasWithOptions = 330,
-     tText2D = 331,
-     tText3D = 332,
-     tInterpolationScheme = 333,
-     tTime = 334,
-     tCombine = 335,
-     tBSpline = 336,
-     tBezier = 337,
-     tNurbs = 338,
-     tOrder = 339,
-     tWith = 340,
-     tBounds = 341,
-     tKnots = 342,
-     tColor = 343,
-     tColorTable = 344,
-     tFor = 345,
-     tIn = 346,
-     tEndFor = 347,
-     tIf = 348,
-     tEndIf = 349,
-     tExit = 350,
-     tReturn = 351,
-     tCall = 352,
-     tFunction = 353,
-     tTrimmed = 354,
-     tShow = 355,
-     tHide = 356,
-     tGetValue = 357,
-     tGMSH_MAJOR_VERSION = 358,
-     tGMSH_MINOR_VERSION = 359,
-     tGMSH_PATCH_VERSION = 360,
-     tB_SPLINE_SURFACE_WITH_KNOTS = 361,
-     tB_SPLINE_CURVE_WITH_KNOTS = 362,
-     tCARTESIAN_POINT = 363,
-     tTRUE = 364,
-     tFALSE = 365,
-     tUNSPECIFIED = 366,
-     tU = 367,
-     tV = 368,
-     tEDGE_CURVE = 369,
-     tVERTEX_POINT = 370,
-     tORIENTED_EDGE = 371,
-     tPLANE = 372,
-     tFACE_OUTER_BOUND = 373,
-     tEDGE_LOOP = 374,
-     tADVANCED_FACE = 375,
-     tVECTOR = 376,
-     tDIRECTION = 377,
-     tAXIS2_PLACEMENT_3D = 378,
-     tISO = 379,
-     tENDISO = 380,
-     tENDSEC = 381,
-     tDATA = 382,
-     tHEADER = 383,
-     tFILE_DESCRIPTION = 384,
-     tFILE_SCHEMA = 385,
-     tFILE_NAME = 386,
-     tMANIFOLD_SOLID_BREP = 387,
-     tCLOSED_SHELL = 388,
-     tADVANCED_BREP_SHAPE_REPRESENTATION = 389,
-     tFACE_BOUND = 390,
-     tCYLINDRICAL_SURFACE = 391,
-     tCONICAL_SURFACE = 392,
-     tCIRCLE = 393,
-     tTRIMMED_CURVE = 394,
-     tGEOMETRIC_SET = 395,
-     tCOMPOSITE_CURVE_SEGMENT = 396,
-     tCONTINUOUS = 397,
-     tCOMPOSITE_CURVE = 398,
-     tTOROIDAL_SURFACE = 399,
-     tPRODUCT_DEFINITION = 400,
-     tPRODUCT_DEFINITION_SHAPE = 401,
-     tSHAPE_DEFINITION_REPRESENTATION = 402,
-     tELLIPSE = 403,
-     tAFFECTDIVIDE = 404,
-     tAFFECTTIMES = 405,
-     tAFFECTMINUS = 406,
-     tAFFECTPLUS = 407,
-     tOR = 408,
-     tAND = 409,
-     tAPPROXEQUAL = 410,
-     tNOTEQUAL = 411,
-     tEQUAL = 412,
-     tGREATEROREQUAL = 413,
-     tLESSOREQUAL = 414,
-     tCROSSPRODUCT = 415,
-     UNARYPREC = 416,
-     tMINUSMINUS = 417,
-     tPLUSPLUS = 418
-   };
-#endif
-#define tDOUBLE 258
-#define tSTRING 259
-#define tBIGSTR 260
-#define tEND 261
-#define tAFFECT 262
-#define tDOTS 263
-#define tPi 264
-#define tMPI_Rank 265
-#define tMPI_Size 266
-#define tExp 267
-#define tLog 268
-#define tLog10 269
-#define tSqrt 270
-#define tSin 271
-#define tAsin 272
-#define tCos 273
-#define tAcos 274
-#define tTan 275
-#define tRand 276
-#define tAtan 277
-#define tAtan2 278
-#define tSinh 279
-#define tCosh 280
-#define tTanh 281
-#define tFabs 282
-#define tFloor 283
-#define tCeil 284
-#define tFmod 285
-#define tModulo 286
-#define tHypot 287
-#define tPrintf 288
-#define tSprintf 289
-#define tStrCat 290
-#define tStrPrefix 291
-#define tStrRelative 292
-#define tBoundingBox 293
-#define tDraw 294
-#define tToday 295
-#define tPoint 296
-#define tCircle 297
-#define tEllipse 298
-#define tLine 299
-#define tSurface 300
-#define tSpline 301
-#define tVolume 302
-#define tCharacteristic 303
-#define tLength 304
-#define tParametric 305
-#define tElliptic 306
-#define tPlane 307
-#define tRuled 308
-#define tTransfinite 309
-#define tComplex 310
-#define tPhysical 311
-#define tUsing 312
-#define tBump 313
-#define tProgression 314
-#define tPlugin 315
-#define tRotate 316
-#define tTranslate 317
-#define tSymmetry 318
-#define tDilate 319
-#define tExtrude 320
-#define tDuplicata 321
-#define tLoop 322
-#define tRecombine 323
-#define tDelete 324
-#define tCoherence 325
-#define tIntersect 326
-#define tAttractor 327
-#define tLayers 328
-#define tAlias 329
-#define tAliasWithOptions 330
-#define tText2D 331
-#define tText3D 332
-#define tInterpolationScheme 333
-#define tTime 334
-#define tCombine 335
-#define tBSpline 336
-#define tBezier 337
-#define tNurbs 338
-#define tOrder 339
-#define tWith 340
-#define tBounds 341
-#define tKnots 342
-#define tColor 343
-#define tColorTable 344
-#define tFor 345
-#define tIn 346
-#define tEndFor 347
-#define tIf 348
-#define tEndIf 349
-#define tExit 350
-#define tReturn 351
-#define tCall 352
-#define tFunction 353
-#define tTrimmed 354
-#define tShow 355
-#define tHide 356
-#define tGetValue 357
-#define tGMSH_MAJOR_VERSION 358
-#define tGMSH_MINOR_VERSION 359
-#define tGMSH_PATCH_VERSION 360
-#define tB_SPLINE_SURFACE_WITH_KNOTS 361
-#define tB_SPLINE_CURVE_WITH_KNOTS 362
-#define tCARTESIAN_POINT 363
-#define tTRUE 364
-#define tFALSE 365
-#define tUNSPECIFIED 366
-#define tU 367
-#define tV 368
-#define tEDGE_CURVE 369
-#define tVERTEX_POINT 370
-#define tORIENTED_EDGE 371
-#define tPLANE 372
-#define tFACE_OUTER_BOUND 373
-#define tEDGE_LOOP 374
-#define tADVANCED_FACE 375
-#define tVECTOR 376
-#define tDIRECTION 377
-#define tAXIS2_PLACEMENT_3D 378
-#define tISO 379
-#define tENDISO 380
-#define tENDSEC 381
-#define tDATA 382
-#define tHEADER 383
-#define tFILE_DESCRIPTION 384
-#define tFILE_SCHEMA 385
-#define tFILE_NAME 386
-#define tMANIFOLD_SOLID_BREP 387
-#define tCLOSED_SHELL 388
-#define tADVANCED_BREP_SHAPE_REPRESENTATION 389
-#define tFACE_BOUND 390
-#define tCYLINDRICAL_SURFACE 391
-#define tCONICAL_SURFACE 392
-#define tCIRCLE 393
-#define tTRIMMED_CURVE 394
-#define tGEOMETRIC_SET 395
-#define tCOMPOSITE_CURVE_SEGMENT 396
-#define tCONTINUOUS 397
-#define tCOMPOSITE_CURVE 398
-#define tTOROIDAL_SURFACE 399
-#define tPRODUCT_DEFINITION 400
-#define tPRODUCT_DEFINITION_SHAPE 401
-#define tSHAPE_DEFINITION_REPRESENTATION 402
-#define tELLIPSE 403
-#define tAFFECTDIVIDE 404
-#define tAFFECTTIMES 405
-#define tAFFECTMINUS 406
-#define tAFFECTPLUS 407
-#define tOR 408
-#define tAND 409
-#define tAPPROXEQUAL 410
-#define tNOTEQUAL 411
-#define tEQUAL 412
-#define tGREATEROREQUAL 413
-#define tLESSOREQUAL 414
-#define tCROSSPRODUCT 415
-#define UNARYPREC 416
-#define tMINUSMINUS 417
-#define tPLUSPLUS 418
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 79 "Gmsh.y"
-typedef union YYSTYPE {
+typedef union {
   char *c;
   int i;
   unsigned int u;
@@ -368,14 +7,167 @@ typedef union YYSTYPE {
   Shape s;
   List_T *l;
 } YYSTYPE;
-/* Line 1249 of yacc.c.  */
-#line 372 "Gmsh.tab.hpp"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
+#define	tDOUBLE	257
+#define	tSTRING	258
+#define	tBIGSTR	259
+#define	tEND	260
+#define	tAFFECT	261
+#define	tDOTS	262
+#define	tPi	263
+#define	tMPI_Rank	264
+#define	tMPI_Size	265
+#define	tExp	266
+#define	tLog	267
+#define	tLog10	268
+#define	tSqrt	269
+#define	tSin	270
+#define	tAsin	271
+#define	tCos	272
+#define	tAcos	273
+#define	tTan	274
+#define	tRand	275
+#define	tAtan	276
+#define	tAtan2	277
+#define	tSinh	278
+#define	tCosh	279
+#define	tTanh	280
+#define	tFabs	281
+#define	tFloor	282
+#define	tCeil	283
+#define	tFmod	284
+#define	tModulo	285
+#define	tHypot	286
+#define	tPrintf	287
+#define	tSprintf	288
+#define	tStrCat	289
+#define	tStrPrefix	290
+#define	tStrRelative	291
+#define	tBoundingBox	292
+#define	tDraw	293
+#define	tToday	294
+#define	tPoint	295
+#define	tCircle	296
+#define	tEllipse	297
+#define	tLine	298
+#define	tSurface	299
+#define	tSpline	300
+#define	tVolume	301
+#define	tCharacteristic	302
+#define	tLength	303
+#define	tParametric	304
+#define	tElliptic	305
+#define	tPlane	306
+#define	tRuled	307
+#define	tTransfinite	308
+#define	tComplex	309
+#define	tPhysical	310
+#define	tUsing	311
+#define	tBump	312
+#define	tProgression	313
+#define	tPlugin	314
+#define	tRotate	315
+#define	tTranslate	316
+#define	tSymmetry	317
+#define	tDilate	318
+#define	tExtrude	319
+#define	tDuplicata	320
+#define	tLoop	321
+#define	tRecombine	322
+#define	tDelete	323
+#define	tCoherence	324
+#define	tIntersect	325
+#define	tAttractor	326
+#define	tLayers	327
+#define	tAlias	328
+#define	tAliasWithOptions	329
+#define	tText2D	330
+#define	tText3D	331
+#define	tInterpolationScheme	332
+#define	tTime	333
+#define	tCombine	334
+#define	tBSpline	335
+#define	tBezier	336
+#define	tNurbs	337
+#define	tOrder	338
+#define	tWith	339
+#define	tBounds	340
+#define	tKnots	341
+#define	tColor	342
+#define	tColorTable	343
+#define	tFor	344
+#define	tIn	345
+#define	tEndFor	346
+#define	tIf	347
+#define	tEndIf	348
+#define	tExit	349
+#define	tReturn	350
+#define	tCall	351
+#define	tFunction	352
+#define	tTrimmed	353
+#define	tShow	354
+#define	tHide	355
+#define	tGetValue	356
+#define	tGMSH_MAJOR_VERSION	357
+#define	tGMSH_MINOR_VERSION	358
+#define	tGMSH_PATCH_VERSION	359
+#define	tB_SPLINE_SURFACE_WITH_KNOTS	360
+#define	tB_SPLINE_CURVE_WITH_KNOTS	361
+#define	tCARTESIAN_POINT	362
+#define	tTRUE	363
+#define	tFALSE	364
+#define	tUNSPECIFIED	365
+#define	tU	366
+#define	tV	367
+#define	tEDGE_CURVE	368
+#define	tVERTEX_POINT	369
+#define	tORIENTED_EDGE	370
+#define	tPLANE	371
+#define	tFACE_OUTER_BOUND	372
+#define	tEDGE_LOOP	373
+#define	tADVANCED_FACE	374
+#define	tVECTOR	375
+#define	tDIRECTION	376
+#define	tAXIS2_PLACEMENT_3D	377
+#define	tISO	378
+#define	tENDISO	379
+#define	tENDSEC	380
+#define	tDATA	381
+#define	tHEADER	382
+#define	tFILE_DESCRIPTION	383
+#define	tFILE_SCHEMA	384
+#define	tFILE_NAME	385
+#define	tMANIFOLD_SOLID_BREP	386
+#define	tCLOSED_SHELL	387
+#define	tADVANCED_BREP_SHAPE_REPRESENTATION	388
+#define	tFACE_BOUND	389
+#define	tCYLINDRICAL_SURFACE	390
+#define	tCONICAL_SURFACE	391
+#define	tCIRCLE	392
+#define	tTRIMMED_CURVE	393
+#define	tGEOMETRIC_SET	394
+#define	tCOMPOSITE_CURVE_SEGMENT	395
+#define	tCONTINUOUS	396
+#define	tCOMPOSITE_CURVE	397
+#define	tTOROIDAL_SURFACE	398
+#define	tPRODUCT_DEFINITION	399
+#define	tPRODUCT_DEFINITION_SHAPE	400
+#define	tSHAPE_DEFINITION_REPRESENTATION	401
+#define	tELLIPSE	402
+#define	tAFFECTPLUS	403
+#define	tAFFECTMINUS	404
+#define	tAFFECTTIMES	405
+#define	tAFFECTDIVIDE	406
+#define	tOR	407
+#define	tAND	408
+#define	tEQUAL	409
+#define	tNOTEQUAL	410
+#define	tAPPROXEQUAL	411
+#define	tLESSOREQUAL	412
+#define	tGREATEROREQUAL	413
+#define	tCROSSPRODUCT	414
+#define	tPLUSPLUS	415
+#define	tMINUSMINUS	416
+#define	UNARYPREC	417
 
 
+extern YYSTYPE yylval;
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 9378dad6920467c9ba9e5de0778ad9a6d44ff999..8152910089531adba8735fef80b3547cd4e54e99 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// $Id: Gmsh.y,v 1.207 2005-04-19 16:03:15 remacle Exp $
+// $Id: Gmsh.y,v 1.208 2005-06-10 20:59:18 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -1851,6 +1851,10 @@ Delete :
       if(!strcmp($2, "Meshes") || !strcmp($2, "All")){
 	Init_Mesh(THEM);
       }
+      else if(!strcmp($2, "Physicals")){
+	List_Action(THEM->PhysicalGroups, Free_PhysicalGroup);
+	List_Reset(THEM->PhysicalGroups);
+      }
       else{
 	yymsg(GERROR, "Unknown command 'Delete %s'", $2);
       }
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index ff541eef8304a1374dd63a43e5ff2b61c30b31d8..e97d862e67d64733b3192ae6f3b1597790aeded2 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -2,7 +2,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.236 2005-04-19 16:03:15 remacle Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.237 2005-06-10 20:59:18 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -1026,7 +1026,7 @@ char *yytext;
 #line 1 "Gmsh.l"
 #define INITIAL 0
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.236 2005-04-19 16:03:15 remacle Exp $
+// $Id: Gmsh.yy.cpp,v 1.237 2005-06-10 20:59:18 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
diff --git a/benchmarks/2d/discrete_curve.geo b/benchmarks/2d/discrete_curve.geo
deleted file mode 100644
index 2beee96849e07661b422997e1174b13e5762be5f..0000000000000000000000000000000000000000
--- a/benchmarks/2d/discrete_curve.geo
+++ /dev/null
@@ -1,108 +0,0 @@
-Discrete Line (1) = {12}
-{
-  0,0,0,
-  0.008666908357418674,0,0,
-  0.01741059051494093,0,0,
-  0.02623968793850377,0,0,
-  0.03515556989052919,0,0,
-  0.04415202866465823,0,0,
-  0.0532426446041934,0,0,
-  0.0624120060694025,0,0,
-  0.07167921785688836,0,0,
-  0.0810265391141614,0,0,
-  0.09047240713174502,0,0,
-  0.1,0,0
-};
-Discrete Line (2) = {34}
-{
-  0.1,0.3,0,
-  0.1,0.2909090909090913,0,
-  0.1,0.2818181818181826,0,
-  0.1,0.272727272727274,0,
-  0.1,0.2636363636363653,0,
-  0.1,0.2545454545454566,0,
-  0.1,0.245454545454548,0,
-  0.1,0.2363636363636393,0,
-  0.1,0.2272727272727306,0,
-  0.1,0.2181818181818216,0,
-  0.1,0.2090909090909125,0,
-  0.1,0.2000000000000035,0,
-  0.1,0.1909090909090944,0,
-  0.1,0.1818181818181853,0,
-  0.1,0.1727272727272762,0,
-  0.1,0.1636363636363671,0,
-  0.1,0.154545454545458,0,
-  0.1,0.1454545454545489,0,
-  0.1,0.1363636363636398,0,
-  0.1,0.1272727272727307,0,
-  0.1,0.1181818181818216,0,
-  0.1,0.1090909090909125,0,
-  0.1,0.1000000000000034,0,
-  0.1,0.09090909090909433,0,
-  0.1,0.08181818181818527,0,
-  0.1,0.07272727272727605,0,
-  0.1,0.06363636363636654,0,
-  0.1,0.05454545454545703,0,
-  0.1,0.04545454545454754,0,
-  0.1,0.03636363636363803,0,
-  0.1,0.02727272727272851,0,
-  0.1,0.018181818181819,0,
-  0.1,0.009090909090909483,0,
-  0.1,0,0
-};
-Discrete Line (3) = {12}
-{
-  0.1,0.3,0,
-  0.09090909090909115,0.3,0,
-  0.0818181818181823,0.3,0,
-  0.07272727272727345,0.3,0,
-  0.06363636363636459,0.3,0,
-  0.05454545454545573,0.3,0,
-  0.0454545454545468,0.3,0,
-  0.03636363636363778,0.3,0,
-  0.02727272727272877,0.3,0,
-  0.01818181818181929,0.3,0,
-  0.009090909090909639,0.3,0,
-  0,0.3,0
-};
-Discrete Line (4) = {36}
-{
-  0,0.3,0,
-  0,0.2909973636414624,0,
-  0,0.2819947272829249,0,
-  0.01,0.2730438656697747,0,
-  0.02,0.2640976732852516,0,
-  0.01,0.2551978447229378,0,
-  0.02,0.2463080963195167,0,
-  0.03,0.2374585496946034,0,
-  0.06,0.2286252452795079,0,
-  0.04,0.219825219879103,0,
-  0.02,0.2110483594596965,0,
-  0.01,0.2022970847862346,0,
-  0,0.1935766683700231,0,
-  0,0.1848733639512526,0,
-  0,0.176209391545889,0,
-  0,0.167553266739908,0,
-  0,0.1589457383531955,0,
-  0,0.1503382099664829,0,
-  0,0.1417849077882686,0,
-  0,0.1332338234281653,0,
-  0,0.1247260882725001,0,
-  0,0.1162314479471221,0,
-  0,0.1077605053582608,0,
-  0,0.09932087161239131,0,
-  0,0.09090627422926471,0,
-  0,0.08251660763823583,0,
-  0,0.07415176555653609,0,
-  0,0.06581227474114783,0,
-  0,0.05750037195565337,0,
-  0,0.04921307894911468,0,
-  0,0.04095028725862424,0,
-  0,0.03271188767963543,0,
-  0,0.0244977702583297,0,
-  0,0.01630782428387874,0,
-  0,0.008141938280599425,0,
-  0,0,0
-};
-Line Loop(1) = {4,1,-2,3};
-Plane Surface(1) = {1};
diff --git a/benchmarks/extrude/discrete.geo b/benchmarks/extrude/discrete.geo
deleted file mode 100644
index 6e81a8ede6c7d380aed181bc84e661738b5d1177..0000000000000000000000000000000000000000
--- a/benchmarks/extrude/discrete.geo
+++ /dev/null
@@ -1,1367 +0,0 @@
-
-//This only defines the topology, not the actual geometry
-Point(1) = {0, 0, 0, 1};
-Point(2) = {.1, 0,  0, 1} ;
-Point(3) = {.1, .3, 0, 1} ;
-Point(4) = {0,  .3, 0, 1} ;
-Line(1) = {1,2} ;
-Line(2) = {3,2} ;
-Line(3) = {3,4} ;
-Line(4) = {4,1} ;
-Line Loop(6) = {1,-2,3,4};
-Plane Surface(6) = {6};
-
-
-Discrete Line {1} = {12}
-{
-  0,0,0,
-  0.008666908357418674,0,0,
-  0.01741059051494093,0,0,
-    0.02623968793850377,        -0.01,0, // special!!
-  0.03515556989052919,0,0,
-  0.04415202866465823,0,0,
-  0.0532426446041934,0,0,
-  0.0624120060694025,0,0,
-  0.07167921785688836,0,0,
-  0.0810265391141614,0,0,
-  0.09047240713174502,0,0,
-  0.1,0,0
-};
-Discrete Line {2} = {34}
-{
-  0.1,0.3,0,
-  0.1,0.2909090909090913,0,
-  0.1,0.2818181818181826,0,
-  0.1,0.272727272727274,0,
-  0.1,0.2636363636363653,0,
-  0.1,0.2545454545454566,0,
-  0.1,0.245454545454548,0,
-  0.1,0.2363636363636393,0,
-  0.1,0.2272727272727306,0,
-  0.1,0.2181818181818216,0,
-  0.1,0.2090909090909125,0,
-  0.1,0.2000000000000035,0,
-  0.1,0.1909090909090944,0,
-  0.1,0.1818181818181853,0,
-  0.1,0.1727272727272762,0,
-  0.1,0.1636363636363671,0,
-  0.1,0.154545454545458,0,
-  0.1,0.1454545454545489,0,
-  0.1,0.1363636363636398,0,
-  0.1,0.1272727272727307,0,
-  0.1,0.1181818181818216,0,
-  0.1,0.1090909090909125,0,
-  0.1,0.1000000000000034,0,
-  0.1,0.09090909090909433,0,
-  0.1,0.08181818181818527,0,
-  0.1,0.07272727272727605,0,
-  0.1,0.06363636363636654,0,
-  0.1,0.05454545454545703,0,
-  0.1,0.04545454545454754,0,
-  0.1,0.03636363636363803,0,
-  0.1,0.02727272727272851,0,
-  0.1,0.018181818181819,0,
-  0.1,0.009090909090909483,0,
-  0.1,0,0
-};
-Discrete Line {3} = {12}
-{
-  0.1,0.3,0,
-  0.09090909090909115,0.3,0,
-  0.0818181818181823,0.3,0,
-  0.07272727272727345,0.3,0,
-  0.06363636363636459,0.3,0,
-  0.05454545454545573,0.3,0,
-  0.0454545454545468,0.3,0,
-  0.03636363636363778,0.3,0,
-  0.02727272727272877,0.3,0,
-  0.01818181818181929,0.3,0,
-  0.009090909090909639,0.3,0,
-  0,0.3,0
-};
-Discrete Line {4} = {36}
-{
-  0,0.3,0,
-  0,0.2909973636414624,0,
-  0,0.2819947272829249,0,
-  0,0.2730438656697747,0,
-  0,0.2640976732852516,0,
-  0,0.2551978447229378,0,
-  0,0.2463080963195167,0,
-  0,0.2374585496946034,0,
-  0,0.2286252452795079,0,
-  0,0.219825219879103,0,
-  0,0.2110483594596965,0,
-  0,0.2022970847862346,0,
-  0,0.1935766683700231,0,
-  0,0.1848733639512526,0,
-  0,0.176209391545889,0,
-  0,0.167553266739908,0,
-  0,0.1589457383531955,0,
-  0,0.1503382099664829,0,
-  0,0.1417849077882686,0,
-  0,0.1332338234281653,0,
-  0,0.1247260882725001,0,
-  0,0.1162314479471221,0,
-  0,0.1077605053582608,0,
-  0,0.09932087161239131,0,
-  0,0.09090627422926471,0,
-  0,0.08251660763823583,0,
-  0,0.07415176555653609,0,
-  0,0.06581227474114783,0,
-  0,0.05750037195565337,0,
-  0,0.04921307894911468,0,
-  0,0.04095028725862424,0,
-  0,0.03271188767963543,0,
-  0,0.0244977702583297,0,
-  0,0.01630782428387874,0,
-  0,0.008141938280599425,0,
-  0,0,0
-};
-
-Discrete Surface {6} = {444, 796}
-{
-  0,0,0, 0,0,1,
-  0.1,0,0, 0,0,1,
-  0.1,0.3,0, 0,0,1,
-  0,0.3,0, 0,0,1,
-  0.008666908357418674,0,0, 0,0,1,
-  0.01741059051494093,0,0, 0,0,1,
-    0.02623968793850377,             -0.01,0, 0,0,1, // special!!
-  0.03515556989052919,0,0, 0,0,1,
-  0.04415202866465823,0,0, 0,0,1,
-  0.0532426446041934,0,0, 0,0,1,
-  0.0624120060694025,0,0, 0,0,1,
-  0.07167921785688836,0,0, 0,0,1,
-  0.0810265391141614,0,0, 0,0,1,
-  0.09047240713174502,0,0, 0,0,1,
-  0.1,0.2909090909090913,0, 0,0,1,
-  0.1,0.2818181818181826,0, 0,0,1,
-  0.1,0.272727272727274,0, 0,0,1,
-  0.1,0.2636363636363653,0, 0,0,1,
-  0.1,0.2545454545454566,0, 0,0,1,
-  0.1,0.245454545454548,0, 0,0,1,
-  0.1,0.2363636363636393,0, 0,0,1,
-  0.1,0.2272727272727306,0, 0,0,1,
-  0.1,0.2181818181818216,0, 0,0,1,
-  0.1,0.2090909090909125,0, 0,0,1,
-  0.1,0.2000000000000035,0, 0,0,1,
-  0.1,0.1909090909090944,0, 0,0,1,
-  0.1,0.1818181818181853,0, 0,0,1,
-  0.1,0.1727272727272762,0, 0,0,1,
-  0.1,0.1636363636363671,0, 0,0,1,
-  0.1,0.154545454545458,0, 0,0,1,
-  0.1,0.1454545454545489,0, 0,0,1,
-  0.1,0.1363636363636398,0, 0,0,1,
-  0.1,0.1272727272727307,0, 0,0,1,
-  0.1,0.1181818181818216,0, 0,0,1,
-  0.1,0.1090909090909125,0, 0,0,1,
-  0.1,0.1000000000000034,0, 0,0,1,
-  0.1,0.09090909090909433,0, 0,0,1,
-  0.1,0.08181818181818527,0, 0,0,1,
-  0.1,0.07272727272727605,0, 0,0,1,
-  0.1,0.06363636363636654,0, 0,0,1,
-  0.1,0.05454545454545703,0, 0,0,1,
-  0.1,0.04545454545454754,0, 0,0,1,
-  0.1,0.03636363636363803,0, 0,0,1,
-  0.1,0.02727272727272851,0, 0,0,1,
-  0.1,0.018181818181819,0, 0,0,1,
-  0.1,0.009090909090909483,0, 0,0,1,
-  0.09090909090909115,0.3,0, 0,0,1,
-  0.0818181818181823,0.3,0, 0,0,1,
-  0.07272727272727345,0.3,0, 0,0,1,
-  0.06363636363636459,0.3,0, 0,0,1,
-  0.05454545454545573,0.3,0, 0,0,1,
-  0.0454545454545468,0.3,0, 0,0,1,
-  0.03636363636363778,0.3,0, 0,0,1,
-  0.02727272727272877,0.3,0, 0,0,1,
-  0.01818181818181929,0.3,0, 0,0,1,
-  0.009090909090909639,0.3,0, 0,0,1,
-  0,0.2909973636414624,0, 0,0,1,
-  0,0.2819947272829249,0, 0,0,1,
-  0,0.2730438656697747,0, 0,0,1,
-  0,0.2640976732852516,0, 0,0,1,
-  0,0.2551978447229378,0, 0,0,1,
-  0,0.2463080963195167,0, 0,0,1,
-  0,0.2374585496946034,0, 0,0,1,
-  0,0.2286252452795079,0, 0,0,1,
-  0,0.219825219879103,0, 0,0,1,
-  0,0.2110483594596965,0, 0,0,1,
-  0,0.2022970847862346,0, 0,0,1,
-  0,0.1935766683700231,0, 0,0,1,
-  0,0.1848733639512526,0, 0,0,1,
-  0,0.176209391545889,0, 0,0,1,
-  0,0.167553266739908,0, 0,0,1,
-  0,0.1589457383531955,0, 0,0,1,
-  0,0.1503382099664829,0, 0,0,1,
-  0,0.1417849077882686,0, 0,0,1,
-  0,0.1332338234281653,0, 0,0,1,
-  0,0.1247260882725001,0, 0,0,1,
-  0,0.1162314479471221,0, 0,0,1,
-  0,0.1077605053582608,0, 0,0,1,
-  0,0.09932087161239131,0, 0,0,1,
-  0,0.09090627422926471,0, 0,0,1,
-  0,0.08251660763823583,0, 0,0,1,
-  0,0.07415176555653609,0, 0,0,1,
-  0,0.06581227474114783,0, 0,0,1,
-  0,0.05750037195565337,0, 0,0,1,
-  0,0.04921307894911468,0, 0,0,1,
-  0,0.04095028725862424,0, 0,0,1,
-  0,0.03271188767963543,0, 0,0,1,
-  0,0.0244977702583297,0, 0,0,1,
-  0,0.01630782428387874,0, 0,0,1,
-  0,0.008141938280599425,0, 0,0,1,
-  0.04943856805802106,0.05380328937598064,0, 0,0,1,
-  0.04937989365470935,0.1124832183441131,0, 0,0,1,
-  0.04906455701727032,0.1635647017394161,0, 0,0,1,
-  0.04994965630437984,0.2156919141195039,0, 0,0,1,
-  0.04267059113765502,0.2570469829773546,0, 0,0,1,
-  0.03391641368163509,0.08278404853543544,0, 0,0,1,
-  0.06648368881305394,0.08370353619075385,0, 0,0,1,
-  0.03070072220881402,0.1373583285161116,0, 0,0,1,
-  0.03239234128878235,0.188915673583429,0, 0,0,1,
-  0.0299460344723322,0.03007783319538664,0, 0,0,1,
-  0.06768096916602667,0.1896895353909995,0, 0,0,1,
-  0.06786973965039635,0.1380641153053757,0, 0,0,1,
-  0.06906611821771347,0.2409311118264899,0, 0,0,1,
-  0.06996652307867668,0.03039994189830039,0, 0,0,1,
-  0.0691174250123677,0.2709158238749525,0, 0,0,1,
-  0.02840537430302887,0.2325216109658483,0, 0,0,1,
-  0.02511114213595724,0.05911563651928614,0, 0,0,1,
-  0.02517831137330134,0.1072439011631667,0, 0,0,1,
-  0.07607995685001075,0.05822965058595274,0, 0,0,1,
-  0.02396473897811648,0.163320481320246,0, 0,0,1,
-  0.07452432870166287,0.1081253136296552,0, 0,0,1,
-  0.07581076254876624,0.2140703859407646,0, 0,0,1,
-  0.07494032044919846,0.1626124210265359,0, 0,0,1,
-  0.02541377229030616,0.2752671742933001,0, 0,0,1,
-  0.02240981574582322,0.2107215231865771,0, 0,0,1,
-  0.04983413295137611,0.02097457574043528,0, 0,0,1,
-  0.04941134832955653,0.2785088943493572,0, 0,0,1,
-  0.02162182272400273,0.2549169591250538,0, 0,0,1,
-  0.04869901355652118,0.2352716829945559,0, 0,0,1,
-  0.04981200873474365,0.07334226180713629,0, 0,0,1,
-  0.04972809749452883,0.1319447222339546,0, 0,0,1,
-  0.04952763128918493,0.09235013068152129,0, 0,0,1,
-  0.05002720146062067,0.1835006745097555,0, 0,0,1,
-  0.01809529513063262,0.1247780828255636,0, 0,0,1,
-  0.01806478650235874,0.01690638044718323,0, 0,0,1,
-  0.01689220873880078,0.04297580650570328,0, 0,0,1,
-  0.08133050962236976,0.2542589654384563,0, 0,0,1,
-  0.01685845588998747,0.07560732514480217,0, 0,0,1,
-  0.08215665746834816,0.1233506374840099,0, 0,0,1,
-  0.0174793557941356,0.1790378811691205,0, 0,0,1,
-  0.01725612321248826,0.14730753645529,0, 0,0,1,
-  0.0825185154372209,0.1777739795212497,0, 0,0,1,
-  0.08191001837008111,0.01695445239954515,0, 0,0,1,
-  0.08245487873338836,0.04241313266827915,0, 0,0,1,
-  0.01635842356981337,0.09201689545532704,0, 0,0,1,
-  0.08221593334653349,0.07521836620235664,0, 0,0,1,
-  0.03535329177557378,0.1208894731361945,0, 0,0,1,
-  0.06001063963613316,0.2559387961281948,0, 0,0,1,
-  0.0818077764056373,0.2827883909497645,0, 0,0,1,
-  0.08171498673025543,0.2290982824542263,0, 0,0,1,
-  0.04602930931322723,0.03681584715365363,0, 0,0,1,
-  0.06477178552435675,0.1207471907520468,0, 0,0,1,
-  0.08298195022619295,0.0925110661864206,0, 0,0,1,
-  0.08276139739664286,0.198420223448365,0, 0,0,1,
-  0.04488355136692088,0.1987639857646004,0, 0,0,1,
-  0.08334696745782752,0.1457081058311505,0, 0,0,1,
-  0.04459948929908309,0.1473579168334732,0, 0,0,1,
-  0.06512452849271227,0.04622580932201703,0, 0,0,1,
-  0.01621820841377811,0.1961418883892152,0, 0,0,1,
-  0.06376040295637672,0.1734094645067047,0, 0,0,1,
-  0.06356993495135672,0.2250288024266472,0, 0,0,1,
-  0.03478326135552385,0.01494248276679263,0, 0,0,1,
-  0.06198546362461019,0.2038989860551927,0, 0,0,1,
-  0.06134781879471848,0.1516492286781151,0, 0,0,1,
-  0.0363866071532066,0.174109283615948,0, 0,0,1,
-  0.06470603073057905,0.01567617532170828,0, 0,0,1,
-  0.03278456750073648,0.04654991808697145,0, 0,0,1,
-  0.01477110422850003,0.2240497891622102,0, 0,0,1,
-  0.03522911699557398,0.2201105953795862,0, 0,0,1,
-  0.06406464582549254,0.2842927462456292,0, 0,0,1,
-  0.03654951041452378,0.06791888012814969,0, 0,0,1,
-  0.01463326826816211,0.2407821891772683,0, 0,0,1,
-  0.03625883431497984,0.09693863914053574,0, 0,0,1,
-  0.06171780826535542,0.102608518923871,0, 0,0,1,
-  0.06086854646045398,0.06259484700313865,0, 0,0,1,
-  0.03546452601422212,0.2852032479815787,0, 0,0,1,
-  0.01450570869194033,0.2853022845979487,0, 0,0,1,
-  0.03378001693506955,0.2465928739089589,0, 0,0,1,
-  0.01344752229879137,0.03102195188520347,0, 0,0,1,
-  0.08657587267131039,0.2682189789078185,0, 0,0,1,
-  0.0138172616037642,0.2655531414559898,0, 0,0,1,
-  0.03128238727688393,0.1511216326400835,0, 0,0,1,
-  0.01241722575031191,0.1126136155927706,0, 0,0,1,
-  0.01144695717269534,0.06240812142373482,0, 0,0,1,
-  0.03817302106601303,0.2708393258556307,0, 0,0,1,
-  0.0861838194316748,0.2433468087849759,0, 0,0,1,
-  0.08653320051361627,0.03123670729056622,0, 0,0,1,
-  0.01352711071236765,0.1358222689587102,0, 0,0,1,
-  0.08750863010173002,0.1123907133147419,0, 0,0,1,
-  0.05774929704258962,0.03215453948304765,0, 0,0,1,
-  0.01166746654190703,0.1632932444597857,0, 0,0,1,
-  0.03359178895074701,0.2025823138227348,0, 0,0,1,
-  0.08919625723778936,0.1594149220724857,0, 0,0,1,
-  0.08830555960514255,0.05904372679951998,0, 0,0,1,
-  0.05269622362352771,0.2664452262662085,0, 0,0,1,
-  0.08836469565632354,0.2137520755691794,0, 0,0,1,
-  0.07170724523121683,0.0712567286527829,0, 0,0,1,
-  0.03842089931684848,0.05631835663662797,0, 0,0,1,
-  0.03919462708672876,0.1091173700064188,0, 0,0,1,
-  0.07101730360489114,0.09441473403353508,0, 0,0,1,
-  0.0384936307883243,0.161454328389355,0, 0,0,1,
-  0.01148442970974977,0.2068433063302576,0, 0,0,1,
-  0.05635282539443316,0.1937282888974277,0, 0,0,1,
-  0.08672687094080134,0.136389452677617,0, 0,0,1,
-  0.05733229973588551,0.140935008677078,0, 0,0,1,
-  0.05025602369477496,0.2491586739726355,0, 0,0,1,
-  0.02777188266670655,0.2621911089520076,0, 0,0,1,
-  0.04896364134540693,0.01012503553289783,0, 0,0,1,
-  0.08915978538268282,0.1877368376200544,0, 0,0,1,
-  0.04467794673397693,0.08274600679155963,0, 0,0,1,
-  0.01125607504756643,0.1004022065934169,0, 0,0,1,
-  0.01014017967121661,0.05048150026903755,0, 0,0,1,
-  0.02605423709559382,0.01104838406806721,0, 0,0,1,
-  0.04113593165098633,0.02761886599493008,0, 0,0,1,
-  0.009637786125538663,0.2502841526904231,0, 0,0,1,
-  0.01005307094342986,0.08411889939387246,0, 0,0,1,
-  0.009581445548931599,0.01102332891106007,0, 0,0,1,
-  0.03884945350904942,0.2307109426059477,0, 0,0,1,
-  0.05554050725953068,0.08270220398137947,0, 0,0,1,
-  0.02501380175597523,0.2884257167879166,0, 0,0,1,
-  0.04992435965025796,0.2899567511109187,0, 0,0,1,
-  0.07035767159446743,0.2511128590589935,0, 0,0,1,
-  0.05454812588931711,0.04374557655640481,0, 0,0,1,
-  0.08910837445055786,0.1012521849088495,0, 0,0,1,
-  0.07191532300695119,0.1477130220576167,0, 0,0,1,
-  0.07144348541409365,0.1994029552460558,0, 0,0,1,
-  0.04104154947073443,0.2106499218226232,0, 0,0,1,
-  0.07430545316632886,0.01019683179112018,0, 0,0,1,
-  0.07342724934351655,0.2887172598334418,0, 0,0,1,
-  0.02714979904802766,0.09108586827788052,0, 0,0,1,
-  0.06018497728191427,0.1628850465678994,0, 0,0,1,
-  0.052813043019131,0.2257300937159397,0, 0,0,1,
-  0.05959717747406301,0.2747518875092944,0, 0,0,1,
-  0.09018732191646869,0.1697652393643418,0, 0,0,1,
-  0.04636563487995943,0.06377448745989739,0, 0,0,1,
-  0.05949764517598849,0.2351304159620017,0, 0,0,1,
-  0.08942753179949342,0.08411738992572398,0, 0,0,1,
-  0.01017930031863925,0.1877782374489671,0, 0,0,1,
-  0.03886163791568874,0.1303484230966758,0, 0,0,1,
-  0.02627432503760547,0.06945286839030726,0, 0,0,1,
-  0.04545850862201047,0.1220601887527192,0, 0,0,1,
-  0.06015102574654745,0.09221713671545681,0, 0,0,1,
-  0.06081015567090238,0.1305611072067474,0, 0,0,1,
-  0.04552734130476399,0.1022116915267994,0, 0,0,1,
-  0.02603376948071753,0.1175195093502542,0, 0,0,1,
-  0.01092884955846057,0.2752475207523316,0, 0,0,1,
-  0.02623682280070831,0.1730196004758258,0, 0,0,1,
-  0.0599728170545432,0.2149318402201275,0, 0,0,1,
-  0.02723773418906296,0.02054104817437022,0, 0,0,1,
-  0.02819188959081512,0.1275125763903226,0, 0,0,1,
-  0.02496486337772009,0.2213873111207296,0, 0,0,1,
-  0.04221080556799754,0.1896758652024453,0, 0,0,1,
-  0.07354334101592894,0.2236089656829513,0, 0,0,1,
-  0.07174158576799367,0.1800930573003826,0, 0,0,1,
-  0.09028233510548966,0.01137390075889436,0, 0,0,1,
-  0.06152915382403199,0.07317590874410404,0, 0,0,1,
-  0.04678947611597696,0.1735629976052024,0, 0,0,1,
-  0.009101103377849942,0.1204479307077391,0, 0,0,1,
-  0.04269479255974289,0.04633604038286526,0, 0,0,1,
-  0.07721167986007606,0.08423475137568255,0, 0,0,1,
-  0.07238629015733426,0.12829865846332,0, 0,0,1,
-  0.07390625424649344,0.1175043837685203,0, 0,0,1,
-  0.09064407637701408,0.259665338097065,0, 0,0,1,
-  0.009222490210454572,0.172835227104156,0, 0,0,1,
-  0.009356380077452781,0.1535584613955532,0, 0,0,1,
-  0.009114285192323603,0.02122829277464142,0, 0,0,1,
-  0.07796114827250969,0.1883201522610519,0, 0,0,1,
-  0.008937306344383857,0.07052872865870194,0, 0,0,1,
-  0.09030542885147326,0.2885685604701616,0, 0,0,1,
-  0.06044455779806655,0.1831220183615892,0, 0,0,1,
-  0.07264606348732416,0.03991380119060847,0, 0,0,1,
-  0.09062061219000558,0.04901015385761164,0, 0,0,1,
-  0.09069398766617448,0.0688598192042111,0, 0,0,1,
-  0.008123984341192419,0.03787387046147667,0, 0,0,1,
-  0.02469969170136275,0.08104728642847858,0, 0,0,1,
-  0.06033048963429793,0.2455496260239905,0, 0,0,1,
-  0.02151101002359235,0.03418690517024868,0, 0,0,1,
-  0.07286101546871832,0.02072029833490226,0, 0,0,1,
-  0.05947433126150597,0.1125615271409249,0, 0,0,1,
-  0.02167160681543153,0.1393636770469187,0, 0,0,1,
-  0.09059415405628564,0.2236295645622291,0, 0,0,1,
-  0.02480075783544586,0.2419154818943148,0, 0,0,1,
-  0.008816776876076344,0.2167587936842484,0, 0,0,1,
-  0.009038346020500104,0.232484759114464,0, 0,0,1,
-  0.02207635133126941,0.1879588155809851,0, 0,0,1,
-  0.09057955899663048,0.2768325469266408,0, 0,0,1,
-  0.02449752549330311,0.0496811686398899,0, 0,0,1,
-  0.09092016500874539,0.2041131979983527,0, 0,0,1,
-  0.05836549929763069,0.008376517204580238,0, 0,0,1,
-  0.05204071400842313,0.1542418473656231,0, 0,0,1,
-  0.07777279335694906,0.1380211700913576,0, 0,0,1,
-  0.07237020078977648,0.261380298133381,0, 0,0,1,
-  0.09191195996468564,0.1224920799838925,0, 0,0,1,
-  0.07486187282829837,0.04913563922524344,0, 0,0,1,
-  0.05232879015259182,0.2061619553276807,0, 0,0,1,
-  0.07265981053425072,0.2793504808417681,0, 0,0,1,
-  0.03631683207598058,0.0376577773159079,0, 0,0,1,
-  0.05892483751673459,0.05363467383883449,0, 0,0,1,
-  0.0907058058023005,0.02238482403021362,0, 0,0,1,
-  0.05824806068059205,0.02311420003147432,0, 0,0,1,
-  0.05512793619522999,0.1222660922205425,0, 0,0,1,
-  0.07867930612091967,0.2378613324047284,0, 0,0,1,
-  0.00828650221244636,0.1440812556269965,0, 0,0,1,
-  0.02612712529536975,0.1967455934565623,0, 0,0,1,
-  0.06228004117172392,0.2653937179216883,0, 0,0,1,
-  0.03410425775749156,0.2553770537574441,0, 0,0,1,
-  0.01792042953401478,0.1564626589208993,0, 0,0,1,
-  0.0916107121475075,0.03912967887302492,0, 0,0,1,
-  0.07505368834360296,0.1711114557478963,0, 0,0,1,
-  0.08046291293405049,0.06591108507188968,0, 0,0,1,
-  0.09132848802679211,0.150162442763718,0, 0,0,1,
-  0.04269937468251984,0.2424832394702249,0, 0,0,1,
-  0.09050420217545246,0.2341426047472606,0, 0,0,1,
-  0.03975338931817624,0.007871382293476517,0, 0,0,1,
-  0.04064464564859555,0.1391376642072461,0, 0,0,1,
-  0.04402955716651866,0.2222460808906515,0, 0,0,1,
-  0.01781094460619342,0.1701471730655267,0, 0,0,1,
-  0.07830644960148971,0.03342448812186011,0, 0,0,1,
-  0.007680505493733437,0.1976435436744516,0, 0,0,1,
-  0.007978941021165942,0.09307023661607147,0, 0,0,1,
-  0.01922404935778042,0.232300123844155,0, 0,0,1,
-  0.02030636901147868,0.09982551488877046,0, 0,0,1,
-  0.09203777807414038,0.2498676571143333,0, 0,0,1,
-  0.09191797952574435,0.1783662442836693,0, 0,0,1,
-  0.02013040691781846,0.02572483794683859,0, 0,0,1,
-  0.08200939129162396,0.2073426073847147,0, 0,0,1,
-  0.06411941390668997,0.03788558157562232,0, 0,0,1,
-  0.0820234490865738,0.2206696002838985,0, 0,0,1,
-  0.05510766430874156,0.170357204533289,0, 0,0,1,
-  0.007707431642602998,0.2597693215451046,0, 0,0,1,
-  0.03115925135530253,0.2117345352657591,0, 0,0,1,
-  0.05881742449159542,0.2918979187621946,0, 0,0,1,
-  0.01792553337181894,0.007350198036130873,0, 0,0,1,
-  0.04104786614712366,0.2921517055439529,0, 0,0,1,
-  0.03956365628563203,0.07587586206590409,0, 0,0,1,
-  0.03011925807439417,0.1807152709944913,0, 0,0,1,
-  0.0169965923551548,0.05541862941953492,0, 0,0,1,
-  0.07007105450898299,0.2317783654849989,0, 0,0,1,
-  0.039153242039623,0.08967297719647721,0, 0,0,1,
-  0.05069536332949499,0.2579824565603571,0, 0,0,1,
-  0.04423848987717183,0.1557302026851194,0, 0,0,1,
-  0.07971797010460688,0.1019432919633422,0, 0,0,1,
-  0.07752715094272272,0.2461740403567472,0, 0,0,1,
-  0.06764803967079111,0.05481581517747639,0, 0,0,1,
-  0.007533120601931467,0.1292895752948564,0, 0,0,1,
-  0.04979604467376633,0.02898993917936817,0, 0,0,1,
-  0.07866726386665482,0.2719272950050943,0, 0,0,1,
-  0.09194760516771022,0.09344624816131675,0, 0,0,1,
-  0.08012666225562021,0.1552818613912269,0, 0,0,1,
-  0.026366013561071,0.04072178847116093,0, 0,0,1,
-  0.0406404175121087,0.1813224982555967,0, 0,0,1,
-  0.06638208514037212,0.007101162012875179,0, 0,0,1,
-  0.04873969210343436,0.1405054590535852,0, 0,0,1,
-  0.09257325665513802,0.195999067427848,0, 0,0,1,
-  0.03433451395152162,0.2384288662471029,0, 0,0,1,
-  0.01803447107018375,0.06617082913848593,0, 0,0,1,
-  0.01975582745424454,0.2032394433774424,0, 0,0,1,
-  0.04258400381771957,0.01700724641307161,0, 0,0,1,
-  0.008332875258948913,0.2917417162256912,0, 0,0,1,
-  0.02596818098385111,0.1459870696530841,0, 0,0,1,
-  0.0284813111066133,0.09948506531989622,0, 0,0,1,
-  0.03301240442506546,0.2771741624555794,0, 0,0,1,
-  0.06827016675558029,0.1662310737536424,0, 0,0,1,
-  0.08168386994819452,0.29247682863844,0, 0,0,1,
-  0.03228751871615694,0.167030539725871,0, 0,0,1,
-  0.08267317943672375,0.05203032866969079,0, 0,0,1,
-  0.06806624889808816,0.2099772078322099,0, 0,0,1,
-  0.0676470016575042,0.1113157378906632,0, 0,0,1,
-  0.03176345523353472,0.07527260243293438,0, 0,0,1,
-  0.006727574683700789,0.2243100910403469,0, 0,0,1,
-  0.06847543202057235,0.1580869773249052,0, 0,0,1,
-  0.08222672781710733,0.1657210258356022,0, 0,0,1,
-  0.06419506740159016,0.1965542798077724,0, 0,0,1,
-  0.01690471517486694,0.2162290054845376,0, 0,0,1,
-  0.03078113302537267,0.05407929293730027,0, 0,0,1,
-  0.06447188102771494,0.1446280134389742,0, 0,0,1,
-  0.03281131309366399,0.2929154260670946,0, 0,0,1,
-  0.006726481086626164,0.2416771527065344,0, 0,0,1,
-  0.08276808882988401,0.007883453229140693,0, 0,0,1,
-  0.09252357500887304,0.141268696520782,0, 0,0,1,
-  0.04095044642843683,0.2785195262531039,0, 0,0,1,
-  0.03195337655869265,0.06152851823439536,0, 0,0,1,
-  0.03482085141749088,0.02261717698222997,0, 0,0,1,
-  0.0559253145233716,0.01585099576030879,0, 0,0,1,
-  0.04429939055991405,0.2650152624206911,0, 0,0,1,
-  0.05396617709251803,0.09952288632236958,0, 0,0,1,
-  0.0538079771730238,0.0604060922087004,0, 0,0,1,
-  0.06807337640732652,0.2179883403884909,0, 0,0,1,
-  0.05588105233390689,0.2837633782998984,0, 0,0,1,
-  0.03632231678897647,0.1953673325900875,0, 0,0,1,
-  0.02175961762897538,0.1321682569834458,0, 0,0,1,
-  0.007030750697466995,0.1801725989026808,0, 0,0,1,
-  0.07982936275250382,0.02553204659693582,0, 0,0,1,
-  0.006549149915343314,0.2680664709570159,0, 0,0,1,
-  0.01922010621654489,0.2788199052065876,0, 0,0,1,
-  0.06917588693459614,0.06400363451096822,0, 0,0,1,
-  0.03234087162575537,0.006826108049671261,0, 0,0,1,
-  0.006073945327801719,0.02904488705957779,0, 0,0,1,
-  0.09273862553505061,0.0764897543699725,0, 0,0,1,
-  0.02019298640880669,0.2616149302400951,0, 0,0,1,
-  0.0698486666672703,0.1030349614053262,0, 0,0,1,
-  0.06652295667467534,0.2928006394660684,0, 0,0,1,
-  0.03655616266154597,0.2631152686607987,0, 0,0,1,
-  0.08131503545642571,0.2630154572072237,0, 0,0,1,
-  0.006587093819851195,0.04483545546311527,0, 0,0,1,
-  0.03131119373679582,0.226133694576312,0, 0,0,1,
-  0.01837862784181576,0.1157793891016666,0, 0,0,1,
-  0.04057812939192712,0.1155898129989157,0, 0,0,1,
-  0.03126362495172781,0.1583960213678358,0, 0,0,1,
-  0.03219475038017165,0.1118490023868191,0, 0,0,1,
-  0.01770265376607229,0.2932650874040193,0, 0,0,1,
-  0.04865479506954632,0.1918858975862876,0, 0,0,1,
-  0.03485079864769412,0.1448742717513725,0, 0,0,1,
-  0.007667777071145932,0.1071389343860374,0, 0,0,1,
-  0.006799845784060426,0.07737403919837535,0, 0,0,1,
-  0.04329470810445293,0.07020566345252041,0, 0,0,1,
-  0.01809499667680631,0.2483745579559958,0, 0,0,1,
-  0.006748884107321751,0.05692622109812206,0, 0,0,1,
-  0.09372260441845391,0.268209661854113,0, 0,0,1,
-  0.0403602124799252,0.2502709559319859,0, 0,0,1,
-  0.04295879196070669,0.09543438184957867,0, 0,0,1,
-  0.006553222701963051,0.2829221135957352,0, 0,0,1,
-  0.05305261031651766,0.241523805427261,0, 0,0,1,
-  0.05486016736149558,0.06712202410998261,0, 0,0,1,
-  0.09185760483216832,0.1306472448677418,0, 0,0,1,
-  0.09386080916472941,0.2414288730536943,0, 0,0,1,
-  0.01701816133570556,0.1071453047137566,0, 0,0,1,
-  0.005857386015204671,0.137103665976998,0, 0,0,1,
-  0.02099360625206249,0.2694021584839839,0, 0,0,1,
-  0.07199460326175358,0.07792080313624447,0, 0,0,1,
-  0.02475347689816131,0.1536915908196552,0, 0,0,1,
-  0.01501358330785345,0.2568506752171648,0, 0,0,1,
-  0.07966327601372003,0.112672133762342,0, 0,0,1,
-  0.04078645678860521,0.1682260077493461,0, 0,0,1,
-  0.06554299075583314,0.02423008020022461,0, 0,0,1,
-  0.09398325079210289,0.03154891727662895,0, 0,0,1,
-  0.05453794860086236,0.1063635685725725,0, 0,0,1,
-  0.05523471010008513,0.1772782843706078,0, 0,0,1,
-  0.01824217424612933,0.08483644085341754,0, 0,0,1,
-  0.06619328448596223,0.2774584463968358,0, 0,0,1,
-  0.09406310001300849,0.1079688986841182,0, 0,0,1,
-  0.05242367337145461,0.1467906376872577,0, 0,0,1,
-  0.04606368775049969,0.2289539738618407,0, 0,0,1,
-  0.02753588322626437,0.2814575041755443,0, 0,0,1,
-  0.0381279394497433,0.1520724930468378,0, 0,0,1,
-  0.04374982295112967,0.2851079171767646,0, 0,0,1,
-  0.03039971713968145,0.2700751922892058,0, 0,0,1,
-  0.0273819597074987,0.2512202996312642,0, 0,0,1,
-  0.02635630161136649,0.2046771409478179,0, 0,0,1,
-  0.04499335366173904,0.2722439304320244,0, 0,0,1,
-  0.03415593675720739,0.1040329787507068,0, 0,0,1,
-  0.07520936860734033,0.206195072540403,0, 0,0,1,
-  0.006255882734957453,0.1137822797445116,0, 0,0,1,
-  0.08184997135179831,0.1315212808568459,0, 0,0,1
-}
-{
-  3, 168,266,125,
-  3, 125,263,168,
-  3, 281,294,137,
-  3, 179,212,140,
-  3, 144,216,181,
-  3, 192,284,144,
-  3, 173,257,82,
-  3, 80,205,79,
-  3, 33,282,178,
-  3, 215,256,143,
-  3, 211,281,137,
-  3, 129,325,274,
-  3, 205,309,79,
-  3, 229,264,127,
-  3, 178,430,33,
-  3, 152,284,192,
-  3, 229,358,264,
-  3, 93,237,221,
-  3, 221,237,150,
-  3, 71,180,70,
-  3, 82,407,173,
-  3, 255,314,168,
-  3, 177,334,123,
-  3, 28,223,182,
-  3, 236,325,129,
-  3, 96,249,189,
-  3, 124,314,255,
-  3, 4,206,89,
-  3, 138,336,275,
-  3, 189,249,142,
-  3, 100,256,215,
-  3, 28,182,29,
-  3, 175,312,126,
-  3, 39,183,40,
-  3, 275,336,169,
-  3, 178,422,331,
-  3, 338,360,214,
-  3, 105,310,240,
-  3, 291,327,139,
-  3, 178,331,213,
-  3, 258,275,15,
-  3, 4,322,206,
-  3, 5,322,4,
-  3, 180,253,70,
-  3, 126,332,175,
-  3, 139,327,242,
-  3, 22,185,23,
-  3, 144,284,216,
-  3, 71,254,180,
-  3, 178,282,128,
-  3, 240,395,105,
-  3, 123,380,177,
-  3, 125,326,201,
-  3, 133,307,176,
-  3, 187,224,160,
-  3, 118,301,207,
-  3, 112,360,338,
-  3, 176,297,133,
-  3, 184,222,116,
-  3, 186,299,135,
-  3, 179,424,103,
-  3, 177,269,130,
-  3, 199,208,121,
-  3, 128,422,178,
-  3, 140,335,179,
-  3, 301,344,207,
-  3, 66,191,65,
-  3, 206,255,88,
-  3, 276,326,125,
-  3, 130,292,177,
-  3, 45,244,13,
-  3, 325,340,98,
-  3, 286,339,99,
-  3, 144,401,192,
-  3, 183,261,40,
-  3, 90,224,187,
-  3, 186,385,299,
-  3, 120,232,194,
-  3, 98,340,241,
-  3, 39,262,183,
-  3, 44,288,244,
-  3, 25,198,26,
-  3, 212,248,140,
-  3, 194,232,101,
-  3, 268,290,91,
-  3, 90,248,212,
-  3, 156,248,187,
-  3, 163,231,189,
-  3, 189,231,96,
-  3, 120,304,228,
-  3, 92,279,220,
-  3, 120,342,304,
-  3, 89,206,88,
-  3, 181,379,144,
-  3, 220,279,153,
-  3, 188,233,91,
-  3, 119,208,199,
-  3, 36,226,37,
-  3, 187,248,90,
-  3, 179,316,212,
-  3, 103,316,179,
-  3, 109,306,180,
-  3, 139,302,291,
-  3, 291,302,175,
-  3, 180,296,109,
-  3, 22,270,185,
-  3, 216,284,93,
-  3, 240,310,157,
-  3, 216,305,158,
-  3, 93,305,216,
-  3, 299,385,108,
-  3, 46,258,14,
-  3, 108,355,183,
-  3, 12,217,11,
-  3, 183,299,108,
-  3, 1,45,13,
-  3, 149,298,243,
-  3, 122,259,192,
-  3, 245,419,96,
-  3, 182,300,29,
-  3, 208,231,121,
-  3, 4,89,0,
-  3, 227,308,67,
-  3, 36,337,226,
-  3, 189,390,163,
-  3, 123,334,247,
-  3, 243,259,149,
-  3, 191,272,65,
-  3, 226,249,135,
-  3, 192,259,100,
-  3, 142,249,226,
-  3, 185,277,23,
-  3, 117,437,196,
-  3, 100,259,243,
-  3, 44,244,45,
-  3, 164,385,245,
-  3, 208,245,96,
-  3, 12,368,217,
-  3, 245,385,186,
-  3, 196,437,295,
-  3, 228,239,136,
-  3, 14,258,15,
-  3, 149,352,298,
-  3, 198,313,26,
-  3, 160,371,187,
-  3, 97,239,228,
-  3, 166,384,209,
-  3, 201,394,125,
-  3, 131,361,223,
-  3, 143,256,198,
-  3, 202,322,6,
-  3, 116,439,184,
-  3, 137,294,184,
-  3, 184,329,137,
-  3, 187,364,156,
-  3, 186,419,245,
-  3, 221,225,118,
-  3, 185,317,111,
-  3, 211,265,102,
-  3, 91,290,230,
-  3, 137,265,211,
-  3, 33,430,34,
-  3, 219,311,134,
-  3, 150,225,221,
-  3, 68,227,67,
-  3, 384,433,209,
-  3, 298,361,131,
-  3, 233,440,162,
-  3, 111,315,185,
-  3, 414,443,128,
-  3, 141,250,232,
-  3, 9,197,8,
-  3, 114,363,191,
-  3, 138,275,258,
-  3, 232,250,101,
-  3, 142,331,189,
-  3, 199,324,119,
-  3, 136,230,228,
-  3, 289,424,179,
-  3, 14,2,46,
-  3, 135,419,186,
-  3, 101,280,214,
-  3, 95,328,219,
-  3, 129,274,227,
-  3, 99,339,266,
-  3, 106,345,326,
-  3, 228,230,120,
-  3, 289,335,115,
-  3, 125,394,263,
-  3, 219,328,162,
-  3, 234,239,123,
-  3, 227,274,148,
-  3, 214,280,145,
-  3, 179,335,289,
-  3, 212,316,147,
-  3, 136,239,234,
-  3, 66,308,191,
-  3, 202,238,124,
-  3, 170,418,235,
-  3, 188,440,233,
-  3, 93,284,237,
-  3, 282,414,128,
-  3, 235,418,384,
-  3, 237,284,152,
-  3, 145,280,193,
-  3, 182,338,300,
-  3, 27,223,28,
-  3, 203,286,99,
-  3, 121,328,199,
-  3, 195,265,137,
-  3, 96,231,208,
-  3, 212,287,90,
-  3, 300,338,145,
-  3, 151,238,202,
-  3, 46,353,258,
-  3, 234,396,107,
-  3, 124,255,206,
-  3, 191,308,148,
-  3, 203,372,347,
-  3, 140,286,203,
-  3, 156,286,248,
-  3, 147,287,212,
-  3, 153,431,194,
-  3, 193,369,145,
-  3, 91,397,188,
-  3, 97,380,239,
-  3, 192,362,152,
-  3, 100,362,192,
-  3, 248,286,140,
-  3, 205,404,127,
-  3, 47,353,46,
-  3, 148,346,191,
-  3, 78,309,200,
-  3, 250,280,101,
-  3, 396,416,107,
-  3, 190,330,92,
-  3, 134,428,219,
-  3, 198,256,131,
-  3, 269,380,97,
-  3, 192,401,122,
-  3, 92,423,190,
-  3, 191,346,114,
-  3, 61,204,60,
-  3, 72,292,254,
-  3, 219,350,311,
-  3, 86,387,263,
-  3, 119,245,208,
-  3, 218,353,48,
-  3, 21,302,270,
-  3, 203,347,115,
-  3, 126,312,252,
-  3, 6,322,5,
-  3, 219,428,264,
-  3, 324,405,119,
-  3, 331,422,110,
-  3, 9,278,197,
-  3, 235,411,58,
-  3, 194,365,153,
-  3, 326,345,173,
-  3, 194,342,120,
-  3, 101,365,194,
-  3, 217,267,155,
-  3, 58,411,57,
-  3, 127,404,257,
-  3, 94,409,195,
-  3, 261,297,41,
-  3, 141,290,268,
-  3, 51,210,50,
-  3, 132,267,217,
-  3, 163,357,268,
-  3, 281,336,104,
-  3, 104,294,281,
-  3, 176,382,288,
-  3, 331,390,189,
-  3, 148,308,227,
-  3, 200,403,78,
-  3, 86,263,85,
-  3, 53,400,209,
-  3, 159,285,218,
-  3, 201,407,84,
-  3, 244,288,132,
-  3, 215,356,152,
-  3, 195,329,94,
-  3, 99,314,238,
-  3, 141,251,250,
-  3, 137,329,195,
-  3, 163,390,357,
-  3, 260,283,147,
-  3, 196,389,117,
-  3, 250,251,128,
-  3, 114,320,240,
-  3, 197,303,8,
-  3, 83,407,82,
-  3, 214,360,153,
-  3, 251,422,128,
-  3, 240,320,158,
-  3, 281,393,336,
-  3, 288,382,132,
-  3, 348,400,55,
-  3, 143,441,215,
-  3, 398,434,190,
-  3, 244,368,13,
-  3, 48,353,47,
-  3, 134,309,205,
-  3, 102,332,211,
-  3, 161,310,271,
-  3, 102,265,225,
-  3, 271,310,105,
-  3, 124,322,202,
-  3, 193,443,414,
-  3, 156,339,286,
-  3, 266,314,99,
-  3, 219,264,95,
-  3, 131,313,198,
-  3, 369,414,31,
-  3, 250,443,280,
-  3, 55,400,54,
-  3, 121,410,328,
-  3, 243,256,100,
-  3, 131,256,243,
-  3, 198,343,143,
-  3, 136,399,397,
-  3, 213,337,35,
-  3, 126,281,211,
-  3, 70,253,69,
-  3, 206,322,124,
-  3, 230,290,120,
-  3, 347,372,151,
-  3, 13,368,12,
-  3, 229,345,106,
-  3, 193,414,369,
-  3, 274,325,98,
-  3, 105,344,271,
-  3, 120,290,232,
-  3, 3,348,55,
-  3, 56,348,3,
-  3, 145,338,214,
-  3, 271,344,167,
-  3, 287,333,164,
-  3, 72,254,71,
-  3, 110,390,331,
-  3, 134,311,200,
-  3, 73,292,72,
-  3, 200,309,134,
-  3, 315,441,143,
-  3, 158,305,207,
-  3, 162,410,233,
-  3, 197,373,115,
-  3, 191,363,272,
-  3, 27,313,223,
-  3, 95,324,199,
-  3, 199,328,95,
-  3, 231,375,121,
-  3, 76,247,75,
-  3, 333,385,164,
-  3, 82,257,81,
-  3, 263,387,168,
-  3, 84,394,201,
-  3, 54,400,53,
-  3, 227,381,129,
-  3, 20,302,21,
-  3, 61,367,204,
-  3, 127,428,205,
-  3, 218,285,138,
-  3, 150,327,225,
-  3, 168,387,255,
-  3, 25,343,198,
-  3, 260,307,133,
-  3, 6,386,202,
-  3, 115,347,197,
-  3, 40,261,41,
-  3, 225,327,102,
-  3, 215,441,356,
-  3, 163,375,231,
-  3, 267,382,103,
-  3, 204,367,161,
-  3, 202,386,151,
-  3, 270,302,139,
-  3, 184,294,222,
-  3, 204,319,60,
-  3, 279,431,153,
-  3, 200,416,403,
-  3, 222,294,104,
-  3, 133,297,261,
-  3, 403,416,172,
-  3, 38,262,39,
-  3, 254,292,130,
-  3, 41,297,42,
-  3, 79,309,78,
-  3, 65,272,64,
-  3, 271,437,406,
-  3, 406,437,117,
-  3, 97,349,269,
-  3, 234,399,136,
-  3, 205,428,134,
-  3, 115,335,203,
-  3, 171,434,398,
-  3, 326,407,201,
-  3, 173,407,326,
-  3, 135,388,226,
-  3, 203,335,140,
-  3, 216,320,181,
-  3, 232,290,141,
-  3, 98,379,293,
-  3, 173,345,257,
-  3, 293,379,181,
-  3, 102,327,291,
-  3, 63,273,62,
-  3, 99,372,203,
-  3, 118,412,301,
-  3, 129,381,253,
-  3, 301,412,195,
-  3, 207,432,118,
-  3, 161,406,204,
-  3, 257,345,127,
-  3, 226,337,142,
-  3, 285,336,138,
-  3, 236,306,109,
-  3, 35,430,213,
-  3, 21,270,22,
-  3, 17,252,18,
-  3, 291,332,102,
-  3, 133,283,260,
-  3, 88,255,87,
-  3, 397,399,188,
-  3, 210,321,50,
-  3, 224,405,160,
-  3, 283,333,147,
-  3, 80,404,205,
-  3, 172,396,247,
-  3, 103,382,307,
-  3, 51,323,210,
-  3, 106,371,229,
-  3, 130,296,254,
-  3, 221,305,93,
-  3, 222,378,116,
-  3, 220,318,92,
-  3, 207,395,158,
-  3, 105,395,207,
-  3, 247,396,123,
-  3, 254,296,180,
-  3, 78,403,77,
-  3, 228,304,97,
-  3, 10,278,9,
-  3, 159,378,222,
-  3, 264,358,95,
-  3, 149,318,220,
-  3, 229,371,160,
-  3, 207,344,105,
-  3, 224,413,119,
-  3, 217,368,132,
-  3, 209,366,53,
-  3, 273,367,62,
-  3, 84,407,83,
-  3, 223,313,131,
-  3, 249,419,135,
-  3, 129,306,236,
-  3, 213,331,142,
-  3, 135,299,262,
-  3, 211,332,126,
-  3, 217,341,11,
-  3, 43,425,288,
-  3, 243,298,131,
-  3, 142,337,213,
-  3, 158,320,216,
-  3, 262,299,183,
-  3, 190,434,330,
-  3, 97,402,349,
-  3, 43,288,44,
-  3, 209,400,166,
-  3, 165,366,209,
-  3, 146,402,304,
-  3, 209,433,165,
-  3, 111,317,242,
-  3, 262,388,135,
-  3, 252,393,126,
-  3, 169,393,252,
-  3, 23,277,24,
-  3, 230,397,91,
-  3, 116,378,210,
-  3, 210,435,116,
-  3, 48,391,218,
-  3, 56,411,348,
-  3, 233,426,91,
-  3, 138,353,218,
-  3, 213,430,178,
-  3, 274,293,148,
-  3, 155,341,217,
-  3, 146,434,402,
-  3, 98,293,274,
-  3, 154,340,325,
-  3, 157,310,273,
-  3, 246,423,92,
-  3, 152,362,215,
-  3, 215,362,100,
-  3, 253,306,129,
-  3, 153,365,214,
-  3, 35,337,36,
-  3, 273,310,161,
-  3, 15,275,16,
-  3, 214,365,101,
-  3, 238,314,124,
-  3, 145,369,300,
-  3, 283,355,108,
-  3, 277,315,143,
-  3, 180,306,253,
-  3, 57,411,56,
-  3, 185,315,277,
-  3, 132,368,244,
-  3, 246,340,154,
-  3, 264,428,127,
-  3, 242,317,139,
-  3, 122,340,246,
-  3, 197,347,303,
-  3, 141,357,251,
-  3, 92,318,246,
-  3, 329,374,94,
-  3, 103,307,260,
-  3, 184,374,329,
-  3, 159,429,285,
-  3, 26,313,27,
-  3, 220,352,149,
-  3, 252,312,18,
-  3, 154,325,236,
-  3, 153,360,220,
-  3, 32,282,33,
-  3, 218,391,159,
-  3, 76,442,247,
-  3, 162,350,219,
-  3, 147,316,260,
-  3, 143,343,277,
-  3, 260,316,103,
-  3, 160,358,229,
-  3, 223,361,182,
-  3, 118,432,221,
-  3, 127,345,229,
-  3, 144,379,241,
-  3, 338,361,112,
-  3, 261,355,133,
-  3, 161,367,273,
-  3, 182,361,338,
-  3, 288,425,176,
-  3, 122,401,241,
-  3, 128,443,250,
-  3, 222,429,159,
-  3, 242,327,150,
-  3, 90,376,224,
-  3, 92,330,279,
-  3, 168,314,266,
-  3, 268,357,141,
-  3, 247,334,75,
-  3, 226,388,37,
-  3, 246,427,122,
-  3, 68,381,227,
-  3, 225,412,118,
-  3, 195,409,301,
-  3, 104,429,222,
-  3, 240,363,114,
-  3, 157,363,240,
-  3, 139,317,270,
-  3, 303,347,151,
-  3, 270,317,185,
-  3, 119,405,224,
-  3, 109,354,236,
-  3, 8,303,7,
-  3, 241,340,122,
-  3, 236,354,154,
-  3, 177,380,269,
-  3, 136,397,230,
-  3, 17,408,252,
-  3, 258,353,138,
-  3, 252,408,169,
-  3, 152,356,237,
-  3, 255,387,87,
-  3, 121,375,233,
-  3, 175,332,291,
-  3, 238,372,99,
-  3, 133,355,283,
-  3, 235,383,170,
-  3, 106,326,276,
-  3, 293,346,148,
-  3, 58,383,235,
-  3, 237,377,150,
-  3, 278,373,197,
-  3, 242,377,111,
-  3, 245,413,164,
-  3, 123,396,234,
-  3, 107,399,234,
-  3, 34,430,35,
-  3, 233,410,121,
-  3, 125,339,276,
-  3, 29,300,30,
-  3, 239,380,123,
-  3, 235,384,166,
-  3, 151,372,238,
-  3, 266,339,125,
-  3, 279,330,146,
-  3, 259,427,149,
-  3, 276,339,156,
-  3, 241,379,98,
-  3, 166,411,235,
-  3, 150,377,242,
-  3, 251,357,110,
-  3, 275,408,16,
-  3, 130,420,296,
-  3, 108,333,283,
-  3, 158,395,240,
-  3, 169,408,275,
-  3, 183,355,261,
-  3, 11,341,10,
-  3, 10,341,278,
-  3, 7,386,6,
-  3, 151,386,303,
-  3, 155,373,278,
-  3, 278,341,155,
-  3, 119,413,245,
-  3, 269,349,130,
-  3, 50,321,49,
-  3, 241,401,144,
-  3, 296,420,109,
-  3, 253,381,69,
-  3, 147,333,287,
-  3, 376,413,224,
-  3, 67,308,66,
-  3, 265,412,225,
-  3, 104,336,285,
-  3, 277,343,24,
-  3, 60,319,59,
-  3, 18,312,19,
-  3, 52,323,51,
-  3, 167,344,301,
-  3, 287,376,90,
-  3, 154,423,246,
-  3, 272,359,64,
-  3, 267,424,155,
-  3, 311,416,200,
-  3, 77,442,76,
-  3, 164,376,287,
-  3, 63,359,273,
-  3, 375,426,233,
-  3, 273,359,157,
-  3, 247,442,172,
-  3, 96,419,249,
-  3, 289,373,155,
-  3, 298,352,112,
-  3, 157,359,272,
-  3, 167,437,271,
-  3, 271,406,161,
-  3, 320,438,181,
-  3, 156,364,276,
-  3, 257,404,81,
-  3, 263,394,85,
-  3, 318,427,246,
-  3, 272,363,157,
-  3, 311,350,107,
-  3, 110,422,251,
-  3, 113,433,384,
-  3, 276,364,106,
-  3, 392,436,196,
-  3, 108,385,333,
-  3, 122,427,259,
-  3, 38,388,262,
-  3, 132,382,267,
-  3, 349,420,130,
-  3, 319,383,59,
-  3, 49,391,48,
-  3, 403,442,77,
-  3, 75,334,74,
-  3, 196,436,418,
-  3, 304,342,146,
-  3, 166,400,348,
-  3, 109,420,398,
-  3, 52,366,323,
-  3, 170,383,319,
-  3, 112,361,298,
-  3, 30,369,31,
-  3, 24,343,25,
-  3, 384,418,113,
-  3, 195,412,265,
-  3, 184,439,374,
-  3, 174,436,392,
-  3, 268,426,163,
-  3, 91,426,268,
-  3, 53,366,52,
-  3, 103,424,267,
-  3, 357,390,110,
-  3, 155,424,289,
-  3, 295,392,196,
-  3, 307,382,176,
-  3, 115,373,289,
-  3, 336,393,169,
-  3, 126,393,281,
-  3, 31,414,32,
-  3, 172,416,396,
-  3, 114,438,320,
-  3, 149,427,318,
-  3, 349,402,171,
-  3, 107,440,399,
-  3, 175,415,312,
-  3, 210,378,321,
-  3, 324,358,160,
-  3, 312,415,19,
-  3, 321,378,159,
-  3, 323,366,165,
-  3, 167,409,295,
-  3, 406,421,204,
-  3, 300,369,30,
-  3, 295,409,94,
-  3, 293,438,346,
-  3, 146,431,279,
-  3, 117,421,406,
-  3, 37,388,38,
-  3, 32,414,282,
-  3, 319,421,170,
-  3, 285,429,104,
-  3, 64,359,63,
-  3, 280,443,193,
-  3, 354,423,154,
-  3, 190,423,354,
-  3, 81,404,80,
-  3, 350,440,107,
-  3, 418,436,113,
-  3, 69,381,68,
-  3, 94,392,295,
-  3, 303,386,7,
-  3, 95,358,324,
-  3, 174,370,351,
-  3, 159,391,321,
-  3, 62,367,61,
-  3, 321,391,49,
-  3, 305,432,207,
-  3, 73,417,292,
-  3, 181,438,293,
-  3, 176,425,297,
-  3, 364,371,106,
-  3, 187,371,364,
-  3, 220,360,352,
-  3, 109,398,354,
-  3, 292,417,177,
-  3, 59,383,58,
-  3, 297,425,42,
-  3, 334,417,74,
-  3, 352,360,112,
-  3, 354,398,190,
-  3, 85,394,84,
-  3, 111,377,356,
-  3, 177,417,334,
-  3, 301,409,167,
-  3, 165,433,351,
-  3, 87,387,86,
-  3, 304,402,97,
-  3, 20,415,302,
-  3, 302,415,175,
-  3, 348,411,166,
-  3, 295,437,167,
-  3, 356,377,237,
-  3, 351,370,165,
-  3, 196,418,389,
-  3, 170,421,389,
-  3, 160,405,324,
-  3, 165,435,323,
-  3, 16,408,17,
-  3, 328,410,162,
-  3, 74,417,73,
-  3, 19,415,20,
-  3, 107,416,311,
-  3, 221,432,305,
-  3, 204,421,319,
-  3, 42,425,43,
-  3, 116,435,370,
-  3, 111,441,315,
-  3, 342,431,146,
-  3, 194,431,342,
-  3, 374,392,94,
-  3, 174,392,374,
-  3, 174,439,370,
-  3, 323,435,210,
-  3, 399,440,188,
-  3, 330,434,146,
-  3, 370,435,165,
-  3, 356,441,111,
-  3, 398,420,171,
-  3, 171,420,349,
-  3, 351,436,174,
-  3, 351,433,113,
-  3, 163,426,375,
-  3, 346,438,114,
-  3, 402,434,171,
-  3, 113,436,351,
-  3, 164,413,376,
-  3, 162,440,350,
-  3, 389,418,170,
-  3, 374,439,174,
-  3, 370,439,116,
-  3, 172,442,403,
-  3, 389,421,117
-};
-Extrude Surface {6, {0.0,0.0,0.1}}{Layers{1,1,1};};
diff --git a/benchmarks/extrude/old_extrude_discrete.geo b/benchmarks/extrude/old_extrude_discrete.geo
deleted file mode 100644
index 7ac966a1ff5ee2ea51240a0ba81a92bcbde094de..0000000000000000000000000000000000000000
--- a/benchmarks/extrude/old_extrude_discrete.geo
+++ /dev/null
@@ -1,1351 +0,0 @@
-Discrete Line (1) = {12}
-{
-  0,0,0,
-  0.008666908357418674,0,0,
-  0.01741059051494093,0,0,
-  0.02623968793850377,0,0,
-  0.03515556989052919,0,0,
-  0.04415202866465823,0,0,
-  0.0532426446041934,0,0,
-  0.0624120060694025,0,0,
-  0.07167921785688836,0,0,
-  0.0810265391141614,0,0,
-  0.09047240713174502,0,0,
-  0.1,0,0
-};
-Discrete Line (2) = {34}
-{
-  0.1,0.3,0,
-  0.1,0.2909090909090913,0,
-  0.1,0.2818181818181826,0,
-  0.1,0.272727272727274,0,
-  0.1,0.2636363636363653,0,
-  0.1,0.2545454545454566,0,
-  0.1,0.245454545454548,0,
-  0.1,0.2363636363636393,0,
-  0.1,0.2272727272727306,0,
-  0.1,0.2181818181818216,0,
-  0.1,0.2090909090909125,0,
-  0.1,0.2000000000000035,0,
-  0.1,0.1909090909090944,0,
-  0.1,0.1818181818181853,0,
-  0.1,0.1727272727272762,0,
-  0.1,0.1636363636363671,0,
-  0.1,0.154545454545458,0,
-  0.1,0.1454545454545489,0,
-  0.1,0.1363636363636398,0,
-  0.1,0.1272727272727307,0,
-  0.1,0.1181818181818216,0,
-  0.1,0.1090909090909125,0,
-  0.1,0.1000000000000034,0,
-  0.1,0.09090909090909433,0,
-  0.1,0.08181818181818527,0,
-  0.1,0.07272727272727605,0,
-  0.1,0.06363636363636654,0,
-  0.1,0.05454545454545703,0,
-  0.1,0.04545454545454754,0,
-  0.1,0.03636363636363803,0,
-  0.1,0.02727272727272851,0,
-  0.1,0.018181818181819,0,
-  0.1,0.009090909090909483,0,
-  0.1,0,0
-};
-Discrete Line (3) = {12}
-{
-  0.1,0.3,0,
-  0.09090909090909115,0.3,0,
-  0.0818181818181823,0.3,0,
-  0.07272727272727345,0.3,0,
-  0.06363636363636459,0.3,0,
-  0.05454545454545573,0.3,0,
-  0.0454545454545468,0.3,0,
-  0.03636363636363778,0.3,0,
-  0.02727272727272877,0.3,0,
-  0.01818181818181929,0.3,0,
-  0.009090909090909639,0.3,0,
-  0,0.3,0
-};
-Discrete Line (4) = {36}
-{
-  0,0.3,0,
-  0,0.2909973636414624,0,
-  0,0.2819947272829249,0,
-  0,0.2730438656697747,0,
-  0,0.2640976732852516,0,
-  0,0.2551978447229378,0,
-  0,0.2463080963195167,0,
-  0,0.2374585496946034,0,
-  0,0.2286252452795079,0,
-  0,0.219825219879103,0,
-  0,0.2110483594596965,0,
-  0,0.2022970847862346,0,
-  0,0.1935766683700231,0,
-  0,0.1848733639512526,0,
-  0,0.176209391545889,0,
-  0,0.167553266739908,0,
-  0,0.1589457383531955,0,
-  0,0.1503382099664829,0,
-  0,0.1417849077882686,0,
-  0,0.1332338234281653,0,
-  0,0.1247260882725001,0,
-  0,0.1162314479471221,0,
-  0,0.1077605053582608,0,
-  0,0.09932087161239131,0,
-  0,0.09090627422926471,0,
-  0,0.08251660763823583,0,
-  0,0.07415176555653609,0,
-  0,0.06581227474114783,0,
-  0,0.05750037195565337,0,
-  0,0.04921307894911468,0,
-  0,0.04095028725862424,0,
-  0,0.03271188767963543,0,
-  0,0.0244977702583297,0,
-  0,0.01630782428387874,0,
-  0,0.008141938280599425,0,
-  0,0,0
-};
-Discrete Surface (6) = {444, 796}
-{
-  0,0,0, 0,0,1,
-  0.1,0,0, 0,0,1,
-  0.1,0.3,0, 0,0,1,
-  0,0.3,0, 0,0,1,
-  0.008666908357418674,0,0, 0,0,1,
-  0.01741059051494093,0,0, 0,0,1,
-  0.02623968793850377,0,0, 0,0,1,
-  0.03515556989052919,0,0, 0,0,1,
-  0.04415202866465823,0,0, 0,0,1,
-  0.0532426446041934,0,0, 0,0,1,
-  0.0624120060694025,0,0, 0,0,1,
-  0.07167921785688836,0,0, 0,0,1,
-  0.0810265391141614,0,0, 0,0,1,
-  0.09047240713174502,0,0, 0,0,1,
-  0.1,0.2909090909090913,0, 0,0,1,
-  0.1,0.2818181818181826,0, 0,0,1,
-  0.1,0.272727272727274,0, 0,0,1,
-  0.1,0.2636363636363653,0, 0,0,1,
-  0.1,0.2545454545454566,0, 0,0,1,
-  0.1,0.245454545454548,0, 0,0,1,
-  0.1,0.2363636363636393,0, 0,0,1,
-  0.1,0.2272727272727306,0, 0,0,1,
-  0.1,0.2181818181818216,0, 0,0,1,
-  0.1,0.2090909090909125,0, 0,0,1,
-  0.1,0.2000000000000035,0, 0,0,1,
-  0.1,0.1909090909090944,0, 0,0,1,
-  0.1,0.1818181818181853,0, 0,0,1,
-  0.1,0.1727272727272762,0, 0,0,1,
-  0.1,0.1636363636363671,0, 0,0,1,
-  0.1,0.154545454545458,0, 0,0,1,
-  0.1,0.1454545454545489,0, 0,0,1,
-  0.1,0.1363636363636398,0, 0,0,1,
-  0.1,0.1272727272727307,0, 0,0,1,
-  0.1,0.1181818181818216,0, 0,0,1,
-  0.1,0.1090909090909125,0, 0,0,1,
-  0.1,0.1000000000000034,0, 0,0,1,
-  0.1,0.09090909090909433,0, 0,0,1,
-  0.1,0.08181818181818527,0, 0,0,1,
-  0.1,0.07272727272727605,0, 0,0,1,
-  0.1,0.06363636363636654,0, 0,0,1,
-  0.1,0.05454545454545703,0, 0,0,1,
-  0.1,0.04545454545454754,0, 0,0,1,
-  0.1,0.03636363636363803,0, 0,0,1,
-  0.1,0.02727272727272851,0, 0,0,1,
-  0.1,0.018181818181819,0, 0,0,1,
-  0.1,0.009090909090909483,0, 0,0,1,
-  0.09090909090909115,0.3,0, 0,0,1,
-  0.0818181818181823,0.3,0, 0,0,1,
-  0.07272727272727345,0.3,0, 0,0,1,
-  0.06363636363636459,0.3,0, 0,0,1,
-  0.05454545454545573,0.3,0, 0,0,1,
-  0.0454545454545468,0.3,0, 0,0,1,
-  0.03636363636363778,0.3,0, 0,0,1,
-  0.02727272727272877,0.3,0, 0,0,1,
-  0.01818181818181929,0.3,0, 0,0,1,
-  0.009090909090909639,0.3,0, 0,0,1,
-  0,0.2909973636414624,0, 0,0,1,
-  0,0.2819947272829249,0, 0,0,1,
-  0,0.2730438656697747,0, 0,0,1,
-  0,0.2640976732852516,0, 0,0,1,
-  0,0.2551978447229378,0, 0,0,1,
-  0,0.2463080963195167,0, 0,0,1,
-  0,0.2374585496946034,0, 0,0,1,
-  0,0.2286252452795079,0, 0,0,1,
-  0,0.219825219879103,0, 0,0,1,
-  0,0.2110483594596965,0, 0,0,1,
-  0,0.2022970847862346,0, 0,0,1,
-  0,0.1935766683700231,0, 0,0,1,
-  0,0.1848733639512526,0, 0,0,1,
-  0,0.176209391545889,0, 0,0,1,
-  0,0.167553266739908,0, 0,0,1,
-  0,0.1589457383531955,0, 0,0,1,
-  0,0.1503382099664829,0, 0,0,1,
-  0,0.1417849077882686,0, 0,0,1,
-  0,0.1332338234281653,0, 0,0,1,
-  0,0.1247260882725001,0, 0,0,1,
-  0,0.1162314479471221,0, 0,0,1,
-  0,0.1077605053582608,0, 0,0,1,
-  0,0.09932087161239131,0, 0,0,1,
-  0,0.09090627422926471,0, 0,0,1,
-  0,0.08251660763823583,0, 0,0,1,
-  0,0.07415176555653609,0, 0,0,1,
-  0,0.06581227474114783,0, 0,0,1,
-  0,0.05750037195565337,0, 0,0,1,
-  0,0.04921307894911468,0, 0,0,1,
-  0,0.04095028725862424,0, 0,0,1,
-  0,0.03271188767963543,0, 0,0,1,
-  0,0.0244977702583297,0, 0,0,1,
-  0,0.01630782428387874,0, 0,0,1,
-  0,0.008141938280599425,0, 0,0,1,
-  0.04943856805802106,0.05380328937598064,0, 0,0,1,
-  0.04937989365470935,0.1124832183441131,0, 0,0,1,
-  0.04906455701727032,0.1635647017394161,0, 0,0,1,
-  0.04994965630437984,0.2156919141195039,0, 0,0,1,
-  0.04267059113765502,0.2570469829773546,0, 0,0,1,
-  0.03391641368163509,0.08278404853543544,0, 0,0,1,
-  0.06648368881305394,0.08370353619075385,0, 0,0,1,
-  0.03070072220881402,0.1373583285161116,0, 0,0,1,
-  0.03239234128878235,0.188915673583429,0, 0,0,1,
-  0.0299460344723322,0.03007783319538664,0, 0,0,1,
-  0.06768096916602667,0.1896895353909995,0, 0,0,1,
-  0.06786973965039635,0.1380641153053757,0, 0,0,1,
-  0.06906611821771347,0.2409311118264899,0, 0,0,1,
-  0.06996652307867668,0.03039994189830039,0, 0,0,1,
-  0.0691174250123677,0.2709158238749525,0, 0,0,1,
-  0.02840537430302887,0.2325216109658483,0, 0,0,1,
-  0.02511114213595724,0.05911563651928614,0, 0,0,1,
-  0.02517831137330134,0.1072439011631667,0, 0,0,1,
-  0.07607995685001075,0.05822965058595274,0, 0,0,1,
-  0.02396473897811648,0.163320481320246,0, 0,0,1,
-  0.07452432870166287,0.1081253136296552,0, 0,0,1,
-  0.07581076254876624,0.2140703859407646,0, 0,0,1,
-  0.07494032044919846,0.1626124210265359,0, 0,0,1,
-  0.02541377229030616,0.2752671742933001,0, 0,0,1,
-  0.02240981574582322,0.2107215231865771,0, 0,0,1,
-  0.04983413295137611,0.02097457574043528,0, 0,0,1,
-  0.04941134832955653,0.2785088943493572,0, 0,0,1,
-  0.02162182272400273,0.2549169591250538,0, 0,0,1,
-  0.04869901355652118,0.2352716829945559,0, 0,0,1,
-  0.04981200873474365,0.07334226180713629,0, 0,0,1,
-  0.04972809749452883,0.1319447222339546,0, 0,0,1,
-  0.04952763128918493,0.09235013068152129,0, 0,0,1,
-  0.05002720146062067,0.1835006745097555,0, 0,0,1,
-  0.01809529513063262,0.1247780828255636,0, 0,0,1,
-  0.01806478650235874,0.01690638044718323,0, 0,0,1,
-  0.01689220873880078,0.04297580650570328,0, 0,0,1,
-  0.08133050962236976,0.2542589654384563,0, 0,0,1,
-  0.01685845588998747,0.07560732514480217,0, 0,0,1,
-  0.08215665746834816,0.1233506374840099,0, 0,0,1,
-  0.0174793557941356,0.1790378811691205,0, 0,0,1,
-  0.01725612321248826,0.14730753645529,0, 0,0,1,
-  0.0825185154372209,0.1777739795212497,0, 0,0,1,
-  0.08191001837008111,0.01695445239954515,0, 0,0,1,
-  0.08245487873338836,0.04241313266827915,0, 0,0,1,
-  0.01635842356981337,0.09201689545532704,0, 0,0,1,
-  0.08221593334653349,0.07521836620235664,0, 0,0,1,
-  0.03535329177557378,0.1208894731361945,0, 0,0,1,
-  0.06001063963613316,0.2559387961281948,0, 0,0,1,
-  0.0818077764056373,0.2827883909497645,0, 0,0,1,
-  0.08171498673025543,0.2290982824542263,0, 0,0,1,
-  0.04602930931322723,0.03681584715365363,0, 0,0,1,
-  0.06477178552435675,0.1207471907520468,0, 0,0,1,
-  0.08298195022619295,0.0925110661864206,0, 0,0,1,
-  0.08276139739664286,0.198420223448365,0, 0,0,1,
-  0.04488355136692088,0.1987639857646004,0, 0,0,1,
-  0.08334696745782752,0.1457081058311505,0, 0,0,1,
-  0.04459948929908309,0.1473579168334732,0, 0,0,1,
-  0.06512452849271227,0.04622580932201703,0, 0,0,1,
-  0.01621820841377811,0.1961418883892152,0, 0,0,1,
-  0.06376040295637672,0.1734094645067047,0, 0,0,1,
-  0.06356993495135672,0.2250288024266472,0, 0,0,1,
-  0.03478326135552385,0.01494248276679263,0, 0,0,1,
-  0.06198546362461019,0.2038989860551927,0, 0,0,1,
-  0.06134781879471848,0.1516492286781151,0, 0,0,1,
-  0.0363866071532066,0.174109283615948,0, 0,0,1,
-  0.06470603073057905,0.01567617532170828,0, 0,0,1,
-  0.03278456750073648,0.04654991808697145,0, 0,0,1,
-  0.01477110422850003,0.2240497891622102,0, 0,0,1,
-  0.03522911699557398,0.2201105953795862,0, 0,0,1,
-  0.06406464582549254,0.2842927462456292,0, 0,0,1,
-  0.03654951041452378,0.06791888012814969,0, 0,0,1,
-  0.01463326826816211,0.2407821891772683,0, 0,0,1,
-  0.03625883431497984,0.09693863914053574,0, 0,0,1,
-  0.06171780826535542,0.102608518923871,0, 0,0,1,
-  0.06086854646045398,0.06259484700313865,0, 0,0,1,
-  0.03546452601422212,0.2852032479815787,0, 0,0,1,
-  0.01450570869194033,0.2853022845979487,0, 0,0,1,
-  0.03378001693506955,0.2465928739089589,0, 0,0,1,
-  0.01344752229879137,0.03102195188520347,0, 0,0,1,
-  0.08657587267131039,0.2682189789078185,0, 0,0,1,
-  0.0138172616037642,0.2655531414559898,0, 0,0,1,
-  0.03128238727688393,0.1511216326400835,0, 0,0,1,
-  0.01241722575031191,0.1126136155927706,0, 0,0,1,
-  0.01144695717269534,0.06240812142373482,0, 0,0,1,
-  0.03817302106601303,0.2708393258556307,0, 0,0,1,
-  0.0861838194316748,0.2433468087849759,0, 0,0,1,
-  0.08653320051361627,0.03123670729056622,0, 0,0,1,
-  0.01352711071236765,0.1358222689587102,0, 0,0,1,
-  0.08750863010173002,0.1123907133147419,0, 0,0,1,
-  0.05774929704258962,0.03215453948304765,0, 0,0,1,
-  0.01166746654190703,0.1632932444597857,0, 0,0,1,
-  0.03359178895074701,0.2025823138227348,0, 0,0,1,
-  0.08919625723778936,0.1594149220724857,0, 0,0,1,
-  0.08830555960514255,0.05904372679951998,0, 0,0,1,
-  0.05269622362352771,0.2664452262662085,0, 0,0,1,
-  0.08836469565632354,0.2137520755691794,0, 0,0,1,
-  0.07170724523121683,0.0712567286527829,0, 0,0,1,
-  0.03842089931684848,0.05631835663662797,0, 0,0,1,
-  0.03919462708672876,0.1091173700064188,0, 0,0,1,
-  0.07101730360489114,0.09441473403353508,0, 0,0,1,
-  0.0384936307883243,0.161454328389355,0, 0,0,1,
-  0.01148442970974977,0.2068433063302576,0, 0,0,1,
-  0.05635282539443316,0.1937282888974277,0, 0,0,1,
-  0.08672687094080134,0.136389452677617,0, 0,0,1,
-  0.05733229973588551,0.140935008677078,0, 0,0,1,
-  0.05025602369477496,0.2491586739726355,0, 0,0,1,
-  0.02777188266670655,0.2621911089520076,0, 0,0,1,
-  0.04896364134540693,0.01012503553289783,0, 0,0,1,
-  0.08915978538268282,0.1877368376200544,0, 0,0,1,
-  0.04467794673397693,0.08274600679155963,0, 0,0,1,
-  0.01125607504756643,0.1004022065934169,0, 0,0,1,
-  0.01014017967121661,0.05048150026903755,0, 0,0,1,
-  0.02605423709559382,0.01104838406806721,0, 0,0,1,
-  0.04113593165098633,0.02761886599493008,0, 0,0,1,
-  0.009637786125538663,0.2502841526904231,0, 0,0,1,
-  0.01005307094342986,0.08411889939387246,0, 0,0,1,
-  0.009581445548931599,0.01102332891106007,0, 0,0,1,
-  0.03884945350904942,0.2307109426059477,0, 0,0,1,
-  0.05554050725953068,0.08270220398137947,0, 0,0,1,
-  0.02501380175597523,0.2884257167879166,0, 0,0,1,
-  0.04992435965025796,0.2899567511109187,0, 0,0,1,
-  0.07035767159446743,0.2511128590589935,0, 0,0,1,
-  0.05454812588931711,0.04374557655640481,0, 0,0,1,
-  0.08910837445055786,0.1012521849088495,0, 0,0,1,
-  0.07191532300695119,0.1477130220576167,0, 0,0,1,
-  0.07144348541409365,0.1994029552460558,0, 0,0,1,
-  0.04104154947073443,0.2106499218226232,0, 0,0,1,
-  0.07430545316632886,0.01019683179112018,0, 0,0,1,
-  0.07342724934351655,0.2887172598334418,0, 0,0,1,
-  0.02714979904802766,0.09108586827788052,0, 0,0,1,
-  0.06018497728191427,0.1628850465678994,0, 0,0,1,
-  0.052813043019131,0.2257300937159397,0, 0,0,1,
-  0.05959717747406301,0.2747518875092944,0, 0,0,1,
-  0.09018732191646869,0.1697652393643418,0, 0,0,1,
-  0.04636563487995943,0.06377448745989739,0, 0,0,1,
-  0.05949764517598849,0.2351304159620017,0, 0,0,1,
-  0.08942753179949342,0.08411738992572398,0, 0,0,1,
-  0.01017930031863925,0.1877782374489671,0, 0,0,1,
-  0.03886163791568874,0.1303484230966758,0, 0,0,1,
-  0.02627432503760547,0.06945286839030726,0, 0,0,1,
-  0.04545850862201047,0.1220601887527192,0, 0,0,1,
-  0.06015102574654745,0.09221713671545681,0, 0,0,1,
-  0.06081015567090238,0.1305611072067474,0, 0,0,1,
-  0.04552734130476399,0.1022116915267994,0, 0,0,1,
-  0.02603376948071753,0.1175195093502542,0, 0,0,1,
-  0.01092884955846057,0.2752475207523316,0, 0,0,1,
-  0.02623682280070831,0.1730196004758258,0, 0,0,1,
-  0.0599728170545432,0.2149318402201275,0, 0,0,1,
-  0.02723773418906296,0.02054104817437022,0, 0,0,1,
-  0.02819188959081512,0.1275125763903226,0, 0,0,1,
-  0.02496486337772009,0.2213873111207296,0, 0,0,1,
-  0.04221080556799754,0.1896758652024453,0, 0,0,1,
-  0.07354334101592894,0.2236089656829513,0, 0,0,1,
-  0.07174158576799367,0.1800930573003826,0, 0,0,1,
-  0.09028233510548966,0.01137390075889436,0, 0,0,1,
-  0.06152915382403199,0.07317590874410404,0, 0,0,1,
-  0.04678947611597696,0.1735629976052024,0, 0,0,1,
-  0.009101103377849942,0.1204479307077391,0, 0,0,1,
-  0.04269479255974289,0.04633604038286526,0, 0,0,1,
-  0.07721167986007606,0.08423475137568255,0, 0,0,1,
-  0.07238629015733426,0.12829865846332,0, 0,0,1,
-  0.07390625424649344,0.1175043837685203,0, 0,0,1,
-  0.09064407637701408,0.259665338097065,0, 0,0,1,
-  0.009222490210454572,0.172835227104156,0, 0,0,1,
-  0.009356380077452781,0.1535584613955532,0, 0,0,1,
-  0.009114285192323603,0.02122829277464142,0, 0,0,1,
-  0.07796114827250969,0.1883201522610519,0, 0,0,1,
-  0.008937306344383857,0.07052872865870194,0, 0,0,1,
-  0.09030542885147326,0.2885685604701616,0, 0,0,1,
-  0.06044455779806655,0.1831220183615892,0, 0,0,1,
-  0.07264606348732416,0.03991380119060847,0, 0,0,1,
-  0.09062061219000558,0.04901015385761164,0, 0,0,1,
-  0.09069398766617448,0.0688598192042111,0, 0,0,1,
-  0.008123984341192419,0.03787387046147667,0, 0,0,1,
-  0.02469969170136275,0.08104728642847858,0, 0,0,1,
-  0.06033048963429793,0.2455496260239905,0, 0,0,1,
-  0.02151101002359235,0.03418690517024868,0, 0,0,1,
-  0.07286101546871832,0.02072029833490226,0, 0,0,1,
-  0.05947433126150597,0.1125615271409249,0, 0,0,1,
-  0.02167160681543153,0.1393636770469187,0, 0,0,1,
-  0.09059415405628564,0.2236295645622291,0, 0,0,1,
-  0.02480075783544586,0.2419154818943148,0, 0,0,1,
-  0.008816776876076344,0.2167587936842484,0, 0,0,1,
-  0.009038346020500104,0.232484759114464,0, 0,0,1,
-  0.02207635133126941,0.1879588155809851,0, 0,0,1,
-  0.09057955899663048,0.2768325469266408,0, 0,0,1,
-  0.02449752549330311,0.0496811686398899,0, 0,0,1,
-  0.09092016500874539,0.2041131979983527,0, 0,0,1,
-  0.05836549929763069,0.008376517204580238,0, 0,0,1,
-  0.05204071400842313,0.1542418473656231,0, 0,0,1,
-  0.07777279335694906,0.1380211700913576,0, 0,0,1,
-  0.07237020078977648,0.261380298133381,0, 0,0,1,
-  0.09191195996468564,0.1224920799838925,0, 0,0,1,
-  0.07486187282829837,0.04913563922524344,0, 0,0,1,
-  0.05232879015259182,0.2061619553276807,0, 0,0,1,
-  0.07265981053425072,0.2793504808417681,0, 0,0,1,
-  0.03631683207598058,0.0376577773159079,0, 0,0,1,
-  0.05892483751673459,0.05363467383883449,0, 0,0,1,
-  0.0907058058023005,0.02238482403021362,0, 0,0,1,
-  0.05824806068059205,0.02311420003147432,0, 0,0,1,
-  0.05512793619522999,0.1222660922205425,0, 0,0,1,
-  0.07867930612091967,0.2378613324047284,0, 0,0,1,
-  0.00828650221244636,0.1440812556269965,0, 0,0,1,
-  0.02612712529536975,0.1967455934565623,0, 0,0,1,
-  0.06228004117172392,0.2653937179216883,0, 0,0,1,
-  0.03410425775749156,0.2553770537574441,0, 0,0,1,
-  0.01792042953401478,0.1564626589208993,0, 0,0,1,
-  0.0916107121475075,0.03912967887302492,0, 0,0,1,
-  0.07505368834360296,0.1711114557478963,0, 0,0,1,
-  0.08046291293405049,0.06591108507188968,0, 0,0,1,
-  0.09132848802679211,0.150162442763718,0, 0,0,1,
-  0.04269937468251984,0.2424832394702249,0, 0,0,1,
-  0.09050420217545246,0.2341426047472606,0, 0,0,1,
-  0.03975338931817624,0.007871382293476517,0, 0,0,1,
-  0.04064464564859555,0.1391376642072461,0, 0,0,1,
-  0.04402955716651866,0.2222460808906515,0, 0,0,1,
-  0.01781094460619342,0.1701471730655267,0, 0,0,1,
-  0.07830644960148971,0.03342448812186011,0, 0,0,1,
-  0.007680505493733437,0.1976435436744516,0, 0,0,1,
-  0.007978941021165942,0.09307023661607147,0, 0,0,1,
-  0.01922404935778042,0.232300123844155,0, 0,0,1,
-  0.02030636901147868,0.09982551488877046,0, 0,0,1,
-  0.09203777807414038,0.2498676571143333,0, 0,0,1,
-  0.09191797952574435,0.1783662442836693,0, 0,0,1,
-  0.02013040691781846,0.02572483794683859,0, 0,0,1,
-  0.08200939129162396,0.2073426073847147,0, 0,0,1,
-  0.06411941390668997,0.03788558157562232,0, 0,0,1,
-  0.0820234490865738,0.2206696002838985,0, 0,0,1,
-  0.05510766430874156,0.170357204533289,0, 0,0,1,
-  0.007707431642602998,0.2597693215451046,0, 0,0,1,
-  0.03115925135530253,0.2117345352657591,0, 0,0,1,
-  0.05881742449159542,0.2918979187621946,0, 0,0,1,
-  0.01792553337181894,0.007350198036130873,0, 0,0,1,
-  0.04104786614712366,0.2921517055439529,0, 0,0,1,
-  0.03956365628563203,0.07587586206590409,0, 0,0,1,
-  0.03011925807439417,0.1807152709944913,0, 0,0,1,
-  0.0169965923551548,0.05541862941953492,0, 0,0,1,
-  0.07007105450898299,0.2317783654849989,0, 0,0,1,
-  0.039153242039623,0.08967297719647721,0, 0,0,1,
-  0.05069536332949499,0.2579824565603571,0, 0,0,1,
-  0.04423848987717183,0.1557302026851194,0, 0,0,1,
-  0.07971797010460688,0.1019432919633422,0, 0,0,1,
-  0.07752715094272272,0.2461740403567472,0, 0,0,1,
-  0.06764803967079111,0.05481581517747639,0, 0,0,1,
-  0.007533120601931467,0.1292895752948564,0, 0,0,1,
-  0.04979604467376633,0.02898993917936817,0, 0,0,1,
-  0.07866726386665482,0.2719272950050943,0, 0,0,1,
-  0.09194760516771022,0.09344624816131675,0, 0,0,1,
-  0.08012666225562021,0.1552818613912269,0, 0,0,1,
-  0.026366013561071,0.04072178847116093,0, 0,0,1,
-  0.0406404175121087,0.1813224982555967,0, 0,0,1,
-  0.06638208514037212,0.007101162012875179,0, 0,0,1,
-  0.04873969210343436,0.1405054590535852,0, 0,0,1,
-  0.09257325665513802,0.195999067427848,0, 0,0,1,
-  0.03433451395152162,0.2384288662471029,0, 0,0,1,
-  0.01803447107018375,0.06617082913848593,0, 0,0,1,
-  0.01975582745424454,0.2032394433774424,0, 0,0,1,
-  0.04258400381771957,0.01700724641307161,0, 0,0,1,
-  0.008332875258948913,0.2917417162256912,0, 0,0,1,
-  0.02596818098385111,0.1459870696530841,0, 0,0,1,
-  0.0284813111066133,0.09948506531989622,0, 0,0,1,
-  0.03301240442506546,0.2771741624555794,0, 0,0,1,
-  0.06827016675558029,0.1662310737536424,0, 0,0,1,
-  0.08168386994819452,0.29247682863844,0, 0,0,1,
-  0.03228751871615694,0.167030539725871,0, 0,0,1,
-  0.08267317943672375,0.05203032866969079,0, 0,0,1,
-  0.06806624889808816,0.2099772078322099,0, 0,0,1,
-  0.0676470016575042,0.1113157378906632,0, 0,0,1,
-  0.03176345523353472,0.07527260243293438,0, 0,0,1,
-  0.006727574683700789,0.2243100910403469,0, 0,0,1,
-  0.06847543202057235,0.1580869773249052,0, 0,0,1,
-  0.08222672781710733,0.1657210258356022,0, 0,0,1,
-  0.06419506740159016,0.1965542798077724,0, 0,0,1,
-  0.01690471517486694,0.2162290054845376,0, 0,0,1,
-  0.03078113302537267,0.05407929293730027,0, 0,0,1,
-  0.06447188102771494,0.1446280134389742,0, 0,0,1,
-  0.03281131309366399,0.2929154260670946,0, 0,0,1,
-  0.006726481086626164,0.2416771527065344,0, 0,0,1,
-  0.08276808882988401,0.007883453229140693,0, 0,0,1,
-  0.09252357500887304,0.141268696520782,0, 0,0,1,
-  0.04095044642843683,0.2785195262531039,0, 0,0,1,
-  0.03195337655869265,0.06152851823439536,0, 0,0,1,
-  0.03482085141749088,0.02261717698222997,0, 0,0,1,
-  0.0559253145233716,0.01585099576030879,0, 0,0,1,
-  0.04429939055991405,0.2650152624206911,0, 0,0,1,
-  0.05396617709251803,0.09952288632236958,0, 0,0,1,
-  0.0538079771730238,0.0604060922087004,0, 0,0,1,
-  0.06807337640732652,0.2179883403884909,0, 0,0,1,
-  0.05588105233390689,0.2837633782998984,0, 0,0,1,
-  0.03632231678897647,0.1953673325900875,0, 0,0,1,
-  0.02175961762897538,0.1321682569834458,0, 0,0,1,
-  0.007030750697466995,0.1801725989026808,0, 0,0,1,
-  0.07982936275250382,0.02553204659693582,0, 0,0,1,
-  0.006549149915343314,0.2680664709570159,0, 0,0,1,
-  0.01922010621654489,0.2788199052065876,0, 0,0,1,
-  0.06917588693459614,0.06400363451096822,0, 0,0,1,
-  0.03234087162575537,0.006826108049671261,0, 0,0,1,
-  0.006073945327801719,0.02904488705957779,0, 0,0,1,
-  0.09273862553505061,0.0764897543699725,0, 0,0,1,
-  0.02019298640880669,0.2616149302400951,0, 0,0,1,
-  0.0698486666672703,0.1030349614053262,0, 0,0,1,
-  0.06652295667467534,0.2928006394660684,0, 0,0,1,
-  0.03655616266154597,0.2631152686607987,0, 0,0,1,
-  0.08131503545642571,0.2630154572072237,0, 0,0,1,
-  0.006587093819851195,0.04483545546311527,0, 0,0,1,
-  0.03131119373679582,0.226133694576312,0, 0,0,1,
-  0.01837862784181576,0.1157793891016666,0, 0,0,1,
-  0.04057812939192712,0.1155898129989157,0, 0,0,1,
-  0.03126362495172781,0.1583960213678358,0, 0,0,1,
-  0.03219475038017165,0.1118490023868191,0, 0,0,1,
-  0.01770265376607229,0.2932650874040193,0, 0,0,1,
-  0.04865479506954632,0.1918858975862876,0, 0,0,1,
-  0.03485079864769412,0.1448742717513725,0, 0,0,1,
-  0.007667777071145932,0.1071389343860374,0, 0,0,1,
-  0.006799845784060426,0.07737403919837535,0, 0,0,1,
-  0.04329470810445293,0.07020566345252041,0, 0,0,1,
-  0.01809499667680631,0.2483745579559958,0, 0,0,1,
-  0.006748884107321751,0.05692622109812206,0, 0,0,1,
-  0.09372260441845391,0.268209661854113,0, 0,0,1,
-  0.0403602124799252,0.2502709559319859,0, 0,0,1,
-  0.04295879196070669,0.09543438184957867,0, 0,0,1,
-  0.006553222701963051,0.2829221135957352,0, 0,0,1,
-  0.05305261031651766,0.241523805427261,0, 0,0,1,
-  0.05486016736149558,0.06712202410998261,0, 0,0,1,
-  0.09185760483216832,0.1306472448677418,0, 0,0,1,
-  0.09386080916472941,0.2414288730536943,0, 0,0,1,
-  0.01701816133570556,0.1071453047137566,0, 0,0,1,
-  0.005857386015204671,0.137103665976998,0, 0,0,1,
-  0.02099360625206249,0.2694021584839839,0, 0,0,1,
-  0.07199460326175358,0.07792080313624447,0, 0,0,1,
-  0.02475347689816131,0.1536915908196552,0, 0,0,1,
-  0.01501358330785345,0.2568506752171648,0, 0,0,1,
-  0.07966327601372003,0.112672133762342,0, 0,0,1,
-  0.04078645678860521,0.1682260077493461,0, 0,0,1,
-  0.06554299075583314,0.02423008020022461,0, 0,0,1,
-  0.09398325079210289,0.03154891727662895,0, 0,0,1,
-  0.05453794860086236,0.1063635685725725,0, 0,0,1,
-  0.05523471010008513,0.1772782843706078,0, 0,0,1,
-  0.01824217424612933,0.08483644085341754,0, 0,0,1,
-  0.06619328448596223,0.2774584463968358,0, 0,0,1,
-  0.09406310001300849,0.1079688986841182,0, 0,0,1,
-  0.05242367337145461,0.1467906376872577,0, 0,0,1,
-  0.04606368775049969,0.2289539738618407,0, 0,0,1,
-  0.02753588322626437,0.2814575041755443,0, 0,0,1,
-  0.0381279394497433,0.1520724930468378,0, 0,0,1,
-  0.04374982295112967,0.2851079171767646,0, 0,0,1,
-  0.03039971713968145,0.2700751922892058,0, 0,0,1,
-  0.0273819597074987,0.2512202996312642,0, 0,0,1,
-  0.02635630161136649,0.2046771409478179,0, 0,0,1,
-  0.04499335366173904,0.2722439304320244,0, 0,0,1,
-  0.03415593675720739,0.1040329787507068,0, 0,0,1,
-  0.07520936860734033,0.206195072540403,0, 0,0,1,
-  0.006255882734957453,0.1137822797445116,0, 0,0,1,
-  0.08184997135179831,0.1315212808568459,0, 0,0,1
-}
-{
-  3, 168,266,125,
-  3, 125,263,168,
-  3, 281,294,137,
-  3, 179,212,140,
-  3, 144,216,181,
-  3, 192,284,144,
-  3, 173,257,82,
-  3, 80,205,79,
-  3, 33,282,178,
-  3, 215,256,143,
-  3, 211,281,137,
-  3, 129,325,274,
-  3, 205,309,79,
-  3, 229,264,127,
-  3, 178,430,33,
-  3, 152,284,192,
-  3, 229,358,264,
-  3, 93,237,221,
-  3, 221,237,150,
-  3, 71,180,70,
-  3, 82,407,173,
-  3, 255,314,168,
-  3, 177,334,123,
-  3, 28,223,182,
-  3, 236,325,129,
-  3, 96,249,189,
-  3, 124,314,255,
-  3, 4,206,89,
-  3, 138,336,275,
-  3, 189,249,142,
-  3, 100,256,215,
-  3, 28,182,29,
-  3, 175,312,126,
-  3, 39,183,40,
-  3, 275,336,169,
-  3, 178,422,331,
-  3, 338,360,214,
-  3, 105,310,240,
-  3, 291,327,139,
-  3, 178,331,213,
-  3, 258,275,15,
-  3, 4,322,206,
-  3, 5,322,4,
-  3, 180,253,70,
-  3, 126,332,175,
-  3, 139,327,242,
-  3, 22,185,23,
-  3, 144,284,216,
-  3, 71,254,180,
-  3, 178,282,128,
-  3, 240,395,105,
-  3, 123,380,177,
-  3, 125,326,201,
-  3, 133,307,176,
-  3, 187,224,160,
-  3, 118,301,207,
-  3, 112,360,338,
-  3, 176,297,133,
-  3, 184,222,116,
-  3, 186,299,135,
-  3, 179,424,103,
-  3, 177,269,130,
-  3, 199,208,121,
-  3, 128,422,178,
-  3, 140,335,179,
-  3, 301,344,207,
-  3, 66,191,65,
-  3, 206,255,88,
-  3, 276,326,125,
-  3, 130,292,177,
-  3, 45,244,13,
-  3, 325,340,98,
-  3, 286,339,99,
-  3, 144,401,192,
-  3, 183,261,40,
-  3, 90,224,187,
-  3, 186,385,299,
-  3, 120,232,194,
-  3, 98,340,241,
-  3, 39,262,183,
-  3, 44,288,244,
-  3, 25,198,26,
-  3, 212,248,140,
-  3, 194,232,101,
-  3, 268,290,91,
-  3, 90,248,212,
-  3, 156,248,187,
-  3, 163,231,189,
-  3, 189,231,96,
-  3, 120,304,228,
-  3, 92,279,220,
-  3, 120,342,304,
-  3, 89,206,88,
-  3, 181,379,144,
-  3, 220,279,153,
-  3, 188,233,91,
-  3, 119,208,199,
-  3, 36,226,37,
-  3, 187,248,90,
-  3, 179,316,212,
-  3, 103,316,179,
-  3, 109,306,180,
-  3, 139,302,291,
-  3, 291,302,175,
-  3, 180,296,109,
-  3, 22,270,185,
-  3, 216,284,93,
-  3, 240,310,157,
-  3, 216,305,158,
-  3, 93,305,216,
-  3, 299,385,108,
-  3, 46,258,14,
-  3, 108,355,183,
-  3, 12,217,11,
-  3, 183,299,108,
-  3, 1,45,13,
-  3, 149,298,243,
-  3, 122,259,192,
-  3, 245,419,96,
-  3, 182,300,29,
-  3, 208,231,121,
-  3, 4,89,0,
-  3, 227,308,67,
-  3, 36,337,226,
-  3, 189,390,163,
-  3, 123,334,247,
-  3, 243,259,149,
-  3, 191,272,65,
-  3, 226,249,135,
-  3, 192,259,100,
-  3, 142,249,226,
-  3, 185,277,23,
-  3, 117,437,196,
-  3, 100,259,243,
-  3, 44,244,45,
-  3, 164,385,245,
-  3, 208,245,96,
-  3, 12,368,217,
-  3, 245,385,186,
-  3, 196,437,295,
-  3, 228,239,136,
-  3, 14,258,15,
-  3, 149,352,298,
-  3, 198,313,26,
-  3, 160,371,187,
-  3, 97,239,228,
-  3, 166,384,209,
-  3, 201,394,125,
-  3, 131,361,223,
-  3, 143,256,198,
-  3, 202,322,6,
-  3, 116,439,184,
-  3, 137,294,184,
-  3, 184,329,137,
-  3, 187,364,156,
-  3, 186,419,245,
-  3, 221,225,118,
-  3, 185,317,111,
-  3, 211,265,102,
-  3, 91,290,230,
-  3, 137,265,211,
-  3, 33,430,34,
-  3, 219,311,134,
-  3, 150,225,221,
-  3, 68,227,67,
-  3, 384,433,209,
-  3, 298,361,131,
-  3, 233,440,162,
-  3, 111,315,185,
-  3, 414,443,128,
-  3, 141,250,232,
-  3, 9,197,8,
-  3, 114,363,191,
-  3, 138,275,258,
-  3, 232,250,101,
-  3, 142,331,189,
-  3, 199,324,119,
-  3, 136,230,228,
-  3, 289,424,179,
-  3, 14,2,46,
-  3, 135,419,186,
-  3, 101,280,214,
-  3, 95,328,219,
-  3, 129,274,227,
-  3, 99,339,266,
-  3, 106,345,326,
-  3, 228,230,120,
-  3, 289,335,115,
-  3, 125,394,263,
-  3, 219,328,162,
-  3, 234,239,123,
-  3, 227,274,148,
-  3, 214,280,145,
-  3, 179,335,289,
-  3, 212,316,147,
-  3, 136,239,234,
-  3, 66,308,191,
-  3, 202,238,124,
-  3, 170,418,235,
-  3, 188,440,233,
-  3, 93,284,237,
-  3, 282,414,128,
-  3, 235,418,384,
-  3, 237,284,152,
-  3, 145,280,193,
-  3, 182,338,300,
-  3, 27,223,28,
-  3, 203,286,99,
-  3, 121,328,199,
-  3, 195,265,137,
-  3, 96,231,208,
-  3, 212,287,90,
-  3, 300,338,145,
-  3, 151,238,202,
-  3, 46,353,258,
-  3, 234,396,107,
-  3, 124,255,206,
-  3, 191,308,148,
-  3, 203,372,347,
-  3, 140,286,203,
-  3, 156,286,248,
-  3, 147,287,212,
-  3, 153,431,194,
-  3, 193,369,145,
-  3, 91,397,188,
-  3, 97,380,239,
-  3, 192,362,152,
-  3, 100,362,192,
-  3, 248,286,140,
-  3, 205,404,127,
-  3, 47,353,46,
-  3, 148,346,191,
-  3, 78,309,200,
-  3, 250,280,101,
-  3, 396,416,107,
-  3, 190,330,92,
-  3, 134,428,219,
-  3, 198,256,131,
-  3, 269,380,97,
-  3, 192,401,122,
-  3, 92,423,190,
-  3, 191,346,114,
-  3, 61,204,60,
-  3, 72,292,254,
-  3, 219,350,311,
-  3, 86,387,263,
-  3, 119,245,208,
-  3, 218,353,48,
-  3, 21,302,270,
-  3, 203,347,115,
-  3, 126,312,252,
-  3, 6,322,5,
-  3, 219,428,264,
-  3, 324,405,119,
-  3, 331,422,110,
-  3, 9,278,197,
-  3, 235,411,58,
-  3, 194,365,153,
-  3, 326,345,173,
-  3, 194,342,120,
-  3, 101,365,194,
-  3, 217,267,155,
-  3, 58,411,57,
-  3, 127,404,257,
-  3, 94,409,195,
-  3, 261,297,41,
-  3, 141,290,268,
-  3, 51,210,50,
-  3, 132,267,217,
-  3, 163,357,268,
-  3, 281,336,104,
-  3, 104,294,281,
-  3, 176,382,288,
-  3, 331,390,189,
-  3, 148,308,227,
-  3, 200,403,78,
-  3, 86,263,85,
-  3, 53,400,209,
-  3, 159,285,218,
-  3, 201,407,84,
-  3, 244,288,132,
-  3, 215,356,152,
-  3, 195,329,94,
-  3, 99,314,238,
-  3, 141,251,250,
-  3, 137,329,195,
-  3, 163,390,357,
-  3, 260,283,147,
-  3, 196,389,117,
-  3, 250,251,128,
-  3, 114,320,240,
-  3, 197,303,8,
-  3, 83,407,82,
-  3, 214,360,153,
-  3, 251,422,128,
-  3, 240,320,158,
-  3, 281,393,336,
-  3, 288,382,132,
-  3, 348,400,55,
-  3, 143,441,215,
-  3, 398,434,190,
-  3, 244,368,13,
-  3, 48,353,47,
-  3, 134,309,205,
-  3, 102,332,211,
-  3, 161,310,271,
-  3, 102,265,225,
-  3, 271,310,105,
-  3, 124,322,202,
-  3, 193,443,414,
-  3, 156,339,286,
-  3, 266,314,99,
-  3, 219,264,95,
-  3, 131,313,198,
-  3, 369,414,31,
-  3, 250,443,280,
-  3, 55,400,54,
-  3, 121,410,328,
-  3, 243,256,100,
-  3, 131,256,243,
-  3, 198,343,143,
-  3, 136,399,397,
-  3, 213,337,35,
-  3, 126,281,211,
-  3, 70,253,69,
-  3, 206,322,124,
-  3, 230,290,120,
-  3, 347,372,151,
-  3, 13,368,12,
-  3, 229,345,106,
-  3, 193,414,369,
-  3, 274,325,98,
-  3, 105,344,271,
-  3, 120,290,232,
-  3, 3,348,55,
-  3, 56,348,3,
-  3, 145,338,214,
-  3, 271,344,167,
-  3, 287,333,164,
-  3, 72,254,71,
-  3, 110,390,331,
-  3, 134,311,200,
-  3, 73,292,72,
-  3, 200,309,134,
-  3, 315,441,143,
-  3, 158,305,207,
-  3, 162,410,233,
-  3, 197,373,115,
-  3, 191,363,272,
-  3, 27,313,223,
-  3, 95,324,199,
-  3, 199,328,95,
-  3, 231,375,121,
-  3, 76,247,75,
-  3, 333,385,164,
-  3, 82,257,81,
-  3, 263,387,168,
-  3, 84,394,201,
-  3, 54,400,53,
-  3, 227,381,129,
-  3, 20,302,21,
-  3, 61,367,204,
-  3, 127,428,205,
-  3, 218,285,138,
-  3, 150,327,225,
-  3, 168,387,255,
-  3, 25,343,198,
-  3, 260,307,133,
-  3, 6,386,202,
-  3, 115,347,197,
-  3, 40,261,41,
-  3, 225,327,102,
-  3, 215,441,356,
-  3, 163,375,231,
-  3, 267,382,103,
-  3, 204,367,161,
-  3, 202,386,151,
-  3, 270,302,139,
-  3, 184,294,222,
-  3, 204,319,60,
-  3, 279,431,153,
-  3, 200,416,403,
-  3, 222,294,104,
-  3, 133,297,261,
-  3, 403,416,172,
-  3, 38,262,39,
-  3, 254,292,130,
-  3, 41,297,42,
-  3, 79,309,78,
-  3, 65,272,64,
-  3, 271,437,406,
-  3, 406,437,117,
-  3, 97,349,269,
-  3, 234,399,136,
-  3, 205,428,134,
-  3, 115,335,203,
-  3, 171,434,398,
-  3, 326,407,201,
-  3, 173,407,326,
-  3, 135,388,226,
-  3, 203,335,140,
-  3, 216,320,181,
-  3, 232,290,141,
-  3, 98,379,293,
-  3, 173,345,257,
-  3, 293,379,181,
-  3, 102,327,291,
-  3, 63,273,62,
-  3, 99,372,203,
-  3, 118,412,301,
-  3, 129,381,253,
-  3, 301,412,195,
-  3, 207,432,118,
-  3, 161,406,204,
-  3, 257,345,127,
-  3, 226,337,142,
-  3, 285,336,138,
-  3, 236,306,109,
-  3, 35,430,213,
-  3, 21,270,22,
-  3, 17,252,18,
-  3, 291,332,102,
-  3, 133,283,260,
-  3, 88,255,87,
-  3, 397,399,188,
-  3, 210,321,50,
-  3, 224,405,160,
-  3, 283,333,147,
-  3, 80,404,205,
-  3, 172,396,247,
-  3, 103,382,307,
-  3, 51,323,210,
-  3, 106,371,229,
-  3, 130,296,254,
-  3, 221,305,93,
-  3, 222,378,116,
-  3, 220,318,92,
-  3, 207,395,158,
-  3, 105,395,207,
-  3, 247,396,123,
-  3, 254,296,180,
-  3, 78,403,77,
-  3, 228,304,97,
-  3, 10,278,9,
-  3, 159,378,222,
-  3, 264,358,95,
-  3, 149,318,220,
-  3, 229,371,160,
-  3, 207,344,105,
-  3, 224,413,119,
-  3, 217,368,132,
-  3, 209,366,53,
-  3, 273,367,62,
-  3, 84,407,83,
-  3, 223,313,131,
-  3, 249,419,135,
-  3, 129,306,236,
-  3, 213,331,142,
-  3, 135,299,262,
-  3, 211,332,126,
-  3, 217,341,11,
-  3, 43,425,288,
-  3, 243,298,131,
-  3, 142,337,213,
-  3, 158,320,216,
-  3, 262,299,183,
-  3, 190,434,330,
-  3, 97,402,349,
-  3, 43,288,44,
-  3, 209,400,166,
-  3, 165,366,209,
-  3, 146,402,304,
-  3, 209,433,165,
-  3, 111,317,242,
-  3, 262,388,135,
-  3, 252,393,126,
-  3, 169,393,252,
-  3, 23,277,24,
-  3, 230,397,91,
-  3, 116,378,210,
-  3, 210,435,116,
-  3, 48,391,218,
-  3, 56,411,348,
-  3, 233,426,91,
-  3, 138,353,218,
-  3, 213,430,178,
-  3, 274,293,148,
-  3, 155,341,217,
-  3, 146,434,402,
-  3, 98,293,274,
-  3, 154,340,325,
-  3, 157,310,273,
-  3, 246,423,92,
-  3, 152,362,215,
-  3, 215,362,100,
-  3, 253,306,129,
-  3, 153,365,214,
-  3, 35,337,36,
-  3, 273,310,161,
-  3, 15,275,16,
-  3, 214,365,101,
-  3, 238,314,124,
-  3, 145,369,300,
-  3, 283,355,108,
-  3, 277,315,143,
-  3, 180,306,253,
-  3, 57,411,56,
-  3, 185,315,277,
-  3, 132,368,244,
-  3, 246,340,154,
-  3, 264,428,127,
-  3, 242,317,139,
-  3, 122,340,246,
-  3, 197,347,303,
-  3, 141,357,251,
-  3, 92,318,246,
-  3, 329,374,94,
-  3, 103,307,260,
-  3, 184,374,329,
-  3, 159,429,285,
-  3, 26,313,27,
-  3, 220,352,149,
-  3, 252,312,18,
-  3, 154,325,236,
-  3, 153,360,220,
-  3, 32,282,33,
-  3, 218,391,159,
-  3, 76,442,247,
-  3, 162,350,219,
-  3, 147,316,260,
-  3, 143,343,277,
-  3, 260,316,103,
-  3, 160,358,229,
-  3, 223,361,182,
-  3, 118,432,221,
-  3, 127,345,229,
-  3, 144,379,241,
-  3, 338,361,112,
-  3, 261,355,133,
-  3, 161,367,273,
-  3, 182,361,338,
-  3, 288,425,176,
-  3, 122,401,241,
-  3, 128,443,250,
-  3, 222,429,159,
-  3, 242,327,150,
-  3, 90,376,224,
-  3, 92,330,279,
-  3, 168,314,266,
-  3, 268,357,141,
-  3, 247,334,75,
-  3, 226,388,37,
-  3, 246,427,122,
-  3, 68,381,227,
-  3, 225,412,118,
-  3, 195,409,301,
-  3, 104,429,222,
-  3, 240,363,114,
-  3, 157,363,240,
-  3, 139,317,270,
-  3, 303,347,151,
-  3, 270,317,185,
-  3, 119,405,224,
-  3, 109,354,236,
-  3, 8,303,7,
-  3, 241,340,122,
-  3, 236,354,154,
-  3, 177,380,269,
-  3, 136,397,230,
-  3, 17,408,252,
-  3, 258,353,138,
-  3, 252,408,169,
-  3, 152,356,237,
-  3, 255,387,87,
-  3, 121,375,233,
-  3, 175,332,291,
-  3, 238,372,99,
-  3, 133,355,283,
-  3, 235,383,170,
-  3, 106,326,276,
-  3, 293,346,148,
-  3, 58,383,235,
-  3, 237,377,150,
-  3, 278,373,197,
-  3, 242,377,111,
-  3, 245,413,164,
-  3, 123,396,234,
-  3, 107,399,234,
-  3, 34,430,35,
-  3, 233,410,121,
-  3, 125,339,276,
-  3, 29,300,30,
-  3, 239,380,123,
-  3, 235,384,166,
-  3, 151,372,238,
-  3, 266,339,125,
-  3, 279,330,146,
-  3, 259,427,149,
-  3, 276,339,156,
-  3, 241,379,98,
-  3, 166,411,235,
-  3, 150,377,242,
-  3, 251,357,110,
-  3, 275,408,16,
-  3, 130,420,296,
-  3, 108,333,283,
-  3, 158,395,240,
-  3, 169,408,275,
-  3, 183,355,261,
-  3, 11,341,10,
-  3, 10,341,278,
-  3, 7,386,6,
-  3, 151,386,303,
-  3, 155,373,278,
-  3, 278,341,155,
-  3, 119,413,245,
-  3, 269,349,130,
-  3, 50,321,49,
-  3, 241,401,144,
-  3, 296,420,109,
-  3, 253,381,69,
-  3, 147,333,287,
-  3, 376,413,224,
-  3, 67,308,66,
-  3, 265,412,225,
-  3, 104,336,285,
-  3, 277,343,24,
-  3, 60,319,59,
-  3, 18,312,19,
-  3, 52,323,51,
-  3, 167,344,301,
-  3, 287,376,90,
-  3, 154,423,246,
-  3, 272,359,64,
-  3, 267,424,155,
-  3, 311,416,200,
-  3, 77,442,76,
-  3, 164,376,287,
-  3, 63,359,273,
-  3, 375,426,233,
-  3, 273,359,157,
-  3, 247,442,172,
-  3, 96,419,249,
-  3, 289,373,155,
-  3, 298,352,112,
-  3, 157,359,272,
-  3, 167,437,271,
-  3, 271,406,161,
-  3, 320,438,181,
-  3, 156,364,276,
-  3, 257,404,81,
-  3, 263,394,85,
-  3, 318,427,246,
-  3, 272,363,157,
-  3, 311,350,107,
-  3, 110,422,251,
-  3, 113,433,384,
-  3, 276,364,106,
-  3, 392,436,196,
-  3, 108,385,333,
-  3, 122,427,259,
-  3, 38,388,262,
-  3, 132,382,267,
-  3, 349,420,130,
-  3, 319,383,59,
-  3, 49,391,48,
-  3, 403,442,77,
-  3, 75,334,74,
-  3, 196,436,418,
-  3, 304,342,146,
-  3, 166,400,348,
-  3, 109,420,398,
-  3, 52,366,323,
-  3, 170,383,319,
-  3, 112,361,298,
-  3, 30,369,31,
-  3, 24,343,25,
-  3, 384,418,113,
-  3, 195,412,265,
-  3, 184,439,374,
-  3, 174,436,392,
-  3, 268,426,163,
-  3, 91,426,268,
-  3, 53,366,52,
-  3, 103,424,267,
-  3, 357,390,110,
-  3, 155,424,289,
-  3, 295,392,196,
-  3, 307,382,176,
-  3, 115,373,289,
-  3, 336,393,169,
-  3, 126,393,281,
-  3, 31,414,32,
-  3, 172,416,396,
-  3, 114,438,320,
-  3, 149,427,318,
-  3, 349,402,171,
-  3, 107,440,399,
-  3, 175,415,312,
-  3, 210,378,321,
-  3, 324,358,160,
-  3, 312,415,19,
-  3, 321,378,159,
-  3, 323,366,165,
-  3, 167,409,295,
-  3, 406,421,204,
-  3, 300,369,30,
-  3, 295,409,94,
-  3, 293,438,346,
-  3, 146,431,279,
-  3, 117,421,406,
-  3, 37,388,38,
-  3, 32,414,282,
-  3, 319,421,170,
-  3, 285,429,104,
-  3, 64,359,63,
-  3, 280,443,193,
-  3, 354,423,154,
-  3, 190,423,354,
-  3, 81,404,80,
-  3, 350,440,107,
-  3, 418,436,113,
-  3, 69,381,68,
-  3, 94,392,295,
-  3, 303,386,7,
-  3, 95,358,324,
-  3, 174,370,351,
-  3, 159,391,321,
-  3, 62,367,61,
-  3, 321,391,49,
-  3, 305,432,207,
-  3, 73,417,292,
-  3, 181,438,293,
-  3, 176,425,297,
-  3, 364,371,106,
-  3, 187,371,364,
-  3, 220,360,352,
-  3, 109,398,354,
-  3, 292,417,177,
-  3, 59,383,58,
-  3, 297,425,42,
-  3, 334,417,74,
-  3, 352,360,112,
-  3, 354,398,190,
-  3, 85,394,84,
-  3, 111,377,356,
-  3, 177,417,334,
-  3, 301,409,167,
-  3, 165,433,351,
-  3, 87,387,86,
-  3, 304,402,97,
-  3, 20,415,302,
-  3, 302,415,175,
-  3, 348,411,166,
-  3, 295,437,167,
-  3, 356,377,237,
-  3, 351,370,165,
-  3, 196,418,389,
-  3, 170,421,389,
-  3, 160,405,324,
-  3, 165,435,323,
-  3, 16,408,17,
-  3, 328,410,162,
-  3, 74,417,73,
-  3, 19,415,20,
-  3, 107,416,311,
-  3, 221,432,305,
-  3, 204,421,319,
-  3, 42,425,43,
-  3, 116,435,370,
-  3, 111,441,315,
-  3, 342,431,146,
-  3, 194,431,342,
-  3, 374,392,94,
-  3, 174,392,374,
-  3, 174,439,370,
-  3, 323,435,210,
-  3, 399,440,188,
-  3, 330,434,146,
-  3, 370,435,165,
-  3, 356,441,111,
-  3, 398,420,171,
-  3, 171,420,349,
-  3, 351,436,174,
-  3, 351,433,113,
-  3, 163,426,375,
-  3, 346,438,114,
-  3, 402,434,171,
-  3, 113,436,351,
-  3, 164,413,376,
-  3, 162,440,350,
-  3, 389,418,170,
-  3, 374,439,174,
-  3, 370,439,116,
-  3, 172,442,403,
-  3, 389,421,117
-};
diff --git a/benchmarks/extrude/surf.msh b/benchmarks/extrude/surf.msh
new file mode 100644
index 0000000000000000000000000000000000000000..0422288c95a04c13fac29b39f77fe799ec5cb588
--- /dev/null
+++ b/benchmarks/extrude/surf.msh
@@ -0,0 +1,268 @@
+$NOD
+84
+1 -0.075 0 0
+2 -0.075 0.05 0
+3 -0.035 0.05 0
+5 -0.025 0.06 0
+6 -0.025 0.15 0
+7 0.025 0.15 0
+8 0.025 0.06 0
+10 0.035 0.05 0
+11 0.075 0.05 0
+12 0.075 0 0
+13 0.03 0 0
+14 0.0109652703637529 0.0491025641025641 0
+16 -0.0109652703637529 0.0491025641025641 0
+17 -0.03 0 0
+18 -0.015 0.1 0
+19 -0.015 0.12 0
+21 0.015 0.12 0
+22 0.015 0.1 0
+24 0 0.135 0
+25 0 0.08500000000000001 0
+26 -0.02101213252967133 0.02318537468306153 0
+27 -0.01499439601227832 0.03870890975523548 0
+28 0.006672216884674129 0.0546202758905197 0
+29 2.861386074960455e-15 0.05670761232557028 0
+30 -0.006672216884671904 0.05462027589052125 0
+31 0.01499439601227833 0.03870890975523544 0
+32 0.02101213252967131 0.02318537468306156 0
+33 0.04915695417475923 0.05 0
+34 0.02792893218813446 0.0529289321881346 0
+35 0.025 0.07050207674561985 0
+36 0.025 0.08386245490342162 0
+37 0.025 0.100860814575335 0
+38 0.025 0.1224934996808837 0
+39 -0.025 0.1224934996808836 0
+40 -0.025 0.100860814575335 0
+41 -0.025 0.08386245490342145 0
+42 -0.025 0.07050207674561988 0
+43 -0.02792893218813476 0.05292893218813429 0
+44 -0.0491569541747593 0.05 0
+45 -0.015 0.1100000000000009 0
+46 0.01060660171780078 0.1306066017177956 0
+47 -0.010606601717797 0.1306066017177994 0
+48 -0.01060660171779871 0.08939339828220229 0
+49 0.01060660171779681 0.08939339828220039 0
+50 0.015 0.1099999999999991 0
+51 -0.0003952465477365416 0.1151095661552487 0
+52 -0.0003081840445035213 0.100314009646701 0
+53 0.002226335800738071 0.1245145588919018 0
+54 -0.005861490658885202 0.107041848887915 0
+55 0.005713555476752103 0.1069470842297659 0
+56 -0.00634749052301216 0.1212139671063793 0
+57 0.007859882105366625 0.1153426614308058 0
+58 -0.00157576024369819 0.09289421447504989 0
+59 0.006694619833783632 0.09740397783872531 0
+60 -0.007083463183855603 0.09832134469841361 0
+61 -0.008693641475427668 0.1145517750655404 0
+62 -0.008276586261843702 0.0708685144124603 0
+63 0.008400061913945699 0.07088560994326665 0
+64 -0.04121175058317086 0.02862904086572193 0
+65 0.04122820988160054 0.02862556114903235 0
+66 0.02677870418201832 0.04094939289741954 0
+67 -0.02676075449350464 0.04095554692294305 0
+68 -0.01549825710033483 0.07946498875473762 0
+69 0.0155394002827713 0.07950032691122735 0
+70 -0.01404984468315653 0.06202291250566357 0
+71 0.0140860945906206 0.06199654787282388 0
+72 6.803059197117234e-05 0.06630431086350139 0
+73 5.551672715979858e-05 0.07559235972177888 0
+74 0.01849569291549359 0.05226915830450645 0
+75 -0.0184842434550625 0.05227150845553569 0
+76 0.0631799338714841 0.0260746478528118 0
+77 -0.06316061649909735 0.02607257415165654 0
+78 0.005314041042838588 0.1439464830399123 0
+79 -0.009091344025161784 0.1427628763207046 0
+80 -0.01900195911287293 0.0912618219743967 0
+81 0.01900774938260002 0.09126487116421787 0
+82 -0.006817597108997714 0.08015313017377412 0
+83 0.006874004810919198 0.08020654122361565 0
+84 -0.006230979079654975 0.06223982932617283 0
+85 0.05243031523717537 0.01036592623324008 0
+86 -0.0524170471478999 0.01036209767478765 0
+87 0.006300685116073176 0.06221121337717751 0
+88 -0.01704730754955557 0.0694428217079274 0
+89 0.01711347140466049 0.06939248724667128 0
+$ENDNOD
+$ELM
+178
+1 1 1 1 2 1 17
+2 1 2 2 2 17 26
+3 1 2 2 2 26 27
+4 1 2 2 2 27 16
+5 1 3 3 2 14 28
+6 1 3 3 2 28 29
+7 1 3 3 2 29 30
+8 1 3 3 2 30 16
+9 1 4 4 2 14 31
+10 1 4 4 2 31 32
+11 1 4 4 2 32 13
+12 1 5 5 2 13 12
+13 1 6 6 2 12 11
+14 1 7 7 2 11 33
+15 1 7 7 2 33 10
+16 1 8 8 2 8 34
+17 1 8 8 2 34 10
+18 1 9 9 2 8 35
+19 1 9 9 2 35 36
+20 1 9 9 2 36 37
+21 1 9 9 2 37 38
+22 1 9 9 2 38 7
+23 1 10 10 2 7 6
+24 1 11 11 2 6 39
+25 1 11 11 2 39 40
+26 1 11 11 2 40 41
+27 1 11 11 2 41 42
+28 1 11 11 2 42 5
+29 1 12 12 2 3 43
+30 1 12 12 2 43 5
+31 1 13 13 2 3 44
+32 1 13 13 2 44 2
+33 1 14 14 2 2 1
+34 1 15 15 2 18 45
+35 1 15 15 2 45 19
+36 1 16 16 2 21 46
+37 1 16 16 2 46 24
+38 1 17 17 2 24 47
+39 1 17 17 2 47 19
+40 1 18 18 2 18 48
+41 1 18 18 2 48 25
+42 1 19 19 2 25 49
+43 1 19 19 2 49 22
+44 1 20 20 2 21 50
+45 1 20 20 2 50 22
+46 2 22 22 3 47 53 24
+47 2 22 22 3 46 53 21
+48 2 22 22 3 49 58 25
+49 2 22 22 3 49 59 58
+50 2 22 22 3 47 56 53
+51 2 22 22 3 53 57 21
+52 2 22 22 3 24 53 46
+53 2 22 22 3 50 55 22
+54 2 22 22 3 18 54 45
+55 2 22 22 3 55 59 22
+56 2 22 22 3 54 55 51
+57 2 22 22 3 52 55 54
+58 2 22 22 3 19 56 47
+59 2 22 22 3 18 60 54
+60 2 22 22 3 51 57 53
+61 2 22 22 3 48 60 18
+62 2 22 22 3 25 58 48
+63 2 22 22 3 58 59 52
+64 2 22 22 3 22 59 49
+65 2 22 22 3 52 59 55
+66 2 22 22 3 53 56 51
+67 2 22 22 3 21 57 50
+68 2 22 22 3 45 61 19
+69 2 22 22 3 50 57 55
+70 2 22 22 3 54 60 52
+71 2 22 22 3 51 61 54
+72 2 22 22 3 55 57 51
+73 2 22 22 3 58 60 48
+74 2 22 22 3 56 61 51
+75 2 22 22 3 54 61 45
+76 2 22 22 3 19 61 56
+77 2 22 22 3 52 60 58
+78 2 24 24 3 65 76 33
+79 2 24 24 3 44 77 64
+80 2 24 24 3 27 75 67
+81 2 24 24 3 66 74 31
+82 2 24 24 3 70 75 30
+83 2 24 24 3 28 74 71
+84 2 24 24 3 16 75 27
+85 2 24 24 3 2 77 44
+86 2 24 24 3 33 76 11
+87 2 24 24 3 31 74 14
+88 2 24 24 3 34 74 66
+89 2 24 24 3 67 75 43
+90 2 24 24 3 30 75 16
+91 2 24 24 3 14 74 28
+92 2 24 24 3 38 7 46
+93 2 24 24 3 39 47 6
+94 2 24 24 3 48 82 25
+95 2 24 24 3 25 83 49
+96 2 24 24 3 70 88 5
+97 2 24 24 3 44 64 3
+98 2 24 24 3 10 65 33
+99 2 24 24 3 5 88 42
+100 2 24 24 3 8 89 71
+101 2 24 24 3 36 69 35
+102 2 24 24 3 42 68 41
+103 2 24 24 3 35 89 8
+104 2 24 24 3 5 75 70
+105 2 24 24 3 69 89 35
+106 2 24 24 3 71 74 8
+107 2 24 24 3 42 88 68
+108 2 24 24 3 34 66 10
+109 2 24 24 3 3 67 43
+110 2 24 24 3 49 81 22
+111 2 24 24 3 18 80 48
+112 2 24 24 3 26 64 17
+113 2 24 24 3 13 65 32
+114 2 24 24 3 64 67 3
+115 2 24 24 3 10 66 65
+116 2 24 24 3 48 80 68
+117 2 24 24 3 69 81 49
+118 2 24 24 3 64 86 17
+119 2 24 24 3 13 85 65
+120 2 24 24 3 72 73 62
+121 2 24 24 3 63 73 72
+122 2 24 24 3 21 38 46
+123 2 24 24 3 19 47 39
+124 2 24 24 3 68 82 48
+125 2 24 24 3 50 38 21
+126 2 24 24 3 45 19 39
+127 2 24 24 3 49 83 69
+128 2 24 24 3 65 85 76
+129 2 24 24 3 77 86 64
+130 2 24 24 3 32 66 31
+131 2 24 24 3 27 67 26
+132 2 24 24 3 26 67 64
+133 2 24 24 3 65 66 32
+134 2 24 24 3 68 80 41
+135 2 24 24 3 46 78 24
+136 2 24 24 3 24 79 47
+137 2 24 24 3 36 81 69
+138 2 24 24 3 62 82 68
+139 2 24 24 3 30 84 70
+140 2 24 24 3 69 83 63
+141 2 24 24 3 71 87 28
+142 2 24 24 3 7 78 46
+143 2 24 24 3 47 79 6
+144 2 24 24 3 63 83 73
+145 2 24 24 3 73 82 62
+146 2 24 24 3 72 84 29
+147 2 24 24 3 29 87 72
+148 2 24 24 3 70 84 62
+149 2 24 24 3 22 37 50
+150 2 24 24 3 63 87 71
+151 2 24 24 3 18 45 40
+152 2 24 24 3 68 88 62
+153 2 24 24 3 25 82 73
+154 2 24 24 3 63 89 69
+155 2 24 24 3 73 83 25
+156 2 24 24 3 62 88 70
+157 2 24 24 3 8 74 34
+158 2 24 24 3 43 75 5
+159 2 24 24 3 71 89 63
+160 2 24 24 3 62 84 72
+161 2 24 24 3 72 87 63
+162 2 24 24 3 76 85 12
+163 2 24 24 3 1 86 77
+164 2 24 24 3 29 84 30
+165 2 24 24 3 28 87 29
+166 2 24 24 3 78 79 24
+167 2 24 24 3 22 81 37
+168 2 24 24 3 40 80 18
+169 2 24 24 3 6 79 78
+170 2 24 24 3 12 85 13
+171 2 24 24 3 17 86 1
+172 2 24 24 3 6 78 7
+173 2 24 24 3 11 76 12
+174 2 24 24 3 1 77 2
+175 2 24 24 3 40 45 39
+176 2 24 24 3 37 38 50
+177 2 24 24 3 41 80 40
+178 2 24 24 3 37 81 36
+$ENDELM
diff --git a/demos/sphere-discrete.geo b/demos/sphere-discrete.geo
index 8696d047ecadd99a5606a4a7dd466a25ce0f694c..6615051035f328cbbd14dd46e8f8e60b7be14ff6 100644
--- a/demos/sphere-discrete.geo
+++ b/demos/sphere-discrete.geo
@@ -1,1110 +1,12 @@
-// include a geometry:
+// merge a surface mesh
 
-Include "sphere.geo";
+Merge "sphere-surf.msh";
 
-// add a discrete representation (triangulation) to the 8 patches:
+// delete all physical groups
 
-Discrete Surface {14} = {52, 81}
-{
-  0,1,0, -0.122515,0.98474,0.122512,
-  -1,0,0, -0.984764,0.122431,0.122423,
-  0,0,1, -0.122404,0.122414,0.984769,
-  -0.2225209339563045,0.9749279121818258,0, -0.239906,0.959951,0.104813,
-  -0.4338837391175415,0.9009688679024271,0, -0.450162,0.883349,0.0859828,
-  -0.6234898018587169,0.781831482468043,0, -0.614356,0.778627,0.0785648,
-  -0.7818314824680178,0.6234898018587486,0, -0.778702,0.614265,0.078522,
-  -0.9009688679024137,0.4338837391175694,0, -0.883414,0.450062,0.085871,
-  -0.9749279121818222,0.2225209339563205,0, -0.959995,0.239808,0.104655,
-  0,0.2225209339563045,0.9749279121818258, -0.104665,0.239828,0.959989,
-  0,0.4338837391175415,0.9009688679024271, -0.0858828,0.450056,0.883416,
-  0,0.6234898018587169,0.781831482468043, -0.0784496,0.614289,0.778688,
-  0,0.7818314824680178,0.6234898018587486, -0.0785016,0.778643,0.614339,
-  0,0.9009688679024137,0.4338837391175694, -0.0859305,0.883365,0.450142,
-  0,0.9749279121818222,0.2225209339563205, -0.10477,0.959956,0.239904,
-  -0.2225209339563045,0,0.9749279121818258, -0.239899,0.104607,0.959975,
-  -0.4338837391175415,0,0.9009688679024271, -0.450112,0.0858309,0.88339,
-  -0.6234898018587169,0,0.781831482468043, -0.614309,0.0784069,0.778675,
-  -0.7818314824680178,0,0.6234898018587486, -0.778648,0.0783846,0.614347,
-  -0.9009688679024137,0,0.4338837391175694, -0.883398,0.0857796,0.450107,
-  -0.9749279121818222,0,0.2225209339563205, -0.95998,0.104611,0.239877,
-  -0.5563510131363865,0.5891913365526474,0.5859412249701538, -0.542357,0.590033,0.584747,
-  -0.8420396490396795,0.3830634023521231,0.3797808676698783, -0.839974,0.374758,0.373325,
-  -0.3798339505169332,0.8419039660392607,0.3833065117213258, -0.372733,0.8419,0.371728,
-  -0.3797253600454539,0.3830944029537457,0.8420518706843709, -0.372425,0.371777,0.842019,
-  -0.6753919245902565,0.672472844325763,0.3026979107737808, -0.670219,0.670424,0.294803,
-  -0.3218754731214902,0.6695561180725229,0.6693958339437879, -0.32481,0.663018,0.662834,
-  -0.6728325927539981,0.3074671081024881,0.6728746452087147, -0.668554,0.300625,0.669074,
-  -0.5292993303235405,0.8186255982747985,0.2229224350615393, -0.536905,0.806866,0.211508,
-  -0.8187957438348996,0.2226199084012708,0.5291641867450418, -0.806747,0.212352,0.536623,
-  -0.2227796568807776,0.5290641967745843,0.8188199683686377, -0.207863,0.53658,0.80846,
-  -0.5291126005877934,0.2227347916511525,0.8187991125945772, -0.536453,0.212078,0.806973,
-  -0.2228644638653538,0.8187181284284164,0.5291806711483696, -0.207918,0.808415,0.53663,
-  -0.8188650976802843,0.5289662361210328,0.222840695031449, -0.808171,0.537047,0.207786,
-  -0.2413111399348926,0.9399456419452581,0.2413944369774025, -0.211067,0.944506,0.211191,
-  -0.9400308625837783,0.2411047633180826,0.2412684687567402, -0.944571,0.211002,0.211012,
-  -0.2412555782973508,0.2410481643257406,0.9400486902217813, -0.211007,0.210993,0.944575,
-  -0.7119538381502901,0.4365391341902741,0.5500502935167957, -0.705589,0.427957,0.550848,
-  -0.5500945701675112,0.7146221593960822,0.4321001427018011, -0.550965,0.710175,0.420829,
-  -0.5469423456398116,0.4355031120810015,0.7149763189866385, -0.547841,0.423966,0.710887,
-  -0.4068237774364799,0.5362674037682693,0.7395347191745937, -0.40612,0.533904,0.731977,
-  -0.4071959581063569,0.7397418450163052,0.5357006446338911, -0.406763,0.73247,0.532743,
-  -0.7238608601175065,0.5538568359169417,0.4114219673645391, -0.709024,0.555658,0.416627,
-  -0.387338262855515,0.9054783182404259,0.173421383052493, -0.374535,0.90294,0.16978,
-  -0.1732777759107061,0.3870691149951774,0.9056226119645898, -0.169017,0.374464,0.90319,
-  -0.9056033827977032,0.1730510265700378,0.3872155155440856, -0.903031,0.169551,0.374448,
-  -0.9056547245159975,0.3870338671095289,0.173188644753235, -0.9032,0.374446,0.169,
-  -0.3872181038881538,0.1731347990436712,0.9055862645269011, -0.374441,0.169583,0.903027,
-  -0.1733157885866541,0.9055130627573574,0.3873037773702063, -0.169052,0.903099,0.374656,
-  -0.1387159089663307,0.7001774912902294,0.7003638366054901, -0.147659,0.69386,0.693942,
-  -0.7003805613717944,0.7001268278826707,0.1388868398998138, -0.694658,0.694213,0.143778,
-  -0.7002399905549749,0.1385871413765045,0.7003267865022653, -0.694292,0.144624,0.694348
-}
-{
-  3, 21,26,41,
-  3, 26,21,40,
-  3, 21,38,42,
-  3, 38,25,42,
-  3, 19,18,29,
-  3, 12,13,32,
-  3, 17,16,31,
-  3, 6,7,33,
-  3, 4,5,28,
-  3, 10,11,30,
-  3, 14,0,34,
-  3, 0,3,34,
-  3, 15,2,36,
-  3, 2,9,36,
-  3, 1,20,35,
-  3, 8,1,35,
-  3, 37,27,39,
-  3, 21,37,39,
-  3, 29,27,37,
-  3, 22,29,37,
-  3, 28,25,38,
-  3, 23,28,38,
-  3, 27,31,39,
-  3, 31,24,39,
-  3, 37,21,42,
-  3, 38,21,41,
-  3, 21,39,40,
-  3, 12,32,49,
-  3, 29,18,51,
-  3, 17,31,51,
-  3, 6,33,50,
-  3, 30,11,49,
-  3, 28,5,50,
-  3, 32,26,49,
-  3, 27,29,51,
-  3, 31,27,51,
-  3, 26,30,49,
-  3, 25,28,50,
-  3, 33,25,50,
-  3, 29,22,45,
-  3, 22,33,46,
-  3, 28,23,43,
-  3, 23,32,48,
-  3, 30,24,44,
-  3, 24,31,47,
-  3, 35,22,46,
-  3, 22,35,45,
-  3, 34,23,48,
-  3, 23,34,43,
-  3, 36,24,47,
-  3, 24,36,44,
-  3, 11,12,49,
-  3, 5,6,50,
-  3, 18,17,51,
-  3, 24,30,40,
-  3, 30,26,40,
-  3, 26,32,41,
-  3, 32,23,41,
-  3, 25,33,42,
-  3, 33,22,42,
-  3, 3,4,43,
-  3, 7,8,46,
-  3, 9,10,44,
-  3, 16,15,47,
-  3, 13,14,48,
-  3, 20,19,45,
-  3, 34,3,43,
-  3, 36,9,44,
-  3, 14,34,48,
-  3, 15,36,47,
-  3, 8,35,46,
-  3, 35,20,45,
-  3, 4,28,43,
-  3, 19,29,45,
-  3, 10,30,44,
-  3, 31,16,47,
-  3, 33,7,46,
-  3, 32,13,48,
-  3, 39,24,40,
-  3, 23,38,41,
-  3, 22,37,42
-};
-Discrete Surface {16} = {52, 81}
-{
-  -1,0,0, -0.984751,-0.122474,0.122472,
-  0,-1,0, -0.12241,-0.984769,0.122407,
-  0,0,1, -0.122396,-0.122395,0.984773,
-  -0.9749279121818258,-0.2225209339563045,0, -0.959961,-0.239897,0.104752,
-  -0.9009688679024271,-0.4338837391175415,0, -0.883368,-0.450136,0.0859321,
-  -0.781831482468043,-0.6234898018587169,0, -0.778627,-0.61436,0.0785302,
-  -0.6234898018587486,-0.7818314824680178,0, -0.614272,-0.778698,0.0785121,
-  -0.4338837391175694,-0.9009688679024137,0, -0.450064,-0.88341,0.0859004,
-  -0.2225209339563205,-0.9749279121818222,0, -0.239856,-0.959983,0.104655,
-  0,-0.9749279121818258,0.2225209339563045, -0.10462,-0.959983,0.239867,
-  0,-0.9009688679024271,0.4338837391175415, -0.085826,-0.883406,0.450085,
-  0,-0.781831482468043,0.6234898018587169, -0.0784005,-0.778667,0.614321,
-  0,-0.6234898018587486,0.7818314824680178, -0.078355,-0.614353,0.778648,
-  0,-0.4338837391175694,0.9009688679024137, -0.0857939,-0.450079,0.883413,
-  0,-0.2225209339563205,0.9749279121818222, -0.104614,-0.239875,0.959981,
-  -0.2225209339563045,0,0.9749279121818258, -0.239852,-0.104629,0.959987,
-  -0.4338837391175415,0,0.9009688679024271, -0.450067,-0.0859189,0.883406,
-  -0.6234898018587169,0,0.781831482468043, -0.614244,-0.0785397,0.778715,
-  -0.7818314824680178,0,0.6234898018587486, -0.778621,-0.0785432,0.614366,
-  -0.9009688679024137,0,0.4338837391175694, -0.883348,-0.0859592,0.450167,
-  -0.9749279121818222,0,0.2225209339563205, -0.959951,-0.104755,0.239933,
-  -0.5891739597173604,-0.5859267582329895,0.5563846503928759, -0.590016,-0.584743,0.542382,
-  -0.8419127444975067,-0.3832956880031617,0.3798278226832703, -0.841902,-0.37172,0.37273,
-  -0.3830319266375962,-0.3798140560026974,0.8420379005840273, -0.374731,-0.373352,0.839975,
-  -0.3830962287846832,-0.8420361401778793,0.3797583983098432, -0.37177,-0.842016,0.37244,
-  -0.6724551411042631,-0.3026819813906181,0.675416689766084, -0.670407,-0.294789,0.670241,
-  -0.3074593270180926,-0.672898715672147,0.6728120755921047, -0.300613,-0.66909,0.668544,
-  -0.6694819429356987,-0.6694380360672032,0.3219419986716052, -0.662963,-0.662861,0.32487,
-  -0.8186317970101905,-0.2228947190282516,0.5293044527516347, -0.80686,-0.211489,0.536919,
-  -0.8186752178400962,-0.5292648531294992,0.2228237624690563, -0.808386,-0.536664,0.207932,
-  -0.2225458354114695,-0.5292281668310217,0.8187740993566104, -0.212334,-0.536638,0.806743,
-  -0.5289963636854366,-0.8188492010634111,0.2228267380169126, -0.536546,-0.808476,0.207899,
-  -0.2227059204974404,-0.818813193627507,0.5291057278541499, -0.212071,-0.806978,0.536446,
-  -0.5289072831516629,-0.2229228528648696,0.8188788376041078, -0.537021,-0.207817,0.808182,
-  -0.9399854125748424,-0.2412485225886563,0.241301840040954, -0.944519,-0.211134,0.211067,
-  -0.2411171591604495,-0.2411369205332241,0.9400615157423891, -0.211015,-0.210973,0.944576,
-  -0.2411250692806426,-0.9400488545283774,0.2411780745495407, -0.211026,-0.944574,0.210978,
-  -0.7146247227093602,-0.4320795897393267,0.5501079194131282, -0.710172,-0.420818,0.550976,
-  -0.4365077211110331,-0.5500730988781458,0.7119554728198711, -0.427923,-0.550866,0.705596,
-  -0.4355132027224509,-0.7149605088910298,0.5469549199588074, -0.423957,-0.710884,0.547854,
-  -0.739722819915368,-0.5357169371269953,0.4072069959197624, -0.732454,-0.532757,0.406772,
-  -0.5538319021633533,-0.4114410233267031,0.7238696011549567, -0.555634,-0.416642,0.709034,
-  -0.536222691610783,-0.7395443154817047,0.4068654565608939, -0.533871,-0.731983,0.406157,
-  -0.1731323186330627,-0.3871870186504138,0.9055980745823108, -0.169581,-0.374423,0.903037,
-  -0.9055122870236548,-0.3872886711296661,0.1733637317090477, -0.9031,-0.374638,0.16907,
-  -0.9054744348258696,-0.1733958397421412,0.3873627907066191, -0.902942,-0.169748,0.374546,
-  -0.1731523847291243,-0.9056087016176271,0.387157763615347, -0.169602,-0.903043,0.374395,
-  -0.3870917535634846,-0.9056091936898463,0.1732973275815335, -0.374482,-0.903182,0.16902,
-  -0.3870543025771477,-0.1732581944706739,0.9056309552213407, -0.374458,-0.169021,0.903192,
-  -0.7001111616130116,-0.1388450909573361,0.7004044976522603, -0.694187,-0.143765,0.694684,
-  -0.1385903208504232,-0.7002963699986529,0.7002698352821806, -0.144615,-0.694351,0.694294,
-  -0.7001375485780742,-0.700373566173228,0.1388680272517487, -0.693811,-0.693976,0.147729
-}
-{
-  3, 27,21,40,
-  3, 21,27,42,
-  3, 37,21,41,
-  3, 25,37,41,
-  3, 4,5,29,
-  3, 10,11,32,
-  3, 6,7,31,
-  3, 16,17,33,
-  3, 18,19,28,
-  3, 12,13,30,
-  3, 2,15,35,
-  3, 14,2,35,
-  3, 0,3,34,
-  3, 20,0,34,
-  3, 8,1,36,
-  3, 1,9,36,
-  3, 26,38,39,
-  3, 38,21,39,
-  3, 26,30,38,
-  3, 30,23,38,
-  3, 25,28,37,
-  3, 28,22,37,
-  3, 32,26,39,
-  3, 24,32,39,
-  3, 21,38,41,
-  3, 21,37,40,
-  3, 39,21,42,
-  3, 32,11,50,
-  3, 33,17,49,
-  3, 6,31,51,
-  3, 29,5,51,
-  3, 18,28,49,
-  3, 12,30,50,
-  3, 28,25,49,
-  3, 26,32,50,
-  3, 25,33,49,
-  3, 27,29,51,
-  3, 30,26,50,
-  3, 31,27,51,
-  3, 22,28,45,
-  3, 29,22,44,
-  3, 23,30,43,
-  3, 33,23,48,
-  3, 24,31,47,
-  3, 32,24,46,
-  3, 23,35,48,
-  3, 22,34,44,
-  3, 34,22,45,
-  3, 35,23,43,
-  3, 24,36,46,
-  3, 36,24,47,
-  3, 17,18,49,
-  3, 11,12,50,
-  3, 5,6,51,
-  3, 22,29,40,
-  3, 29,27,40,
-  3, 31,24,42,
-  3, 27,31,42,
-  3, 23,33,41,
-  3, 33,25,41,
-  3, 7,8,47,
-  3, 9,10,46,
-  3, 19,20,45,
-  3, 15,16,48,
-  3, 13,14,43,
-  3, 3,4,44,
-  3, 20,34,45,
-  3, 8,36,47,
-  3, 34,3,44,
-  3, 14,35,43,
-  3, 35,15,48,
-  3, 36,9,46,
-  3, 28,19,45,
-  3, 30,13,43,
-  3, 4,29,44,
-  3, 31,7,47,
-  3, 10,32,46,
-  3, 16,33,48,
-  3, 37,22,40,
-  3, 38,23,41,
-  3, 24,39,42
-};
-Discrete Surface {18} = {52, 81}
-{
-  1,0,0, 0.984764,0.122433,0.12242,
-  0,1,0, 0.122487,0.984747,0.122489,
-  0,0,1, 0.122406,0.122409,0.984769,
-  0.9749279121818258,0.2225209339563045,0, 0.959983,0.239834,0.104717,
-  0.9009688679024271,0.4338837391175415,0, 0.883403,0.450066,0.0859646,
-  0.781831482468043,0.6234898018587169,0, 0.778687,0.61428,0.0785374,
-  0.6234898018587486,0.7818314824680178,0, 0.614334,0.778648,0.0785165,
-  0.4338837391175694,0.9009688679024137,0, 0.450127,0.883374,0.0859246,
-  0.2225209339563205,0.9749279121818222,0, 0.239899,0.95996,0.104749,
-  0,0.2225209339563045,0.9749279121818258, 0.104626,0.239828,0.959993,
-  0,0.4338837391175415,0.9009688679024271, 0.085855,0.450057,0.883418,
-  0,0.6234898018587169,0.781831482468043, 0.0785015,0.614266,0.778704,
-  0,0.7818314824680178,0.6234898018587486, 0.0785611,0.778623,0.614361,
-  0,0.9009688679024137,0.4338837391175694, 0.0859743,0.883349,0.450162,
-  0,0.9749279121818222,0.2225209339563205, 0.10478,0.959953,0.239916,
-  0.9749279121818258,0,0.2225209339563045, 0.959968,0.104622,0.239916,
-  0.9009688679024271,0,0.4338837391175415, 0.883395,0.0857913,0.450111,
-  0.781831482468043,0,0.6234898018587169, 0.778645,0.0783959,0.614353,
-  0.6234898018587486,0,0.7818314824680178, 0.614324,0.0784177,0.778664,
-  0.4338837391175694,0,0.9009688679024137, 0.450092,0.0858087,0.883403,
-  0.2225209339563205,0,0.9749279121818222, 0.239868,0.104611,0.959983,
-  0.5773975082211721,0.5772658431569984,0.5773874468883697, 0.572933,0.57281,0.57295,
-  0.3797485602057286,0.3830922972137126,0.8420410745751534, 0.373151,0.374203,0.840355,
-  0.3832767388182142,0.8419248558493657,0.3798176911490971, 0.374414,0.840224,0.373235,
-  0.8420170835457154,0.3795977373384021,0.3832972850096181, 0.840317,0.373008,0.374434,
-  0.3026571833356536,0.6724767521347996,0.6754062855619029, 0.294606,0.670137,0.670602,
-  0.6726904731290684,0.6752005624957614,0.3026412733956574, 0.670332,0.670411,0.294597,
-  0.6752694072280159,0.3024967167989908,0.6726863859444547, 0.670474,0.294442,0.670337,
-  0.2229137773738889,0.818629188910303,0.5292974232185897, 0.211474,0.806818,0.536991,
-  0.8187775028377696,0.2225862292360681,0.5292085498176807, 0.808227,0.207407,0.53715,
-  0.5291382686399343,0.2226582304778837,0.8188020734701312, 0.536865,0.211314,0.80695,
-  0.5291833920367963,0.8187257216634471,0.222830106180351, 0.537139,0.808189,0.207565,
-  0.8188036229545755,0.5290216888759822,0.2229405899875666, 0.806956,0.53678,0.211485,
-  0.2227915010233589,0.5289645632117742,0.8188795661928487, 0.207537,0.536954,0.808322,
-  0.2411833793097393,0.2411144071855667,0.940050224040975, 0.210975,0.211014,0.944577,
-  0.2413224491124619,0.9399707559051969,0.2412853177616952, 0.211157,0.944517,0.211056,
-  0.9400310943183324,0.2410528987544552,0.2413194009455931, 0.944561,0.210899,0.211152,
-  0.4313730843637155,0.7136827955596668,0.5518817835865384, 0.421664,0.708113,0.552785,
-  0.713827010318361,0.5516947649210976,0.4313743692757338, 0.708257,0.552597,0.421671,
-  0.5518003610587108,0.4312517423531107,0.7138195188682946, 0.552706,0.421506,0.708268,
-  0.5523084755418044,0.7255270998470831,0.4105676256138265, 0.553681,0.712255,0.414308,
-  0.7256174675725395,0.410401811892177,0.5523130339598187, 0.71235,0.414138,0.553687,
-  0.4105268835831876,0.552121102724671,0.7256927304941428, 0.414282,0.553507,0.712407,
-  0.1734007930103921,0.905482508392202,0.3873376832172581, 0.169758,0.902946,0.374533,
-  0.3871717518779475,0.1731157346343897,0.9056097267473995, 0.374411,0.169587,0.903039,
-  0.9055956496979217,0.3870715972956999,0.1734130921146891, 0.903036,0.374319,0.169774,
-  0.3872736887512665,0.9055241543510425,0.1733250710871884, 0.37463,0.903111,0.16905,
-  0.9055618366283053,0.1731245241546386,0.3872798216992269, 0.903146,0.168892,0.374632,
-  0.1731812158179551,0.3870480621949327,0.9056500786938431, 0.168978,0.374455,0.903202,
-  0.7002488228573803,0.1386915780636993,0.7002972798523552, 0.694547,0.143633,0.694362,
-  0.1388740971332977,0.7001122720230394,0.7003976384656098, 0.143762,0.69421,0.694665,
-  0.7003153309228675,0.7002045971493689,0.138823936986611, 0.694371,0.694506,0.143746
-}
-{
-  3, 37,42,21,
-  3, 38,40,21,
-  3, 39,41,21,
-  3, 25,42,37,
-  3, 26,40,38,
-  3, 27,41,39,
-  3, 5,32,4,
-  3, 7,31,6,
-  3, 12,28,13,
-  3, 10,33,11,
-  3, 16,29,17,
-  3, 18,30,19,
-  3, 20,34,2,
-  3, 2,34,9,
-  3, 3,36,0,
-  3, 1,35,8,
-  3, 0,36,15,
-  3, 14,35,1,
-  3, 27,39,30,
-  3, 30,39,22,
-  3, 25,37,28,
-  3, 28,37,23,
-  3, 32,38,24,
-  3, 26,38,32,
-  3, 21,42,39,
-  3, 21,40,37,
-  3, 21,41,38,
-  3, 5,51,32,
-  3, 31,51,6,
-  3, 33,50,11,
-  3, 12,50,28,
-  3, 18,49,30,
-  3, 29,49,17,
-  3, 32,51,26,
-  3, 28,50,25,
-  3, 26,51,31,
-  3, 30,49,27,
-  3, 27,49,29,
-  3, 25,50,33,
-  3, 22,44,30,
-  3, 33,48,22,
-  3, 23,43,28,
-  3, 31,46,23,
-  3, 29,47,24,
-  3, 24,45,32,
-  3, 22,48,34,
-  3, 34,44,22,
-  3, 23,46,35,
-  3, 35,43,23,
-  3, 36,45,24,
-  3, 24,47,36,
-  3, 17,49,18,
-  3, 6,51,5,
-  3, 11,50,12,
-  3, 29,41,27,
-  3, 24,41,29,
-  3, 23,40,31,
-  3, 31,40,26,
-  3, 22,42,33,
-  3, 33,42,25,
-  3, 9,48,10,
-  3, 8,46,7,
-  3, 19,44,20,
-  3, 13,43,14,
-  3, 4,45,3,
-  3, 15,47,16,
-  3, 20,44,34,
-  3, 35,46,8,
-  3, 34,48,9,
-  3, 14,43,35,
-  3, 36,47,15,
-  3, 3,45,36,
-  3, 28,43,13,
-  3, 30,44,19,
-  3, 16,47,29,
-  3, 32,45,4,
-  3, 7,46,31,
-  3, 10,48,33,
-  3, 37,40,23,
-  3, 38,41,24,
-  3, 39,42,22
-};
-Discrete Surface {20} = {52, 81}
-{
-  0,1,0, -0.122455,0.984755,-0.122462,
-  -1,0,0, -0.984772,0.122395,-0.122398,
-  0,0,-1, -0.122479,0.122484,-0.984749,
-  -0.2225209339563045,0.9749279121818258,0, -0.239895,0.959969,-0.104667,
-  -0.4338837391175415,0.9009688679024271,0, -0.450137,0.883375,-0.0858445,
-  -0.6234898018587169,0.781831482468043,0, -0.614331,0.778656,-0.0784349,
-  -0.7818314824680178,0.6234898018587486,0, -0.778663,0.614329,-0.078386,
-  -0.9009688679024137,0.4338837391175694,0, -0.883413,0.450079,-0.0857806,
-  -0.9749279121818222,0.2225209339563205,0, -0.959988,0.239858,-0.10459,
-  0,0.9749279121818258,-0.2225209339563045, -0.10473,0.959976,-0.239849,
-  0,0.9009688679024271,-0.4338837391175415, -0.0859399,0.883388,-0.450097,
-  0,0.781831482468043,-0.6234898018587169, -0.0785477,0.778677,-0.614293,
-  0,0.6234898018587486,-0.7818314824680178, -0.0785761,0.614315,-0.778657,
-  0,0.4338837391175694,-0.9009688679024137, -0.0860114,0.450122,-0.883368,
-  0,0.2225209339563205,-0.9749279121818222, -0.104791,0.239899,-0.959957,
-  -0.9749279121818258,0,-0.2225209339563045, -0.959986,0.104631,-0.239853,
-  -0.9009688679024271,0,-0.4338837391175415, -0.883411,0.0858646,-0.450069,
-  -0.781831482468043,0,-0.6234898018587169, -0.778677,0.0784596,-0.614303,
-  -0.6234898018587486,0,-0.7818314824680178, -0.614329,0.0784952,-0.778652,
-  -0.4338837391175694,0,-0.9009688679024137, -0.450141,0.0859311,-0.883365,
-  -0.2225209339563205,0,-0.9749279121818222, -0.239917,0.104739,-0.959956,
-  -0.5893879580428182,0.5858474733326092,-0.5562414699741602, -0.590253,0.584563,-0.542317,
-  -0.8420676034188912,0.3831776001275439,-0.3796036349133443, -0.842055,0.371599,-0.372504,
-  -0.3832854644825078,0.8419879923855095,-0.3796741868285129, -0.372019,0.841871,-0.372482,
-  -0.3833451742354813,0.3797875732454184,-0.8419072850272081, -0.374995,0.373254,-0.839915,
-  -0.6726926174038673,0.3025837760254035,-0.6752241883127346, -0.670638,0.294698,-0.670049,
-  -0.6696685957970373,0.6693344717392071,-0.3217690837960243, -0.663163,0.662745,-0.324698,
-  -0.3077262804727168,0.6728336329442314,-0.6727551165482694, -0.300866,0.669044,-0.668483,
-  -0.818826677556628,0.2227600018553431,-0.5290596905098209, -0.807021,0.211401,-0.536719,
-  -0.8188213780920877,0.5291322482695965,-0.22260154031294, -0.808509,0.536553,-0.207766,
-  -0.222917078188717,0.8187693639884328,-0.529084613153564, -0.212387,0.806887,-0.536424,
-  -0.2229647660528292,0.5291603643361042,-0.8187039435978214, -0.212466,0.536613,-0.806734,
-  -0.529180413377845,0.8187475575528992,-0.2227631932775632, -0.53671,0.808389,-0.207812,
-  -0.5291958652372423,0.2228532421373683,-0.818711324033881, -0.537249,0.207764,-0.808044,
-  -0.2413448069238479,0.2412385734077831,-0.9399770141298913, -0.211184,0.211027,-0.944517,
-  -0.2413284655822042,0.939999694145296,-0.2411662460613576, -0.21115,0.944546,-0.210958,
-  -0.9400606467506419,0.2411578154404622,-0.2410993405482855, -0.944582,0.211054,-0.210915,
-  -0.714827673344605,0.4319866040212881,-0.5499172305445864, -0.710373,0.420719,-0.550791,
-  -0.4365224164682918,0.7141474013804089,-0.5472126039706944, -0.42442,0.710518,-0.547956,
-  -0.436005803133462,0.5498864103046268,-0.7124070994686148, -0.427978,0.550652,-0.705751,
-  -0.7399033033139369,0.5356117749852135,-0.4070173865665636, -0.732635,0.532653,-0.406582,
-  -0.5364975655684501,0.7393967586510092,-0.406771268016907, -0.534165,0.731817,-0.406068,
-  -0.5540393011783294,0.4113729089503583,-0.7237495984347924, -0.555791,0.416594,-0.708936,
-  -0.9056288813092817,0.3871461718451766,-0.1730727337686621, -0.903188,0.374534,-0.16889,
-  -0.1733450347435898,0.9055759351131357,-0.3871481982061028, -0.169742,0.903015,-0.374383,
-  -0.9056169924196077,0.1732289551666146,-0.387104111486262, -0.90305,0.169657,-0.374349,
-  -0.3872713263411691,0.9055614026992059,-0.1731457965186272, -0.374631,0.903135,-0.168935,
-  -0.173496184263821,0.3872477854449849,-0.905502471718279, -0.169814,0.374461,-0.902966,
-  -0.3873059041793304,0.1733274642458965,-0.9055101365173267, -0.374656,0.16904,-0.903102,
-  -0.7003137941471791,0.1387336794161172,-0.7002239751185544, -0.694364,0.14369,-0.694527,
-  -0.7003005030275156,0.7002562852844972,-0.1386376150025851, -0.693936,0.693885,-0.14759,
-  -0.138892797652994,0.7002951312474406,-0.7002111438391035, -0.144819,0.694321,-0.69427
-}
-{
-  3, 26,21,40,
-  3, 21,26,41,
-  3, 37,21,42,
-  3, 25,37,42,
-  3, 12,13,31,
-  3, 17,16,28,
-  3, 7,6,29,
-  3, 19,18,33,
-  3, 10,11,30,
-  3, 5,4,32,
-  3, 14,2,34,
-  3, 2,20,34,
-  3, 0,9,35,
-  3, 1,8,36,
-  3, 15,1,36,
-  3, 3,0,35,
-  3, 21,38,39,
-  3, 38,27,39,
-  3, 25,28,37,
-  3, 28,22,37,
-  3, 30,27,38,
-  3, 23,30,38,
-  3, 31,24,39,
-  3, 27,31,39,
-  3, 21,37,40,
-  3, 38,21,41,
-  3, 21,39,42,
-  3, 33,18,49,
-  3, 5,32,50,
-  3, 12,31,51,
-  3, 17,28,49,
-  3, 30,11,51,
-  3, 29,6,50,
-  3, 28,25,49,
-  3, 26,29,50,
-  3, 31,27,51,
-  3, 32,26,50,
-  3, 27,30,51,
-  3, 25,33,49,
-  3, 22,28,45,
-  3, 29,22,43,
-  3, 30,23,44,
-  3, 23,32,46,
-  3, 24,31,47,
-  3, 33,24,48,
-  3, 24,34,48,
-  3, 34,24,47,
-  3, 35,23,46,
-  3, 22,36,43,
-  3, 23,35,44,
-  3, 36,22,45,
-  3, 18,17,49,
-  3, 6,5,50,
-  3, 11,12,51,
-  3, 29,26,40,
-  3, 22,29,40,
-  3, 26,32,41,
-  3, 32,23,41,
-  3, 33,25,42,
-  3, 24,33,42,
-  3, 9,10,44,
-  3, 20,19,48,
-  3, 4,3,46,
-  3, 13,14,47,
-  3, 16,15,45,
-  3, 8,7,43,
-  3, 14,34,47,
-  3, 34,20,48,
-  3, 35,9,44,
-  3, 15,36,45,
-  3, 36,8,43,
-  3, 3,35,46,
-  3, 28,16,45,
-  3, 7,29,43,
-  3, 10,30,44,
-  3, 31,13,47,
-  3, 32,4,46,
-  3, 19,33,48,
-  3, 37,22,40,
-  3, 23,38,41,
-  3, 39,24,42
-};
-Discrete Surface {22} = {52, 81}
-{
-  1,0,0, 0.98478,0.122368,-0.12237,
-  0,1,0, 0.122433,0.98476,-0.122447,
-  0,0,-1, 0.122473,0.122483,-0.98475,
-  0.9749279121818258,0.2225209339563045,0, 0.959989,0.239864,-0.104576,
-  0.9009688679024271,0.4338837391175415,0, 0.883416,0.450069,-0.0858124,
-  0.781831482468043,0.6234898018587169,0, 0.778678,0.614308,-0.078392,
-  0.6234898018587486,0.7818314824680178,0, 0.614338,0.778649,-0.0784431,
-  0.4338837391175694,0.9009688679024137,0, 0.450152,0.883365,-0.085863,
-  0.2225209339563205,0.9749279121818222,0, 0.239935,0.959961,-0.104646,
-  0,0.9749279121818258,-0.2225209339563045, 0.104724,0.959984,-0.239825,
-  0,0.9009688679024271,-0.4338837391175415, 0.0859306,0.8834,-0.450078,
-  0,0.781831482468043,-0.6234898018587169, 0.0785123,0.77867,-0.614306,
-  0,0.6234898018587486,-0.7818314824680178, 0.0785608,0.614301,-0.778668,
-  0,0.4338837391175694,-0.9009688679024137, 0.085974,0.450117,-0.883374,
-  0,0.2225209339563205,-0.9749279121818222, 0.10476,0.23985,-0.959973,
-  0.2225209339563045,0,-0.9749279121818258, 0.239926,0.104705,-0.959956,
-  0.4338837391175415,0,-0.9009688679024271, 0.450155,0.0858584,-0.883364,
-  0.6234898018587169,0,-0.781831482468043, 0.614381,0.0784617,-0.778616,
-  0.7818314824680178,0,-0.6234898018587486, 0.778705,0.0784445,-0.614269,
-  0.9009688679024137,0,-0.4338837391175694, 0.883424,0.0858506,-0.450048,
-  0.9749279121818222,0,-0.2225209339563205, 0.959993,0.104592,-0.239845,
-  0.5859391712886065,0.5563256584048392,-0.5892173192941191, 0.584763,0.542311,-0.590061,
-  0.3833480208274531,0.379695987305025,-0.8419472976831952, 0.371766,0.372589,-0.841945,
-  0.8420645922398214,0.3797061412567955,-0.3830854925216411, 0.842045,0.372388,-0.371751,
-  0.3798087346788101,0.8419883069517581,-0.3831486133886693, 0.373362,0.839916,-0.374853,
-  0.3026754046034515,0.6752595066698167,-0.6726159390479917, 0.294788,0.670095,-0.670553,
-  0.6694647709091803,0.3218490312764669,-0.6694999025551025, 0.66289,0.324777,-0.662978,
-  0.6728998724979469,0.6727945852345686,-0.3074950670804557, 0.669108,0.668507,-0.300654,
-  0.5292998471455702,0.2227124424393522,-0.818682457498219, 0.536701,0.207834,-0.80839,
-  0.2228583430834042,0.8187642833724724,-0.5291148264573806, 0.207805,0.808093,-0.537154,
-  0.818836191976977,0.5290847461902158,-0.2226646459448115, 0.806999,0.536418,-0.212067,
-  0.8188754936591693,0.2227548200221398,-0.5289887211177093, 0.808498,0.207842,-0.536533,
-  0.5291830608152351,0.8187376007865073,-0.2227888180759134, 0.536655,0.806705,-0.212427,
-  0.2229847307409096,0.5291030287822968,-0.8187355237676126, 0.211525,0.536766,-0.806954,
-  0.9400876615466238,0.2410968941290492,-0.2410549477979327, 0.944593,0.210933,-0.210993,
-  0.2413642744151451,0.9400181742343745,-0.2410583387083743, 0.211076,0.94455,-0.211013,
-  0.2413825517047067,0.2411868212365993,-0.9399806012736452, 0.211193,0.210978,-0.944528,
-  0.4321236687492747,0.5499831336456151,-0.7146937040565199, 0.420852,0.550851,-0.710251,
-  0.5500676303804031,0.7119168204212273,-0.4365776580762989, 0.550863,0.705542,-0.42802,
-  0.7149765298922113,0.5469201323683206,-0.4355306617287044, 0.710903,0.547815,-0.423971,
-  0.53575238786075,0.4070954925393013,-0.7397596718753998, 0.532794,0.406665,-0.732486,
-  0.4114335427191056,0.7237704094371225,-0.5539664332168072, 0.416632,0.708946,-0.555754,
-  0.7395654932385209,0.4068071878816575,-0.5362375482569743, 0.732004,0.406099,-0.533884,
-  0.1733505144855424,0.905595278989113,-0.3871004918551286, 0.169078,0.903162,-0.374492,
-  0.1733589218084804,0.3871689197164382,-0.9055626917968785, 0.169773,0.374408,-0.902997,
-  0.3873602066341191,0.1731943373187928,-0.9055121582797161, 0.3747,0.168959,-0.9031,
-  0.9056298008796511,0.3871159275578428,-0.1731355639697386, 0.90306,0.374362,-0.169588,
-  0.9056444523434659,0.1732045460361161,-0.3870507898021157, 0.903208,0.168967,-0.374449,
-  0.3873220011234146,0.9055331419120227,-0.1731802429646654, 0.374523,0.902984,-0.169611,
-  0.1388155768430232,0.7002810696448952,-0.7002404718826034, 0.143753,0.694555,-0.694319,
-  0.7004185930032947,0.138734782254702,-0.7001189769299865, 0.694004,0.147649,-0.693803,
-  0.7003427867535132,0.7002193581288997,-0.1386105320334892, 0.694354,0.69428,-0.144644
-}
-{
-  3, 26,40,21,
-  3, 21,42,26,
-  3, 37,41,21,
-  3, 25,41,37,
-  3, 6,32,7,
-  3, 16,28,17,
-  3, 4,30,5,
-  3, 12,33,13,
-  3, 18,31,19,
-  3, 10,29,11,
-  3, 0,34,3,
-  3, 2,36,15,
-  3, 8,35,1,
-  3, 20,34,0,
-  3, 1,35,9,
-  3, 14,36,2,
-  3, 38,39,21,
-  3, 27,39,38,
-  3, 23,39,30,
-  3, 30,39,27,
-  3, 25,37,33,
-  3, 33,37,22,
-  3, 27,38,32,
-  3, 32,38,24,
-  3, 21,40,37,
-  3, 39,42,21,
-  3, 21,41,38,
-  3, 6,51,32,
-  3, 12,49,33,
-  3, 30,51,5,
-  3, 28,50,17,
-  3, 18,50,31,
-  3, 29,49,11,
-  3, 33,49,25,
-  3, 32,51,27,
-  3, 26,50,28,
-  3, 27,51,30,
-  3, 25,49,29,
-  3, 31,50,26,
-  3, 28,45,22,
-  3, 22,44,33,
-  3, 30,46,23,
-  3, 29,43,24,
-  3, 23,47,31,
-  3, 24,48,32,
-  3, 34,47,23,
-  3, 23,46,34,
-  3, 36,44,22,
-  3, 35,48,24,
-  3, 22,45,36,
-  3, 24,43,35,
-  3, 11,49,12,
-  3, 17,50,18,
-  3, 5,51,6,
-  3, 28,40,26,
-  3, 22,40,28,
-  3, 29,41,25,
-  3, 24,41,29,
-  3, 31,42,23,
-  3, 26,42,31,
-  3, 13,44,14,
-  3, 3,46,4,
-  3, 19,47,20,
-  3, 15,45,16,
-  3, 9,43,10,
-  3, 7,48,8,
-  3, 20,47,34,
-  3, 34,46,3,
-  3, 8,48,35,
-  3, 36,45,15,
-  3, 14,44,36,
-  3, 35,43,9,
-  3, 16,45,28,
-  3, 10,43,29,
-  3, 4,46,30,
-  3, 33,44,13,
-  3, 31,47,19,
-  3, 32,48,7,
-  3, 37,40,22,
-  3, 38,41,24,
-  3, 23,42,39
-};
-Discrete Surface {24} = {52, 81}
-{
-  -1,0,0, -0.984755,-0.122457,-0.122463,
-  0,-1,0, -0.12238,-0.984777,-0.122379,
-  0,0,-1, -0.122475,-0.122464,-0.984752,
-  -0.9749279121818258,-0.2225209339563045,0, -0.959968,-0.239895,-0.104677,
-  -0.9009688679024271,-0.4338837391175415,0, -0.883383,-0.450128,-0.085816,
-  -0.781831482468043,-0.6234898018587169,0, -0.778628,-0.614372,-0.0784089,
-  -0.6234898018587486,-0.7818314824680178,0, -0.614297,-0.778686,-0.0784088,
-  -0.4338837391175694,-0.9009688679024137,0, -0.450056,-0.883423,-0.0858103,
-  -0.2225209339563205,-0.9749279121818222,0, -0.23984,-0.959994,-0.104586,
-  0,-0.2225209339563045,-0.9749279121818258, -0.104673,-0.239911,-0.959964,
-  0,-0.4338837391175415,-0.9009688679024271, -0.0858323,-0.450145,-0.883372,
-  0,-0.6234898018587169,-0.781831482468043, -0.0784191,-0.614353,-0.77864,
-  0,-0.7818314824680178,-0.6234898018587486, -0.0784002,-0.778685,-0.614297,
-  0,-0.9009688679024137,-0.4338837391175694, -0.0858292,-0.883419,-0.45006,
-  0,-0.9749279121818222,-0.2225209339563205, -0.104591,-0.959988,-0.239861,
-  -0.9749279121818258,0,-0.2225209339563045, -0.959977,-0.104727,-0.239848,
-  -0.9009688679024271,0,-0.4338837391175415, -0.883394,-0.0859542,-0.450084,
-  -0.781831482468043,0,-0.6234898018587169, -0.778689,-0.078595,-0.614274,
-  -0.6234898018587486,0,-0.7818314824680178, -0.614325,-0.0786109,-0.778648,
-  -0.4338837391175694,0,-0.9009688679024137, -0.450137,-0.0860079,-0.88336,
-  -0.2225209339563205,0,-0.9749279121818222, -0.239876,-0.104783,-0.959964,
-  -0.5772695775917365,-0.5774986739195732,-0.5772825273712237, -0.572829,-0.573034,-0.572828,
-  -0.84196313047808,-0.3798992890913108,-0.3831141478399601, -0.840278,-0.373299,-0.374229,
-  -0.3797028243146233,-0.3833437635931001,-0.8419485314296209, -0.373117,-0.374476,-0.840248,
-  -0.3830905136777825,-0.8420998695293594,-0.3796175286407161, -0.374224,-0.840396,-0.373037,
-  -0.6753243551337411,-0.3027731950622603,-0.6725068152847703, -0.670524,-0.29472,-0.670165,
-  -0.3024772074324191,-0.6727371886460419,-0.6752275372697392, -0.294427,-0.670395,-0.670421,
-  -0.6725743222424133,-0.6753769447274838,-0.3025058133900864, -0.670222,-0.670585,-0.294448,
-  -0.5292174927727776,-0.223002704946997,-0.8186583788936386, -0.536914,-0.211546,-0.806848,
-  -0.2226833000638701,-0.8188538710222593,-0.5290468905897465, -0.211316,-0.806997,-0.536795,
-  -0.8187203356570324,-0.5292761830240482,-0.2226365467199614, -0.806873,-0.536978,-0.21131,
-  -0.5290517759521769,-0.8188565804062726,-0.222661588303518, -0.537008,-0.808313,-0.207441,
-  -0.8188227158507502,-0.2229462044382169,-0.5289850478946116, -0.808267,-0.207645,-0.53699,
-  -0.2227325903706494,-0.529216153645598,-0.818734563716809, -0.207458,-0.537179,-0.808191,
-  -0.9399984230250011,-0.2413072965836146,-0.2411923648088554, -0.944542,-0.211063,-0.211058,
-  -0.2411511507515107,-0.2413837538184203,-0.939989370907213, -0.210971,-0.211188,-0.944532,
-  -0.2410801920780593,-0.9400774632642785,-0.2411117094251689, -0.211005,-0.944593,-0.210922,
-  -0.5517781426680181,-0.4314677981220309,-0.7137061349796773, -0.552685,-0.421761,-0.708133,
-  -0.4312103344164486,-0.7139098887588355,-0.5517157947663075, -0.421497,-0.708343,-0.552616,
-  -0.713714500400269,-0.5519227237848676,-0.4312689508095874, -0.708164,-0.552829,-0.421519,
-  -0.5521677488223272,-0.7257225329274983,-0.4104123781099352, -0.553538,-0.712452,-0.414159,
-  -0.4104405569192795,-0.5523732789308037,-0.7255496127965321, -0.414188,-0.553753,-0.71227,
-  -0.7256084869996465,-0.4106472382707756,-0.5521423580603867, -0.712318,-0.414404,-0.55353,
-  -0.3872356151275075,-0.1734669114635066,-0.9055152180479035, -0.374448,-0.169808,-0.90297,
-  -0.9055506771866307,-0.3872938960312142,-0.1731514081314203, -0.902993,-0.374505,-0.169607,
-  -0.3870718820895837,-0.9056522451436749,-0.1731075330771961, -0.374476,-0.903209,-0.168914,
-  -0.1731521009109305,-0.9056319794730243,-0.387098855501065, -0.169601,-0.903064,-0.37435,
-  -0.1731388911786651,-0.3873154164098633,-0.9055438671174173, -0.168933,-0.374662,-0.903122,
-  -0.9055868324173046,-0.1733653089407871,-0.3871136252027702, -0.903155,-0.169093,-0.374503,
-  -0.1386071422526729,-0.7003584662261064,-0.7002044007823989, -0.14361,-0.694399,-0.694511,
-  -0.7001839358065174,-0.7003668919256927,-0.1386677003494544, -0.694259,-0.694649,-0.14363,
-  -0.7003037139973485,-0.1389907216206266,-0.7001830726996985, -0.694609,-0.143845,-0.694244
-}
-{
-  3, 37,21,42,
-  3, 38,21,41,
-  3, 39,21,40,
-  3, 25,37,42,
-  3, 26,38,41,
-  3, 27,39,40,
-  3, 16,17,32,
-  3, 12,13,29,
-  3, 10,11,33,
-  3, 18,19,28,
-  3, 5,4,30,
-  3, 7,6,31,
-  3, 3,0,34,
-  3, 0,15,34,
-  3, 14,1,36,
-  3, 1,8,36,
-  3, 20,2,35,
-  3, 2,9,35,
-  3, 27,30,39,
-  3, 30,22,39,
-  3, 29,24,38,
-  3, 26,29,38,
-  3, 28,23,37,
-  3, 25,28,37,
-  3, 21,39,42,
-  3, 21,37,41,
-  3, 21,38,40,
-  3, 32,17,51,
-  3, 33,11,49,
-  3, 12,29,49,
-  3, 31,6,50,
-  3, 18,28,51,
-  3, 5,30,50,
-  3, 29,26,49,
-  3, 26,33,49,
-  3, 25,32,51,
-  3, 27,31,50,
-  3, 30,27,50,
-  3, 28,25,51,
-  3, 22,30,44,
-  3, 23,28,43,
-  3, 32,22,48,
-  3, 24,29,46,
-  3, 33,23,47,
-  3, 31,24,45,
-  3, 22,34,48,
-  3, 34,22,44,
-  3, 23,35,47,
-  3, 35,23,43,
-  3, 24,36,45,
-  3, 36,24,46,
-  3, 6,5,50,
-  3, 11,12,49,
-  3, 17,18,51,
-  3, 31,27,40,
-  3, 24,31,40,
-  3, 23,33,41,
-  3, 33,26,41,
-  3, 32,25,42,
-  3, 22,32,42,
-  3, 19,20,43,
-  3, 9,10,47,
-  3, 13,14,46,
-  3, 4,3,44,
-  3, 15,16,48,
-  3, 8,7,45,
-  3, 20,35,43,
-  3, 34,15,48,
-  3, 35,9,47,
-  3, 3,34,44,
-  3, 14,36,46,
-  3, 36,8,45,
-  3, 28,19,43,
-  3, 29,13,46,
-  3, 30,4,44,
-  3, 7,31,45,
-  3, 10,33,47,
-  3, 16,32,48,
-  3, 38,24,40,
-  3, 37,23,41,
-  3, 39,22,42
-};
-Discrete Surface {26} = {52, 81}
-{
-  1,0,0, 0.984748,-0.122489,0.122483,
-  0,-1,0, 0.122431,-0.984763,0.122429,
-  0,0,1, 0.122403,-0.12239,0.984772,
-  0.2225209339563045,-0.9749279121818258,0, 0.239878,-0.959973,0.104693,
-  0.4338837391175415,-0.9009688679024271,0, 0.450115,-0.883378,0.0859452,
-  0.6234898018587169,-0.781831482468043,0, 0.61429,-0.778679,0.0785497,
-  0.7818314824680178,-0.6234898018587486,0, 0.778657,-0.614318,0.0785558,
-  0.9009688679024137,-0.4338837391175694,0, 0.883378,-0.450117,0.0859298,
-  0.9749279121818222,-0.2225209339563205,0, 0.959974,-0.239848,0.104748,
-  0,-0.9749279121818258,0.2225209339563045, 0.104646,-0.959975,0.239882,
-  0,-0.9009688679024271,0.4338837391175415, 0.0858065,-0.88339,0.450117,
-  0,-0.781831482468043,0.6234898018587169, 0.078391,-0.77863,0.614371,
-  0,-0.6234898018587486,0.7818314824680178, 0.0783931,-0.6143,0.778685,
-  0,-0.4338837391175694,0.9009688679024137, 0.0857936,-0.450092,0.883405,
-  0,-0.2225209339563205,0.9749279121818222, 0.104571,-0.2399,0.959978,
-  0.9749279121818258,0,0.2225209339563045, 0.959963,-0.104711,0.2399,
-  0.9009688679024271,0,0.4338837391175415, 0.883367,-0.0858669,0.450149,
-  0.781831482468043,0,0.6234898018587169, 0.778638,-0.0784803,0.61435,
-  0.6234898018587486,0,0.7818314824680178, 0.614279,-0.0784977,0.778691,
-  0.4338837391175694,0,0.9009688679024137, 0.450052,-0.0859335,0.883413,
-  0.2225209339563205,0,0.9749279121818222, 0.239823,-0.104674,0.95999,
-  0.5562362296434989,-0.5892873078556966,0.5859536739929354, 0.542234,-0.590133,0.58476,
-  0.379631482535034,-0.8420001196937259,0.3832982928577649, 0.372536,-0.841989,0.371718,
-  0.8419507438249342,-0.3832004904200074,0.3798425163456342, 0.839884,-0.374901,0.373385,
-  0.3795997889605593,-0.383211584909677,0.8420527782719962, 0.372285,-0.37189,0.842032,
-  0.6752432432178479,-0.6726190830865717,0.3027047098667921, 0.670068,-0.670571,0.294811,
-  0.3217475856345757,-0.6695551673930269,0.6694582629265332, 0.32468,-0.663039,0.662877,
-  0.6727481513444266,-0.3076078244196465,0.6728947610714556, 0.668462,-0.300768,0.669104,
-  0.2226247189467654,-0.8187264055377613,0.5292717698247944, 0.207774,-0.808432,0.536662,
-  0.5290976173389155,-0.8187546494143835,0.2229290562471527, 0.536748,-0.806972,0.211508,
-  0.8187129126998818,-0.2227948663497247,0.529223427630523, 0.806682,-0.212467,0.536668,
-  0.5290281209351817,-0.2228626208160659,0.8188172112032769, 0.536361,-0.212193,0.807001,
-  0.8187477273741733,-0.5291154775816621,0.222916760083724, 0.808069,-0.537184,0.20782,
-  0.2226542480795667,-0.5290616966468142,0.818852166628244, 0.207757,-0.536609,0.808474,
-  0.2409822723092781,-0.2412752005135622,0.940060624027513, 0.210868,-0.211114,0.944579,
-  0.2411660665082168,-0.940027817059061,0.241219060281517, 0.210959,-0.944555,0.21111,
-  0.9399729757239932,-0.2412317021621468,0.2413671110554286, 0.944531,-0.211091,0.211075,
-  0.5499299045673061,-0.7147438131086641,0.432109235416839, 0.550801,-0.710292,0.420844,
-  0.711854847669069,-0.4366704490006968,0.5500741417728132, 0.705486,-0.428096,0.550875,
-  0.5468451287458627,-0.4356145731504423,0.7149825268868089, 0.54774,-0.424071,0.710903,
-  0.4070083452587269,-0.7398160510180921,0.5357390992397658, 0.406585,-0.732542,0.532777,
-  0.4067327418520041,-0.536318187205414,0.739548386904055, 0.406009,-0.533962,0.731997,
-  0.7237478007374487,-0.5539922097701387,0.4114386875478945, 0.708902,-0.555796,0.416652,
-  0.1731283969129102,-0.9055730119909469,0.3872519582024065, 0.168922,-0.903145,0.374614,
-  0.3870324919716934,-0.1733375755341491,0.905624870168757, 0.374298,-0.169729,0.903057,
-  0.9055697866426881,-0.3871835396531574,0.1732982090449555, 0.903136,-0.374561,0.169059,
-  0.9055351630461629,-0.1731964558613765,0.3873100293853463, 0.90298,-0.169646,0.374514,
-  0.3871822963766067,-0.9055633174158891,0.1733347851191408, 0.37441,-0.903005,0.169731,
-  0.1730639008743107,-0.3871909797468753,0.9056096742926176, 0.168871,-0.374569,0.903179,
-  0.7002101296688213,-0.7003004695285231,0.1388707116337059, 0.69453,-0.694338,0.14378,
-  0.138619816648913,-0.7001949480301813,0.7003653614764782, 0.147574,-0.693851,0.693976,
-  0.7001878684342804,-0.1387563001500807,0.7003454592689502, 0.694236,-0.144732,0.694376
-}
-{
-  3, 26,40,21,
-  3, 21,41,26,
-  3, 37,42,21,
-  3, 25,42,37,
-  3, 19,31,18,
-  3, 12,33,13,
-  3, 10,28,11,
-  3, 17,30,16,
-  3, 7,32,6,
-  3, 5,29,4,
-  3, 3,35,1,
-  3, 1,35,9,
-  3, 0,36,8,
-  3, 15,36,0,
-  3, 2,34,20,
-  3, 14,34,2,
-  3, 38,39,21,
-  3, 27,39,38,
-  3, 30,38,23,
-  3, 27,38,30,
-  3, 25,37,29,
-  3, 29,37,22,
-  3, 31,39,27,
-  3, 24,39,31,
-  3, 21,42,38,
-  3, 21,40,37,
-  3, 39,41,21,
-  3, 32,49,6,
-  3, 31,51,18,
-  3, 12,50,33,
-  3, 17,51,30,
-  3, 28,50,11,
-  3, 5,49,29,
-  3, 25,49,32,
-  3, 29,49,25,
-  3, 26,50,28,
-  3, 27,51,31,
-  3, 30,51,27,
-  3, 33,50,26,
-  3, 28,43,22,
-  3, 22,47,29,
-  3, 23,46,30,
-  3, 32,45,23,
-  3, 31,44,24,
-  3, 24,48,33,
-  3, 23,45,36,
-  3, 36,46,23,
-  3, 35,47,22,
-  3, 22,43,35,
-  3, 34,48,24,
-  3, 24,44,34,
-  3, 6,49,5,
-  3, 11,50,12,
-  3, 18,51,17,
-  3, 22,40,28,
-  3, 28,40,26,
-  3, 33,41,24,
-  3, 26,41,33,
-  3, 32,42,25,
-  3, 23,42,32,
-  3, 16,46,15,
-  3, 9,43,10,
-  3, 4,47,3,
-  3, 20,44,19,
-  3, 13,48,14,
-  3, 8,45,7,
-  3, 3,47,35,
-  3, 35,43,9,
-  3, 15,46,36,
-  3, 34,44,20,
-  3, 14,48,34,
-  3, 36,45,8,
-  3, 10,43,28,
-  3, 29,47,4,
-  3, 19,44,31,
-  3, 30,46,16,
-  3, 7,45,32,
-  3, 33,48,13,
-  3, 37,40,22,
-  3, 38,42,23,
-  3, 24,41,39
-};
-Discrete Surface {28} = {52, 81}
-{
-  1,0,0, 0.984774,-0.122389,-0.122393,
-  0,-1,0, 0.122454,-0.984755,-0.122467,
-  0,0,-1, 0.122486,-0.122494,-0.984747,
-  0.2225209339563045,-0.9749279121818258,0, 0.23992,-0.959962,-0.104663,
-  0.4338837391175415,-0.9009688679024271,0, 0.450136,-0.883379,-0.0858171,
-  0.6234898018587169,-0.781831482468043,0, 0.614354,-0.778641,-0.0784189,
-  0.7818314824680178,-0.6234898018587486,0, 0.778675,-0.614308,-0.0784292,
-  0.9009688679024137,-0.4338837391175694,0, 0.883406,-0.450083,-0.0858306,
-  0.9749279121818222,-0.2225209339563205,0, 0.959983,-0.239876,-0.104599,
-  0,-0.2225209339563045,-0.9749279121818258, 0.104803,-0.239888,-0.959958,
-  0,-0.4338837391175415,-0.9009688679024271, 0.0859955,-0.45013,-0.883365,
-  0,-0.6234898018587169,-0.781831482468043, 0.0785631,-0.614333,-0.778645,
-  0,-0.7818314824680178,-0.6234898018587486, 0.0785609,-0.778691,-0.614273,
-  0,-0.9009688679024137,-0.4338837391175694, 0.0859583,-0.883402,-0.450069,
-  0,-0.9749279121818222,-0.2225209339563205, 0.104743,-0.959983,-0.23982,
-  0.2225209339563045,0,-0.9749279121818258, 0.239936,-0.104748,-0.95995,
-  0.4338837391175415,0,-0.9009688679024271, 0.450157,-0.085921,-0.883358,
-  0.6234898018587169,0,-0.781831482468043, 0.614362,-0.0784803,-0.778627,
-  0.7818314824680178,0,-0.6234898018587486, 0.778699,-0.0784265,-0.614278,
-  0.9009688679024137,0,-0.4338837391175694, 0.883428,-0.0858381,-0.450042,
-  0.9749279121818222,0,-0.2225209339563205, 0.959994,-0.104613,-0.239831,
-  0.5859486929982002,-0.5563009588034338,-0.5892311706178661, 0.584664,-0.54239,-0.590085,
-  0.3798761156615365,-0.8419770211980179,-0.3831065999020506, 0.373346,-0.839979,-0.374755,
-  0.8420704125389167,-0.3796786979607712,-0.383094644398667, 0.841954,-0.372489,-0.371822,
-  0.3833350412367143,-0.3797808232280372,-0.8419173192605161, 0.371763,-0.372683,-0.841907,
-  0.3027033258366951,-0.6753351282855078,-0.6725274492042674, 0.294819,-0.67017,-0.670465,
-  0.6694605502798633,-0.3218334946857595,-0.6695115915776017, 0.662882,-0.324766,-0.662993,
-  0.6728906055049545,-0.6727865777354171,-0.3075328522558483, 0.669105,-0.668508,-0.300667,
-  0.2229376938120609,-0.5292234361610151,-0.8186722443422245, 0.211522,-0.536849,-0.8069,
-  0.8188224301906811,-0.5290888951853807,-0.2226989729452329, 0.80693,-0.53643,-0.212234,
-  0.5292598840013308,-0.2228349609840075,-0.8186784285528107, 0.536685,-0.207895,-0.808383,
-  0.8188781000679831,-0.2227000244022184,-0.5290023468392038, 0.808497,-0.207819,-0.536547,
-  0.5292315452324026,-0.8187424707032278,-0.2226612607913472, 0.53667,-0.806753,-0.212263,
-  0.2229354047206933,-0.8188187995996506,-0.5289956612149129, 0.20784,-0.808135,-0.537081,
-  0.2413849643846921,-0.939997589368462,-0.2411178850030153, 0.211092,-0.944544,-0.211024,
-  0.2413899272889897,-0.2412262733201097,-0.9399685098870656, 0.211201,-0.21102,-0.944515,
-  0.9400661598943587,-0.2411616179419472,-0.2410743500634208, 0.944585,-0.210958,-0.211001,
-  0.7142315096471628,-0.5472437518056613,-0.4363449729994669, 0.710604,-0.547987,-0.424232,
-  0.4321029310497181,-0.5500433569490331,-0.7146603316993312, 0.420847,-0.55092,-0.710199,
-  0.5499571522198194,-0.7124611202180825,-0.4358282623300991, 0.550728,-0.705807,-0.427783,
-  0.5357429952408004,-0.4071444508634915,-0.739738301393453, 0.532784,-0.406721,-0.732467,
-  0.7395001008498453,-0.4068052415678343,-0.5363309476189138, 0.731929,-0.406086,-0.533991,
-  0.4114428622315243,-0.7238556309819232,-0.5538481830932669, 0.416682,-0.709032,-0.555603,
-  0.1734858993751746,-0.3872646829086703,-0.9054991491993061, 0.169809,-0.374471,-0.902962,
-  0.9056128840955302,-0.3871494556498503,-0.1731399981205132, 0.903047,-0.374391,-0.169595,
-  0.9056529521501742,-0.1731707971395433,-0.3870414186073367, 0.90321,-0.168958,-0.374452,
-  0.1733841403045848,-0.905602500481075,-0.3870685355629761, 0.169107,-0.903166,-0.37447,
-  0.3873226864144086,-0.9055400783802825,-0.1731424385567425, 0.374525,-0.902989,-0.16959,
-  0.3873657605401575,-0.1733389076302821,-0.9054840657624625, 0.374693,-0.169033,-0.903087,
-  0.7004019174674438,-0.1386973009763194,-0.7001430826695609, 0.69399,-0.147637,-0.693819,
-  0.1388894710103084,-0.7003205860102653,-0.7001862891258258, 0.143788,-0.694619,-0.694248,
-  0.7003235576454836,-0.7002233653286996,-0.1386874614029438, 0.694362,-0.694268,-0.144673
-}
-{
-  3, 21,26,41,
-  3, 26,21,40,
-  3, 38,21,42,
-  3, 25,38,42,
-  3, 13,12,33,
-  3, 16,17,30,
-  3, 11,10,28,
-  3, 7,6,29,
-  3, 5,4,32,
-  3, 18,19,31,
-  3, 9,2,35,
-  3, 2,15,35,
-  3, 1,14,34,
-  3, 0,8,36,
-  3, 3,1,34,
-  3, 20,0,36,
-  3, 21,37,39,
-  3, 37,27,39,
-  3, 27,32,39,
-  3, 32,22,39,
-  3, 23,29,37,
-  3, 29,27,37,
-  3, 28,24,38,
-  3, 25,28,38,
-  3, 21,39,42,
-  3, 37,21,41,
-  3, 21,38,40,
-  3, 33,12,50,
-  3, 30,17,49,
-  3, 29,6,51,
-  3, 18,31,49,
-  3, 11,28,50,
-  3, 5,32,51,
-  3, 26,30,49,
-  3, 25,33,50,
-  3, 27,29,51,
-  3, 28,25,50,
-  3, 31,26,49,
-  3, 32,27,51,
-  3, 29,23,44,
-  3, 23,31,45,
-  3, 22,32,47,
-  3, 33,22,46,
-  3, 24,28,43,
-  3, 30,24,48,
-  3, 22,34,46,
-  3, 34,22,47,
-  3, 36,23,45,
-  3, 23,36,44,
-  3, 24,35,48,
-  3, 35,24,43,
-  3, 17,18,49,
-  3, 6,5,51,
-  3, 12,11,50,
-  3, 30,26,40,
-  3, 24,30,40,
-  3, 26,31,41,
-  3, 31,23,41,
-  3, 22,33,42,
-  3, 33,25,42,
-  3, 10,9,43,
-  3, 15,16,48,
-  3, 4,3,47,
-  3, 8,7,44,
-  3, 19,20,45,
-  3, 14,13,46,
-  3, 9,35,43,
-  3, 35,15,48,
-  3, 3,34,47,
-  3, 36,8,44,
-  3, 20,36,45,
-  3, 34,14,46,
-  3, 28,10,43,
-  3, 7,29,44,
-  3, 31,19,45,
-  3, 16,30,48,
-  3, 32,4,47,
-  3, 13,33,46,
-  3, 38,24,40,
-  3, 23,37,41,
-  3, 39,22,42
-};
+Delete Physicals;
+
+// add a geometrical volume
+
+Surface Loop(29) = {28,26,16,14,20,24,22,18};
+Volume(30) = {29};
diff --git a/demos/sphere-surf.msh b/demos/sphere-surf.msh
new file mode 100644
index 0000000000000000000000000000000000000000..ad9755ebf89e2e90b994d1393b3c647236c62b48
--- /dev/null
+++ b/demos/sphere-surf.msh
@@ -0,0 +1,1064 @@
+$NOD
+326
+2 1 0 0
+3 0 1 0
+4 -1 0 0
+5 0 -1 0
+6 0 0 -1
+7 0 0 1
+8 0.9749279121818258 0.2225209339563045 0
+9 0.9009688679024271 0.4338837391175415 0
+10 0.781831482468043 0.6234898018587169 0
+11 0.6234898018587486 0.7818314824680178 0
+12 0.4338837391175694 0.9009688679024137 0
+13 0.2225209339563205 0.9749279121818222 0
+14 -0.2225209339563045 0.9749279121818258 0
+15 -0.4338837391175415 0.9009688679024271 0
+16 -0.6234898018587169 0.781831482468043 0
+17 -0.7818314824680178 0.6234898018587486 0
+18 -0.9009688679024137 0.4338837391175694 0
+19 -0.9749279121818222 0.2225209339563205 0
+20 -0.9749279121818258 -0.2225209339563045 0
+21 -0.9009688679024271 -0.4338837391175415 0
+22 -0.781831482468043 -0.6234898018587169 0
+23 -0.6234898018587486 -0.7818314824680178 0
+24 -0.4338837391175694 -0.9009688679024137 0
+25 -0.2225209339563205 -0.9749279121818222 0
+26 0.2225209339563045 -0.9749279121818258 0
+27 0.4338837391175415 -0.9009688679024271 0
+28 0.6234898018587169 -0.781831482468043 0
+29 0.7818314824680178 -0.6234898018587486 0
+30 0.9009688679024137 -0.4338837391175694 0
+31 0.9749279121818222 -0.2225209339563205 0
+32 0 0.9749279121818258 -0.2225209339563045
+33 0 0.9009688679024271 -0.4338837391175415
+34 0 0.781831482468043 -0.6234898018587169
+35 0 0.6234898018587486 -0.7818314824680178
+36 0 0.4338837391175694 -0.9009688679024137
+37 0 0.2225209339563205 -0.9749279121818222
+38 0 -0.2225209339563045 -0.9749279121818258
+39 0 -0.4338837391175415 -0.9009688679024271
+40 0 -0.6234898018587169 -0.781831482468043
+41 0 -0.7818314824680178 -0.6234898018587486
+42 0 -0.9009688679024137 -0.4338837391175694
+43 0 -0.9749279121818222 -0.2225209339563205
+44 0 -0.9749279121818258 0.2225209339563045
+45 0 -0.9009688679024271 0.4338837391175415
+46 0 -0.781831482468043 0.6234898018587169
+47 0 -0.6234898018587486 0.7818314824680178
+48 0 -0.4338837391175694 0.9009688679024137
+49 0 -0.2225209339563205 0.9749279121818222
+50 0 0.2225209339563045 0.9749279121818258
+51 0 0.4338837391175415 0.9009688679024271
+52 0 0.6234898018587169 0.781831482468043
+53 0 0.7818314824680178 0.6234898018587486
+54 0 0.9009688679024137 0.4338837391175694
+55 0 0.9749279121818222 0.2225209339563205
+56 0.9749279121818258 0 0.2225209339563045
+57 0.9009688679024271 0 0.4338837391175415
+58 0.781831482468043 0 0.6234898018587169
+59 0.6234898018587486 0 0.7818314824680178
+60 0.4338837391175694 0 0.9009688679024137
+61 0.2225209339563205 0 0.9749279121818222
+62 -0.2225209339563045 0 0.9749279121818258
+63 -0.4338837391175415 0 0.9009688679024271
+64 -0.6234898018587169 0 0.781831482468043
+65 -0.7818314824680178 0 0.6234898018587486
+66 -0.9009688679024137 0 0.4338837391175694
+67 -0.9749279121818222 0 0.2225209339563205
+68 -0.9749279121818258 0 -0.2225209339563045
+69 -0.9009688679024271 0 -0.4338837391175415
+70 -0.781831482468043 0 -0.6234898018587169
+71 -0.6234898018587486 0 -0.7818314824680178
+72 -0.4338837391175694 0 -0.9009688679024137
+73 -0.2225209339563205 0 -0.9749279121818222
+74 0.2225209339563045 0 -0.9749279121818258
+75 0.4338837391175415 0 -0.9009688679024271
+76 0.6234898018587169 0 -0.781831482468043
+77 0.7818314824680178 0 -0.6234898018587486
+78 0.9009688679024137 0 -0.4338837391175694
+79 0.9749279121818222 0 -0.2225209339563205
+80 -0.5563510131363865 0.5891913365526474 0.5859412249701538
+81 -0.8420396490396795 0.3830634023521231 0.3797808676698783
+82 -0.3798339505169332 0.8419039660392607 0.3833065117213258
+83 -0.3797253600454539 0.3830944029537457 0.8420518706843709
+84 -0.6753919245902565 0.672472844325763 0.3026979107737808
+85 -0.3218754731214902 0.6695561180725229 0.6693958339437879
+86 -0.6728325927539981 0.3074671081024881 0.6728746452087147
+87 -0.5292993303235405 0.8186255982747985 0.2229224350615393
+88 -0.8187957438348996 0.2226199084012708 0.5291641867450418
+89 -0.2227796568807776 0.5290641967745843 0.8188199683686377
+90 -0.5291126005877934 0.2227347916511525 0.8187991125945772
+91 -0.2228644638653538 0.8187181284284164 0.5291806711483696
+92 -0.8188650976802843 0.5289662361210328 0.222840695031449
+93 -0.2413111399348926 0.9399456419452581 0.2413944369774025
+94 -0.9400308625837783 0.2411047633180826 0.2412684687567402
+95 -0.2412555782973508 0.2410481643257406 0.9400486902217813
+96 -0.7119538381502901 0.4365391341902741 0.5500502935167957
+97 -0.5500945701675112 0.7146221593960822 0.4321001427018011
+98 -0.5469423456398116 0.4355031120810015 0.7149763189866385
+99 -0.4068237774364799 0.5362674037682693 0.7395347191745937
+100 -0.4071959581063569 0.7397418450163052 0.5357006446338911
+101 -0.7238608601175065 0.5538568359169417 0.4114219673645391
+102 -0.387338262855515 0.9054783182404259 0.173421383052493
+103 -0.1732777759107061 0.3870691149951774 0.9056226119645898
+104 -0.9056033827977032 0.1730510265700378 0.3872155155440856
+105 -0.9056547245159975 0.3870338671095289 0.173188644753235
+106 -0.3872181038881538 0.1731347990436712 0.9055862645269011
+107 -0.1733157885866541 0.9055130627573574 0.3873037773702063
+108 -0.1387159089663307 0.7001774912902294 0.7003638366054901
+109 -0.7003805613717944 0.7001268278826707 0.1388868398998138
+110 -0.7002399905549749 0.1385871413765045 0.7003267865022653
+111 -0.5891739597173604 -0.5859267582329895 0.5563846503928759
+112 -0.8419127444975067 -0.3832956880031617 0.3798278226832703
+113 -0.3830319266375962 -0.3798140560026974 0.8420379005840273
+114 -0.3830962287846832 -0.8420361401778793 0.3797583983098432
+115 -0.6724551411042631 -0.3026819813906181 0.675416689766084
+116 -0.3074593270180926 -0.672898715672147 0.6728120755921047
+117 -0.6694819429356987 -0.6694380360672032 0.3219419986716052
+118 -0.8186317970101905 -0.2228947190282516 0.5293044527516347
+119 -0.8186752178400962 -0.5292648531294992 0.2228237624690563
+120 -0.2225458354114695 -0.5292281668310217 0.8187740993566104
+121 -0.5289963636854366 -0.8188492010634111 0.2228267380169126
+122 -0.2227059204974404 -0.818813193627507 0.5291057278541499
+123 -0.5289072831516629 -0.2229228528648696 0.8188788376041078
+124 -0.9399854125748424 -0.2412485225886563 0.241301840040954
+125 -0.2411171591604495 -0.2411369205332241 0.9400615157423891
+126 -0.2411250692806426 -0.9400488545283774 0.2411780745495407
+127 -0.7146247227093602 -0.4320795897393267 0.5501079194131282
+128 -0.4365077211110331 -0.5500730988781458 0.7119554728198711
+129 -0.4355132027224509 -0.7149605088910298 0.5469549199588074
+130 -0.739722819915368 -0.5357169371269953 0.4072069959197624
+131 -0.5538319021633533 -0.4114410233267031 0.7238696011549567
+132 -0.536222691610783 -0.7395443154817047 0.4068654565608939
+133 -0.1731323186330627 -0.3871870186504138 0.9055980745823108
+134 -0.9055122870236548 -0.3872886711296661 0.1733637317090477
+135 -0.9054744348258696 -0.1733958397421412 0.3873627907066191
+136 -0.1731523847291243 -0.9056087016176271 0.387157763615347
+137 -0.3870917535634846 -0.9056091936898463 0.1732973275815335
+138 -0.3870543025771477 -0.1732581944706739 0.9056309552213407
+139 -0.7001111616130116 -0.1388450909573361 0.7004044976522603
+140 -0.1385903208504232 -0.7002963699986529 0.7002698352821806
+141 -0.7001375485780742 -0.700373566173228 0.1388680272517487
+142 0.5773975082211721 0.5772658431569984 0.5773874468883697
+143 0.3797485602057286 0.3830922972137126 0.8420410745751534
+144 0.3832767388182142 0.8419248558493657 0.3798176911490971
+145 0.8420170835457154 0.3795977373384021 0.3832972850096181
+146 0.3026571833356536 0.6724767521347996 0.6754062855619029
+147 0.6726904731290684 0.6752005624957614 0.3026412733956574
+148 0.6752694072280159 0.3024967167989908 0.6726863859444547
+149 0.2229137773738889 0.818629188910303 0.5292974232185897
+150 0.8187775028377696 0.2225862292360681 0.5292085498176807
+151 0.5291382686399343 0.2226582304778837 0.8188020734701312
+152 0.5291833920367963 0.8187257216634471 0.222830106180351
+153 0.8188036229545755 0.5290216888759822 0.2229405899875666
+154 0.2227915010233589 0.5289645632117742 0.8188795661928487
+155 0.2411833793097393 0.2411144071855667 0.940050224040975
+156 0.2413224491124619 0.9399707559051969 0.2412853177616952
+157 0.9400310943183324 0.2410528987544552 0.2413194009455931
+158 0.4313730843637155 0.7136827955596668 0.5518817835865384
+159 0.713827010318361 0.5516947649210976 0.4313743692757338
+160 0.5518003610587108 0.4312517423531107 0.7138195188682946
+161 0.5523084755418044 0.7255270998470831 0.4105676256138265
+162 0.7256174675725395 0.410401811892177 0.5523130339598187
+163 0.4105268835831876 0.552121102724671 0.7256927304941428
+164 0.1734007930103921 0.905482508392202 0.3873376832172581
+165 0.3871717518779475 0.1731157346343897 0.9056097267473995
+166 0.9055956496979217 0.3870715972956999 0.1734130921146891
+167 0.3872736887512665 0.9055241543510425 0.1733250710871884
+168 0.9055618366283053 0.1731245241546386 0.3872798216992269
+169 0.1731812158179551 0.3870480621949327 0.9056500786938431
+170 0.7002488228573803 0.1386915780636993 0.7002972798523552
+171 0.1388740971332977 0.7001122720230394 0.7003976384656098
+172 0.7003153309228675 0.7002045971493689 0.138823936986611
+173 -0.5893879580428182 0.5858474733326092 -0.5562414699741602
+174 -0.8420676034188912 0.3831776001275439 -0.3796036349133443
+175 -0.3832854644825078 0.8419879923855095 -0.3796741868285129
+176 -0.3833451742354813 0.3797875732454184 -0.8419072850272081
+177 -0.6726926174038673 0.3025837760254035 -0.6752241883127346
+178 -0.6696685957970373 0.6693344717392071 -0.3217690837960243
+179 -0.3077262804727168 0.6728336329442314 -0.6727551165482694
+180 -0.818826677556628 0.2227600018553431 -0.5290596905098209
+181 -0.8188213780920877 0.5291322482695965 -0.22260154031294
+182 -0.222917078188717 0.8187693639884328 -0.529084613153564
+183 -0.2229647660528292 0.5291603643361042 -0.8187039435978214
+184 -0.529180413377845 0.8187475575528992 -0.2227631932775632
+185 -0.5291958652372423 0.2228532421373683 -0.818711324033881
+186 -0.2413448069238479 0.2412385734077831 -0.9399770141298913
+187 -0.2413284655822042 0.939999694145296 -0.2411662460613576
+188 -0.9400606467506419 0.2411578154404622 -0.2410993405482855
+189 -0.714827673344605 0.4319866040212881 -0.5499172305445864
+190 -0.4365224164682918 0.7141474013804089 -0.5472126039706944
+191 -0.436005803133462 0.5498864103046268 -0.7124070994686148
+192 -0.7399033033139369 0.5356117749852135 -0.4070173865665636
+193 -0.5364975655684501 0.7393967586510092 -0.406771268016907
+194 -0.5540393011783294 0.4113729089503583 -0.7237495984347924
+195 -0.9056288813092817 0.3871461718451766 -0.1730727337686621
+196 -0.1733450347435898 0.9055759351131357 -0.3871481982061028
+197 -0.9056169924196077 0.1732289551666146 -0.387104111486262
+198 -0.3872713263411691 0.9055614026992059 -0.1731457965186272
+199 -0.173496184263821 0.3872477854449849 -0.905502471718279
+200 -0.3873059041793304 0.1733274642458965 -0.9055101365173267
+201 -0.7003137941471791 0.1387336794161172 -0.7002239751185544
+202 -0.7003005030275156 0.7002562852844972 -0.1386376150025851
+203 -0.138892797652994 0.7002951312474406 -0.7002111438391035
+204 0.5859391712886065 0.5563256584048392 -0.5892173192941191
+205 0.3833480208274531 0.379695987305025 -0.8419472976831952
+206 0.8420645922398214 0.3797061412567955 -0.3830854925216411
+207 0.3798087346788101 0.8419883069517581 -0.3831486133886693
+208 0.3026754046034515 0.6752595066698167 -0.6726159390479917
+209 0.6694647709091803 0.3218490312764669 -0.6694999025551025
+210 0.6728998724979469 0.6727945852345686 -0.3074950670804557
+211 0.5292998471455702 0.2227124424393522 -0.818682457498219
+212 0.2228583430834042 0.8187642833724724 -0.5291148264573806
+213 0.818836191976977 0.5290847461902158 -0.2226646459448115
+214 0.8188754936591693 0.2227548200221398 -0.5289887211177093
+215 0.5291830608152351 0.8187376007865073 -0.2227888180759134
+216 0.2229847307409096 0.5291030287822968 -0.8187355237676126
+217 0.9400876615466238 0.2410968941290492 -0.2410549477979327
+218 0.2413642744151451 0.9400181742343745 -0.2410583387083743
+219 0.2413825517047067 0.2411868212365993 -0.9399806012736452
+220 0.4321236687492747 0.5499831336456151 -0.7146937040565199
+221 0.5500676303804031 0.7119168204212273 -0.4365776580762989
+222 0.7149765298922113 0.5469201323683206 -0.4355306617287044
+223 0.53575238786075 0.4070954925393013 -0.7397596718753998
+224 0.4114335427191056 0.7237704094371225 -0.5539664332168072
+225 0.7395654932385209 0.4068071878816575 -0.5362375482569743
+226 0.1733505144855424 0.905595278989113 -0.3871004918551286
+227 0.1733589218084804 0.3871689197164382 -0.9055626917968785
+228 0.3873602066341191 0.1731943373187928 -0.9055121582797161
+229 0.9056298008796511 0.3871159275578428 -0.1731355639697386
+230 0.9056444523434659 0.1732045460361161 -0.3870507898021157
+231 0.3873220011234146 0.9055331419120227 -0.1731802429646654
+232 0.1388155768430232 0.7002810696448952 -0.7002404718826034
+233 0.7004185930032947 0.138734782254702 -0.7001189769299865
+234 0.7003427867535132 0.7002193581288997 -0.1386105320334892
+235 -0.5772695775917365 -0.5774986739195732 -0.5772825273712237
+236 -0.84196313047808 -0.3798992890913108 -0.3831141478399601
+237 -0.3797028243146233 -0.3833437635931001 -0.8419485314296209
+238 -0.3830905136777825 -0.8420998695293594 -0.3796175286407161
+239 -0.6753243551337411 -0.3027731950622603 -0.6725068152847703
+240 -0.3024772074324191 -0.6727371886460419 -0.6752275372697392
+241 -0.6725743222424133 -0.6753769447274838 -0.3025058133900864
+242 -0.5292174927727776 -0.223002704946997 -0.8186583788936386
+243 -0.2226833000638701 -0.8188538710222593 -0.5290468905897465
+244 -0.8187203356570324 -0.5292761830240482 -0.2226365467199614
+245 -0.5290517759521769 -0.8188565804062726 -0.222661588303518
+246 -0.8188227158507502 -0.2229462044382169 -0.5289850478946116
+247 -0.2227325903706494 -0.529216153645598 -0.818734563716809
+248 -0.9399984230250011 -0.2413072965836146 -0.2411923648088554
+249 -0.2411511507515107 -0.2413837538184203 -0.939989370907213
+250 -0.2410801920780593 -0.9400774632642785 -0.2411117094251689
+251 -0.5517781426680181 -0.4314677981220309 -0.7137061349796773
+252 -0.4312103344164486 -0.7139098887588355 -0.5517157947663075
+253 -0.713714500400269 -0.5519227237848676 -0.4312689508095874
+254 -0.5521677488223272 -0.7257225329274983 -0.4104123781099352
+255 -0.4104405569192795 -0.5523732789308037 -0.7255496127965321
+256 -0.7256084869996465 -0.4106472382707756 -0.5521423580603867
+257 -0.3872356151275075 -0.1734669114635066 -0.9055152180479035
+258 -0.9055506771866307 -0.3872938960312142 -0.1731514081314203
+259 -0.3870718820895837 -0.9056522451436749 -0.1731075330771961
+260 -0.1731521009109305 -0.9056319794730243 -0.387098855501065
+261 -0.1731388911786651 -0.3873154164098633 -0.9055438671174173
+262 -0.9055868324173046 -0.1733653089407871 -0.3871136252027702
+263 -0.1386071422526729 -0.7003584662261064 -0.7002044007823989
+264 -0.7001839358065174 -0.7003668919256927 -0.1386677003494544
+265 -0.7003037139973485 -0.1389907216206266 -0.7001830726996985
+266 0.5562362296434989 -0.5892873078556966 0.5859536739929354
+267 0.379631482535034 -0.8420001196937259 0.3832982928577649
+268 0.8419507438249342 -0.3832004904200074 0.3798425163456342
+269 0.3795997889605593 -0.383211584909677 0.8420527782719962
+270 0.6752432432178479 -0.6726190830865717 0.3027047098667921
+271 0.3217475856345757 -0.6695551673930269 0.6694582629265332
+272 0.6727481513444266 -0.3076078244196465 0.6728947610714556
+273 0.2226247189467654 -0.8187264055377613 0.5292717698247944
+274 0.5290976173389155 -0.8187546494143835 0.2229290562471527
+275 0.8187129126998818 -0.2227948663497247 0.529223427630523
+276 0.5290281209351817 -0.2228626208160659 0.8188172112032769
+277 0.8187477273741733 -0.5291154775816621 0.222916760083724
+278 0.2226542480795667 -0.5290616966468142 0.818852166628244
+279 0.2409822723092781 -0.2412752005135622 0.940060624027513
+280 0.2411660665082168 -0.940027817059061 0.241219060281517
+281 0.9399729757239932 -0.2412317021621468 0.2413671110554286
+282 0.5499299045673061 -0.7147438131086641 0.432109235416839
+283 0.711854847669069 -0.4366704490006968 0.5500741417728132
+284 0.5468451287458627 -0.4356145731504423 0.7149825268868089
+285 0.4070083452587269 -0.7398160510180921 0.5357390992397658
+286 0.4067327418520041 -0.536318187205414 0.739548386904055
+287 0.7237478007374487 -0.5539922097701387 0.4114386875478945
+288 0.1731283969129102 -0.9055730119909469 0.3872519582024065
+289 0.3870324919716934 -0.1733375755341491 0.905624870168757
+290 0.9055697866426881 -0.3871835396531574 0.1732982090449555
+291 0.9055351630461629 -0.1731964558613765 0.3873100293853463
+292 0.3871822963766067 -0.9055633174158891 0.1733347851191408
+293 0.1730639008743107 -0.3871909797468753 0.9056096742926176
+294 0.7002101296688213 -0.7003004695285231 0.1388707116337059
+295 0.138619816648913 -0.7001949480301813 0.7003653614764782
+296 0.7001878684342804 -0.1387563001500807 0.7003454592689502
+297 0.5859486929982002 -0.5563009588034338 -0.5892311706178661
+298 0.3798761156615365 -0.8419770211980179 -0.3831065999020506
+299 0.8420704125389167 -0.3796786979607712 -0.383094644398667
+300 0.3833350412367143 -0.3797808232280372 -0.8419173192605161
+301 0.3027033258366951 -0.6753351282855078 -0.6725274492042674
+302 0.6694605502798633 -0.3218334946857595 -0.6695115915776017
+303 0.6728906055049545 -0.6727865777354171 -0.3075328522558483
+304 0.2229376938120609 -0.5292234361610151 -0.8186722443422245
+305 0.8188224301906811 -0.5290888951853807 -0.2226989729452329
+306 0.5292598840013308 -0.2228349609840075 -0.8186784285528107
+307 0.8188781000679831 -0.2227000244022184 -0.5290023468392038
+308 0.5292315452324026 -0.8187424707032278 -0.2226612607913472
+309 0.2229354047206933 -0.8188187995996506 -0.5289956612149129
+310 0.2413849643846921 -0.939997589368462 -0.2411178850030153
+311 0.2413899272889897 -0.2412262733201097 -0.9399685098870656
+312 0.9400661598943587 -0.2411616179419472 -0.2410743500634208
+313 0.7142315096471628 -0.5472437518056613 -0.4363449729994669
+314 0.4321029310497181 -0.5500433569490331 -0.7146603316993312
+315 0.5499571522198194 -0.7124611202180825 -0.4358282623300991
+316 0.5357429952408004 -0.4071444508634915 -0.739738301393453
+317 0.7395001008498453 -0.4068052415678343 -0.5363309476189138
+318 0.4114428622315243 -0.7238556309819232 -0.5538481830932669
+319 0.1734858993751746 -0.3872646829086703 -0.9054991491993061
+320 0.9056128840955302 -0.3871494556498503 -0.1731399981205132
+321 0.9056529521501742 -0.1731707971395433 -0.3870414186073367
+322 0.1733841403045848 -0.905602500481075 -0.3870685355629761
+323 0.3873226864144086 -0.9055400783802825 -0.1731424385567425
+324 0.3873657605401575 -0.1733389076302821 -0.9054840657624625
+325 0.7004019174674438 -0.1386973009763194 -0.7001430826695609
+326 0.1388894710103084 -0.7003205860102653 -0.7001862891258258
+327 0.7003235576454836 -0.7002233653286996 -0.1386874614029438
+$ENDNOD
+$ELM
+732
+1 1 1 1 2 2 8
+2 1 1 1 2 8 9
+3 1 1 1 2 9 10
+4 1 1 1 2 10 11
+5 1 1 1 2 11 12
+6 1 1 1 2 12 13
+7 1 1 1 2 13 3
+8 1 2 2 2 3 14
+9 1 2 2 2 14 15
+10 1 2 2 2 15 16
+11 1 2 2 2 16 17
+12 1 2 2 2 17 18
+13 1 2 2 2 18 19
+14 1 2 2 2 19 4
+15 1 3 3 2 4 20
+16 1 3 3 2 20 21
+17 1 3 3 2 21 22
+18 1 3 3 2 22 23
+19 1 3 3 2 23 24
+20 1 3 3 2 24 25
+21 1 3 3 2 25 5
+22 1 4 4 2 5 26
+23 1 4 4 2 26 27
+24 1 4 4 2 27 28
+25 1 4 4 2 28 29
+26 1 4 4 2 29 30
+27 1 4 4 2 30 31
+28 1 4 4 2 31 2
+29 1 5 5 2 3 32
+30 1 5 5 2 32 33
+31 1 5 5 2 33 34
+32 1 5 5 2 34 35
+33 1 5 5 2 35 36
+34 1 5 5 2 36 37
+35 1 5 5 2 37 6
+36 1 6 6 2 6 38
+37 1 6 6 2 38 39
+38 1 6 6 2 39 40
+39 1 6 6 2 40 41
+40 1 6 6 2 41 42
+41 1 6 6 2 42 43
+42 1 6 6 2 43 5
+43 1 7 7 2 5 44
+44 1 7 7 2 44 45
+45 1 7 7 2 45 46
+46 1 7 7 2 46 47
+47 1 7 7 2 47 48
+48 1 7 7 2 48 49
+49 1 7 7 2 49 7
+50 1 8 8 2 7 50
+51 1 8 8 2 50 51
+52 1 8 8 2 51 52
+53 1 8 8 2 52 53
+54 1 8 8 2 53 54
+55 1 8 8 2 54 55
+56 1 8 8 2 55 3
+57 1 9 9 2 2 56
+58 1 9 9 2 56 57
+59 1 9 9 2 57 58
+60 1 9 9 2 58 59
+61 1 9 9 2 59 60
+62 1 9 9 2 60 61
+63 1 9 9 2 61 7
+64 1 10 10 2 7 62
+65 1 10 10 2 62 63
+66 1 10 10 2 63 64
+67 1 10 10 2 64 65
+68 1 10 10 2 65 66
+69 1 10 10 2 66 67
+70 1 10 10 2 67 4
+71 1 11 11 2 4 68
+72 1 11 11 2 68 69
+73 1 11 11 2 69 70
+74 1 11 11 2 70 71
+75 1 11 11 2 71 72
+76 1 11 11 2 72 73
+77 1 11 11 2 73 6
+78 1 12 12 2 6 74
+79 1 12 12 2 74 75
+80 1 12 12 2 75 76
+81 1 12 12 2 76 77
+82 1 12 12 2 77 78
+83 1 12 12 2 78 79
+84 1 12 12 2 79 2
+85 2 14 14 3 80 85 100
+86 2 14 14 3 85 80 99
+87 2 14 14 3 80 97 101
+88 2 14 14 3 97 84 101
+89 2 14 14 3 66 65 88
+90 2 14 14 3 53 54 91
+91 2 14 14 3 64 63 90
+92 2 14 14 3 17 18 92
+93 2 14 14 3 15 16 87
+94 2 14 14 3 51 52 89
+95 2 14 14 3 55 3 93
+96 2 14 14 3 3 14 93
+97 2 14 14 3 62 7 95
+98 2 14 14 3 7 50 95
+99 2 14 14 3 4 67 94
+100 2 14 14 3 19 4 94
+101 2 14 14 3 96 86 98
+102 2 14 14 3 80 96 98
+103 2 14 14 3 88 86 96
+104 2 14 14 3 81 88 96
+105 2 14 14 3 87 84 97
+106 2 14 14 3 82 87 97
+107 2 14 14 3 86 90 98
+108 2 14 14 3 90 83 98
+109 2 14 14 3 96 80 101
+110 2 14 14 3 97 80 100
+111 2 14 14 3 80 98 99
+112 2 14 14 3 53 91 108
+113 2 14 14 3 88 65 110
+114 2 14 14 3 64 90 110
+115 2 14 14 3 17 92 109
+116 2 14 14 3 89 52 108
+117 2 14 14 3 87 16 109
+118 2 14 14 3 91 85 108
+119 2 14 14 3 86 88 110
+120 2 14 14 3 90 86 110
+121 2 14 14 3 85 89 108
+122 2 14 14 3 84 87 109
+123 2 14 14 3 92 84 109
+124 2 14 14 3 88 81 104
+125 2 14 14 3 81 92 105
+126 2 14 14 3 87 82 102
+127 2 14 14 3 82 91 107
+128 2 14 14 3 89 83 103
+129 2 14 14 3 83 90 106
+130 2 14 14 3 94 81 105
+131 2 14 14 3 81 94 104
+132 2 14 14 3 93 82 107
+133 2 14 14 3 82 93 102
+134 2 14 14 3 95 83 106
+135 2 14 14 3 83 95 103
+136 2 14 14 3 52 53 108
+137 2 14 14 3 16 17 109
+138 2 14 14 3 65 64 110
+139 2 14 14 3 83 89 99
+140 2 14 14 3 89 85 99
+141 2 14 14 3 85 91 100
+142 2 14 14 3 91 82 100
+143 2 14 14 3 84 92 101
+144 2 14 14 3 92 81 101
+145 2 14 14 3 14 15 102
+146 2 14 14 3 18 19 105
+147 2 14 14 3 50 51 103
+148 2 14 14 3 63 62 106
+149 2 14 14 3 54 55 107
+150 2 14 14 3 67 66 104
+151 2 14 14 3 93 14 102
+152 2 14 14 3 95 50 103
+153 2 14 14 3 55 93 107
+154 2 14 14 3 62 95 106
+155 2 14 14 3 19 94 105
+156 2 14 14 3 94 67 104
+157 2 14 14 3 15 87 102
+158 2 14 14 3 66 88 104
+159 2 14 14 3 51 89 103
+160 2 14 14 3 90 63 106
+161 2 14 14 3 92 18 105
+162 2 14 14 3 91 54 107
+163 2 14 14 3 98 83 99
+164 2 14 14 3 82 97 100
+165 2 14 14 3 81 96 101
+166 2 16 16 3 117 111 130
+167 2 16 16 3 111 117 132
+168 2 16 16 3 127 111 131
+169 2 16 16 3 115 127 131
+170 2 16 16 3 21 22 119
+171 2 16 16 3 45 46 122
+172 2 16 16 3 23 24 121
+173 2 16 16 3 63 64 123
+174 2 16 16 3 65 66 118
+175 2 16 16 3 47 48 120
+176 2 16 16 3 7 62 125
+177 2 16 16 3 49 7 125
+178 2 16 16 3 4 20 124
+179 2 16 16 3 67 4 124
+180 2 16 16 3 25 5 126
+181 2 16 16 3 5 44 126
+182 2 16 16 3 116 128 129
+183 2 16 16 3 128 111 129
+184 2 16 16 3 116 120 128
+185 2 16 16 3 120 113 128
+186 2 16 16 3 115 118 127
+187 2 16 16 3 118 112 127
+188 2 16 16 3 122 116 129
+189 2 16 16 3 114 122 129
+190 2 16 16 3 111 128 131
+191 2 16 16 3 111 127 130
+192 2 16 16 3 129 111 132
+193 2 16 16 3 122 46 140
+194 2 16 16 3 123 64 139
+195 2 16 16 3 23 121 141
+196 2 16 16 3 119 22 141
+197 2 16 16 3 65 118 139
+198 2 16 16 3 47 120 140
+199 2 16 16 3 118 115 139
+200 2 16 16 3 116 122 140
+201 2 16 16 3 115 123 139
+202 2 16 16 3 117 119 141
+203 2 16 16 3 120 116 140
+204 2 16 16 3 121 117 141
+205 2 16 16 3 112 118 135
+206 2 16 16 3 119 112 134
+207 2 16 16 3 113 120 133
+208 2 16 16 3 123 113 138
+209 2 16 16 3 114 121 137
+210 2 16 16 3 122 114 136
+211 2 16 16 3 113 125 138
+212 2 16 16 3 112 124 134
+213 2 16 16 3 124 112 135
+214 2 16 16 3 125 113 133
+215 2 16 16 3 114 126 136
+216 2 16 16 3 126 114 137
+217 2 16 16 3 64 65 139
+218 2 16 16 3 46 47 140
+219 2 16 16 3 22 23 141
+220 2 16 16 3 112 119 130
+221 2 16 16 3 119 117 130
+222 2 16 16 3 121 114 132
+223 2 16 16 3 117 121 132
+224 2 16 16 3 113 123 131
+225 2 16 16 3 123 115 131
+226 2 16 16 3 24 25 137
+227 2 16 16 3 44 45 136
+228 2 16 16 3 66 67 135
+229 2 16 16 3 62 63 138
+230 2 16 16 3 48 49 133
+231 2 16 16 3 20 21 134
+232 2 16 16 3 67 124 135
+233 2 16 16 3 25 126 137
+234 2 16 16 3 124 20 134
+235 2 16 16 3 49 125 133
+236 2 16 16 3 125 62 138
+237 2 16 16 3 126 44 136
+238 2 16 16 3 118 66 135
+239 2 16 16 3 120 48 133
+240 2 16 16 3 21 119 134
+241 2 16 16 3 121 24 137
+242 2 16 16 3 45 122 136
+243 2 16 16 3 63 123 138
+244 2 16 16 3 127 112 130
+245 2 16 16 3 128 113 131
+246 2 16 16 3 114 129 132
+247 2 18 18 3 158 163 142
+248 2 18 18 3 159 161 142
+249 2 18 18 3 160 162 142
+250 2 18 18 3 146 163 158
+251 2 18 18 3 147 161 159
+252 2 18 18 3 148 162 160
+253 2 18 18 3 10 153 9
+254 2 18 18 3 12 152 11
+255 2 18 18 3 53 149 54
+256 2 18 18 3 51 154 52
+257 2 18 18 3 57 150 58
+258 2 18 18 3 59 151 60
+259 2 18 18 3 61 155 7
+260 2 18 18 3 7 155 50
+261 2 18 18 3 8 157 2
+262 2 18 18 3 3 156 13
+263 2 18 18 3 2 157 56
+264 2 18 18 3 55 156 3
+265 2 18 18 3 148 160 151
+266 2 18 18 3 151 160 143
+267 2 18 18 3 146 158 149
+268 2 18 18 3 149 158 144
+269 2 18 18 3 153 159 145
+270 2 18 18 3 147 159 153
+271 2 18 18 3 142 163 160
+272 2 18 18 3 142 161 158
+273 2 18 18 3 142 162 159
+274 2 18 18 3 10 172 153
+275 2 18 18 3 152 172 11
+276 2 18 18 3 154 171 52
+277 2 18 18 3 53 171 149
+278 2 18 18 3 59 170 151
+279 2 18 18 3 150 170 58
+280 2 18 18 3 153 172 147
+281 2 18 18 3 149 171 146
+282 2 18 18 3 147 172 152
+283 2 18 18 3 151 170 148
+284 2 18 18 3 148 170 150
+285 2 18 18 3 146 171 154
+286 2 18 18 3 143 165 151
+287 2 18 18 3 154 169 143
+288 2 18 18 3 144 164 149
+289 2 18 18 3 152 167 144
+290 2 18 18 3 150 168 145
+291 2 18 18 3 145 166 153
+292 2 18 18 3 143 169 155
+293 2 18 18 3 155 165 143
+294 2 18 18 3 144 167 156
+295 2 18 18 3 156 164 144
+296 2 18 18 3 157 166 145
+297 2 18 18 3 145 168 157
+298 2 18 18 3 58 170 59
+299 2 18 18 3 11 172 10
+300 2 18 18 3 52 171 53
+301 2 18 18 3 150 162 148
+302 2 18 18 3 145 162 150
+303 2 18 18 3 144 161 152
+304 2 18 18 3 152 161 147
+305 2 18 18 3 143 163 154
+306 2 18 18 3 154 163 146
+307 2 18 18 3 50 169 51
+308 2 18 18 3 13 167 12
+309 2 18 18 3 60 165 61
+310 2 18 18 3 54 164 55
+311 2 18 18 3 9 166 8
+312 2 18 18 3 56 168 57
+313 2 18 18 3 61 165 155
+314 2 18 18 3 156 167 13
+315 2 18 18 3 155 169 50
+316 2 18 18 3 55 164 156
+317 2 18 18 3 157 168 56
+318 2 18 18 3 8 166 157
+319 2 18 18 3 149 164 54
+320 2 18 18 3 151 165 60
+321 2 18 18 3 57 168 150
+322 2 18 18 3 153 166 9
+323 2 18 18 3 12 167 152
+324 2 18 18 3 51 169 154
+325 2 18 18 3 158 161 144
+326 2 18 18 3 159 162 145
+327 2 18 18 3 160 163 143
+328 2 20 20 3 178 173 192
+329 2 20 20 3 173 178 193
+330 2 20 20 3 189 173 194
+331 2 20 20 3 177 189 194
+332 2 20 20 3 35 36 183
+333 2 20 20 3 70 69 180
+334 2 20 20 3 18 17 181
+335 2 20 20 3 72 71 185
+336 2 20 20 3 33 34 182
+337 2 20 20 3 16 15 184
+338 2 20 20 3 37 6 186
+339 2 20 20 3 6 73 186
+340 2 20 20 3 3 32 187
+341 2 20 20 3 4 19 188
+342 2 20 20 3 68 4 188
+343 2 20 20 3 14 3 187
+344 2 20 20 3 173 190 191
+345 2 20 20 3 190 179 191
+346 2 20 20 3 177 180 189
+347 2 20 20 3 180 174 189
+348 2 20 20 3 182 179 190
+349 2 20 20 3 175 182 190
+350 2 20 20 3 183 176 191
+351 2 20 20 3 179 183 191
+352 2 20 20 3 173 189 192
+353 2 20 20 3 190 173 193
+354 2 20 20 3 173 191 194
+355 2 20 20 3 185 71 201
+356 2 20 20 3 16 184 202
+357 2 20 20 3 35 183 203
+358 2 20 20 3 70 180 201
+359 2 20 20 3 182 34 203
+360 2 20 20 3 181 17 202
+361 2 20 20 3 180 177 201
+362 2 20 20 3 178 181 202
+363 2 20 20 3 183 179 203
+364 2 20 20 3 184 178 202
+365 2 20 20 3 179 182 203
+366 2 20 20 3 177 185 201
+367 2 20 20 3 174 180 197
+368 2 20 20 3 181 174 195
+369 2 20 20 3 182 175 196
+370 2 20 20 3 175 184 198
+371 2 20 20 3 176 183 199
+372 2 20 20 3 185 176 200
+373 2 20 20 3 176 186 200
+374 2 20 20 3 186 176 199
+375 2 20 20 3 187 175 198
+376 2 20 20 3 174 188 195
+377 2 20 20 3 175 187 196
+378 2 20 20 3 188 174 197
+379 2 20 20 3 71 70 201
+380 2 20 20 3 17 16 202
+381 2 20 20 3 34 35 203
+382 2 20 20 3 181 178 192
+383 2 20 20 3 174 181 192
+384 2 20 20 3 178 184 193
+385 2 20 20 3 184 175 193
+386 2 20 20 3 185 177 194
+387 2 20 20 3 176 185 194
+388 2 20 20 3 32 33 196
+389 2 20 20 3 73 72 200
+390 2 20 20 3 15 14 198
+391 2 20 20 3 36 37 199
+392 2 20 20 3 69 68 197
+393 2 20 20 3 19 18 195
+394 2 20 20 3 37 186 199
+395 2 20 20 3 186 73 200
+396 2 20 20 3 187 32 196
+397 2 20 20 3 68 188 197
+398 2 20 20 3 188 19 195
+399 2 20 20 3 14 187 198
+400 2 20 20 3 180 69 197
+401 2 20 20 3 18 181 195
+402 2 20 20 3 33 182 196
+403 2 20 20 3 183 36 199
+404 2 20 20 3 184 15 198
+405 2 20 20 3 72 185 200
+406 2 20 20 3 189 174 192
+407 2 20 20 3 175 190 193
+408 2 20 20 3 191 176 194
+409 2 22 22 3 209 223 204
+410 2 22 22 3 204 225 209
+411 2 22 22 3 220 224 204
+412 2 22 22 3 208 224 220
+413 2 22 22 3 11 215 12
+414 2 22 22 3 75 211 76
+415 2 22 22 3 9 213 10
+416 2 22 22 3 35 216 36
+417 2 22 22 3 77 214 78
+418 2 22 22 3 33 212 34
+419 2 22 22 3 2 217 8
+420 2 22 22 3 6 219 74
+421 2 22 22 3 13 218 3
+422 2 22 22 3 79 217 2
+423 2 22 22 3 3 218 32
+424 2 22 22 3 37 219 6
+425 2 22 22 3 221 222 204
+426 2 22 22 3 210 222 221
+427 2 22 22 3 206 222 213
+428 2 22 22 3 213 222 210
+429 2 22 22 3 208 220 216
+430 2 22 22 3 216 220 205
+431 2 22 22 3 210 221 215
+432 2 22 22 3 215 221 207
+433 2 22 22 3 204 223 220
+434 2 22 22 3 222 225 204
+435 2 22 22 3 204 224 221
+436 2 22 22 3 11 234 215
+437 2 22 22 3 35 232 216
+438 2 22 22 3 213 234 10
+439 2 22 22 3 211 233 76
+440 2 22 22 3 77 233 214
+441 2 22 22 3 212 232 34
+442 2 22 22 3 216 232 208
+443 2 22 22 3 215 234 210
+444 2 22 22 3 209 233 211
+445 2 22 22 3 210 234 213
+446 2 22 22 3 208 232 212
+447 2 22 22 3 214 233 209
+448 2 22 22 3 211 228 205
+449 2 22 22 3 205 227 216
+450 2 22 22 3 213 229 206
+451 2 22 22 3 212 226 207
+452 2 22 22 3 206 230 214
+453 2 22 22 3 207 231 215
+454 2 22 22 3 217 230 206
+455 2 22 22 3 206 229 217
+456 2 22 22 3 219 227 205
+457 2 22 22 3 218 231 207
+458 2 22 22 3 205 228 219
+459 2 22 22 3 207 226 218
+460 2 22 22 3 34 232 35
+461 2 22 22 3 76 233 77
+462 2 22 22 3 10 234 11
+463 2 22 22 3 211 223 209
+464 2 22 22 3 205 223 211
+465 2 22 22 3 212 224 208
+466 2 22 22 3 207 224 212
+467 2 22 22 3 214 225 206
+468 2 22 22 3 209 225 214
+469 2 22 22 3 36 227 37
+470 2 22 22 3 8 229 9
+471 2 22 22 3 78 230 79
+472 2 22 22 3 74 228 75
+473 2 22 22 3 32 226 33
+474 2 22 22 3 12 231 13
+475 2 22 22 3 79 230 217
+476 2 22 22 3 217 229 8
+477 2 22 22 3 13 231 218
+478 2 22 22 3 219 228 74
+479 2 22 22 3 37 227 219
+480 2 22 22 3 218 226 32
+481 2 22 22 3 75 228 211
+482 2 22 22 3 33 226 212
+483 2 22 22 3 9 229 213
+484 2 22 22 3 216 227 36
+485 2 22 22 3 214 230 78
+486 2 22 22 3 215 231 12
+487 2 22 22 3 220 223 205
+488 2 22 22 3 221 224 207
+489 2 22 22 3 206 225 222
+490 2 24 24 3 251 235 256
+491 2 24 24 3 252 235 255
+492 2 24 24 3 253 235 254
+493 2 24 24 3 239 251 256
+494 2 24 24 3 240 252 255
+495 2 24 24 3 241 253 254
+496 2 24 24 3 69 70 246
+497 2 24 24 3 41 42 243
+498 2 24 24 3 39 40 247
+499 2 24 24 3 71 72 242
+500 2 24 24 3 22 21 244
+501 2 24 24 3 24 23 245
+502 2 24 24 3 20 4 248
+503 2 24 24 3 4 68 248
+504 2 24 24 3 43 5 250
+505 2 24 24 3 5 25 250
+506 2 24 24 3 73 6 249
+507 2 24 24 3 6 38 249
+508 2 24 24 3 241 244 253
+509 2 24 24 3 244 236 253
+510 2 24 24 3 243 238 252
+511 2 24 24 3 240 243 252
+512 2 24 24 3 242 237 251
+513 2 24 24 3 239 242 251
+514 2 24 24 3 235 253 256
+515 2 24 24 3 235 251 255
+516 2 24 24 3 235 252 254
+517 2 24 24 3 246 70 265
+518 2 24 24 3 247 40 263
+519 2 24 24 3 41 243 263
+520 2 24 24 3 245 23 264
+521 2 24 24 3 71 242 265
+522 2 24 24 3 22 244 264
+523 2 24 24 3 243 240 263
+524 2 24 24 3 240 247 263
+525 2 24 24 3 239 246 265
+526 2 24 24 3 241 245 264
+527 2 24 24 3 244 241 264
+528 2 24 24 3 242 239 265
+529 2 24 24 3 236 244 258
+530 2 24 24 3 237 242 257
+531 2 24 24 3 246 236 262
+532 2 24 24 3 238 243 260
+533 2 24 24 3 247 237 261
+534 2 24 24 3 245 238 259
+535 2 24 24 3 236 248 262
+536 2 24 24 3 248 236 258
+537 2 24 24 3 237 249 261
+538 2 24 24 3 249 237 257
+539 2 24 24 3 238 250 259
+540 2 24 24 3 250 238 260
+541 2 24 24 3 23 22 264
+542 2 24 24 3 40 41 263
+543 2 24 24 3 70 71 265
+544 2 24 24 3 245 241 254
+545 2 24 24 3 238 245 254
+546 2 24 24 3 237 247 255
+547 2 24 24 3 247 240 255
+548 2 24 24 3 246 239 256
+549 2 24 24 3 236 246 256
+550 2 24 24 3 72 73 257
+551 2 24 24 3 38 39 261
+552 2 24 24 3 42 43 260
+553 2 24 24 3 21 20 258
+554 2 24 24 3 68 69 262
+555 2 24 24 3 25 24 259
+556 2 24 24 3 73 249 257
+557 2 24 24 3 248 68 262
+558 2 24 24 3 249 38 261
+559 2 24 24 3 20 248 258
+560 2 24 24 3 43 250 260
+561 2 24 24 3 250 25 259
+562 2 24 24 3 242 72 257
+563 2 24 24 3 243 42 260
+564 2 24 24 3 244 21 258
+565 2 24 24 3 24 245 259
+566 2 24 24 3 39 247 261
+567 2 24 24 3 69 246 262
+568 2 24 24 3 252 238 254
+569 2 24 24 3 251 237 255
+570 2 24 24 3 253 236 256
+571 2 26 26 3 271 285 266
+572 2 26 26 3 266 286 271
+573 2 26 26 3 282 287 266
+574 2 26 26 3 270 287 282
+575 2 26 26 3 60 276 59
+576 2 26 26 3 47 278 48
+577 2 26 26 3 45 273 46
+578 2 26 26 3 58 275 57
+579 2 26 26 3 30 277 29
+580 2 26 26 3 28 274 27
+581 2 26 26 3 26 280 5
+582 2 26 26 3 5 280 44
+583 2 26 26 3 2 281 31
+584 2 26 26 3 56 281 2
+585 2 26 26 3 7 279 61
+586 2 26 26 3 49 279 7
+587 2 26 26 3 283 284 266
+588 2 26 26 3 272 284 283
+589 2 26 26 3 275 283 268
+590 2 26 26 3 272 283 275
+591 2 26 26 3 270 282 274
+592 2 26 26 3 274 282 267
+593 2 26 26 3 276 284 272
+594 2 26 26 3 269 284 276
+595 2 26 26 3 266 287 283
+596 2 26 26 3 266 285 282
+597 2 26 26 3 284 286 266
+598 2 26 26 3 277 294 29
+599 2 26 26 3 276 296 59
+600 2 26 26 3 47 295 278
+601 2 26 26 3 58 296 275
+602 2 26 26 3 273 295 46
+603 2 26 26 3 28 294 274
+604 2 26 26 3 270 294 277
+605 2 26 26 3 274 294 270
+606 2 26 26 3 271 295 273
+607 2 26 26 3 272 296 276
+608 2 26 26 3 275 296 272
+609 2 26 26 3 278 295 271
+610 2 26 26 3 273 288 267
+611 2 26 26 3 267 292 274
+612 2 26 26 3 268 291 275
+613 2 26 26 3 277 290 268
+614 2 26 26 3 276 289 269
+615 2 26 26 3 269 293 278
+616 2 26 26 3 268 290 281
+617 2 26 26 3 281 291 268
+618 2 26 26 3 280 292 267
+619 2 26 26 3 267 288 280
+620 2 26 26 3 279 293 269
+621 2 26 26 3 269 289 279
+622 2 26 26 3 29 294 28
+623 2 26 26 3 46 295 47
+624 2 26 26 3 59 296 58
+625 2 26 26 3 267 285 273
+626 2 26 26 3 273 285 271
+627 2 26 26 3 278 286 269
+628 2 26 26 3 271 286 278
+629 2 26 26 3 277 287 270
+630 2 26 26 3 268 287 277
+631 2 26 26 3 57 291 56
+632 2 26 26 3 44 288 45
+633 2 26 26 3 27 292 26
+634 2 26 26 3 61 289 60
+635 2 26 26 3 48 293 49
+636 2 26 26 3 31 290 30
+637 2 26 26 3 26 292 280
+638 2 26 26 3 280 288 44
+639 2 26 26 3 56 291 281
+640 2 26 26 3 279 289 61
+641 2 26 26 3 49 293 279
+642 2 26 26 3 281 290 31
+643 2 26 26 3 45 288 273
+644 2 26 26 3 274 292 27
+645 2 26 26 3 60 289 276
+646 2 26 26 3 275 291 57
+647 2 26 26 3 30 290 277
+648 2 26 26 3 278 293 48
+649 2 26 26 3 282 285 267
+650 2 26 26 3 283 287 268
+651 2 26 26 3 269 286 284
+652 2 28 28 3 297 302 317
+653 2 28 28 3 302 297 316
+654 2 28 28 3 314 297 318
+655 2 28 28 3 301 314 318
+656 2 28 28 3 42 41 309
+657 2 28 28 3 75 76 306
+658 2 28 28 3 40 39 304
+659 2 28 28 3 30 29 305
+660 2 28 28 3 28 27 308
+661 2 28 28 3 77 78 307
+662 2 28 28 3 38 6 311
+663 2 28 28 3 6 74 311
+664 2 28 28 3 5 43 310
+665 2 28 28 3 2 31 312
+666 2 28 28 3 26 5 310
+667 2 28 28 3 79 2 312
+668 2 28 28 3 297 313 315
+669 2 28 28 3 313 303 315
+670 2 28 28 3 303 308 315
+671 2 28 28 3 308 298 315
+672 2 28 28 3 299 305 313
+673 2 28 28 3 305 303 313
+674 2 28 28 3 304 300 314
+675 2 28 28 3 301 304 314
+676 2 28 28 3 297 315 318
+677 2 28 28 3 313 297 317
+678 2 28 28 3 297 314 316
+679 2 28 28 3 309 41 326
+680 2 28 28 3 306 76 325
+681 2 28 28 3 305 29 327
+682 2 28 28 3 77 307 325
+683 2 28 28 3 40 304 326
+684 2 28 28 3 28 308 327
+685 2 28 28 3 302 306 325
+686 2 28 28 3 301 309 326
+687 2 28 28 3 303 305 327
+688 2 28 28 3 304 301 326
+689 2 28 28 3 307 302 325
+690 2 28 28 3 308 303 327
+691 2 28 28 3 305 299 320
+692 2 28 28 3 299 307 321
+693 2 28 28 3 298 308 323
+694 2 28 28 3 309 298 322
+695 2 28 28 3 300 304 319
+696 2 28 28 3 306 300 324
+697 2 28 28 3 298 310 322
+698 2 28 28 3 310 298 323
+699 2 28 28 3 312 299 321
+700 2 28 28 3 299 312 320
+701 2 28 28 3 300 311 324
+702 2 28 28 3 311 300 319
+703 2 28 28 3 76 77 325
+704 2 28 28 3 29 28 327
+705 2 28 28 3 41 40 326
+706 2 28 28 3 306 302 316
+707 2 28 28 3 300 306 316
+708 2 28 28 3 302 307 317
+709 2 28 28 3 307 299 317
+710 2 28 28 3 298 309 318
+711 2 28 28 3 309 301 318
+712 2 28 28 3 39 38 319
+713 2 28 28 3 74 75 324
+714 2 28 28 3 27 26 323
+715 2 28 28 3 31 30 320
+716 2 28 28 3 78 79 321
+717 2 28 28 3 43 42 322
+718 2 28 28 3 38 311 319
+719 2 28 28 3 311 74 324
+720 2 28 28 3 26 310 323
+721 2 28 28 3 312 31 320
+722 2 28 28 3 79 312 321
+723 2 28 28 3 310 43 322
+724 2 28 28 3 304 39 319
+725 2 28 28 3 30 305 320
+726 2 28 28 3 307 78 321
+727 2 28 28 3 75 306 324
+728 2 28 28 3 308 27 323
+729 2 28 28 3 42 309 322
+730 2 28 28 3 314 300 316
+731 2 28 28 3 299 313 317
+732 2 28 28 3 315 298 318
+$ENDELM
diff --git a/demos/sphere-stl.stl b/demos/sphere-surf.stl
similarity index 100%
rename from demos/sphere-stl.stl
rename to demos/sphere-surf.stl
diff --git a/doc/VERSIONS b/doc/VERSIONS
index 90567f30e0b1eb075e76bd4c09c41171c4494e14..8dfe7e737b0ed4c1cc2069fc0d7c2a0c9ef4a4c8 100644
--- a/doc/VERSIONS
+++ b/doc/VERSIONS
@@ -1,4 +1,4 @@
-$Id: VERSIONS,v 1.334 2005-06-09 22:19:02 geuzaine Exp $
+$Id: VERSIONS,v 1.335 2005-06-10 20:59:20 geuzaine Exp $
 
 New since 1.60: added support for second order (curved) elements in
 post-processor; new version (1.4) of post-processing file formats; new
@@ -8,8 +8,8 @@ the parser; changed View.ArrowLocation into View.GlyphLocation;
 optimized memory usage when loading many (>1000) views; optimzed
 loading and drawing of line meshes and 2D iso views; optimize handling
 of meshes with large number of physical entities; Removed Discrete
-Line and Discrete Surface commands: the same functionnality can now be
-obtained by simply loading meshes in the usual formats; fixed coloring
+Line and Discrete Surface commands (the same functionnality can now be
+obtained by simply loading a mesh in .msh format); fixed coloring
 by mesh partition; new "mesh statistics" export format; new full-quad
 recombine option; various small bug fixes.
 
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index c45f0a7a759d087961c450c92a91c5eacd0b57b4..dbb57b0bef1ae5ab93ecd38115b46239869ecd43 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -1,5 +1,5 @@
 \input texinfo.tex @c -*-texinfo-*-
-@c $Id: gmsh.texi,v 1.183 2005-05-13 05:09:08 geuzaine Exp $
+@c $Id: gmsh.texi,v 1.184 2005-06-10 20:59:21 geuzaine Exp $
 @c
 @c Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 @c
@@ -1292,6 +1292,9 @@ min, X max, Y min, Y max, Z min, Z max).
 @item Delete All;
 Deletes all geometrical entities and all currently loaded meshes.
 
+@item Delete Physicals;
+Deletes all physical groups.
+
 @item Print @var{char-expression};
 Prints the graphic window in a file named @var{char-expression}, using the
 current @code{Print.Format} (@pxref{General options}). If the path in