diff --git a/Common/Makefile b/Common/Makefile
index 3c0d2079bed1174576676a1627af820d37ce05a4..29191811a2bd59e695c6c414ee0fdeefe3643333 100644
--- a/Common/Makefile
+++ b/Common/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.73 2005-02-08 10:04:33 remacle Exp $
+# $Id: Makefile,v 1.74 2005-02-20 06:36:52 geuzaine Exp $
 #
 # Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 #
@@ -70,27 +70,26 @@ Context.o: Context.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Graphics/Draw.h ../Common/Views.h \
   ../Common/ColorTable.h ../Common/GmshMatrix.h ../Common/AdaptiveViews.h \
-  Context.h Options.h DefaultOptions.h Views.h Trackball.h
+  Context.h Options.h DefaultOptions.h Trackball.h
 AdaptiveViews.o: AdaptiveViews.cpp AdaptiveViews.h ../DataStr/List.h \
   GmshMatrix.h ../Plugin/Plugin.h ../Common/Options.h ../Common/Message.h \
   ../Common/Views.h ../Common/ColorTable.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  ../Common/AdaptiveViews.h
+  ../Common/SmoothNormals.h
 Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../Numeric/Numeric.h Views.h ColorTable.h VertexArray.h SmoothNormals.h \
-  GmshMatrix.h AdaptiveViews.h Context.h Options.h ../MathEval/matheval.h
+  GmshMatrix.h AdaptiveViews.h Context.h Options.h
 Options.o: Options.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \
   ../Common/Options.h ../Common/Message.h ../Common/Views.h \
   ../Common/ColorTable.h ../DataStr/List.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Common/GmshMatrix.h \
-  ../Common/AdaptiveViews.h Gmsh.h Message.h ../DataStr/Malloc.h \
-  ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h GmshUI.h \
-  ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
-  ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
+  ../Common/AdaptiveViews.h Gmsh.h ../DataStr/Malloc.h ../DataStr/Tree.h \
+  ../DataStr/avl.h ../DataStr/Tools.h GmshUI.h ../Geo/Geo.h \
+  ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
+  ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Mesh/Metric.h ../Mesh/Matrix.h \
-  ../Graphics/Draw.h Context.h Options.h ../Fltk/Solvers.h ../Fltk/GUI.h \
-  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h ../Common/GmshUI.h
+  ../Graphics/Draw.h Context.h ../Fltk/Solvers.h ../Fltk/GUI.h \
+  ../Fltk/Opengl_Window.h ../Fltk/Colorbar_Window.h
 CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   GmshUI.h GmshVersion.h CommandLine.h ../Numeric/Numeric.h Context.h \
@@ -98,8 +97,8 @@ CommandLine.o: CommandLine.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h Views.h ColorTable.h VertexArray.h SmoothNormals.h \
-  GmshMatrix.h AdaptiveViews.h ../Parser/OpenFile.h ../Parser/Parser.h
+  ../Mesh/Matrix.h Views.h ColorTable.h GmshMatrix.h AdaptiveViews.h \
+  ../Parser/OpenFile.h ../Parser/Parser.h
 Timer.o: Timer.cpp
 ColorTable.o: ColorTable.cpp Gmsh.h Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 7a4d7928c13d2e50ec8722197a4f23bb05d0e729..b70aed53e2955fc6296064206b1c4b9a24a0bab4 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.335 2005-02-12 20:22:08 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.336 2005-02-20 06:36:52 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -1264,7 +1264,9 @@ void help_short_cb(CALLBACK_ARGS)
   Msg(DIRECT, " ");
   Msg(DIRECT, "  Ctrl+i        Show statistics window"); 
   Msg(DIRECT, "  Ctrl+l        Show message console");
-  Msg(DIRECT, "  Ctrl+m        Merge file"); 
+#if defined(__APPLE__)
+  Msg(DIRECT, "  Ctrl+m        Minimize window"); 
+#endif
   Msg(DIRECT, "  Ctrl+n        Create new project file"); 
   Msg(DIRECT, "  Ctrl+o        Open project file"); 
   Msg(DIRECT, "  Ctrl+q        Quit");
@@ -1272,7 +1274,8 @@ void help_short_cb(CALLBACK_ARGS)
   Msg(DIRECT, "  Ctrl+s        Save file as");
   Msg(DIRECT, " ");
   Msg(DIRECT, "  Shift+Ctrl+c  Show clipping plane window");
-  Msg(DIRECT, "  Shift+Ctrl+o  Show option window"); 
+  Msg(DIRECT, "  Shift+Ctrl+n  Show option window"); 
+  Msg(DIRECT, "  Shift+Ctrl+o  Merge file(s)"); 
   Msg(DIRECT, "  Shift+Ctrl+s  Save mesh in default format");
   Msg(DIRECT, "  Shift+Ctrl+v  Show visibility window");
   Msg(DIRECT, " ");
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index d014de0fef9c65bc47dad2f12123aaa974192719..d4fadede3a28c4f5075d2a864adf0ef1fca4a934 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.418 2005-02-12 18:43:10 geuzaine Exp $
+// $Id: GUI.cpp,v 1.419 2005-02-20 06:36:53 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -102,14 +102,14 @@ Fl_Menu_Item m_menubar_table[] = {
   {"&File", 0, 0, 0, FL_SUBMENU},
     {"&New...",     FL_CTRL+'n', (Fl_Callback *)file_new_cb, 0},
     {"&Open...",    FL_CTRL+'o', (Fl_Callback *)file_open_cb, 0},
-    {"M&erge...",   FL_CTRL+'m', (Fl_Callback *)file_merge_cb, 0, FL_MENU_DIVIDER},
+    {"M&erge...",   FL_CTRL+FL_SHIFT+'o', (Fl_Callback *)file_merge_cb, 0, FL_MENU_DIVIDER},
     {"&Rename...",  FL_CTRL+'r', (Fl_Callback *)file_rename_cb, 0},
     {"Save &As...", FL_CTRL+'s', (Fl_Callback *)file_save_as_cb, 0},
     {"Sa&ve Mesh",  FL_CTRL+FL_SHIFT+'s', (Fl_Callback *)mesh_save_cb, 0, FL_MENU_DIVIDER},
     {"&Quit",       FL_CTRL+'q', (Fl_Callback *)file_quit_cb, 0},
     {0},
   {"&Tools", 0, 0, 0, FL_SUBMENU},
-    {"&Options...",      FL_CTRL+FL_SHIFT+'o', (Fl_Callback *)options_cb, 0},
+    {"&Options...",      FL_CTRL+FL_SHIFT+'n', (Fl_Callback *)options_cb, 0},
     {"&Visibility",      FL_CTRL+FL_SHIFT+'v', (Fl_Callback *)visibility_cb, 0},
     {"&Clipping Planes", FL_CTRL+FL_SHIFT+'c', (Fl_Callback *)clip_cb, 0, FL_MENU_DIVIDER},
     {"S&tatistics",      FL_CTRL+'i', (Fl_Callback *)statistics_cb, 0},
@@ -135,20 +135,20 @@ Fl_Menu_Item m_sys_menubar_table[] = {
   {"File", 0, 0, 0, FL_SUBMENU},
     {"New...",     FL_CTRL+'n', (Fl_Callback *)file_new_cb, 0},
     {"Open...",    FL_CTRL+'o', (Fl_Callback *)file_open_cb, 0},
-    {"Merge...",   FL_CTRL+'m', (Fl_Callback *)file_merge_cb, 0, FL_MENU_DIVIDER},
+    {"Merge...",   FL_CTRL+FL_SHIFT+'o', (Fl_Callback *)file_merge_cb, 0, FL_MENU_DIVIDER},
     {"Rename...",  FL_CTRL+'r', (Fl_Callback *)file_rename_cb, 0},
     {"Save As...", FL_CTRL+'s', (Fl_Callback *)file_save_as_cb, 0},
     {"Save Mesh",  FL_CTRL+FL_SHIFT+'s', (Fl_Callback *)mesh_save_cb, 0},
     {0},
   {"Tools",0,0,0,FL_SUBMENU},
-    {"Options...",      FL_CTRL+FL_SHIFT+'o', (Fl_Callback *)options_cb, 0},
+    {"Options...",      FL_CTRL+FL_SHIFT+'n', (Fl_Callback *)options_cb, 0},
     {"Visibility",      FL_CTRL+FL_SHIFT+'v', (Fl_Callback *)visibility_cb, 0},
     {"Clipping Planes", FL_CTRL+FL_SHIFT+'c', (Fl_Callback *)clip_cb, 0, FL_MENU_DIVIDER},
     {"Statistics",      FL_CTRL+'i', (Fl_Callback *)statistics_cb, 0},
     {"Message Console", FL_CTRL+'l', (Fl_Callback *)message_cb, 0},
     {0},
   {"Window",0,0,0,FL_SUBMENU},
-    {"Minimize",           0, (Fl_Callback *)window_cb, (void*)0},
+    {"Minimize",           FL_CTRL+'m', (Fl_Callback *)window_cb, (void*)0},
     {"Zoom",               0, (Fl_Callback *)window_cb, (void*)1, FL_MENU_DIVIDER},
     {"Bring All to Front", 0, (Fl_Callback *)window_cb, (void*)2},
     {0},
diff --git a/Fltk/GUI_Extras.cpp b/Fltk/GUI_Extras.cpp
index 5009927efaf546ff003dc671a1c12700a7777b72..9854962c572e8c006907d321c24d346e7988cfb2 100644
--- a/Fltk/GUI_Extras.cpp
+++ b/Fltk/GUI_Extras.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI_Extras.cpp,v 1.9 2005-02-05 22:20:51 geuzaine Exp $
+// $Id: GUI_Extras.cpp,v 1.10 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -515,22 +515,27 @@ int geo_dialog(char *name)
 {
   struct _geo_dialog{
     Fl_Window *window;
-    Fl_Check_Button *b;
+    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 + 1*25, y = 0;
+    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 = new Fl_Check_Button(10, y, 180, 25, "Save discrete surfaces"); y += 25;
-    dialog->b->value(1);
-    dialog->b->type(FL_TOGGLE_BUTTON);
-    dialog->b->down_box(GMSH_TOGGLE_BOX);
-    dialog->b->selection_color(GMSH_TOGGLE_COLOR);
+    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();
@@ -548,7 +553,7 @@ int geo_dialog(char *name)
       Fl_Widget* o = Fl::readqueue();
       if (!o) break;
       if (o == dialog->ok) {
-	Print_Geo(THEM, name, dialog->b->value());
+	Print_Geo(THEM, name, dialog->b[0]->value(), dialog->b[1]->value());
 	dialog->window->hide();
 	return 1;
       }
diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp
index dd9ba5a97aae554dce8dc042f101b7e692b8e6e0..0223a3db5db151c586142c93c762a3756750fb72 100644
--- a/Geo/CAD.cpp
+++ b/Geo/CAD.cpp
@@ -1,4 +1,4 @@
-// $Id: CAD.cpp,v 1.81 2005-02-11 02:27:12 geuzaine Exp $
+// $Id: CAD.cpp,v 1.82 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -601,20 +601,23 @@ Curve *CreateReversedCurve(Mesh * M, Curve * c)
   Vertex *e1, *e2, *e3, *e4;
   int i;
   newc = Create_Curve(-c->Num, c->Typ, 1, NULL, NULL, -1, -1, 0., 1.);
-  newc->Control_Points =
-    List_Create(List_Nbr(c->Control_Points), 1, sizeof(Vertex *));
-  if(c->Typ == MSH_SEGM_ELLI || c->Typ == MSH_SEGM_ELLI_INV) {
-    List_Read(c->Control_Points, 0, &e1);
-    List_Read(c->Control_Points, 1, &e2);
-    List_Read(c->Control_Points, 2, &e3);
-    List_Read(c->Control_Points, 3, &e4);
-    List_Add(newc->Control_Points, &e4);
-    List_Add(newc->Control_Points, &e2);
-    List_Add(newc->Control_Points, &e3);
-    List_Add(newc->Control_Points, &e1);
+
+  if(List_Nbr(c->Control_Points)){
+    newc->Control_Points =
+      List_Create(List_Nbr(c->Control_Points), 1, sizeof(Vertex *));
+    if(c->Typ == MSH_SEGM_ELLI || c->Typ == MSH_SEGM_ELLI_INV) {
+      List_Read(c->Control_Points, 0, &e1);
+      List_Read(c->Control_Points, 1, &e2);
+      List_Read(c->Control_Points, 2, &e3);
+      List_Read(c->Control_Points, 3, &e4);
+      List_Add(newc->Control_Points, &e4);
+      List_Add(newc->Control_Points, &e2);
+      List_Add(newc->Control_Points, &e3);
+      List_Add(newc->Control_Points, &e1);
+    }
+    else
+      List_Invert(c->Control_Points, newc->Control_Points);
   }
-  else
-    List_Invert(c->Control_Points, newc->Control_Points);
 
   if(c->Typ == MSH_SEGM_NURBS && c->k) {
     newc->k =
diff --git a/Geo/Makefile b/Geo/Makefile
index 6690b795b1cbcb97c97224f9dbe0726b6a326470..229a647a635196db31f4e718862f56b8c1f2b81b 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.59 2005-02-08 10:04:33 remacle Exp $
+# $Id: Makefile,v 1.60 2005-02-20 06:36:54 geuzaine Exp $
 #
 # Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 #
@@ -65,7 +65,7 @@ CAD.o: CAD.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
   ../Mesh/Matrix.h ../Mesh/Interpolation.h ../Mesh/Create.h CAD.h \
-  ExtrudeParams.h ../Common/Visibility.h ../Common/Context.h
+  ../Common/Visibility.h ../Common/Context.h
 MinMax.o: MinMax.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h \
@@ -76,21 +76,21 @@ ExtrudeParams.o: ExtrudeParams.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ExtrudeParams.h
+  ../Mesh/Matrix.h
 Geo.o: Geo.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../Numeric/Numeric.h Geo.h CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ExtrudeParams.h ../Parser/Parser.h ../Common/Context.h
+  ../Mesh/Matrix.h ../Parser/Parser.h ../Common/Context.h
 GeoUtils.o: GeoUtils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h Geo.h CAD.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ExtrudeParams.h ../Numeric/Numeric.h
+  ../Mesh/Matrix.h ../Numeric/Numeric.h
 StepGeomDatabase.o: StepGeomDatabase.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
@@ -98,20 +98,19 @@ StepGeomDatabase.o: StepGeomDatabase.cpp ../Common/Gmsh.h \
   ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h \
   ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h ../Mesh/Nurbs.h CAD.h ExtrudeParams.h \
-  StepGeomDatabase.h ../Mesh/Create.h ../Common/Context.h
+  ../Mesh/Matrix.h ../Mesh/Nurbs.h CAD.h StepGeomDatabase.h \
+  ../Mesh/Create.h ../Common/Context.h
 ExtractContour.o: ExtractContour.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h Geo.h GeoUtils.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h CAD.h ExtrudeParams.h ../Numeric/Numeric.h
+  ../Mesh/Matrix.h CAD.h ../Numeric/Numeric.h
 Print_Geo.o: Print_Geo.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h Geo.h ../Mesh/Mesh.h \
   ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h ../Mesh/Face.h \
   ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h ../Mesh/Metric.h \
-  ../Mesh/Matrix.h CAD.h ExtrudeParams.h ../Numeric/Numeric.h \
-  ../Common/Context.h
+  ../Mesh/Matrix.h CAD.h ../Numeric/Numeric.h ../Common/Context.h
diff --git a/Geo/Print_Geo.cpp b/Geo/Print_Geo.cpp
index 86dac276b826e6efffde012502db8affa40d1bcf..721d91cbf4a7fe392946c63aa4af307e1a847764 100644
--- a/Geo/Print_Geo.cpp
+++ b/Geo/Print_Geo.cpp
@@ -1,4 +1,4 @@
-// $Id: Print_Geo.cpp,v 1.34 2005-01-08 20:15:12 geuzaine Exp $
+// $Id: Print_Geo.cpp,v 1.35 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -133,6 +133,59 @@ void Print_Curve(void *a, void *b)
 
 }
 
+void Print_Discrete_Curve(void *a, void *b)
+{
+  Curve *c = *(Curve **) a;
+  
+  if(c->Num < 0) return;
+  
+  // if we have a SEGM_rep, print it:
+
+  if(c->theSegmRep){
+    if(!List_Nbr(c->Control_Points))
+      fprintf(FOUT, "Discrete Line (%d) = {%d}\n", 
+	      c->Num, c->theSegmRep->num_points);
+    else
+      fprintf(FOUT, "Discrete Line {%d} = {%d}\n", 
+	      c->Num, c->theSegmRep->num_points);
+    
+    fprintf(FOUT, "{\n");
+    for(int i = 0; i < List_Nbr(c->theSegmRep->points); i++){
+      if(i){
+	fprintf(FOUT, ",");
+	if(!(i%3)) fprintf(FOUT, "\n");
+      }
+      fprintf(FOUT, "%.16g", 
+	      *(double*)List_Pointer_Fast(c->theSegmRep->points, i));
+    }
+    fprintf(FOUT, "};\n");
+    return;
+  }
+
+  // else, print the mesh:
+
+  if(c->Dirty || !List_Nbr(c->Vertices))
+    return;
+
+  if(!List_Nbr(c->Control_Points))
+    fprintf(FOUT, "Discrete Line (%d) = {%d}\n", 
+	    c->Num, List_Nbr(c->Vertices));
+  else
+    fprintf(FOUT, "Discrete Line {%d} = {%d}\n", 
+	    c->Num, List_Nbr(c->Vertices));
+
+  fprintf(FOUT, "{\n");
+  for(int i = 0; i < List_Nbr(c->Vertices); i++){
+    Vertex *v = *(Vertex**)List_Pointer(c->Vertices, i);
+    fprintf(FOUT, "  %.16g,%.16g,%.16g", v->Pos.X, v->Pos.Y, v->Pos.Z);
+    if(i != List_Nbr(c->Vertices) - 1) 
+      fprintf(FOUT, ",\n");
+    else
+      fprintf(FOUT, "\n");
+  }
+  fprintf(FOUT, "};\n");
+}
+
 void Print_Surface(void *a, void *b)
 {
   Curve *c;
@@ -399,7 +452,7 @@ void Print_PhysicalGroups(void *a, void *b)
 
 }
 
-void Print_Geo(Mesh * M, char *filename, int discrete_surf)
+void Print_Geo(Mesh * M, char *filename, int discrete_curves, int discrete_surf)
 {
   if(filename) {
     FOUT = fopen(filename, "w");
@@ -414,7 +467,9 @@ void Print_Geo(Mesh * M, char *filename, int discrete_surf)
 
   Tree_Action(M->Points, Print_Point);
   Tree_Action(M->Curves, Print_Curve);
-  Tree_Action(M->Surfaces, Print_Surface);
+  Tree_Action(M->Surfaces, Print_Surface); 
+  if(discrete_curves)
+    Tree_Action(M->Curves, Print_Discrete_Curve);
   if(discrete_surf)
     Tree_Action(M->Surfaces, Print_Discrete_Surface);
   Tree_Action(M->Volumes, Print_Volume);
diff --git a/Graphics/Geom.cpp b/Graphics/Geom.cpp
index ae4a2fdf2842376cea3775f11e4dfdb1f0caadb7..b5932b783a71b7289ebb95e2fc57222e4aa16243 100644
--- a/Graphics/Geom.cpp
+++ b/Graphics/Geom.cpp
@@ -1,4 +1,4 @@
-// $Id: Geom.cpp,v 1.80 2005-01-08 20:15:12 geuzaine Exp $
+// $Id: Geom.cpp,v 1.81 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -149,12 +149,20 @@ void Draw_Curve(void *a, void *b)
       N = 10 * n;
       break;
     }
-    if(c->Typ == MSH_SEGM_DISCRETE) {
+    if(c->theSegmRep) {
+      glBegin(GL_LINE_STRIP);
+      for(int i = 0; i < List_Nbr(c->theSegmRep->points); i+=3) {
+        double *p = (double*)List_Pointer(c->theSegmRep->points, i);
+        glVertex3d(p[0], p[1], p[2]);
+      }
+      glEnd();
+    }
+    else if(c->Typ == MSH_SEGM_DISCRETE) {
       Simplex *s;
       List_T *temp = Tree2List(c->Simplexes);
       for(int i = 0; i < List_Nbr(temp); i++) {
         List_Read(temp, i, &s);
-        glBegin(GL_LINE_STRIP);
+        glBegin(GL_LINES);
         glVertex3d(s->V[0]->Pos.X, s->V[0]->Pos.Y, s->V[0]->Pos.Z);
         glVertex3d(s->V[1]->Pos.X, s->V[1]->Pos.Y, s->V[1]->Pos.Z);
         glEnd();
@@ -295,17 +303,19 @@ void getPlaneSurfaceNormal(Surface *s, double x, double y, double z, double n[3]
 
   if(List_Nbr(s->Generatrices) > 1){
     List_Read(s->Generatrices, 0, &c);
-    t1[0] = x - c->beg->Pos.X;
-    t1[1] = y - c->beg->Pos.Y;
-    t1[2] = z - c->beg->Pos.Z;
-    for(int i = 1; i < List_Nbr(s->Generatrices); i++){
-      List_Read(s->Generatrices, i, &c);
-      t2[0] = x - c->beg->Pos.X;
-      t2[1] = y - c->beg->Pos.Y;
-      t2[2] = z - c->beg->Pos.Z;
-      prodve(t1, t2, n);
-      if(norme(n))
-	break;
+    if(c->beg){
+      t1[0] = x - c->beg->Pos.X;
+      t1[1] = y - c->beg->Pos.Y;
+      t1[2] = z - c->beg->Pos.Z;
+      for(int i = 1; i < List_Nbr(s->Generatrices); i++){
+	List_Read(s->Generatrices, i, &c);
+	t2[0] = x - c->beg->Pos.X;
+	t2[1] = y - c->beg->Pos.Y;
+	t2[2] = z - c->beg->Pos.Z;
+	prodve(t1, t2, n);
+	if(norme(n))
+	  break;
+      }
     }
   }
   if(List_Nbr(s->Generatrices) < 2 || !norme(n)){
@@ -374,6 +384,12 @@ void Draw_Plane_Surface(Surface * s)
         List_Add(points, List_Pointer(c->Control_Points, j));
       }
     }
+
+    if(!List_Nbr(points)){
+      List_Delete(points);      
+      CTX.threads_lock = 0;
+      return;
+    }
     MeanPlane(points, s);
     List_Delete(points);
     
@@ -678,7 +694,10 @@ void HighlightEntity(Vertex * v, Curve * c, Surface * s, int permanent)
       Draw_Curve(&c,NULL);
     }
     else{
-      Msg(STATUS1N, "Curve %d  {%d->%d}", c->Num, c->beg->Num, c->end->Num);
+      if(c->beg && c->end)
+	Msg(STATUS1N, "Curve %d {%d->%d}", c->Num, c->beg->Num, c->end->Num);
+      else
+	Msg(STATUS1N, "Curve %d", c->Num);
     }
   }
   else if(s) {
@@ -687,23 +706,28 @@ void HighlightEntity(Vertex * v, Curve * c, Surface * s, int permanent)
       Draw_Surface(&s,NULL);
     }
     else{
-      sprintf(Message, "Surface %d {", s->Num);
       int nbg = List_Nbr(s->Generatrices);
-      if(nbg < 10) {
-	for(int i = 0; i < nbg; i++) {
-	  List_Read(s->Generatrices, i, &cc);
-	  if(!i)
-	    sprintf(temp, "%d", cc->Num);
-	  else
-	    sprintf(temp, ",%d", cc->Num);
-	  strcat(Message, temp);
+      if(nbg){
+	sprintf(Message, "Surface %d {", s->Num);
+	if(nbg < 10) {
+	  for(int i = 0; i < nbg; i++) {
+	    List_Read(s->Generatrices, i, &cc);
+	    if(!i)
+	      sprintf(temp, "%d", cc->Num);
+	    else
+	      sprintf(temp, ",%d", cc->Num);
+	    strcat(Message, temp);
+	  }
 	}
+	else {
+	  strcat(Message, "...");
+	}
+	strcat(Message, "}");
+	Msg(STATUS1N, Message);
       }
-      else {
-	strcat(Message, "...");
+      else{
+	Msg(STATUS1N, "Surface %d", s->Num);
       }
-      strcat(Message, "}");
-      Msg(STATUS1N, Message);
     }
   }
   else{
diff --git a/Mesh/1D_Mesh.cpp b/Mesh/1D_Mesh.cpp
index 831e2cf0b715df9409859179ec4d24b726a74cc5..2aa199c8d284a0118044dee1b7736ced89467140 100644
--- a/Mesh/1D_Mesh.cpp
+++ b/Mesh/1D_Mesh.cpp
@@ -1,4 +1,4 @@
-// $Id: 1D_Mesh.cpp,v 1.42 2005-01-12 01:20:08 geuzaine Exp $
+// $Id: 1D_Mesh.cpp,v 1.43 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -144,6 +144,10 @@ void Maillage_Curve(void *data, void *dummy)
 
   Msg(STATUS3, "Meshing curve %d", c->Num);
 
+  if(MeshDiscreteCurve(c)){
+    return;
+  }
+  
   Points = List_Create(10, 10, sizeof(IntPoint));
   c->l = Integration(c->ubeg, c->uend, F_One, Points, 1.e-4);
   List_Delete(Points);
diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp
index f4c0846c72f7c142ff45b7d1ece6202be1085dea..a1385a78210a2a4d54bd49e7fd1a359f3f72cfdf 100644
--- a/Mesh/3D_Extrude_Old.cpp
+++ b/Mesh/3D_Extrude_Old.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude_Old.cpp,v 1.29 2005-01-01 19:35:30 geuzaine Exp $
+// $Id: 3D_Extrude_Old.cpp,v 1.30 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -19,17 +19,17 @@
 // 
 // Please report all bugs and problems to <gmsh@geuz.org>.
 
-// This is the old extrusion mesh generator -> only available through
-// the command line option -extrude (w/o -recombine). This mesh
+// This is the old extrusion mesh generator, only available through
+// the command line option -extrude (w/ or w/o -recombine). This mesh
 // generator pre-supposes a definition of surfaces in the XY plane,
 // and will extrude everything along the Z axis, taking parameters
-// interactively from standard input, e.g.
+// interactively from standard input, e.g.,
 //
 // gmsh test -extrude -recombine < params.ext
 //
 // The progression ratio defines a geometric progression for the
 // definition of the elements heights: a factor of 2 means that the
-// next element will be twice as high than the preceding one.
+// next element will be twice as high as the previous one.
 //
 // All geometrical entities are automatically numbered:
 //
@@ -56,23 +56,19 @@ extern Context_T CTX;
 extern Mesh *LOCAL, *THEM;
 
 static Tree_T *Tree_Ares, *Tree_Swaps;
-
-Surface *THES;
-Volume *THEV;
-int TEST_IS_ALL_OK, NbLayer;
-int NbElmLayer[MAXLAYERS];
-int ZonLayer[MAXLAYERS];
-int LineLayer[MAXLAYERS + 1];
-int SurfLayer[MAXLAYERS + 1];
-double hLayer[MAXLAYERS];
-double parLayer[MAXLAYERS];
-
-
-typedef struct
-{
+static Surface *THES;
+static Volume *THEV;
+static int TEST_IS_ALL_OK, NbLayer;
+static int NbElmLayer[MAXLAYERS];
+static int ZonLayer[MAXLAYERS];
+static int LineLayer[MAXLAYERS + 1];
+static int SurfLayer[MAXLAYERS + 1];
+static double hLayer[MAXLAYERS];
+static double parLayer[MAXLAYERS];
+
+typedef struct{
   int a, b;
-}
-nxn;
+} nxn;
 
 static int compnxn(const void *a, const void *b)
 {
@@ -92,33 +88,49 @@ static int compnxn(const void *a, const void *b)
 
 static void InitExtrudeParams(void)
 {
-  FILE *file;
-  int i;
-
-  printf("Number of layers: ");
-  scanf("%d", &NbLayer);
+  char str[256];
+
+  printf("Number of layers (default=1): ");
+  fgets(str, sizeof(str), stdin);
+  if(!strlen(str) || !strcmp(str, "\n"))
+    NbLayer = 1;
+  else
+    NbLayer = atoi(str);
+  
   if(NbLayer > MAXLAYERS){
     Msg(GERROR, "Max number of layer (%d) exceeded", MAXLAYERS);
     NbLayer = MAXLAYERS;
   }
 
-  file = fopen("xtrude", "w");
+  FILE *file = fopen(".gmsh-extrude", "w");
 
   if(file)
     fprintf(file, "%d\n", NbLayer);
-  for(i = 0; i < NbLayer; i++) {
-    printf("Number of elements in layer %d: ", i + 1);
-    scanf("%d", &NbElmLayer[i]);
+  for(int i = 0; i < NbLayer; i++) {
+    printf("Number of elements in layer %d (default=1): ", i + 1);
+    fgets(str, sizeof(str), stdin);
+    if(!strlen(str) || !strcmp(str, "\n"))
+      NbElmLayer[i] = 1;
+    else
+      NbElmLayer[i] = atoi(str);
     if(file)
       fprintf(file, "%d\n", NbElmLayer[i]);
 
-    printf("Depth of layer %d: ", i + 1);
-    scanf("%lf", &hLayer[i]);
+    printf("Depth of layer %d (default=1.0): ", i + 1);
+    fgets(str, sizeof(str), stdin);
+    if(!strlen(str) || !strcmp(str, "\n"))
+      hLayer[i] = 1.0;
+    else
+      hLayer[i] = atof(str);
     if(file)
       fprintf(file, "%g\n", hLayer[i]);
 
-    printf("Progresion ratio for layer %d: ", i + 1);
-    scanf("%lf", &parLayer[i]);
+    printf("Progression ratio for layer %d (default=1.0): ", i + 1);
+    fgets(str, sizeof(str), stdin);
+    if(!strlen(str) || !strcmp(str, "\n"))
+      parLayer[i] = 1.0;
+    else
+      parLayer[i] = atof(str);
     if(file)
       fprintf(file, "%g\n", parLayer[i]);
   }
@@ -127,9 +139,6 @@ static void InitExtrudeParams(void)
     fflush(file);
     fclose(file);
   }
-
-  Tree_Ares = Tree_Create(sizeof(nxn), compnxn);
-  Tree_Swaps = Tree_Create(sizeof(nxn), compnxn);
 }
 
 static int are_exist(Vertex * v1, Vertex * v2, Tree_T * t)
@@ -156,7 +165,6 @@ static void are_del(Vertex * v1, Vertex * v2, Tree_T * t)
   Tree_Suppress(t, &n);
 }
 
-
 static void Extrude_Simplex_Phase1(void *data, void *dum)
 {
   int i, j, k;
@@ -227,7 +235,8 @@ static void Extrude_Simplex_Phase3(void *data, void *dum)
         }
         else {
           if(are_exist(v4, v2, Tree_Ares) &&
-             are_exist(v5, v3, Tree_Ares) && are_exist(v4, v3, Tree_Ares)) {
+             are_exist(v5, v3, Tree_Ares) && 
+	     are_exist(v4, v3, Tree_Ares)) {
             news = Create_Simplex(v1, v2, v3, v4);
             news->iEnt = ZonLayer[i];
             Tree_Add(THEV->Simplexes, &news);
@@ -239,7 +248,8 @@ static void Extrude_Simplex_Phase3(void *data, void *dum)
             Tree_Add(THEV->Simplexes, &news);
           }
           if(are_exist(v4, v2, Tree_Ares) &&
-             are_exist(v2, v6, Tree_Ares) && are_exist(v4, v3, Tree_Ares)) {
+             are_exist(v2, v6, Tree_Ares) && 
+	     are_exist(v4, v3, Tree_Ares)) {
             news = Create_Simplex(v1, v2, v3, v4);
             news->iEnt = ZonLayer[i];
             Tree_Add(THEV->Simplexes, &news);
@@ -251,7 +261,8 @@ static void Extrude_Simplex_Phase3(void *data, void *dum)
             Tree_Add(THEV->Simplexes, &news);
           }
           if(are_exist(v4, v2, Tree_Ares) &&
-             are_exist(v2, v6, Tree_Ares) && are_exist(v6, v1, Tree_Ares)) {
+             are_exist(v2, v6, Tree_Ares) && 
+	     are_exist(v6, v1, Tree_Ares)) {
             news = Create_Simplex(v1, v2, v3, v6);
             news->iEnt = ZonLayer[i];
             Tree_Add(THEV->Simplexes, &news);
@@ -263,7 +274,8 @@ static void Extrude_Simplex_Phase3(void *data, void *dum)
             Tree_Add(THEV->Simplexes, &news);
           }
           if(are_exist(v5, v1, Tree_Ares) &&
-             are_exist(v5, v3, Tree_Ares) && are_exist(v4, v3, Tree_Ares)) {
+             are_exist(v5, v3, Tree_Ares) && 
+	     are_exist(v4, v3, Tree_Ares)) {
             news = Create_Simplex(v1, v2, v3, v5);
             news->iEnt = ZonLayer[i];
             Tree_Add(THEV->Simplexes, &news);
@@ -275,7 +287,8 @@ static void Extrude_Simplex_Phase3(void *data, void *dum)
             Tree_Add(THEV->Simplexes, &news);
           }
           if(are_exist(v5, v1, Tree_Ares) &&
-             are_exist(v5, v3, Tree_Ares) && are_exist(v6, v1, Tree_Ares)) {
+             are_exist(v5, v3, Tree_Ares) && 
+	     are_exist(v6, v1, Tree_Ares)) {
             news = Create_Simplex(v1, v2, v3, v5);
             news->iEnt = ZonLayer[i];
             Tree_Add(THEV->Simplexes, &news);
@@ -287,7 +300,8 @@ static void Extrude_Simplex_Phase3(void *data, void *dum)
             Tree_Add(THEV->Simplexes, &news);
           }
           if(are_exist(v5, v1, Tree_Ares) &&
-             are_exist(v2, v6, Tree_Ares) && are_exist(v6, v1, Tree_Ares)) {
+             are_exist(v2, v6, Tree_Ares) && 
+	     are_exist(v6, v1, Tree_Ares)) {
             news = Create_Simplex(v1, v2, v3, v6);
             news->iEnt = ZonLayer[i];
             Tree_Add(THEV->Simplexes, &news);
@@ -439,30 +453,27 @@ static void Extrude_Vertex(void *data, void *dum)
 
     // Geometric progression ar^i
     // Sum of n (=NbElmLayer[i]) terms = hLayer[i] = a (r^n-1)/(r-1)
-
+    
     if(parLayer[i] == 1.)
       a = hLayer[i] / (double)NbElmLayer[i];
     else
-      a =
-        hLayer[i] * (parLayer[i] - 1.) / (pow(parLayer[i], NbElmLayer[i]) -
-                                          1.);
-
+      a = hLayer[i] * (parLayer[i] - 1.) / 
+	(pow(parLayer[i], NbElmLayer[i]) - 1.);
+    
     for(j = 0; j < NbElmLayer[i]; j++) {
-
+     
       //h += hLayer[i]/(double)NbElmLayer[i];
 
       h += a * pow(parLayer[i], j);
 
-      newv =
-        Create_Vertex(++THEM->MaxPointNum, v->Pos.X, v->Pos.Y, v->Pos.Z + h,
-                      v->lc, v->u);
+      newv = Create_Vertex(++THEM->MaxPointNum, v->Pos.X, v->Pos.Y, 
+			   v->Pos.Z + h, v->lc, v->u);
       Tree_Add(THEM->Vertices, &newv);
       List_Add(v->Extruded_Points, &newv);
     }
   }
 }
 
-
 static void Extrude_Surface1(void *data, void *dum)
 {
   if(!NbLayer)
@@ -485,7 +496,6 @@ static void Extrude_Surface2(void *data, void *dum)
   Tree_Action(s->Simplexes, Extrude_Simplex_Phase2);
 }
 
-
 static void Extrude_Surface3(void *data, void *dum)
 {
   int i;
@@ -495,7 +505,6 @@ static void Extrude_Surface3(void *data, void *dum)
   Surface *s = *(Surface **) data;
   THES = s;
 
-  /* Numerotation automatique des entites physiques */
   Msg(INFO, "Extruding Surface %d", s->Num);
   for(i = 0; i < NbLayer; i++) {
     ZonLayer[i] = (int)(3 * K1) + (int)((i + 1) * K2) + s->Num;
@@ -509,7 +518,6 @@ static void Extrude_Surface3(void *data, void *dum)
   Tree_Action(s->Quadrangles, Extrude_Quadrangle_Phase3);
 }
 
-
 static void Extrude_Seg(Vertex * V1, Vertex * V2)
 {
   int i, j, k;
@@ -584,7 +592,6 @@ static void Extrude_Curve(void *data, void *dum)
   if(c->Num < 0)
     return;
 
-  /* Numerotation automatique des entites physiques */
   Msg(INFO, "Extruding Curve %d", c->Num);
 
   LineLayer[0] = c->Num;
@@ -632,7 +639,6 @@ static void Extrude_Point(void *data, void *dum)
   pV = (Vertex **) data;
   v = *pV;
 
-  /* Numerotation automatique des entites physiques */
   Msg(INFO, "Extruding Vertex %d", v->Num);
   for(i = 0; i < NbLayer; i++) {
     LineLayer[i] = (int)(4 * K1) + (int)((i + 1) * K2) + v->Num;
@@ -658,11 +664,14 @@ void Extrude_Mesh_Old(Mesh * M)
   Mesh MM;
 
   InitExtrudeParams();
+  Tree_Ares = Tree_Create(sizeof(nxn), compnxn);
+  Tree_Swaps = Tree_Create(sizeof(nxn), compnxn);
+
   LOCAL = &MM;
   THEM = M;
 
-  //clean up Extruded_Points stuff (in case another extrusion was
-  //performed before)
+  // clean up Extruded_Points stuff (in case another extrusion was
+  // performed before)
   Tree_Action(THEM->Vertices, FreeEP);
 
   Create_BgMesh(WITHPOINTS, .2, LOCAL);
@@ -686,4 +695,7 @@ void Extrude_Mesh_Old(Mesh * M)
   Tree_Action(M->Surfaces, Extrude_Surface3);
   Tree_Action(M->Curves, Extrude_Curve);
   Tree_Action(M->Points, Extrude_Point);
+
+  Tree_Delete(Tree_Ares);
+  Tree_Delete(Tree_Swaps);
 }
diff --git a/Mesh/Create.cpp b/Mesh/Create.cpp
index ff31eda98f040cc59571096635bec9de8c2962c2..40758e7b32f1d6f9ea10eff607879bfa6993570c 100644
--- a/Mesh/Create.cpp
+++ b/Mesh/Create.cpp
@@ -1,4 +1,4 @@
-// $Id: Create.cpp,v 1.66 2005-01-08 20:15:12 geuzaine Exp $
+// $Id: Create.cpp,v 1.67 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -467,17 +467,21 @@ void End_Curve(Curve * c)
 
   }
 
-  if(c->cp)
+  if(c->cp){
     Free(c->cp);
-  c->cp = (float *)Malloc(4 * List_Nbr(c->Control_Points) * sizeof(float));
-  for(i = 0; i < List_Nbr(c->Control_Points); i++) {
-    List_Read(c->Control_Points, i, &v[0]);
-    c->cp[4 * i] = v[0]->Pos.X;
-    c->cp[4 * i + 1] = v[0]->Pos.Y;
-    c->cp[4 * i + 2] = v[0]->Pos.Z;
-    c->cp[4 * i + 3] = v[0]->w;
+    c->cp = NULL;
   }
 
+  if(List_Nbr(c->Control_Points)){
+    c->cp = (float *)Malloc(4 * List_Nbr(c->Control_Points) * sizeof(float));
+    for(i = 0; i < List_Nbr(c->Control_Points); i++) {
+      List_Read(c->Control_Points, i, &v[0]);
+      c->cp[4 * i] = v[0]->Pos.X;
+      c->cp[4 * i + 1] = v[0]->Pos.Y;
+      c->cp[4 * i + 2] = v[0]->Pos.Z;
+      c->cp[4 * i + 3] = v[0]->w;
+    }
+  }
 }
 
 void End_Surface(Surface * s, int reset_orientations)
@@ -530,6 +534,7 @@ Curve *Create_Curve(int Num, int Typ, int Order, List_T * Liste,
   pC->cp = NULL;
   pC->Vertices = NULL;
   pC->Extrude = NULL;
+  pC->theSegmRep = 0;
   pC->Typ = Typ;
   pC->Num = Num;
   THEM->MaxLineNum = IMAX(THEM->MaxLineNum, Num);
@@ -593,6 +598,8 @@ Curve *Create_Curve(int Num, int Typ, int Order, List_T * Liste,
   }
   else {
     pC->Control_Points = NULL;
+    pC->beg = NULL;
+    pC->end = NULL;
     return pC;
   }
 
@@ -636,6 +643,8 @@ void Free_Curve(void *a, void *b)
     Free(pC->k);
     List_Delete(pC->Control_Points);
     Free(pC->cp);
+    if(pC->theSegmRep)
+      delete pC->theSegmRep;
     Free(pC);
     pC = NULL;
   }
@@ -705,6 +714,8 @@ void Free_Surface(void *a, void *b)
       delete pS->QuadVertexArray;
     if(pS->normals)
       delete pS->normals;
+    if(pS->thePolyRep)
+      delete pS->thePolyRep;
     Free(pS);
     pS = NULL;
   }
diff --git a/Mesh/DiscreteSurface.cpp b/Mesh/DiscreteSurface.cpp
index 9de54bad01ec3a63ffdd126b4918f586e7182875..d770d9b3a4d0fbc201c0ad07c12529bc9d8ee932 100644
--- a/Mesh/DiscreteSurface.cpp
+++ b/Mesh/DiscreteSurface.cpp
@@ -1,4 +1,4 @@
-// $Id: DiscreteSurface.cpp,v 1.1 2005-01-08 20:15:12 geuzaine Exp $
+// $Id: DiscreteSurface.cpp,v 1.2 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -36,6 +36,8 @@
 extern Mesh *THEM;
 extern Context_T CTX;
 
+#define VAL_INF 1.e200
+
 static Tree_T * VertexBound = NULL;
 
 static void InsertInVertexBound(void *a, void *b)
@@ -43,31 +45,8 @@ static void InsertInVertexBound(void *a, void *b)
   Tree_Insert(VertexBound, a);
 }
 
-int MeshDiscreteSurface(Surface *s)
-{
-  if(s->thePolyRep){
-    // Use the polygonal representation as the surface mesh. Most of
-    // the time we should of course remesh/enhance/refine this (as
-    // there is no guarantee that a polygonal CAD mesh is conform,
-    // that it respects the boundaries, etc.), but we don't have any
-    // routines to do that at the moment--so let's just use it and
-    // hope for the best.
-    POLY_rep_To_Mesh(s->thePolyRep, s);
-    return 1;
-  }
-  else if(s->Typ == MSH_SURF_DISCRETE){
-    // nothing else to do: we assume that the elements have alreay
-    // been created
-    return 1;
-  }
-  else
-    return 0;
-}
-
 // Polygonal representation of discrete surfaces
 
-#define VAL_INF 1.e200
-
 POLY_rep::POLY_rep()
   : num_points(0), num_polys(0)
 {
@@ -465,3 +444,148 @@ void STLAddFacet(double x1, double y1, double z1,
     List_Add(pol, &num);
   }
 }
+
+// Representation of discrete surfaces
+
+SEGM_rep::SEGM_rep()
+  : num_points(0)
+{
+  points = List_Create(100, 100, sizeof(double));
+  bounding_box[0] = bounding_box[2] = bounding_box[4] = VAL_INF;
+  bounding_box[1] = bounding_box[3] = bounding_box[5] = -VAL_INF;
+}
+
+SEGM_rep::SEGM_rep(int _num_points, List_T *_p)
+  : num_points(_num_points), points(_p)
+{
+  bounding_box[0] = bounding_box[2] = bounding_box[4] = VAL_INF;
+  bounding_box[1] = bounding_box[3] = bounding_box[5] = -VAL_INF;
+
+  // check num points
+  if(List_Nbr(points) != num_points * 3){
+    Msg(GERROR, "Wrong number of points in discrete curve");
+    if(points){
+      List_Delete(points);
+      points = 0;
+    }
+    return;
+  }
+
+  // compute the bbox
+  compute_bounding_box();
+}
+
+void SEGM_rep::compute_bounding_box()
+{
+  for(int i = 0; i < List_Nbr(points); i+=3){
+    double *p = (double*)List_Pointer(points, i);
+    if(p[0] < bounding_box[0]) bounding_box[0] = p[0];
+    if(p[0] > bounding_box[1]) bounding_box[1] = p[0];
+    if(p[1] < bounding_box[2]) bounding_box[2] = p[1];
+    if(p[1] > bounding_box[3]) bounding_box[3] = p[1];
+    if(p[2] < bounding_box[4]) bounding_box[4] = p[2];
+    if(p[2] > bounding_box[5]) bounding_box[5] = p[2];
+  }
+}
+
+SEGM_rep::~SEGM_rep()
+{
+  if(points) List_Delete(points);
+}
+
+double SetLC(Vertex *v1, Vertex *v2, double factor)
+{ 
+  double lc = 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));
+  v1->lc = v2->lc = lc;
+  return lc;
+}
+
+void SEGM_rep_To_Mesh(SEGM_rep *srep, Curve *c)
+{  
+  VertexBound = Tree_Create(sizeof(Vertex *), comparePosition);
+  Tree_Action(THEM->Vertices, InsertInVertexBound);
+
+  int N = List_Nbr(srep->points)/3;
+
+  Vertex **verts = new Vertex*[N];
+
+  c->Vertices = List_Create(N, 2, sizeof(Vertex *));
+
+  for(int i = 0; i < List_Nbr(srep->points); i+=3){
+    double *point = (double*)List_Pointer(srep->points, i);
+    Vertex *v = Create_Vertex(++THEM->MaxPointNum, point[0], point[1], point[2], 1.0, 0.0);
+    Vertex **pv;
+    if(!(pv = (Vertex**)Tree_PQuery(VertexBound, &v))){
+      Tree_Add(VertexBound, &v);
+      List_Add(c->Vertices, &v);
+      v->ListCurves = List_Create(1, 1, sizeof(Curve *));
+      List_Add(v->ListCurves, &c);
+      Tree_Add(THEM->Vertices, &v);
+      verts[i/3] = v;
+    }
+    else{
+      Free_Vertex(&v, NULL);
+      List_Add(c->Vertices, pv);
+      if((*pv)->ListCurves)
+	List_Add((*pv)->ListCurves, &c);
+      verts[i/3] = *pv;
+    }
+  }
+  
+  for(int i = 0; i < N-1; i++){
+    Vertex *v1 = verts[i];
+    Vertex *v2 = verts[i+1];
+    SetLC(v1, v2, CTX.mesh.lc_factor);
+    Simplex *simp = Create_Simplex(v1, v2, NULL, NULL);
+    simp->iEnt = c->Num;
+    Tree_Add(c->Simplexes, &simp);
+  }
+
+  Tree_Delete(VertexBound);
+  delete [] verts;
+}
+
+// Public interface for discrete surface/curve mesh algo
+
+int MeshDiscreteSurface(Surface *s)
+{
+  if(s->thePolyRep){
+    // Use the polygonal representation as the surface mesh. Most of
+    // the time we should of course remesh/enhance/refine this (as
+    // there is no guarantee that a polygonal CAD mesh is conform,
+    // that it respects the boundaries, etc.), but we don't have any
+    // routines to do that at the moment--so let's just use it and
+    // hope for the best.
+    POLY_rep_To_Mesh(s->thePolyRep, s);
+    return 1;
+  }
+  else if(s->Typ == MSH_SURF_DISCRETE){
+    // nothing else to do: we assume that the elements have alreay
+    // been created
+    return 1;
+  }
+  else
+    return 0;
+}
+
+int MeshDiscreteCurve(Curve *c)
+{
+  if(c->theSegmRep){
+    // Use the discrete representation as the curve mesh. Most of the
+    // time we should of course remesh/enhance/refine this (as there
+    // is no guarantee that this mesh fits at interfaces, etc.), but
+    // we don't have any routines to do that at the moment--so let's
+    // just use it and hope for the best.
+    SEGM_rep_To_Mesh(c->theSegmRep, c);
+    return 1;
+  }
+  else if(c->Typ == MSH_SURF_DISCRETE){
+    // nothing else to do: we assume that the elements have alreay
+    // been created
+    return 1;
+  }
+  else
+    return 0;
+}
diff --git a/Mesh/DiscreteSurface.h b/Mesh/DiscreteSurface.h
index e3d580946c86de72c856112cc9f325831db230ae..4260eaf3ae344ea8246c96d5380f4d26ed923219 100644
--- a/Mesh/DiscreteSurface.h
+++ b/Mesh/DiscreteSurface.h
@@ -36,7 +36,7 @@ class POLY_rep
 {
 public :
   int num_points, num_polys;
-  List_T *points_and_normals;  // 6 * nbrPoints 
+  List_T *points_and_normals;  // 6 * num_points 
   List_T *polygons; // first integer gives the number of point of the polygon
                     // then next ones are the points id's of the polygon
   POLY_rep(int num_points, int num_polys, List_T *_p, List_T *_pol);
@@ -55,4 +55,18 @@ void STLAddFacet(double x1, double y1, double z1,
 		 double x3, double y3, double z3,
 		 double n1, double n2, double n3);
 
+// Same thing for discrete curves
+
+class SEGM_rep 
+{
+public :
+  int num_points;
+  List_T *points;  // 3 * num_points 
+  SEGM_rep(int num_points, List_T *_p);
+  SEGM_rep();
+  ~SEGM_rep();
+  double bounding_box[6];
+  void compute_bounding_box();
+};
+
 #endif
diff --git a/Mesh/Makefile b/Mesh/Makefile
index 85635a25741ec5f61e92c66c78f24b4115d67957..e5d7ba738fc8a7c1a6b9996dcc6670756236ff02 100644
--- a/Mesh/Makefile
+++ b/Mesh/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.78 2005-02-08 10:04:33 remacle Exp $
+# $Id: Makefile,v 1.79 2005-02-20 06:36:54 geuzaine Exp $
 #
 # Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 #
@@ -113,8 +113,8 @@ depend:
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  Utils.h Vertex.h Create.h 2D_Mesh.h ../Common/Context.h Interpolation.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Utils.h \
+  Create.h 2D_Mesh.h ../Common/Context.h Interpolation.h
 2D_Transfinite.o: 2D_Transfinite.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
@@ -127,7 +127,7 @@ depend:
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h
 2D_BGMesh.o: 2D_BGMesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h Mesh.h \
@@ -195,22 +195,21 @@ depend:
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
   ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
-  Interpolation.h Vertex.h Mesh.h 2D_Mesh.h Create.h ../Common/Context.h
+  Interpolation.h 2D_Mesh.h Create.h ../Common/Context.h
 2D_Mesh_Aniso.o: 2D_Mesh_Aniso.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h ../Geo/Geo.h \
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  Interpolation.h Vertex.h Create.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
+  Interpolation.h Create.h ../Common/Context.h
 2D_Mesh_Triangle.o: 2D_Mesh_Triangle.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h \
   Element.h Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h \
   DiscreteSurface.h ../Common/VertexArray.h ../Common/SmoothNormals.h \
-  Metric.h Matrix.h ../Numeric/Numeric.h ../Common/Context.h \
-  ../Triangle/triangle.h
+  Metric.h Matrix.h ../Numeric/Numeric.h ../Common/Context.h
 3D_Mesh.o: 3D_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h Mesh.h \
@@ -237,16 +236,16 @@ depend:
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  ../Common/Context.h Create.h Vertex.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
+  ../Common/Context.h Create.h
 3D_Extrude_Old.o: 3D_Extrude_Old.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h ../Geo/Geo.h \
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  ../Common/Context.h Create.h Vertex.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
+  ../Common/Context.h Create.h
 3D_Coherence.o: 3D_Coherence.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h ../Geo/Geo.h \
@@ -270,8 +269,7 @@ depend:
   ../DataStr/avl.h ../DataStr/Tools.h Mesh.h Vertex.h Element.h Simplex.h \
   Face.h Edge.h ../Geo/ExtrudeParams.h DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h Metric.h Matrix.h \
-  Create.h ../Numeric/Numeric.h ../Common/Context.h \
-  ../Netgen/libsrc/interface/nglib.h ../Netgen/nglib_addon.h
+  Create.h ../Numeric/Numeric.h ../Common/Context.h
 MeshQuality.o: MeshQuality.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h Mesh.h \
@@ -284,8 +282,8 @@ Create.o: Create.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  Utils.h Vertex.h ../Common/Context.h Create.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Utils.h \
+  ../Common/Context.h Create.h
 Generator.o: Generator.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h Mesh.h \
@@ -300,24 +298,23 @@ Print_Mesh.o: Print_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  Create.h Vertex.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Create.h \
+  ../Common/Context.h
 Read_Mesh.o: Read_Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h ../Geo/CAD.h \
   ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Simplex.h \
   ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  3D_Mesh.h Create.h Vertex.h ../Geo/MinMax.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h 3D_Mesh.h \
+  Create.h ../Geo/MinMax.h ../Common/Context.h
 DiscreteSurface.o: DiscreteSurface.cpp ../Common/Gmsh.h \
   ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \
   ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \
   ../Numeric/Numeric.h Mesh.h Vertex.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h ../Geo/Geo.h Create.h Interpolation.h \
-  ../Common/Context.h
+  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h ../Geo/Geo.h \
+  Create.h Interpolation.h ../Common/Context.h
 SwapEdge.o: SwapEdge.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h Mesh.h \
@@ -330,30 +327,29 @@ Utils.o: Utils.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  Interpolation.h Vertex.h ../Common/Context.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
+  Interpolation.h ../Common/Context.h
 Metric.o: Metric.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h ../Geo/Geo.h \
   ../Geo/CAD.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Element.h \
   ../Mesh/Simplex.h ../Mesh/Face.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \
   ../Mesh/DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h Mesh.h \
-  Matrix.h Interpolation.h Vertex.h
+  ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Matrix.h \
+  Interpolation.h
 Nurbs.o: Nurbs.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h Nurbs.h Vertex.h Mesh.h Element.h \
   Simplex.h Face.h Edge.h ../Geo/ExtrudeParams.h DiscreteSurface.h \
   ../Common/VertexArray.h ../Common/SmoothNormals.h Metric.h Matrix.h \
-  ../Geo/Geo.h ../Geo/GeoUtils.h ../Mesh/Mesh.h Create.h ../Geo/CAD.h \
-  ../Mesh/Vertex.h
+  ../Geo/Geo.h ../Geo/GeoUtils.h Create.h ../Geo/CAD.h
 Interpolation.o: Interpolation.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h ../Geo/Geo.h \
   Nurbs.h Vertex.h Mesh.h Element.h Simplex.h Face.h Edge.h \
   ../Geo/ExtrudeParams.h DiscreteSurface.h ../Common/VertexArray.h \
-  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h ../Mesh/Mesh.h \
-  ../Mesh/Vertex.h Utils.h Interpolation.h
+  ../Common/SmoothNormals.h Metric.h Matrix.h ../Geo/CAD.h Utils.h \
+  Interpolation.h
 SecondOrder.o: SecondOrder.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Geo/Geo.h Mesh.h Vertex.h \
diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h
index 4fad9c9e536ea0ff630ba9a4c2ffe0a8b8e0f023..d2c1790a7548bdda211a104710222f6c0758d639 100644
--- a/Mesh/Mesh.h
+++ b/Mesh/Mesh.h
@@ -373,6 +373,7 @@ typedef struct{
   char functu[256], functv[256], functw[256];
   int Dirty; // flag to prevent any meshing
   DrawingColor Color;
+  SEGM_rep *theSegmRep;
 }Curve;
 
 typedef struct{
@@ -437,7 +438,7 @@ void mai3d(Mesh *M, int Asked);
 
 void Init_Mesh(Mesh *M);
 void Create_BgMesh(int i, double d, Mesh *m);
-void Print_Geo(Mesh *M, char *c, int discrete_surf=0);
+void Print_Geo(Mesh *M, char *c, int discrete_curves=0, int discrete_surf=0);
 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]);
@@ -463,6 +464,7 @@ int MeshCylindricalSurface(Surface *s);
 int MeshParametricSurface(Surface *s);
 int MeshEllipticSurface(Surface *sur);
 int MeshDiscreteSurface(Surface *sur);
+int MeshDiscreteCurve(Curve *c);
 
 int AlgorithmeMaillage2DAnisotropeModeJF(Surface *s);
 void Maillage_Automatique_VieuxCode(Surface *pS, Mesh *m, int ori);
@@ -500,6 +502,4 @@ void R_Maillage(Mesh *m, double *gamma, double *gammamax, double *gammamin);
 void Mesh_Quality(Mesh *m);
 void Print_Histogram(int *h);
 
-void POLY_rep_To_Mesh(POLY_rep *prep, Surface *s);
-
 #endif
diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp
index 9922f96738f6a95840fe444387db424e0d8399d2..b98e09b941f54409d5f62132e394f0a782d24eb9 100644
--- a/Mesh/SecondOrder.cpp
+++ b/Mesh/SecondOrder.cpp
@@ -1,4 +1,4 @@
-// $Id: SecondOrder.cpp,v 1.29 2005-01-01 19:35:31 geuzaine Exp $
+// $Id: SecondOrder.cpp,v 1.30 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -60,6 +60,9 @@ Vertex *onCurve(Vertex * v1, Vertex * v2)
   int ok1 = 1, ok2 = 1;
   double u1 = 0., u2 = 0.;
 
+  if(!THEC->beg || !THEC->end)
+    ok1 = ok2 = 0;
+
   if(List_Nbr(v1->ListCurves) == 1){
     u1 = v1->u;
   }
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 3918e18f56d6041e0dc536a69a4d2938d8d90101..f618c4145ec6158cdc6613b8a70557b29bcbdf4f 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -202,7 +202,7 @@
 
 #line 1 "Gmsh.y"
 
-// $Id: Gmsh.tab.cpp,v 1.232 2005-02-02 18:47:56 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.233 2005-02-20 06:36:54 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -294,7 +294,7 @@ typedef union {
 
 
 
-#define	YYFINAL		2411
+#define	YYFINAL		2430
 #define	YYFLAG		-32768
 #define	YYNTBASE	217
 
@@ -376,30 +376,31 @@ static const short yyprhs[] = {     0,
   1694,  1704,  1711,  1715,  1722,  1729,  1739,  1746,  1756,  1762,
   1771,  1780,  1792,  1799,  1809,  1819,  1829,  1837,  1846,  1859,
   1866,  1874,  1882,  1890,  1900,  1908,  1918,  1936,  1944,  1952,
-  1964,  1973,  1986,  1995,  2004,  2013,  2026,  2041,  2056,  2071,
-  2094,  2115,  2124,  2133,  2142,  2150,  2159,  2165,  2177,  2183,
-  2193,  2195,  2197,  2199,  2200,  2203,  2210,  2217,  2224,  2231,
-  2236,  2243,  2250,  2257,  2262,  2269,  2273,  2278,  2284,  2288,
-  2292,  2297,  2302,  2306,  2314,  2318,  2326,  2330,  2333,  2336,
-  2352,  2355,  2362,  2371,  2380,  2391,  2393,  2396,  2398,  2402,
-  2407,  2409,  2418,  2431,  2446,  2447,  2460,  2461,  2478,  2479,
-  2498,  2507,  2520,  2535,  2536,  2549,  2550,  2567,  2568,  2587,
-  2596,  2609,  2624,  2625,  2638,  2639,  2656,  2657,  2676,  2678,
-  2681,  2691,  2699,  2702,  2709,  2719,  2729,  2738,  2747,  2756,
-  2763,  2768,  2771,  2774,  2776,  2778,  2780,  2782,  2784,  2786,
-  2790,  2793,  2796,  2799,  2803,  2807,  2811,  2815,  2819,  2823,
-  2827,  2831,  2835,  2839,  2843,  2847,  2851,  2855,  2861,  2866,
-  2871,  2876,  2881,  2886,  2891,  2896,  2901,  2906,  2911,  2918,
-  2923,  2928,  2933,  2938,  2943,  2948,  2955,  2962,  2969,  2974,
-  2979,  2984,  2989,  2994,  2999,  3004,  3009,  3014,  3019,  3024,
-  3031,  3036,  3041,  3046,  3051,  3056,  3061,  3068,  3075,  3082,
-  3087,  3089,  3091,  3093,  3095,  3097,  3099,  3101,  3103,  3108,
-  3113,  3116,  3122,  3126,  3133,  3138,  3146,  3153,  3155,  3158,
-  3161,  3165,  3169,  3181,  3191,  3199,  3207,  3208,  3212,  3214,
-  3218,  3219,  3223,  3227,  3229,  3233,  3235,  3237,  3241,  3246,
-  3250,  3256,  3261,  3263,  3265,  3267,  3271,  3276,  3283,  3291,
-  3293,  3295,  3299,  3303,  3313,  3321,  3323,  3329,  3333,  3340,
-  3342,  3346,  3348,  3350,  3357,  3362,  3367,  3374,  3381
+  1964,  1976,  1988,  1997,  2010,  2019,  2028,  2037,  2050,  2065,
+  2080,  2095,  2118,  2139,  2148,  2157,  2166,  2174,  2183,  2189,
+  2201,  2207,  2217,  2219,  2221,  2223,  2224,  2227,  2234,  2241,
+  2248,  2255,  2260,  2267,  2274,  2281,  2286,  2293,  2297,  2302,
+  2308,  2312,  2316,  2321,  2326,  2330,  2338,  2342,  2350,  2354,
+  2357,  2360,  2376,  2379,  2386,  2395,  2404,  2415,  2417,  2420,
+  2422,  2426,  2431,  2433,  2442,  2455,  2470,  2471,  2484,  2485,
+  2502,  2503,  2522,  2531,  2544,  2559,  2560,  2573,  2574,  2591,
+  2592,  2611,  2620,  2633,  2648,  2649,  2662,  2663,  2680,  2681,
+  2700,  2702,  2705,  2715,  2723,  2726,  2733,  2743,  2753,  2762,
+  2771,  2780,  2787,  2792,  2795,  2798,  2800,  2802,  2804,  2806,
+  2808,  2810,  2814,  2817,  2820,  2823,  2827,  2831,  2835,  2839,
+  2843,  2847,  2851,  2855,  2859,  2863,  2867,  2871,  2875,  2879,
+  2885,  2890,  2895,  2900,  2905,  2910,  2915,  2920,  2925,  2930,
+  2935,  2942,  2947,  2952,  2957,  2962,  2967,  2972,  2979,  2986,
+  2993,  2998,  3003,  3008,  3013,  3018,  3023,  3028,  3033,  3038,
+  3043,  3048,  3055,  3060,  3065,  3070,  3075,  3080,  3085,  3092,
+  3099,  3106,  3111,  3113,  3115,  3117,  3119,  3121,  3123,  3125,
+  3127,  3132,  3137,  3140,  3146,  3150,  3157,  3162,  3170,  3177,
+  3179,  3182,  3185,  3189,  3193,  3205,  3215,  3223,  3231,  3232,
+  3236,  3238,  3242,  3243,  3247,  3251,  3253,  3257,  3259,  3261,
+  3265,  3270,  3274,  3280,  3285,  3287,  3289,  3291,  3295,  3300,
+  3307,  3315,  3317,  3319,  3323,  3327,  3337,  3345,  3347,  3353,
+  3357,  3364,  3366,  3370,  3372,  3374,  3381,  3386,  3391,  3398,
+  3405
 };
 
 static const short yyrhs[] = {   221,
@@ -599,149 +600,152 @@ static const short yyrhs[] = {   221,
    214,     5,   216,     6,     0,   106,   208,   340,   209,     7,
    348,     6,     0,   107,   208,   340,   209,     7,   348,     6,
      0,   108,   208,   340,   209,     7,   348,   112,   348,   109,
-   340,     6,     0,    43,    68,   208,   340,   209,     7,   348,
-     6,     0,    73,    43,   348,     7,   215,   340,   214,   340,
-   214,   340,   216,     6,     0,    56,    43,   208,   340,   209,
-     7,   348,     6,     0,    51,    44,   208,   340,   209,     7,
-   348,     6,     0,    52,    44,   208,   340,   209,     7,   348,
-     6,     0,   124,    44,   208,   340,   209,     7,   215,   340,
-   214,   348,   216,     6,     0,    61,    44,   208,   340,   209,
-     7,   215,   340,   214,   340,   216,   348,   348,     6,     0,
-    61,    44,   215,   340,   216,     7,   215,   340,   214,   340,
-   216,   348,   348,     6,     0,    53,    44,   208,   340,   209,
-     7,   208,   340,   214,   340,   209,   348,   348,     6,     0,
-   108,    44,   110,   111,   208,   340,   209,     7,   346,   112,
-   215,   348,   214,   348,   216,   109,   215,   340,   214,   340,
-   216,     6,     0,   108,    44,   208,   340,   209,     7,   346,
-   112,   215,   348,   214,   348,   216,   109,   215,   340,   214,
-   340,   216,     6,     0,    44,    68,   208,   340,   209,     7,
-   348,     6,     0,    56,    44,   208,   340,   209,     7,   348,
-     6,     0,    55,    46,   208,   340,   209,     7,   348,     6,
-     0,    46,   208,   340,   209,     7,   348,     6,     0,    56,
-    46,   208,   340,   209,     7,   348,     6,     0,    63,   342,
-   215,   317,   216,     0,    62,   215,   342,   214,   342,   214,
-   340,   216,   215,   317,   216,     0,    64,   342,   215,   317,
-   216,     0,    65,   215,   342,   214,   340,   216,   215,   317,
-   216,     0,   319,     0,   318,     0,   316,     0,     0,   318,
-   315,     0,   318,    40,   215,   350,   216,     6,     0,   318,
-    43,   215,   350,   216,     6,     0,   318,    44,   215,   350,
-   216,     6,     0,   318,    46,   215,   350,   216,     6,     0,
-    67,   215,   318,   216,     0,    67,     4,   210,   340,   211,
-     6,     0,    75,     4,   210,   340,   211,     6,     0,    76,
-     4,   210,   340,   211,     6,     0,    70,   215,   318,   216,
-     0,    70,     4,   210,   340,   211,     6,     0,    70,     4,
-     6,     0,    70,     4,     4,     6,     0,   113,   351,   215,
-   318,   216,     0,   125,   354,     6,     0,   126,   354,     6,
-     0,   125,   215,   318,   216,     0,   126,   215,   318,   216,
-     0,     4,   354,     6,     0,     4,     4,   210,   340,   211,
-   354,     6,     0,     4,   340,     6,     0,    60,   208,     4,
-   209,   212,     4,     6,     0,   105,     4,     6,     0,   120,
-     6,     0,    37,     6,     0,    37,   215,   340,   214,   340,
-   214,   340,   214,   340,   214,   340,   214,   340,   216,     6,
-     0,    38,     6,     0,   115,   208,   340,     8,   340,   209,
-     0,   115,   208,   340,     8,   340,     8,   340,   209,     0,
-   115,     4,   116,   215,   340,     8,   340,   216,     0,   115,
-     4,   116,   215,   340,     8,   340,     8,   340,   216,     0,
-   117,     0,   123,     4,     0,   121,     0,   122,     4,     6,
-     0,   118,   208,   340,   209,     0,   119,     0,    66,    40,
-   215,   340,   214,   342,   216,     6,     0,    66,    40,   215,
-   340,   214,   342,   214,   342,   214,   340,   216,     6,     0,
-    66,    40,   215,   340,   214,   342,   214,   342,   214,   342,
-   214,   340,   216,     6,     0,     0,    66,    40,   215,   340,
-   214,   342,   216,   326,   215,   335,   216,     6,     0,     0,
-    66,    40,   215,   340,   214,   342,   214,   342,   214,   340,
-   216,   327,   215,   335,   216,     6,     0,     0,    66,    40,
-   215,   340,   214,   342,   214,   342,   214,   342,   214,   340,
-   216,   328,   215,   335,   216,     6,     0,    66,    43,   215,
-   340,   214,   342,   216,     6,     0,    66,    43,   215,   340,
-   214,   342,   214,   342,   214,   340,   216,     6,     0,    66,
-    43,   215,   340,   214,   342,   214,   342,   214,   342,   214,
-   340,   216,     6,     0,     0,    66,    43,   215,   340,   214,
-   342,   216,   329,   215,   335,   216,     6,     0,     0,    66,
-    43,   215,   340,   214,   342,   214,   342,   214,   340,   216,
-   330,   215,   335,   216,     6,     0,     0,    66,    43,   215,
-   340,   214,   342,   214,   342,   214,   342,   214,   340,   216,
-   331,   215,   335,   216,     6,     0,    66,    44,   215,   340,
-   214,   342,   216,     6,     0,    66,    44,   215,   340,   214,
-   342,   214,   342,   214,   340,   216,     6,     0,    66,    44,
-   215,   340,   214,   342,   214,   342,   214,   342,   214,   340,
-   216,     6,     0,     0,    66,    44,   215,   340,   214,   342,
-   216,   332,   215,   335,   216,     6,     0,     0,    66,    44,
-   215,   340,   214,   342,   214,   342,   214,   340,   216,   333,
-   215,   335,   216,     6,     0,     0,    66,    44,   215,   340,
-   214,   342,   214,   342,   214,   342,   214,   340,   216,   334,
-   215,   335,   216,     6,     0,   336,     0,   335,   336,     0,
-    74,   215,   348,   214,   348,   214,   348,   216,     6,     0,
-    74,   215,   348,   214,   348,   216,     6,     0,    69,     6,
-     0,    54,    43,   348,     7,   340,     6,     0,    54,    43,
-   348,     7,   340,    57,    59,   340,     6,     0,    54,    43,
-   348,     7,   340,    57,    58,   340,     6,     0,    54,    44,
-   215,   340,   216,     7,   348,     6,     0,    50,    44,   215,
-   340,   216,     7,   348,     6,     0,    54,    46,   215,   340,
-   216,     7,   348,     6,     0,    69,    44,   348,     7,   340,
-     6,     0,    69,    44,   348,     6,     0,    71,     6,     0,
-    72,     6,     0,   134,     0,   135,     0,   136,     0,   137,
-     0,   138,     0,   341,     0,   208,   340,   209,     0,   198,
-   340,     0,   197,   340,     0,   203,   340,     0,   340,   198,
-   340,     0,   340,   197,   340,     0,   340,   199,   340,     0,
-   340,   200,   340,     0,   340,   201,   340,     0,   340,   207,
-   340,     0,   340,   193,   340,     0,   340,   195,   340,     0,
-   340,   194,   340,     0,   340,   196,   340,     0,   340,   190,
-   340,     0,   340,   191,   340,     0,   340,   189,   340,     0,
-   340,   188,   340,     0,   340,   187,   340,     8,   340,     0,
-    12,   208,   340,   209,     0,    13,   208,   340,   209,     0,
-    14,   208,   340,   209,     0,    15,   208,   340,   209,     0,
-    16,   208,   340,   209,     0,    17,   208,   340,   209,     0,
-    18,   208,   340,   209,     0,    19,   208,   340,   209,     0,
-    20,   208,   340,   209,     0,    22,   208,   340,   209,     0,
-    23,   208,   340,   214,   340,   209,     0,    24,   208,   340,
-   209,     0,    25,   208,   340,   209,     0,    26,   208,   340,
-   209,     0,    27,   208,   340,   209,     0,    28,   208,   340,
-   209,     0,    29,   208,   340,   209,     0,    30,   208,   340,
-   214,   340,   209,     0,    31,   208,   340,   214,   340,   209,
-     0,    32,   208,   340,   214,   340,   209,     0,    21,   208,
-   340,   209,     0,    12,   210,   340,   211,     0,    13,   210,
-   340,   211,     0,    14,   210,   340,   211,     0,    15,   210,
-   340,   211,     0,    16,   210,   340,   211,     0,    17,   210,
-   340,   211,     0,    18,   210,   340,   211,     0,    19,   210,
-   340,   211,     0,    20,   210,   340,   211,     0,    22,   210,
-   340,   211,     0,    23,   210,   340,   214,   340,   211,     0,
-    24,   210,   340,   211,     0,    25,   210,   340,   211,     0,
-    26,   210,   340,   211,     0,    27,   210,   340,   211,     0,
-    28,   210,   340,   211,     0,    29,   210,   340,   211,     0,
-    30,   210,   340,   214,   340,   211,     0,    31,   210,   340,
-   214,   340,   211,     0,    32,   210,   340,   214,   340,   211,
-     0,    21,   210,   340,   211,     0,     3,     0,     9,     0,
-    10,     0,    11,     0,   128,     0,   129,     0,   130,     0,
-     4,     0,     4,   210,   340,   211,     0,   213,     4,   210,
-   211,     0,     4,   313,     0,     4,   210,   340,   211,   313,
-     0,     4,   212,     4,     0,     4,   210,   340,   211,   212,
-     4,     0,     4,   212,     4,   313,     0,     4,   210,   340,
-   211,   212,     4,   313,     0,   127,   208,     5,   214,   340,
-   209,     0,   343,     0,   198,   342,     0,   197,   342,     0,
-   342,   198,   342,     0,   342,   197,   342,     0,   215,   340,
-   214,   340,   214,   340,   214,   340,   214,   340,   216,     0,
-   215,   340,   214,   340,   214,   340,   214,   340,   216,     0,
-   215,   340,   214,   340,   214,   340,   216,     0,   208,   340,
-   214,   340,   214,   340,   209,     0,     0,   208,   345,   209,
-     0,     5,     0,   345,   214,     5,     0,     0,   215,   347,
-   216,     0,   208,   347,   209,     0,   348,     0,   347,   214,
-   348,     0,   340,     0,   349,     0,   215,   350,   216,     0,
-   198,   215,   350,   216,     0,   340,     8,   340,     0,   340,
-     8,   340,     8,   340,     0,    40,   215,   340,   216,     0,
-   316,     0,   319,     0,   325,     0,     4,   210,   211,     0,
-   198,     4,   210,   211,     0,     4,   210,   215,   350,   216,
-   211,     0,   198,     4,   210,   215,   350,   216,   211,     0,
-   340,     0,   349,     0,   350,   214,   340,     0,   350,   214,
-   349,     0,   215,   340,   214,   340,   214,   340,   214,   340,
-   216,     0,   215,   340,   214,   340,   214,   340,   216,     0,
-     4,     0,     4,   212,   113,   212,     4,     0,   215,   353,
-   216,     0,     4,   210,   340,   211,   212,   114,     0,   351,
-     0,   353,   214,   351,     0,     5,     0,    39,     0,    35,
-   208,   354,   214,   354,   209,     0,    36,   208,   354,   209,
-     0,    34,   208,   354,   209,     0,    34,   208,   354,   214,
-   350,   209,     0,    34,   208,     4,   212,     4,   209,     0,
-    34,   208,     4,   210,   340,   211,   212,     4,   209,     0
+   340,     6,     0,    61,    43,   208,   340,   209,     7,   215,
+   340,   216,   348,     6,     0,    61,    43,   215,   340,   216,
+     7,   215,   340,   216,   348,     6,     0,    43,    68,   208,
+   340,   209,     7,   348,     6,     0,    73,    43,   348,     7,
+   215,   340,   214,   340,   214,   340,   216,     6,     0,    56,
+    43,   208,   340,   209,     7,   348,     6,     0,    51,    44,
+   208,   340,   209,     7,   348,     6,     0,    52,    44,   208,
+   340,   209,     7,   348,     6,     0,   124,    44,   208,   340,
+   209,     7,   215,   340,   214,   348,   216,     6,     0,    61,
+    44,   208,   340,   209,     7,   215,   340,   214,   340,   216,
+   348,   348,     6,     0,    61,    44,   215,   340,   216,     7,
+   215,   340,   214,   340,   216,   348,   348,     6,     0,    53,
+    44,   208,   340,   209,     7,   208,   340,   214,   340,   209,
+   348,   348,     6,     0,   108,    44,   110,   111,   208,   340,
+   209,     7,   346,   112,   215,   348,   214,   348,   216,   109,
+   215,   340,   214,   340,   216,     6,     0,   108,    44,   208,
+   340,   209,     7,   346,   112,   215,   348,   214,   348,   216,
+   109,   215,   340,   214,   340,   216,     6,     0,    44,    68,
+   208,   340,   209,     7,   348,     6,     0,    56,    44,   208,
+   340,   209,     7,   348,     6,     0,    55,    46,   208,   340,
+   209,     7,   348,     6,     0,    46,   208,   340,   209,     7,
+   348,     6,     0,    56,    46,   208,   340,   209,     7,   348,
+     6,     0,    63,   342,   215,   317,   216,     0,    62,   215,
+   342,   214,   342,   214,   340,   216,   215,   317,   216,     0,
+    64,   342,   215,   317,   216,     0,    65,   215,   342,   214,
+   340,   216,   215,   317,   216,     0,   319,     0,   318,     0,
+   316,     0,     0,   318,   315,     0,   318,    40,   215,   350,
+   216,     6,     0,   318,    43,   215,   350,   216,     6,     0,
+   318,    44,   215,   350,   216,     6,     0,   318,    46,   215,
+   350,   216,     6,     0,    67,   215,   318,   216,     0,    67,
+     4,   210,   340,   211,     6,     0,    75,     4,   210,   340,
+   211,     6,     0,    76,     4,   210,   340,   211,     6,     0,
+    70,   215,   318,   216,     0,    70,     4,   210,   340,   211,
+     6,     0,    70,     4,     6,     0,    70,     4,     4,     6,
+     0,   113,   351,   215,   318,   216,     0,   125,   354,     6,
+     0,   126,   354,     6,     0,   125,   215,   318,   216,     0,
+   126,   215,   318,   216,     0,     4,   354,     6,     0,     4,
+     4,   210,   340,   211,   354,     6,     0,     4,   340,     6,
+     0,    60,   208,     4,   209,   212,     4,     6,     0,   105,
+     4,     6,     0,   120,     6,     0,    37,     6,     0,    37,
+   215,   340,   214,   340,   214,   340,   214,   340,   214,   340,
+   214,   340,   216,     6,     0,    38,     6,     0,   115,   208,
+   340,     8,   340,   209,     0,   115,   208,   340,     8,   340,
+     8,   340,   209,     0,   115,     4,   116,   215,   340,     8,
+   340,   216,     0,   115,     4,   116,   215,   340,     8,   340,
+     8,   340,   216,     0,   117,     0,   123,     4,     0,   121,
+     0,   122,     4,     6,     0,   118,   208,   340,   209,     0,
+   119,     0,    66,    40,   215,   340,   214,   342,   216,     6,
+     0,    66,    40,   215,   340,   214,   342,   214,   342,   214,
+   340,   216,     6,     0,    66,    40,   215,   340,   214,   342,
+   214,   342,   214,   342,   214,   340,   216,     6,     0,     0,
+    66,    40,   215,   340,   214,   342,   216,   326,   215,   335,
+   216,     6,     0,     0,    66,    40,   215,   340,   214,   342,
+   214,   342,   214,   340,   216,   327,   215,   335,   216,     6,
+     0,     0,    66,    40,   215,   340,   214,   342,   214,   342,
+   214,   342,   214,   340,   216,   328,   215,   335,   216,     6,
+     0,    66,    43,   215,   340,   214,   342,   216,     6,     0,
+    66,    43,   215,   340,   214,   342,   214,   342,   214,   340,
+   216,     6,     0,    66,    43,   215,   340,   214,   342,   214,
+   342,   214,   342,   214,   340,   216,     6,     0,     0,    66,
+    43,   215,   340,   214,   342,   216,   329,   215,   335,   216,
+     6,     0,     0,    66,    43,   215,   340,   214,   342,   214,
+   342,   214,   340,   216,   330,   215,   335,   216,     6,     0,
+     0,    66,    43,   215,   340,   214,   342,   214,   342,   214,
+   342,   214,   340,   216,   331,   215,   335,   216,     6,     0,
+    66,    44,   215,   340,   214,   342,   216,     6,     0,    66,
+    44,   215,   340,   214,   342,   214,   342,   214,   340,   216,
+     6,     0,    66,    44,   215,   340,   214,   342,   214,   342,
+   214,   342,   214,   340,   216,     6,     0,     0,    66,    44,
+   215,   340,   214,   342,   216,   332,   215,   335,   216,     6,
+     0,     0,    66,    44,   215,   340,   214,   342,   214,   342,
+   214,   340,   216,   333,   215,   335,   216,     6,     0,     0,
+    66,    44,   215,   340,   214,   342,   214,   342,   214,   342,
+   214,   340,   216,   334,   215,   335,   216,     6,     0,   336,
+     0,   335,   336,     0,    74,   215,   348,   214,   348,   214,
+   348,   216,     6,     0,    74,   215,   348,   214,   348,   216,
+     6,     0,    69,     6,     0,    54,    43,   348,     7,   340,
+     6,     0,    54,    43,   348,     7,   340,    57,    59,   340,
+     6,     0,    54,    43,   348,     7,   340,    57,    58,   340,
+     6,     0,    54,    44,   215,   340,   216,     7,   348,     6,
+     0,    50,    44,   215,   340,   216,     7,   348,     6,     0,
+    54,    46,   215,   340,   216,     7,   348,     6,     0,    69,
+    44,   348,     7,   340,     6,     0,    69,    44,   348,     6,
+     0,    71,     6,     0,    72,     6,     0,   134,     0,   135,
+     0,   136,     0,   137,     0,   138,     0,   341,     0,   208,
+   340,   209,     0,   198,   340,     0,   197,   340,     0,   203,
+   340,     0,   340,   198,   340,     0,   340,   197,   340,     0,
+   340,   199,   340,     0,   340,   200,   340,     0,   340,   201,
+   340,     0,   340,   207,   340,     0,   340,   193,   340,     0,
+   340,   195,   340,     0,   340,   194,   340,     0,   340,   196,
+   340,     0,   340,   190,   340,     0,   340,   191,   340,     0,
+   340,   189,   340,     0,   340,   188,   340,     0,   340,   187,
+   340,     8,   340,     0,    12,   208,   340,   209,     0,    13,
+   208,   340,   209,     0,    14,   208,   340,   209,     0,    15,
+   208,   340,   209,     0,    16,   208,   340,   209,     0,    17,
+   208,   340,   209,     0,    18,   208,   340,   209,     0,    19,
+   208,   340,   209,     0,    20,   208,   340,   209,     0,    22,
+   208,   340,   209,     0,    23,   208,   340,   214,   340,   209,
+     0,    24,   208,   340,   209,     0,    25,   208,   340,   209,
+     0,    26,   208,   340,   209,     0,    27,   208,   340,   209,
+     0,    28,   208,   340,   209,     0,    29,   208,   340,   209,
+     0,    30,   208,   340,   214,   340,   209,     0,    31,   208,
+   340,   214,   340,   209,     0,    32,   208,   340,   214,   340,
+   209,     0,    21,   208,   340,   209,     0,    12,   210,   340,
+   211,     0,    13,   210,   340,   211,     0,    14,   210,   340,
+   211,     0,    15,   210,   340,   211,     0,    16,   210,   340,
+   211,     0,    17,   210,   340,   211,     0,    18,   210,   340,
+   211,     0,    19,   210,   340,   211,     0,    20,   210,   340,
+   211,     0,    22,   210,   340,   211,     0,    23,   210,   340,
+   214,   340,   211,     0,    24,   210,   340,   211,     0,    25,
+   210,   340,   211,     0,    26,   210,   340,   211,     0,    27,
+   210,   340,   211,     0,    28,   210,   340,   211,     0,    29,
+   210,   340,   211,     0,    30,   210,   340,   214,   340,   211,
+     0,    31,   210,   340,   214,   340,   211,     0,    32,   210,
+   340,   214,   340,   211,     0,    21,   210,   340,   211,     0,
+     3,     0,     9,     0,    10,     0,    11,     0,   128,     0,
+   129,     0,   130,     0,     4,     0,     4,   210,   340,   211,
+     0,   213,     4,   210,   211,     0,     4,   313,     0,     4,
+   210,   340,   211,   313,     0,     4,   212,     4,     0,     4,
+   210,   340,   211,   212,     4,     0,     4,   212,     4,   313,
+     0,     4,   210,   340,   211,   212,     4,   313,     0,   127,
+   208,     5,   214,   340,   209,     0,   343,     0,   198,   342,
+     0,   197,   342,     0,   342,   198,   342,     0,   342,   197,
+   342,     0,   215,   340,   214,   340,   214,   340,   214,   340,
+   214,   340,   216,     0,   215,   340,   214,   340,   214,   340,
+   214,   340,   216,     0,   215,   340,   214,   340,   214,   340,
+   216,     0,   208,   340,   214,   340,   214,   340,   209,     0,
+     0,   208,   345,   209,     0,     5,     0,   345,   214,     5,
+     0,     0,   215,   347,   216,     0,   208,   347,   209,     0,
+   348,     0,   347,   214,   348,     0,   340,     0,   349,     0,
+   215,   350,   216,     0,   198,   215,   350,   216,     0,   340,
+     8,   340,     0,   340,     8,   340,     8,   340,     0,    40,
+   215,   340,   216,     0,   316,     0,   319,     0,   325,     0,
+     4,   210,   211,     0,   198,     4,   210,   211,     0,     4,
+   210,   215,   350,   216,   211,     0,   198,     4,   210,   215,
+   350,   216,   211,     0,   340,     0,   349,     0,   350,   214,
+   340,     0,   350,   214,   349,     0,   215,   340,   214,   340,
+   214,   340,   214,   340,   216,     0,   215,   340,   214,   340,
+   214,   340,   216,     0,     4,     0,     4,   212,   113,   212,
+     4,     0,   215,   353,   216,     0,     4,   210,   340,   211,
+   212,   114,     0,   351,     0,   353,   214,   351,     0,     5,
+     0,    39,     0,    35,   208,   354,   214,   354,   209,     0,
+    36,   208,   354,   209,     0,    34,   208,   354,   209,     0,
+    34,   208,   354,   214,   350,   209,     0,    34,   208,     4,
+   212,     4,   209,     0,    34,   208,     4,   210,   340,   211,
+   212,     4,   209,     0
 };
 
 #endif
@@ -773,30 +777,31 @@ static const short yyrline[] = { 0,
   1339,  1393,  1410,  1421,  1440,  1454,  1471,  1497,  1524,  1538,
   1555,  1569,  1586,  1606,  1629,  1639,  1654,  1674,  1690,  1709,
   1728,  1746,  1764,  1782,  1808,  1826,  1852,  1872,  1896,  1920,
-  1946,  1963,  1981,  2000,  2019,  2058,  2083,  2103,  2122,  2139,
-  2158,  2177,  2193,  2213,  2230,  2247,  2267,  2273,  2278,  2283,
-  2290,  2292,  2293,  2296,  2301,  2305,  2321,  2337,  2353,  2373,
-  2388,  2394,  2400,  2411,  2421,  2431,  2441,  2459,  2473,  2482,
-  2488,  2499,  2512,  2557,  2572,  2588,  2598,  2609,  2613,  2617,
-  2621,  2632,  2649,  2665,  2691,  2718,  2750,  2757,  2762,  2768,
-  2772,  2780,  2799,  2815,  2831,  2836,  2852,  2857,  2873,  2878,
-  2896,  2919,  2942,  2965,  2970,  2993,  2998,  3021,  3026,  3052,
-  3075,  3098,  3121,  3126,  3149,  3155,  3178,  3184,  3209,  3213,
-  3218,  3245,  3269,  3277,  3296,  3314,  3332,  3359,  3385,  3411,
-  3425,  3443,  3448,  3457,  3459,  3460,  3461,  3462,  3465,  3467,
-  3468,  3469,  3470,  3471,  3472,  3473,  3474,  3481,  3482,  3483,
-  3484,  3485,  3486,  3487,  3488,  3489,  3490,  3491,  3492,  3493,
-  3494,  3495,  3496,  3497,  3498,  3499,  3500,  3501,  3502,  3503,
-  3504,  3505,  3506,  3507,  3508,  3509,  3510,  3511,  3512,  3514,
+  1946,  1963,  1979,  1996,  2014,  2033,  2052,  2091,  2116,  2136,
+  2155,  2172,  2191,  2210,  2226,  2246,  2263,  2280,  2300,  2306,
+  2311,  2316,  2323,  2325,  2326,  2329,  2334,  2338,  2354,  2370,
+  2386,  2406,  2421,  2427,  2433,  2444,  2454,  2464,  2474,  2492,
+  2506,  2515,  2521,  2532,  2545,  2590,  2605,  2621,  2631,  2642,
+  2646,  2650,  2654,  2665,  2682,  2698,  2724,  2751,  2783,  2790,
+  2795,  2801,  2805,  2813,  2832,  2848,  2864,  2869,  2885,  2890,
+  2906,  2911,  2929,  2952,  2975,  2998,  3003,  3026,  3031,  3054,
+  3059,  3085,  3108,  3131,  3154,  3159,  3182,  3188,  3211,  3217,
+  3242,  3246,  3251,  3278,  3302,  3310,  3329,  3347,  3365,  3392,
+  3418,  3444,  3458,  3476,  3481,  3490,  3492,  3493,  3494,  3495,
+  3498,  3500,  3501,  3502,  3503,  3504,  3505,  3506,  3507,  3514,
   3515,  3516,  3517,  3518,  3519,  3520,  3521,  3522,  3523,  3524,
   3525,  3526,  3527,  3528,  3529,  3530,  3531,  3532,  3533,  3534,
-  3539,  3544,  3545,  3546,  3547,  3548,  3549,  3553,  3566,  3586,
-  3600,  3613,  3636,  3654,  3672,  3690,  3708,  3715,  3720,  3724,
-  3728,  3732,  3738,  3743,  3747,  3751,  3757,  3761,  3766,  3770,
-  3775,  3779,  3783,  3789,  3795,  3802,  3808,  3812,  3816,  3827,
-  3834,  3845,  3865,  3875,  3885,  3897,  3914,  3933,  3957,  3985,
-  3991,  3995,  3999,  4011,  4016,  4028,  4035,  4056,  4061,  4075,
-  4081,  4087,  4092,  4100,  4108,  4122,  4126,  4145,  4161
+  3535,  3536,  3537,  3538,  3539,  3540,  3541,  3542,  3543,  3544,
+  3545,  3547,  3548,  3549,  3550,  3551,  3552,  3553,  3554,  3555,
+  3556,  3557,  3558,  3559,  3560,  3561,  3562,  3563,  3564,  3565,
+  3566,  3567,  3572,  3577,  3578,  3579,  3580,  3581,  3582,  3586,
+  3599,  3619,  3633,  3646,  3669,  3687,  3705,  3723,  3741,  3748,
+  3753,  3757,  3761,  3765,  3771,  3776,  3780,  3784,  3790,  3794,
+  3799,  3803,  3808,  3812,  3816,  3822,  3828,  3835,  3841,  3845,
+  3849,  3860,  3867,  3878,  3898,  3908,  3918,  3930,  3947,  3966,
+  3990,  4018,  4024,  4028,  4032,  4044,  4049,  4061,  4068,  4089,
+  4094,  4108,  4114,  4120,  4125,  4133,  4141,  4155,  4159,  4178,
+  4194
 };
 #endif
 
@@ -889,29 +894,30 @@ static const short yyr1[] = {     0,
    314,   314,   314,   314,   314,   314,   315,   315,   315,   315,
    315,   315,   315,   315,   315,   315,   315,   315,   315,   315,
    315,   315,   315,   315,   315,   315,   315,   315,   315,   315,
-   315,   315,   315,   315,   315,   315,   316,   316,   316,   316,
-   317,   317,   317,   318,   318,   318,   318,   318,   318,   319,
-   319,   319,   319,   320,   320,   320,   320,   321,   322,   322,
-   322,   322,   323,   323,   323,   323,   323,   323,   323,   323,
-   323,   324,   324,   324,   324,   324,   324,   324,   324,   324,
-   324,   325,   325,   325,   326,   325,   327,   325,   328,   325,
-   325,   325,   325,   329,   325,   330,   325,   331,   325,   325,
-   325,   325,   332,   325,   333,   325,   334,   325,   335,   335,
-   336,   336,   336,   337,   337,   337,   337,   337,   337,   337,
-   337,   338,   338,   339,   339,   339,   339,   339,   340,   340,
+   315,   315,   315,   315,   315,   315,   315,   315,   316,   316,
+   316,   316,   317,   317,   317,   318,   318,   318,   318,   318,
+   318,   319,   319,   319,   319,   320,   320,   320,   320,   321,
+   322,   322,   322,   322,   323,   323,   323,   323,   323,   323,
+   323,   323,   323,   324,   324,   324,   324,   324,   324,   324,
+   324,   324,   324,   325,   325,   325,   326,   325,   327,   325,
+   328,   325,   325,   325,   325,   329,   325,   330,   325,   331,
+   325,   325,   325,   325,   332,   325,   333,   325,   334,   325,
+   335,   335,   336,   336,   336,   337,   337,   337,   337,   337,
+   337,   337,   337,   338,   338,   339,   339,   339,   339,   339,
    340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
    340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
    340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
    340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
    340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
    340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
-   341,   341,   341,   341,   341,   341,   341,   341,   341,   341,
-   341,   341,   341,   341,   341,   341,   341,   342,   342,   342,
-   342,   342,   343,   343,   343,   343,   344,   344,   345,   345,
-   346,   346,   346,   347,   347,   348,   348,   348,   348,   349,
-   349,   349,   349,   349,   349,   349,   349,   349,   349,   350,
-   350,   350,   350,   351,   351,   351,   351,   352,   352,   353,
-   353,   354,   354,   354,   354,   354,   354,   354,   354
+   340,   340,   341,   341,   341,   341,   341,   341,   341,   341,
+   341,   341,   341,   341,   341,   341,   341,   341,   341,   342,
+   342,   342,   342,   342,   343,   343,   343,   343,   344,   344,
+   345,   345,   346,   346,   346,   347,   347,   348,   348,   348,
+   348,   349,   349,   349,   349,   349,   349,   349,   349,   349,
+   349,   350,   350,   350,   350,   351,   351,   351,   351,   352,
+   352,   353,   353,   354,   354,   354,   354,   354,   354,   354,
+   354
 };
 
 static const short yyr2[] = {     0,
@@ -940,30 +946,31 @@ static const short yyr2[] = {     0,
      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,    14,    14,    14,    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,     6,     6,     9
+    11,    11,     8,    12,     8,     8,     8,    12,    14,    14,
+    14,    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,     6,     6,
+     9
 };
 
 static const short yydefact[] = {     0,
@@ -973,509 +980,511 @@ static const short yydefact[] = {     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,   306,     0,   311,     0,   308,     0,     0,
+     0,     0,     0,   308,     0,   313,     0,   310,     0,     0,
      0,     0,     0,    56,    58,    57,    59,    60,    61,    62,
     63,    64,    65,    70,    69,    66,    67,    68,     0,     0,
-    17,    18,    20,    19,    21,   447,   447,     0,   421,   428,
-   482,   212,   422,   423,   424,     0,     0,     0,     0,     0,
+    17,    18,    20,    19,    21,   449,   449,     0,   423,   430,
+   484,   212,   424,   425,   426,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   483,
-     0,   425,   426,   427,   213,   214,   215,   216,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   485,
+     0,   427,   428,   429,   213,   214,   215,   216,     0,     0,
      0,   217,   218,     0,     0,     0,     0,     0,     0,     0,
-   359,     0,     0,   299,     0,   301,     0,     0,     0,     0,
+   361,     0,     0,   301,     0,   303,     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,   438,     0,     0,     0,
-     0,     0,     0,   274,     0,     0,   274,   352,   353,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   476,     0,
-     0,     0,     0,     0,   298,     0,   307,     0,   482,   274,
-     0,   274,     0,     5,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   440,     0,     0,
+     0,     0,     0,     0,   276,     0,     0,   276,   354,   355,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   478,
+     0,     0,     0,     0,     0,   300,     0,   309,     0,   484,
+   276,     0,   276,     0,     5,     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,   431,     0,    75,     0,     0,     0,     0,     0,
+     0,     0,     0,   433,     0,    75,     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,   428,   362,   361,   363,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   223,   295,     0,     0,     0,     0,
+     0,     0,   430,   364,   363,   365,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   223,   297,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   293,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   428,     0,     0,     0,   463,   464,   465,   456,
-     0,   457,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   440,
-   439,     0,     0,     0,     0,   274,   274,     0,     0,     0,
-     0,     0,     0,     0,     0,   286,     0,     0,     0,     0,
-     0,     0,   297,     0,     0,     0,     0,     0,     0,     0,
-   274,     0,     0,     0,   309,     0,     0,   289,     0,   290,
-     6,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   295,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   430,     0,     0,     0,   465,   466,   467,
+   458,     0,   459,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   442,   441,     0,     0,     0,     0,   276,   276,
+     0,     0,     0,     0,     0,     0,     0,     0,   288,     0,
+     0,     0,     0,     0,     0,   299,     0,     0,     0,     0,
+     0,     0,     0,   276,     0,     0,     0,   311,     0,     0,
+   291,     0,   292,     6,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   449,     0,     0,     0,     0,     0,   433,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   451,     0,     0,     0,     0,
+     0,   435,     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,   360,
-     0,     0,   470,   471,     0,     0,   212,     0,     0,     0,
-     0,     0,   219,     0,   377,   376,   374,   375,   370,   372,
-   371,   373,   365,   364,   366,   367,   368,   369,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   428,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   362,     0,     0,   472,   473,     0,     0,   212,
+     0,     0,     0,     0,     0,   219,     0,   379,   378,   376,
+   377,   372,   374,   373,   375,   367,   366,   368,   369,   370,
+   371,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   430,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   442,   441,   273,     0,   272,
-   271,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   280,   275,   351,     0,   287,     0,   284,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   310,     0,   291,   292,     0,     0,     0,     0,
+   444,   443,   275,     0,   274,   273,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   282,   277,   353,     0,
+   289,     0,   286,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   312,     0,   293,
+   294,     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,   448,     0,     0,
-    23,     0,   429,   435,    75,     0,     0,     0,     0,     0,
+     0,     0,   450,     0,     0,    23,     0,   431,   437,    75,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    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,   379,   400,   380,   401,   381,   402,   382,   403,
-   383,   404,   384,   405,   385,   406,   386,   407,   387,   408,
-   399,   420,   388,   409,     0,     0,   390,   411,   391,   412,
-   392,   413,   393,   414,   394,   415,   395,   416,     0,     0,
-     0,     0,     0,     0,     0,     0,   486,     0,     0,   485,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   229,     0,     0,     0,     0,   430,     0,    71,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   466,     0,
-     0,     0,     0,   458,   460,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   267,   269,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    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,   381,   402,   382,
+   403,   383,   404,   384,   405,   385,   406,   386,   407,   387,
+   408,   388,   409,   389,   410,   401,   422,   390,   411,     0,
+     0,   392,   413,   393,   414,   394,   415,   395,   416,   396,
+   417,   397,   418,     0,     0,     0,     0,     0,     0,     0,
+     0,   488,     0,     0,   487,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   229,     0,     0,     0,     0,
+   432,     0,    71,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   468,     0,     0,     0,     0,   460,   462,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   288,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   269,   271,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   290,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   450,     0,   447,     0,   432,     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,    73,
+     0,   452,     0,   449,     0,   434,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   429,   222,   472,   473,     0,     0,     0,
-     0,     0,   224,   225,   227,     0,     0,   480,     0,   233,
-   378,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   462,   467,     0,   459,     0,   240,     0,     0,
-     0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   281,     0,     0,     0,     0,   350,   285,     0,
-     0,   282,   283,     0,     0,     0,   451,     0,   477,     0,
-     0,     0,   302,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    73,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   354,   355,
-   356,   357,   358,     0,     0,     0,     0,     0,     0,     0,
-    22,     0,   434,   294,     0,     0,     0,     0,     0,     0,
+   431,   222,   474,   475,     0,     0,     0,     0,     0,   224,
+   225,   227,     0,     0,   482,     0,   233,   380,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   464,
+   469,     0,   461,     0,   240,     0,     0,     0,     0,     0,
+   346,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   283,     0,     0,     0,     0,   352,   287,     0,     0,
+   284,   285,     0,     0,     0,   453,     0,   479,     0,     0,
+     0,   304,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   454,     0,   209,   389,   410,   396,   417,   397,
-   418,   398,   419,     0,   488,   487,   484,   437,     0,   212,
-     0,     0,     0,     0,   220,     0,     0,     0,   478,    72,
-     0,   237,   243,     0,   245,     0,     0,   241,     0,   242,
-   265,     0,     0,   461,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
-     0,     0,     0,     0,     0,   274,     0,   315,     0,   324,
-     0,   333,     0,     0,     0,     0,     0,     0,   248,   249,
+     0,     0,     0,     0,     0,     0,     0,   356,   357,   358,
+   359,   360,     0,     0,     0,     0,     0,     0,     0,    22,
+     0,   436,   296,     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,   456,     0,   209,   391,   412,   398,   419,   399,   420,
+   400,   421,     0,   490,   489,   486,   439,     0,   212,     0,
+     0,     0,     0,   220,     0,     0,     0,   480,    72,     0,
+   237,   243,     0,   245,     0,     0,   241,     0,   242,   267,
+     0,     0,   463,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   298,     0,     0,
+     0,     0,     0,     0,     0,     0,   276,     0,   317,     0,
+   326,     0,   335,     0,     0,     0,     0,     0,     0,   248,
+   249,     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,
-   447,   436,    74,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   449,   438,    74,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   230,     0,     0,
-   231,     0,   481,     0,     0,     0,   251,   262,   468,     0,
-     0,   348,   254,   255,     0,     0,     0,   347,   349,   264,
-   238,   253,   263,   266,     0,     0,     0,     0,     0,   446,
-     0,   445,     0,     0,   312,     0,     0,   321,     0,     0,
-   330,     0,   276,   277,   278,   279,     0,     0,   451,     0,
-     0,     0,     0,     0,   475,     0,   304,   303,     0,     0,
-     0,     0,     0,    25,     0,    34,     0,    38,     0,    32,
-     0,     0,    37,     0,    42,    40,     0,     0,     0,     0,
-     0,     0,    49,     0,     0,     0,     0,     0,    54,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   230,     0,
+     0,   231,     0,   483,     0,     0,     0,   253,   264,   470,
+     0,     0,   350,   256,   257,     0,     0,     0,   349,   351,
+   266,   238,   255,   265,   268,     0,     0,     0,     0,     0,
+     0,     0,   448,     0,   447,     0,     0,   314,     0,     0,
+   323,     0,     0,   332,     0,   278,   279,   280,   281,     0,
+     0,   453,     0,     0,     0,     0,     0,   477,     0,   306,
+   305,     0,     0,     0,     0,     0,    25,     0,    34,     0,
+    38,     0,    32,     0,     0,    37,     0,    42,    40,     0,
+     0,     0,     0,     0,     0,    49,     0,     0,     0,     0,
+     0,    54,     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,   455,     0,   210,
-   211,     0,   221,   226,   228,     0,   234,     0,     0,   244,
-   246,   469,     0,     0,   346,   345,   235,   236,     0,     0,
-   274,     0,   270,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   453,   452,     0,     0,     0,     0,     0,     0,
-     0,   451,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   457,     0,   210,   211,     0,   221,   226,   228,     0,   234,
+     0,     0,   244,   246,   471,     0,     0,   348,   347,   235,
+   236,     0,     0,     0,     0,   276,     0,   272,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   455,   454,     0,
+     0,     0,     0,     0,     0,     0,   453,     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,   489,
-     0,   479,     0,     0,     0,     0,     0,     0,     0,   444,
-     0,     0,     0,     0,     0,     0,     0,     0,   339,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   474,   305,     0,     0,    39,     0,     0,     0,     0,    29,
-     0,    35,     0,    41,    30,    43,     0,    46,     0,    50,
-    51,     0,     0,    53,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   491,     0,   481,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   446,     0,     0,     0,
+     0,     0,     0,     0,     0,   341,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   476,   307,     0,
+     0,    39,     0,     0,     0,     0,    29,     0,    35,     0,
+    41,    30,    43,     0,    46,     0,    50,    51,     0,     0,
+    53,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   232,     0,     0,     0,     0,     0,   268,
-     0,     0,   317,     0,   343,     0,     0,   340,   326,     0,
-     0,   335,     0,     0,     0,     0,     0,     0,   250,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   106,   110,   114,     0,     0,     0,     0,
+   232,     0,     0,     0,   251,   252,     0,     0,   270,     0,
+     0,   319,     0,   345,     0,     0,   342,   328,     0,     0,
+   337,     0,     0,     0,     0,     0,     0,   250,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   202,     0,   208,
-     0,     0,     0,     0,     0,   443,   313,     0,     0,     0,
-   316,   322,     0,     0,   325,   331,     0,     0,   334,   239,
-   252,     0,     0,   256,     0,     0,     0,     0,     0,    33,
-    36,    44,     0,    45,    52,    47,     0,     0,     0,     0,
+     0,     0,   106,   110,   114,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   202,     0,   208,     0,
+     0,     0,     0,     0,   445,   315,     0,     0,     0,   318,
+   324,     0,     0,   327,   333,     0,     0,   336,   239,   254,
+     0,     0,   258,     0,     0,     0,     0,     0,    33,    36,
+    44,     0,    45,    52,    47,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   319,
-     0,     0,   328,     0,   337,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   321,     0,
+     0,   330,     0,   339,     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,   206,
-     0,     0,   259,   257,   258,     0,   314,     0,     0,     0,
-   323,     0,     0,   332,     0,     0,     0,     0,     0,     0,
-    28,    31,     0,     0,     0,   104,     0,   108,     0,   112,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   206,     0,
+     0,   261,   259,   260,     0,   316,     0,     0,     0,   325,
+     0,     0,   334,     0,     0,     0,     0,     0,     0,    28,
+    31,     0,     0,     0,   104,     0,   108,     0,   112,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   200,     0,   300,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   200,     0,   302,     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,   318,     0,     0,   342,   327,     0,   336,     0,
-     0,     0,     0,     0,     0,    48,    24,   105,   107,   109,
-   111,   113,   115,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   201,   203,     0,   204,   247,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   118,   122,
-   126,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   320,     0,     0,   344,   329,     0,   338,     0,     0,
+     0,     0,     0,     0,    48,    24,   105,   107,   109,   111,
+   113,   115,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   320,   341,   329,   338,     0,     0,     0,     0,     0,
+     0,     0,     0,   201,   203,     0,   204,   247,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   118,   122,   126,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   205,   207,     0,     0,     0,     0,     0,     0,     0,
+   322,   343,   331,   340,     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,
-   261,    10,     0,     0,     0,   116,     0,   120,     0,   124,
+   205,   207,     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,   263,
+    10,     0,     0,     0,   116,     0,   120,     0,   124,     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,   260,     0,    26,   117,   119,
-   121,   123,   125,   127,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   130,   134,   138,     0,     0,     0,     0,
+     0,     0,     0,     0,   262,     0,    26,   117,   119,   121,
+   123,   125,   127,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   130,   134,   138,     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,   128,     0,   132,     0,   136,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   128,     0,   132,     0,   136,     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,   129,   131,   133,   135,   137,   139,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   142,   146,   150,   154,
-   158,   162,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    27,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   129,   131,   133,   135,   137,   139,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   142,   146,   150,   154,   158,
+   162,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   140,     0,   144,     0,   148,     0,   152,
-     0,   156,     0,   160,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   140,     0,   144,     0,   148,     0,   152,     0,
+   156,     0,   160,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   141,   143,   145,   147,   149,   151,
-   153,   155,   157,   159,   161,   163,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   190,   194,   198,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   141,   143,   145,   147,   149,   151,   153,
+   155,   157,   159,   161,   163,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   188,
-     0,   192,     0,   196,     0,     0,     0,     0,     0,     0,
+   190,   194,   198,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   189,   191,   193,   195,   197,   199,     0,     0,
-     0,   178,   182,   186,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   188,     0,
+   192,     0,   196,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   176,     0,   180,     0,   184,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   177,   179,   181,
-   183,   185,   187,     0,     0,     0,     0,     0,     0,     0,
+     0,   189,   191,   193,   195,   197,   199,     0,     0,     0,
+   178,   182,   186,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   176,
+     0,   180,     0,   184,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   177,   179,   181,   183,
+   185,   187,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   166,   170,   174,     0,     0,     0,     0,     0,     0,
-     0,   164,     0,   168,     0,   172,     0,     0,     0,     0,
-     0,     0,   165,   167,   169,   171,   173,   175,     0,     0,
-     0
+   166,   170,   174,     0,     0,     0,     0,     0,     0,     0,
+   164,     0,   168,     0,   172,     0,     0,     0,     0,     0,
+     0,   165,   167,   169,   171,   173,   175,     0,     0,     0
 };
 
-static const short yydefgoto[] = {  2409,
-   226,     2,     9,     3,    19,    20,    21,    22,     4,    74,
-    75,    76,   461,  1725,   685,  1628,  1727,   686,  1629,  1729,
-   687,  1630,  1945,   688,  1891,  1947,   689,  1892,  1949,   690,
-  1893,  2081,   691,  2043,  2083,   692,  2044,  2085,   693,  2045,
-  2193,   694,  2163,  2195,   695,  2164,  2197,   696,  2165,  2199,
-   697,  2166,  2201,   698,  2167,  2203,   699,  2168,  2391,   700,
-  2385,  2393,   701,  2386,  2395,   702,  2387,  2340,   703,  2328,
-  2342,   704,  2329,  2344,   705,  2330,  2289,   706,  2271,  2291,
-   707,  2272,  2293,   708,  2273,  1752,   709,  1652,  1847,   710,
-  1754,   711,  1074,   712,   148,   263,    77,   593,   357,   579,
-   580,   358,    81,    82,    83,    84,    85,   359,  1266,  1598,
-  1708,  1269,  1603,  1712,  1272,  1607,  1715,  1458,  1459,    87,
-    88,  1034,   360,   151,   380,   187,   258,   454,  1154,  1072,
-  1073,   362,   515,   211,   775,   939,   152
+static const short yydefgoto[] = {  2428,
+   227,     2,     9,     3,    19,    20,    21,    22,     4,    74,
+    75,    76,   464,  1744,   690,  1647,  1746,   691,  1648,  1748,
+   692,  1649,  1964,   693,  1910,  1966,   694,  1911,  1968,   695,
+  1912,  2100,   696,  2062,  2102,   697,  2063,  2104,   698,  2064,
+  2212,   699,  2182,  2214,   700,  2183,  2216,   701,  2184,  2218,
+   702,  2185,  2220,   703,  2186,  2222,   704,  2187,  2410,   705,
+  2404,  2412,   706,  2405,  2414,   707,  2406,  2359,   708,  2347,
+  2361,   709,  2348,  2363,   710,  2349,  2308,   711,  2290,  2310,
+   712,  2291,  2312,   713,  2292,  1771,   714,  1671,  1866,   715,
+  1773,   716,  1083,   717,   148,   264,    77,   598,   358,   584,
+   585,   359,    81,    82,    83,    84,    85,   360,  1279,  1617,
+  1727,  1282,  1622,  1731,  1285,  1626,  1734,  1475,  1476,    87,
+    88,  1043,   361,   151,   383,   188,   259,   457,  1165,  1081,
+  1082,   363,   518,   212,   780,   946,   152
 };
 
-static const short yypact[] = {  3205,
-    82,   220,   318,  3551,-32768,-32768,-32768,   -55,-32768,   120,
-   136,   139,   142,   148,   206,   -29,    80,    86,-32768,-32768,
--32768,-32768,  2669,    93,    18,   215,   116,   145,   165,   -39,
-   158,   175,   178,   249,   207,   357,   375,   409,   417,   539,
-   435,   476,   257,   444,   278,   -84,   -84,   291,   510,    10,
-   455,    12,   503,   515,    61,   553,   559,   574,   382,   383,
-   -10,    13,    29,-32768,   390,-32768,   550,-32768,   610,   614,
-   579,    17,    76,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    20,  3406,
--32768,-32768,-32768,-32768,-32768,   465,   465,   619,-32768,   208,
-    15,-32768,-32768,-32768,-32768,  -134,     3,   112,   252,   284,
-   295,   321,   401,   402,   419,   453,   454,   475,   479,   483,
-   484,   487,   488,   491,   494,   499,   495,   502,   525,-32768,
-   528,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2972,  2972,
-  2972,-32768,-32768,  2972,  1295,    33,   662,  2972,   702,   481,
--32768,   705,   748,-32768,  2972,-32768,  2972,  2972,  2972,   575,
-  2972,   581,  2972,  2972,  1024,  2972,   567,   591,   611,   650,
-  1024,   590,   593,   677,   684,   701,   704,   722,   743,  -126,
-   -84,   -84,   -84,  2972,  2972,  -118,-32768,   -78,   -84,   594,
-   603,   607,   703,-32768,  1024,    26,-32768,-32768,-32768,  1024,
-  1024,   732,   765,   946,  2972,  2972,   -37,  2972,   747,  2972,
-   761,   876,  2972,  2972,-32768,   995,-32768,   795,-32768,-32768,
-  1013,-32768,  1014,-32768,  1019,    20,   815,   818,   821,   823,
-   824,   849,   850,   851,   852,   854,   855,   857,   858,   859,
-   861,   862,   863,   864,   865,   866,   867,   868,   869,   870,
-   871,   872,   873,   874,   875,   877,  1087,   879,   885,   887,
-  2972,  1098,-32768,   -84,-32768,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,    94,   121,   121,
-  1099,   292,   896,   896,   896,  2376,  1103,  2703,  2821,   152,
-   893,  1104,   902,   700,-32768,-32768,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,-32768,   -70,  1871,  2593,  3196, 11624,  2972, 11647,  2972,
- 11670, 11693,   354,   891,  1677,  2703,-32768,-32768,-32768,   817,
-  1106,-32768, 11716,  2972,  2972,  2972,  2972,  1107,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,   906,  2972,  2972,   131,-32768,
--32768,  3903,  3925,   -84,   -84,   448,   448,   161,  2972,  2972,
-  2972,  2972,  2068,   193,  1110,-32768,  2972,  2495,  1111,  1112,
-  2972,  2972,-32768, 11739, 11762,  1006,  2972, 11785,  1007,  3947,
--32768,   907,  1628, 11808,-32768,  2972,  3024,-32768,  3292,-32768,
--32768,    20,  1116,  1118,  1121,  1122,  1123,  1124,  1125,  1126,
-  1127,  1128,  1129,  1130,  1132,  1136,  1137,  1138,  1139,  1140,
-  1141,  1142,  1143,  1145,  1150,   992,  1156,  1157,  1159,  1160,
-  1163,  1164,-32768,   163,  1165,  1162,  1192, 10899,   126,   -34,
-   749, 11831, 10924, 11854, 10949, 11877, 10974, 11900, 10999, 11923,
- 11024, 11946, 11049, 11969, 11074, 11992, 11099, 12015, 11124, 12038,
- 11149, 12061, 11174,  3969,  3991, 12084, 11199, 12107, 11224, 12130,
- 11249, 12153, 11274, 12176, 11299, 12199, 11324,  4013,  4035,  4057,
-  4079,  4101,  4123,   474,   171,   984,   991,   987,  2972,-32768,
-  1024,  3031,   817,-32768,   -38,    11,   121,  2972,  1196,  1199,
-    16,   993,-32768,  1670,   235,   209,   348,   348,   370,   370,
-   370,   370,   380,   380,   896,   896,   896,   896,  1200,  2703,
-  2972,  1198,  1201,  1202, 12222,  1203, 12245,  1205,  1206,  2402,
-  2972,   416,  2703,   500,  2972,  2972,  1207,  1524, 12268, 12291,
- 12314,  2972,  2946,  3025, 12337, 12360, 12383, 12406, 12429,  1003,
- 12452,  3098,   -84,  2972,  2972,-32768,-32768,-32768,  1000,  2763,
--32768,  1004,  2972,  4145,  4167,  4189, 11349,  -123,   -41,   -47,
-   -35,-32768,-32768,-32768,  2972,-32768, 11374,-32768,  1008,  1009,
- 11399, 11424,  1212,  1218,   999, 12475,  1219,  1016,  2972,  3366,
-  2972,  2972,-32768, 12498,-32768,-32768,  1050,  1017,  1020,  1021,
-  1022,  1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,  1034,
-  1035,  1037,  1038,  1039,  1040,  1044,  1045,  1048,  1056,  1067,
-  1068,  1069,  1072,  1073,  1074,  1075,  1076,-32768,  1225,  1055,
--32768,  1077,    30,-32768,-32768,  1025,  1084,  1086,  1088,  1089,
-  1092,  1093,  1094,  1095,  1120,  1131,  1134,  1135,  1144,  1146,
-  1148,  1151,  1152,  1153,  1154,  1158,  1161,  1166,  1168,  1169,
-  1170,  1080,  1114,  1324,-32768,-32768,-32768,-32768,-32768,-32768,
+static const short yypact[] = {  3345,
+    45,   363,   287,  3590,-32768,-32768,-32768,  -135,-32768,    67,
+    99,   105,   113,   123,   179,  -122,   -50,    30,-32768,-32768,
+-32768,-32768,  2770,    83,    16,   206,   122,   129,   132,   -28,
+   155,   167,   178,   149,   182,   176,   255,   371,   374,   624,
+   389,   457,   259,   388,   260,  -120,  -120,   266,   519,     4,
+   455,     9,   502,   513,    80,   535,   542,   560,   314,   365,
+   -15,    11,    17,-32768,   368,-32768,   586,-32768,   581,   599,
+   570,    14,    20,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    15,  3154,
+-32768,-32768,-32768,-32768,-32768,   417,   417,   652,-32768,   322,
+    12,-32768,-32768,-32768,-32768,  -140,  -123,    -7,    87,   152,
+   239,   350,   362,   376,   416,   432,   437,   461,   483,   484,
+   514,   517,   518,   534,   537,   540,   467,   473,   496,-32768,
+   521,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  3131,  3131,
+  3131,-32768,-32768,  3131,   831,    37,   716,  3131,   732,   489,
+-32768,   733,   725,-32768,  3131,-32768,  3131,  3131,  3131,   543,
+  3131,   548,  3131,  3131,  2423,  3131,   545,   549,   574,   582,
+  2423,   590,   591,   604,   608,   613,   620,   621,   828,   -66,
+   -56,  -120,  -120,  -120,  3131,  3131,  -117,-32768,   -70,  -120,
+   618,   649,   650,   707,-32768,  2423,    22,-32768,-32768,-32768,
+  2423,  2423,   710,   727,   943,  3131,  3131,   -64,  3131,   744,
+  3131,   755,   868,  3131,  3131,-32768,   984,-32768,   800,-32768,
+-32768,  1003,-32768,  1004,-32768,  1008,    15,   806,   807,   808,
+   809,   810,   811,   812,   813,   814,   815,   816,   817,   819,
+   823,   824,   825,   829,   832,   833,   837,   839,   840,   846,
+   856,   863,   864,   865,   866,   867,   876,  1031,   799,   885,
+   883,  3131,  1094,-32768,  -120,-32768,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,    68,    74,
+    74,  1095,   378,   894,   894,   894,  1276,  1096,  3003, 10962,
+   180,   890,  1101,   899,   512,-32768,-32768,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,-32768,   -53,  1890, 11712, 11735, 11758,  3131, 11781,
+  3131, 11804, 11827,   434,   897,  2551,  3003,-32768,-32768,-32768,
+   892,  1106,-32768, 11850,  3131,  3131,  3131,  3131,  1107,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,   906,  3131,  3131,  3131,
+  3131,  -114,-32768,-32768,  2623,  3988,  -120,  -120,   504,   504,
+   -83,  3131,  3131,  3131,  3131,  1776,   449,  1115,-32768,  3131,
+  2087,  1116,  1117,  3131,  3131,-32768, 11873, 11896,  1011,  3131,
+ 11919,  1012,  4010,-32768,   911,  1299, 11942,-32768,  3131,  3383,
+-32768,  3432,-32768,-32768,    15,  1122,  1123,  1124,  1125,  1126,
+  1127,  1128,  1129,  1132,  1133,  1134,  1135,  1136,  1137,  1138,
+  1139,  1140,  1141,  1143,  1144,  1146,  1148,  1149,   989,  1152,
+  1153,  1154,  1156,  1159,  1158,-32768,   -33,  1160,  1165,  1161,
+ 10987,   324,   -51,  2640, 11965, 11012, 11988, 11037, 12011, 11062,
+ 12034, 11087, 12057, 11112, 12080, 11137, 12103, 11162, 12126, 11187,
+ 12149, 11212, 12172, 11237, 12195, 11262,  4032,  4054, 12218, 11287,
+ 12241, 11312, 12264, 11337, 12287, 11362, 12310, 11387, 12333, 11412,
+  4076,  4098,  4120,  4142,  4164,  4186,   -55,   118,   950,   963,
+   959,  3131,-32768,  2423,  3161,   892,-32768,   280,   117,    74,
+  3131,  1169,  1172,    13,   966,-32768,  1423,   354,   316,   436,
+   436,  -108,  -108,  -108,  -108,   192,   192,   894,   894,   894,
+   894,  1173,  3003,  3131,  1174,  1201,  1202, 12356,  1204, 12379,
+  1205,  1206,  1311,  3131,   511,  3003,   538,  3131,  3131,  1207,
+  1608, 12402, 12425, 12448,  3131,  2397,  2893, 12471, 12494, 12517,
+ 12540, 12563,   968, 12586,  3030, 12609,  3076,  -120,  3131,  3131,
+-32768,-32768,-32768,   999,  1896,-32768,  1000,  3131,  4208,  4230,
+  4252, 11437,   -36,   -48,   -37,   -13,-32768,-32768,-32768,  3131,
+-32768, 11462,-32768,  1002,  1005, 11487, 11512,  1211,  1212,  1013,
+ 12632,  1216,  1027,  3131,  3502,  3131,  3131,-32768, 12655,-32768,
+-32768,  1061,  1028,  1029,  1047,  1048,  1049,  1050,  1051,  1054,
+  1055,  1056,  1057,  1068,  1097,  1099,  1102,  1103,  1104,  1130,
+  1131,  1142,  1145,  1150,  1151,  1155,  1157,  1162,  1163,  1166,
+  1167,  1168,-32768,  1236,  1036,-32768,  1170,   134,-32768,-32768,
+  1065,  1067,  1100,  1111,  1171,  1175,  1177,  1178,  1181,  1185,
+  1188,  1189,  1190,  1191,  1193,  1194,  1196,  1224,  1225,  1226,
+  1228,  1234,  1245,  1270,  1271,  1272,  1229,  1266,  1303,-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,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  2972,  2972,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  1327,-32768,  2703,   121,-32768,
-  2972, 11449,  1326,  2703,  1133,    39,  2972,  1328,  1329,   728,
--32768,  1330,  1155,    13,  1332,-32768,  2972,-32768,   213,  4211,
-   -84,  1024,  1024,  1338,  1024,  1341,  1024,  1024,-32768,  2703,
-  3247,  2432,   501,-32768,  1730,   750,  1149,  1342,  1343,  1360,
-  1361,   443,  1363,  1364,  1372,  1374,  1375,  1376,  1377,  1382,
-  1380,  1409,   173,  4233,  4255,-32768,-32768,  3288,   -84,   -84,
-   -84,  1383,  2703,  2703,  2703,  2703,   773,  1412,  2972,  2972,
-  1413,  1421,  1024,  1024,  2972,  1429,  1024,  1472,  4277,-32768,
-  1786,   458,  1470,  1298,  1333,  2972,  2972,   -84,  1476,  1477,
-  1283,  1480,  1481,  1024,  1024,  1483,   -84,  1484,  1485,  1024,
-  1024,  1486,  1487,  1488,  1491,  1492,  1024,   400,  1024,  1493,
-  1494,  1495,  1498,  1499,-32768,  1501,   465,  1500,-32768,  1503,
-  3432,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  1024,  2972,-32768,
- 12521, 11474, 12544, 11499, 12567, 11524, 12590, 11549, 11574,  1288,
-   241,  1296, 12613,   -54,-32768,   817,-32768,    24,   177,  1300,
-  1506,  1078,-32768,-32768,-32768,    13,  2972,-32768,   504,-32768,
-  1259,  1508,  2972,    22,    42,    43,  1024,  1509,  1024,  1510,
-  1512,   505,-32768,-32768,  2703,-32768,  2972,-32768,  2972,  1024,
-  1024,  1024,  1311,-32768,   281,  1024,  1024,  1024,  1024,  1024,
-  1024,  1024,   519,  1321,  1322,  2972,  2972,  2972,  1350,  -114,
-  -111,  -107,-32768,   508,   509,   523,   526,-32768,-32768,  4299,
-  4321,-32768,-32768,  1520,  1533, 12636,     9,  1221,-32768,  2972,
-  2972,  2972,-32768,  1352,  1367,  1355,  4343,  4365,   -32,  1356,
-  1362,  1358,  1365,  1366,  1369,  1368,  1370,   167,  1371,  1378,
-  1379,  1399,  1400,  1401,  1402,  1403,  1405,  1381,-32768,-32768,
--32768,-32768,-32768,  1406,  1407,  1408,  1410,  1414,  1384,  1415,
--32768,  1417,   126,-32768,  1570,  4387,  4409,  4431,  4453,  4475,
-  4497,  4519,  4541,  4563,  4585,  4607,  4629,  4651,  4673,  4695,
-  4717,  4739,  4761,  4783,  4805,  4827,  4849,  4871,  4893,  4915,
-  4937,   529,-32768,   532,  1259,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1422,-32768,-32768,-32768,-32768,  1024,   121,
-  2972,  1573,  1577,    16,-32768,  1580, 11599,    13,-32768,-32768,
-  4959,-32768,-32768,   -84,-32768,   -84,  1583,-32768,  1585,-32768,
--32768,  1385,   536,  1259,  4981,  1586,  1588,  1617,  2972,  2972,
-  2972,  1619,  1620,  1629,  1632,  1633,  1634,  1635,-32768,  2909,
-  2972,  2972,  3444, 12659,   597,   448,   -84,  1636,   -84,  1637,
-   -84,  1638,  1639,  1640,  1641,  1642,  2972,  2972,-32768,-32768,
-  1576,  1024,  1024,  1537,  1024,  2308,   406, 12682,  2972,    20,
-  1647,  2972,  1024,  1645,  1673,  1671,  1511,  1676,   400,  1678,
-  1682,  2972,  1710,  1724,  1722,  1723,  1731,   400,  2972,  2972,
-  2972,  1024,  1727,  1732,   400,  2972,  1733,  1734,  1735,  2972,
-   465,-32768,-32768,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  1024,
-  1464,  2972,  1736,  1740,  1739,  1741,  1244,-32768,  1743,  1742,
--32768,  1527,-32768,  2972,    89,   102,-32768,-32768,-32768,  1535,
-  2972,-32768,-32768,-32768,  5003,  1274,  1334,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  1411,  1746,  5025,  5047,  1539,-32768,
-  2972,-32768,  1565,   240,-32768,  1578,   242,-32768,  1582,   261,
--32768,  1584,-32768,-32768,-32768,-32768,  5069,  5091,     9,   243,
-   541,  1587,  1683,  2972,-32768,  2972,-32768,-32768,  5113,    20,
-  1591,  5135,  1581,-32768,  1594,-32768,  1595,-32768,  1592,-32768,
-  1599, 12705,-32768,  1606,-32768,-32768,  1621,  1624, 12728,  5157,
- 12751,  1622,-32768,  1625,  1653,  5179,  1623,  1663,-32768,  5201,
-  1659,  5223,  5245,  5267,  5289,  5311,  5333,  5355,  5377,  5399,
-  5421,  5443,  5465,  5487,  5509,  5531,  5553,  5575,  5597,  5619,
-  5641,  5663,  5685,  5707,  5729,  5751,  5773,-32768,  1024,  1259,
--32768,  1667,-32768,-32768,-32768,    13,-32768,  1684,  5795,-32768,
--32768,-32768,  5817,  2972,-32768,-32768,-32768,-32768,  2972,  2972,
-   448,  2557,-32768,  2462,   101,  2462,   101,  2462,   101,  2972,
-  2972,  1679,-32768,-32768,  1024,  2972,  3491,  3515,  1024,    20,
-  1797,     9,   400,  1835,  2972,  1872,   400,  1873,  1878,  1876,
-  1877,  1880,  2972,  1881,  1024,  1883,  1887,  2972,  1891,  1889,
-  2972,  1879,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,   544,-32768,
-  1916,-32768,  2972,  1927, 12774,  3539,  3563,  1717,  2972,-32768,
-  2462,  2462,  2972,  3587,   266,  1928,  1720,   -30,-32768,  3611,
-   287,   -28,  3635,   293,   -27,  3659,  3683,  1721,  1725,  1589,
--32768,-32768,  1726,  1762,-32768,  1738,  1764,  1774,  5839,-32768,
-  1737,-32768,  1745,-32768,-32768,-32768, 12797,-32768,  1775,-32768,
--32768, 12820,  1781,-32768, 12843,  1777, 12866, 12889, 12912,  5861,
-  5883,  5905,  5927,  5949,  5971,  5993,  6015,  6037,  6059,  6081,
-  6103,  6125,  6147,  6169,  6191,  6213,  6235,  6257,  6279,  6301,
- 12935,  6323,  1934,-32768,  6345,  1778,  1024,  1024,  1024,-32768,
-  3707,  3875,  1935,  2972,-32768,  1024,  1938,-32768,  1939,  2972,
-  1941,  1942,  2972,  1944,  1988,  1989,  1024,  1024,-32768,  1990,
-    20,   400,   400,   400,   400,  1991,  1992,  1993,   400,  1994,
-  1995,  1996,  1998,-32768,-32768,-32768,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,-32768,  2972,-32768,
-  2972,  2014,  1024,  1024,  1024,-32768,-32768,  1805,  3731,  1807,
--32768,-32768,  1808,  3755,-32768,-32768,  1809,  3779,-32768,-32768,
--32768,  1811,  1806,-32768,    20,  1812,  1813,  1819,  1820,-32768,
--32768,-32768,  1816,-32768,-32768,-32768,  1817,  1818,  1821,  1822,
-  6367,  6389,  6411,  6433,  6455,  6477,  6499,  6521,  6543,  6565,
-  6587,  6609,  6631,  6653,  6675,  6697,  6719,  6741,  6763,  6785,
-  6807,  1823, 12958,  3803,  1843,  2026,  2028,  2029,   101,  2057,
-  1024,   101,  2067,   101,  2069,  1024,  1965,    20,   400,   400,
-  2070,  2071,   400,  2074,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,   121,-32768,
-  2075,  2078,-32768,-32768,-32768,   -24,-32768,  1886,   545,   -15,
--32768,  1888,   -14,-32768,  1890,  1900,  1892,  1926,  1904,  1908,
--32768,-32768,  1895,  1897,   548,  1259,   549,  1259,   552,  1259,
-  6829,  6851,  6873,  6895,  6917,  6939,  6961,  6983,  7005,  7027,
-  7049,  7071,  7093,  7115,  7137,  7159,  7181,  7203,  7225,  7247,
-  7269,   556,-32768,  1910,-32768,  1911,  2120,   101,  1024,  2122,
-  2133,   101,  2134,   101,  2033,  2972,    20,   400,  1024,  2137,
-  2138,  2972,  2139,  2972,  2140,  2972,  2141,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,   121,  2142,
-   121,  2143,-32768,   -12,  1936,-32768,-32768,   -11,-32768,    -2,
-  1955,  7291,    20,  1937,  1940,-32768,-32768,  1259,-32768,  1259,
--32768,  1259,-32768, 12981, 13004, 13027,  7313,  7335,  7357,  7379,
-  7401,  7423,  7445,  7467,  7489,  7511,  7533,  7555,  7577,  7599,
-  7621,  7643,  7665,  7687,-32768,-32768,   557,-32768,-32768,  2144,
-  2147,  2165,  2166,  2972,  2972,    20,   400,  1024,-32768,-32768,
--32768,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,   121,
-  2167,-32768,-32768,-32768,-32768,  7709,  3827,  1997,  1963,  1966,
-  1964,  1967,  1968,  7731,  7753,  7775,  7797,  7819,  7841,  7863,
-  7885,  7907,  7929,  7951,  7973,  7995,  8017,  8039,  8061,  8083,
-  8105,-32768,-32768,  2972,  2175,  2002,  1024,   400,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  3851,
--32768,-32768,  1971,  1977,   560,  1259,   561,  1259,   564,  1259,
-  8127,  8149,  8171,  8193,  8215,  8237,  8259,  8281,  8303,  8325,
-  8347,  8369,  8391,  8413,  8435,  8457,  8479,  8501,  2181,  1024,
-  2182,  2972,  2183,  2972,  2184,  2972,  2188,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,-32768,  1982,-32768,  1259,-32768,
-  1259,-32768,  1259,-32768, 13050, 13073, 13096,  8523,  8545,  8567,
-  8589,  8611,  8633,  8655,  8677,  8699,  8721,  8743,  8765,  8787,
-  8809,  8831,  1024,-32768,-32768,-32768,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  1984,  1985,  1987,  2001,  8853,  8875,  8897,  8919,  8941,
-  8963,  8985,  9007,  9029,  9051,  9073,  9095,  9117,  9139,  9161,
-  1024,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  1999,
-   600,  1259,   601,  1259,   640,  1259,  9183,  9205,  9227,  9249,
-  9271,  9293,  9315,  9337,  9359,  9381,  9403,  9425,  9447,  9469,
-  9491,   400,  2972,  2206,  2972,  2212,  2972,  2215,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2013,  1259,-32768,  1259,-32768,  1259,-32768,
- 13119, 13142, 13165, 13188, 13211, 13234,  9513,  9535,  9557,  9579,
-  9601,  9623,  9645,  9667,  9689,  2217,-32768,-32768,-32768,-32768,
--32768,-32768,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,-32768,  2009,  2010,  2011,  2012,  2015,  2016,  9711,  9733,
-  9755,  9777,  9799,  9821,  9843,  9865,  9887,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,   641,  1259,   688,  1259,   689,  1259,   694,  1259,
-   717,  1259,   742,  1259,  9909,  9931,  9953,  9975,  9997, 10019,
- 10041, 10063, 10085,  2972,  2222,  2972,  2223,  2972,  2226,  2972,
-  2233,  2972,  2234,  2972,  2235,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972,  2972,  2972,  1259,-32768,  1259,-32768,  1259,-32768,
-  1259,-32768,  1259,-32768,  1259,-32768, 10107, 10129, 10151, 10173,
- 10195, 10217, 13257, 13280, 13303,  2972,  2972,  2972,  2972,  2972,
-  2972,-32768,-32768,-32768, 10239, 10261, 10283, 10305, 10327, 10349,
-  2027,  2030,  2031,  2972,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2972, 10371, 10393, 10415, 10437, 10459, 10481,   767,  1259,
-   768,  1259,   771,  1259,  2972,  2972,  2972,  2972,  2972,  2972,
-  2972,  2237,  2972,  2238,  2972,  2241, 10503, 10525, 10547, 13326,
- 13349, 13372,  1259,-32768,  1259,-32768,  1259,-32768,  2972,  2972,
-  2972,-32768,-32768,-32768, 10569, 10591, 10613,  2034,  2035,  2045,
-  2972,  2972,  2972,  2972,  2972,  2972, 10635, 10657, 10679,   774,
-  1259,   775,  1259,   779,  1259,  2972,  2972,  2972,  2972,  2242,
-  2972,  2255,  2972,  2256, 10701, 10723, 10745,  1259,-32768,  1259,
--32768,  1259,-32768,  2972,  2972,  2972, 10767, 10789, 10811,  2972,
-  2972,  2972, 10833, 10855, 10877,  2972,  2972,  2972, 13395, 13418,
- 13441,-32768,-32768,-32768,  2048,  2049,  2052,  2972,  2972,  2972,
-   782,  1259,   783,  1259,   786,  1259,  2972,  2262,  2972,  2264,
-  2972,  2265,  1259,-32768,  1259,-32768,  1259,-32768,  2279,  2281,
--32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  3131,
+  3131,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  1306,-32768,  3003,    74,-32768,  3131, 11537,  1340,  3003,  1147,
+    40,  3131,  1341,  1342,   708,-32768,  1343,  1164,    11,  1345,
+-32768,  3131,-32768,   127,  4274,  -120,  2423,  2423,  1350,  2423,
+  1353,  2423,  2423,-32768,  3003,  3389,  2500,   539,-32768,  1517,
+   735,  1267,  1356,  1360,  1368,  1477,   411,  1484,  1495,  1496,
+  1497,  1498,  1500,  1503,  1348,  1504,  1505,  1506,  1508,   -32,
+  4296,  4318,-32768,-32768,  3483,  -120,  -120,  -120,  1510,  3003,
+  3003,  3003,  3003,   778,  1511,  3131,  3131,  1512,  1514,  2423,
+  2423,  3131,  1516,  2423,  1523,  4340,-32768,  1532,   465,  1521,
+  1349,  1346,  3131,  3131,  -120,  1518,  1528,  1333,  1530,  1531,
+  2423,  2423,  1534,  -120,  1535,  1538,  2423,  2423,  1539,  1540,
+  1541,  1542,  1543,  2423,   485,  2423,  1544,  1545,  1546,  1549,
+  1550,-32768,  1529,   417,  1551,-32768,  1552,  2788,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  2423,  3131,-32768, 12678, 11562, 12701,
+ 11587, 12724, 11612, 12747, 11637, 11662,  1339,   145,  1347, 12770,
+   249,-32768,   892,-32768,    31,   286,  1337,  1553,   805,-32768,
+-32768,-32768,    11,  3131,-32768,   547,-32768,  1401,  1555,  3131,
+    36,    55,    61,  2423,  1556,  2423,  1578,  1580,   550,-32768,
+-32768,  3003,-32768,  3131,-32768,  3131,  2423,  2423,  2423,  1351,
+-32768,   639,  2423,  2423,  2423,  2423,  2423,  2423,  2423,   589,
+  1378,  1388,  1389,  1390,  3131,  3131,  3131,  1391,    -8,   230,
+   236,-32768,   551,   554,   555,   559,-32768,-32768,  4362,  4384,
+-32768,-32768,  1601,  1619, 12793,   116,  1445,-32768,  3131,  3131,
+  3131,-32768,  1411,  1451,  1414,  4406,  4428,     1,  1418,  1425,
+  1421,  1427,  1424,  1428,  1429,  1430,   170,  1433,  1432,  1439,
+  1436,  1437,  1438,  1440,  1441,  1442,  1448,-32768,-32768,-32768,
+-32768,-32768,  1446,  1447,  1449,  1450,  1452,  1453,  1454,-32768,
+  1455,   324,-32768,  1633,  4450,  4472,  4494,  4516,  4538,  4560,
+  4582,  4604,  4626,  4648,  4670,  4692,  4714,  4736,  4758,  4780,
+  4802,  4824,  4846,  4868,  4890,  4912,  4934,  4956,  4978,  5000,
+   562,-32768,   563,  1401,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  1458,-32768,-32768,-32768,-32768,  2423,    74,  3131,
+  1636,  1654,    13,-32768,  1653, 11687,    11,-32768,-32768,  5022,
+-32768,-32768,  -120,-32768,  -120,  1659,-32768,  1661,-32768,-32768,
+  1485,   567,  1401,  5044,  1689,  1691,  1692,  3131,  3131,  3131,
+  1694,  1695,  1696,  1697,  1728,  1729,  1730,-32768,  2909,  3131,
+  3131,  3131,  3131,  3532, 12816,   862,   504,  -120,  1731,  -120,
+  1732,  -120,  1734,  1735,  1737,  1738,  1739,  3131,  3131,-32768,
+-32768,  1740,  2423,  2423,  1634,  2423,  1698,   213, 12839,  3131,
+    15,  1745,  3131,  2423,  1744,  1749,  1747,  1557,  1748,   485,
+  1751,  1752,  3131,  1753,  1755,  1754,  1757,  1758,   485,  3131,
+  3131,  3131,  2423,  1759,  1761,   485,  3131,  1763,  1764,  1765,
+  3131,   417,-32768,-32768,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  2423,  1554,  3131,  1767,  1796,  1804,  1805,  1037,-32768,  1806,
+  1808,-32768,  1600,-32768,  3131,    39,    91,-32768,-32768,-32768,
+  1615,  3131,-32768,-32768,-32768,  5066,  1059,  1090,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,  1105,  1827,  3556,  3580,  5088,
+  5110,  1620,-32768,  3131,-32768,  1618,   191,-32768,  1621,   265,
+-32768,  1623,   268,-32768,  1624,-32768,-32768,-32768,-32768,  5132,
+  5154,   116,   164,   571,  1625,  1733,  3131,-32768,  3131,-32768,
+-32768,  5176,    15,  1632,  5198,  1629,-32768,  1630,-32768,  1631,
+-32768,  1637,-32768,  1638, 12862,-32768,  1639,-32768,-32768,  1645,
+  1646, 12885,  5220, 12908,  1642,-32768,  1648,  1667,  5242,  1663,
+  1669,-32768,  5264,  1665,  5286,  5308,  5330,  5352,  5374,  5396,
+  5418,  5440,  5462,  5484,  5506,  5528,  5550,  5572,  5594,  5616,
+  5638,  5660,  5682,  5704,  5726,  5748,  5770,  5792,  5814,  5836,
+-32768,  2423,  1401,-32768,  1671,-32768,-32768,-32768,    11,-32768,
+  1787,  5858,-32768,-32768,-32768,  5880,  3131,-32768,-32768,-32768,
+-32768,  2423,  2423,  3131,  3131,   504,  2277,-32768,  2642,   352,
+  2642,   352,  2642,   352,  3131,  3131,  1736,-32768,-32768,  2423,
+  3131,  3604,  3628,  2423,    15,  1841,   116,   485,  1878,  3131,
+  1884,   485,  1897,  1899,  1898,  1900,  1901,  3131,  1902,  2423,
+  1903,  1905,  3131,  1910,  1938,  3131,  1941,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,   572,-32768,  1944,-32768,  3131,  1948, 12931,
+  1949,  1950,  3652,  3676,  1743,  3131,-32768,  2642,  2642,  3131,
+  3700,   279,  1954,  1746,   -42,-32768,  3724,   290,   -39,  3748,
+   327,   -22,  3772,  3796,  1750,  1779,  1261,-32768,-32768,  1778,
+  1786,-32768,  1781,  1782,  1783,  5902,-32768,  1762,-32768,  1789,
+-32768,-32768,-32768, 12954,-32768,  1785,-32768,-32768, 12977,  1791,
+-32768, 13000,  1792, 13023, 13046, 13069,  5924,  5946,  5968,  5990,
+  6012,  6034,  6056,  6078,  6100,  6122,  6144,  6166,  6188,  6210,
+  6232,  6254,  6276,  6298,  6320,  6342,  6364, 13092,  6386,  1957,
+-32768,  6408,  1793,  2423,-32768,-32768,  2423,  2423,-32768,  3820,
+  2495,  1958,  3131,-32768,  2423,  1960,-32768,  1961,  3131,  1967,
+  1995,  3131,  1999,  2002,  2003,  2423,  2423,-32768,  2004,    15,
+   485,   485,   485,   485,  2005,  2006,  2007,   485,  2008,  2009,
+  2010,  2012,-32768,-32768,-32768,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,-32768,  3131,-32768,  3131,
+  2013,  2423,  2423,  2423,-32768,-32768,  1807,  3844,  1824,-32768,
+-32768,  1825,  3868,-32768,-32768,  1826,  3892,-32768,-32768,-32768,
+  1828,  1803,-32768,    15,  1829,  1830,  1812,  1836,-32768,-32768,
+-32768,  1832,-32768,-32768,-32768,  1833,  1834,  1835,  1837,  6430,
+  6452,  6474,  6496,  6518,  6540,  6562,  6584,  6606,  6628,  6650,
+  6672,  6694,  6716,  6738,  6760,  6782,  6804,  6826,  6848,  6870,
+  1838, 13115,  3916,  1840,  2033,  2042,  2045,   352,  2049,  2423,
+   352,  2050,   352,  2051,  2423,  1845,    15,   485,   485,  2070,
+  2076,   485,  2088,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,    74,-32768,  2086,
+  2089,-32768,-32768,-32768,   -12,-32768,  1880,   575,   -11,-32768,
+  1881,    -9,-32768,  1883,  1886,  1885,  1945,  1906,  1908,-32768,
+-32768,  1914,  1915,   579,  1401,   580,  1401,   583,  1401,  6892,
+  6914,  6936,  6958,  6980,  7002,  7024,  7046,  7068,  7090,  7112,
+  7134,  7156,  7178,  7200,  7222,  7244,  7266,  7288,  7310,  7332,
+   584,-32768,  1911,-32768,  1909,  2129,   352,  2423,  2131,  2135,
+   352,  2138,   352,  2036,  3131,    15,   485,  2423,  2140,  2141,
+  3131,  2152,  3131,  2153,  3131,  2155,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,    74,  2156,    74,
+  2157,-32768,    -5,  1951,-32768,-32768,     2,-32768,    27,  1953,
+  7354,    15,  1952,  1955,-32768,-32768,  1401,-32768,  1401,-32768,
+  1401,-32768, 13138, 13161, 13184,  7376,  7398,  7420,  7442,  7464,
+  7486,  7508,  7530,  7552,  7574,  7596,  7618,  7640,  7662,  7684,
+  7706,  7728,  7750,-32768,-32768,   587,-32768,-32768,  2158,  2159,
+  2164,  2165,  3131,  3131,    15,   485,  2423,-32768,-32768,-32768,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,    74,  2166,
+-32768,-32768,-32768,-32768,  7772,  3940,  1992,  1975,  1976,  1977,
+  1981,  1982,  7794,  7816,  7838,  7860,  7882,  7904,  7926,  7948,
+  7970,  7992,  8014,  8036,  8058,  8080,  8102,  8124,  8146,  8168,
+-32768,-32768,  3131,  2185,  2016,  2423,   485,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3964,-32768,
+-32768,  1985,  1991,   588,  1401,   601,  1401,   606,  1401,  8190,
+  8212,  8234,  8256,  8278,  8300,  8322,  8344,  8366,  8388,  8410,
+  8432,  8454,  8476,  8498,  8520,  8542,  8564,  2195,  2423,  2196,
+  3131,  2197,  3131,  2198,  3131,  2199,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,-32768,  1993,-32768,  1401,-32768,  1401,
+-32768,  1401,-32768, 13207, 13230, 13253,  8586,  8608,  8630,  8652,
+  8674,  8696,  8718,  8740,  8762,  8784,  8806,  8828,  8850,  8872,
+  8894,  2423,-32768,-32768,-32768,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  1994,  1998,  2000,  2018,  8916,  8938,  8960,  8982,  9004,  9026,
+  9048,  9070,  9092,  9114,  9136,  9158,  9180,  9202,  9224,  2423,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  2021,   610,
+  1401,   611,  1401,   622,  1401,  9246,  9268,  9290,  9312,  9334,
+  9356,  9378,  9400,  9422,  9444,  9466,  9488,  9510,  9532,  9554,
+   485,  3131,  2200,  3131,  2203,  3131,  2211,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  2029,  1401,-32768,  1401,-32768,  1401,-32768, 13276,
+ 13299, 13322, 13345, 13368, 13391,  9576,  9598,  9620,  9642,  9664,
+  9686,  9708,  9730,  9752,  2213,-32768,-32768,-32768,-32768,-32768,
+-32768,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+-32768,  2024,  2025,  2026,  2027,  2028,  2030,  9774,  9796,  9818,
+  9840,  9862,  9884,  9906,  9928,  9950,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,   623,  1401,   678,  1401,   696,  1401,   697,  1401,   702,
+  1401,   724,  1401,  9972,  9994, 10016, 10038, 10060, 10082, 10104,
+ 10126, 10148,  3131,  2215,  3131,  2238,  3131,  2240,  3131,  2241,
+  3131,  2242,  3131,  2243,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131,  3131,  3131,  1401,-32768,  1401,-32768,  1401,-32768,  1401,
+-32768,  1401,-32768,  1401,-32768, 10170, 10192, 10214, 10236, 10258,
+ 10280, 13414, 13437, 13460,  3131,  3131,  3131,  3131,  3131,  3131,
+-32768,-32768,-32768, 10302, 10324, 10346, 10368, 10390, 10412,  2035,
+  2043,  2044,  3131,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  3131, 10434, 10456, 10478, 10500, 10522, 10544,   730,  1401,   731,
+  1401,   734,  1401,  3131,  3131,  3131,  3131,  3131,  3131,  3131,
+  2245,  3131,  2254,  3131,  2255, 10566, 10588, 10610, 13483, 13506,
+ 13529,  1401,-32768,  1401,-32768,  1401,-32768,  3131,  3131,  3131,
+-32768,-32768,-32768, 10632, 10654, 10676,  2047,  2048,  2052,  3131,
+  3131,  3131,  3131,  3131,  3131, 10698, 10720, 10742,   737,  1401,
+   738,  1401,   741,  1401,  3131,  3131,  3131,  3131,  2258,  3131,
+  2259,  3131,  2260, 10764, 10786, 10808,  1401,-32768,  1401,-32768,
+  1401,-32768,  3131,  3131,  3131, 10830, 10852, 10874,  3131,  3131,
+  3131, 10896, 10918, 10940,  3131,  3131,  3131, 13552, 13575, 13598,
+-32768,-32768,-32768,  2053,  2054,  2064,  3131,  3131,  3131,   766,
+  1401,   767,  1401,   775,  1401,  3131,  2274,  3131,  2275,  3131,
+  2276,  1401,-32768,  1401,-32768,  1401,-32768,  2283,  2286,-32768
 };
 
 static const short yypgoto[] = {-32768,
-  -130,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  1630,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+  -133,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  1627,-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,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
@@ -1483,2567 +1492,2601 @@ static const short yypgoto[] = {-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,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  -313,   -18,-32768,  2284,     2,  -385,
-  -182,     4,-32768,-32768,-32768,-32768,-32768,  2285,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, -1366, -1387,-32768,
--32768, -1108,   -23,-32768,   436,-32768,   -96,-32768, -1243, -1127,
-  1432,  -250,  -347,  -764,  1189,-32768,   -69
+-32768,-32768,-32768,-32768,  -319,   -17,-32768,  2285,     5,  -389,
+  -184,     8,-32768,-32768,-32768,-32768,-32768,  2294,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, -1358, -1349,-32768,
+-32768, -1114,   -23,-32768,   240,-32768,   -92,-32768, -1259, -1140,
+  1444,  -182,  -347,  -772,  1187,-32768,   -69
 };
 
 
-#define	YYLAST		13650
+#define	YYLAST		13807
 
 
 static const short yytable[] = {   150,
-   259,   582,   221,   223,   149,    79,   518,    80,   554,   938,
-  1462,   393,  1465,   193,   398,   196,   209,   102,   264,   773,
-   162,   219,   224,   154,  1280,  1281,   160,  1102,   160,   395,
-   102,   396,   212,   207,   219,  1382,   320,   417,  1456,   419,
-  1456,  1456,   929,  1457,  1456,  1457,  1457,  1103,  1105,  1457,
-   127,   128,   129,  1456,  1456,   130,  1456,  1456,  1457,  1457,
-  1299,  1457,  1457,   127,   128,   129,  1456,   514,   130,  1308,
-  1538,  1457,   406,   266,  1538,   267,  1315,  1538,   384,   385,
-   219,   377,   384,   385,   157,   384,   385,     5,   378,   384,
-   385,   823,  1104,  1106,  1360,   422,   386,   504,   219,  1137,
-   200,  1138,  1139,   201,  1140,   514,  1141,  1361,  1142,   127,
-   128,   129,   182,   183,   130,   313,   314,   315,   384,   385,
-   316,   319,    89,   184,   324,   219,    90,   127,   128,   129,
-   185,   344,   130,   345,   346,   347,   387,   349,   539,   351,
-   352,    91,   363,   540,    92,   321,   322,    93,  1476,   142,
-   143,   930,   931,    94,   127,   128,   129,   878,   517,   130,
-   382,   383,   384,   385,   384,   385,   161,   825,   161,  1456,
-   407,  1096,   164,   824,  1457,   764,  1164,   765,    96,   826,
-   655,   404,   405,  1090,   408,  1537,   410,  1541,  1544,   413,
-   414,  1757,   779,   135,   136,   137,   138,   208,   594,   595,
-  1761,  1763,   767,  1850,  1852,   793,   135,   136,   137,   138,
-   268,    95,   269,  1853,   142,   143,  1152,   225,   384,   385,
-   156,  1439,   766,  1153,   194,   162,   197,   210,   610,   265,
-   774,   220,   155,   142,   143,   397,   213,   458,   505,   506,
-   507,   878,   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,
-   490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
-   500,   501,   502,   503,  1477,   384,   385,    97,  1481,   514,
-   222,   617,  1706,    98,   513,  1710,   165,  1713,   384,   385,
-   153,   519,   514,   524,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,   536,   537,   538,  1538,   270,
-    10,   271,  1538,   157,   545,  1538,   547,   384,   385,   142,
-   143,   314,   513,  1233,   135,   136,   137,   138,  1120,  1121,
-   558,   559,   560,   561,   573,   563,   564,   565,   566,   567,
-   568,   569,   158,   571,   572,   142,   143,   384,   385,   135,
-   136,   137,   138,   384,   385,   584,   585,   586,   587,   384,
-   385,   648,   159,   597,   583,  1173,   649,   601,   602,   757,
-   142,   143,   163,   606,   758,   164,   976,   578,   578,   581,
-   581,  1804,   614,     6,     7,  1808,     8,  1810,   330,   331,
-   167,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-   921,   142,   143,  1286,   166,   341,  1538,   261,   168,   262,
-  1538,   942,  1538,   329,   330,   331,   764,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,   384,   385,   384,   385,
-   654,   341,   952,  1616,  1617,  1618,  1619,   769,   964,  1086,
-  1623,  1383,   169,  1374,   764,  1376,  1220,   384,   385,   272,
-   170,   273,   384,   385,   179,  1002,    11,    12,    13,    14,
-    15,    16,    17,    18,  1378,   984,   985,   986,   987,  1534,
-   174,   186,   188,   384,   385,   762,   326,   180,   314,   384,
-   385,   274,   181,   275,   770,   142,   143,   768,   195,   965,
-  1540,   509,   276,   262,   277,   189,  1543,   514,   198,    45,
-    46,    47,    48,   927,    50,   175,   513,   780,   176,   177,
-   199,   178,    56,    57,  1129,  1130,   762,   791,   278,   513,
-   279,   795,   796,  1029,  1030,  1031,  1032,  1033,   802,   514,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,   190,
-   814,   815,   191,   192,   341,   215,   202,   142,   143,   818,
-  1719,  1720,   203,   550,  1723,   262,   336,   337,   338,   339,
-   340,   827,   514,   514,   514,   514,   341,   204,   338,   339,
-   340,   171,   172,   880,   173,   839,   341,   841,   842,   205,
-   206,  1441,   327,   328,   329,   330,   331,   214,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,  1113,   280,   282,
-   281,   283,   341,   216,  1089,  1091,   379,   217,   381,   142,
-   143,  1287,   218,   260,   388,   792,   284,   262,   285,   327,
-   328,   329,   330,   331,   879,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,   327,   328,   329,   330,   331,   341,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,  1814,
-   286,   288,   287,   289,   341,   323,  1003,   327,   328,   329,
-   330,   331,   257,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,   290,   755,   291,   756,   292,   341,   293,   922,
-   294,   296,   295,   297,   298,   300,   299,   301,   302,   460,
-   303,   304,   308,   305,   514,   523,   306,   325,   307,   309,
-   342,   911,   912,   764,   764,   794,   956,  1098,   764,  1099,
-  1112,   764,   764,  1143,  1144,   913,   914,   915,   916,   917,
-   918,   919,   310,   935,   513,   311,   764,   923,  1145,   764,
-   926,  1146,  1220,   932,  1221,  1222,   376,  1223,  1889,   764,
-  1263,  1240,   343,   941,  1220,   958,  1384,  1220,  1759,  1523,
-  1760,  1772,  1774,  1773,  1775,  1776,   513,  1777,   762,  1799,
-  1880,  1800,  1881,  1972,  1974,  1973,  1975,  1976,   988,  1977,
-  1042,   364,   348,   327,   328,   329,   330,   331,   350,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,   365,   513,
-   513,   513,   513,   341,   369,   990,   991,   370,   389,  1944,
-  1261,   996,  1262,  2103,  2105,  2104,  2106,   390,   366,   576,
-   577,   391,  1007,  1008,   555,   656,   657,   658,   659,   660,
-   661,   662,   663,   664,   665,   666,   667,   668,   669,   670,
-   671,   672,   673,   674,   675,   676,   677,   678,   679,   680,
-   681,   682,   683,  2107,  2214,  2108,  2215,   367,  1046,  1047,
-  1048,  1049,  1050,  1051,  1052,  1053,  1054,  1055,  1056,  1057,
-  1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,  1066,  1067,
-  1068,  1069,  1070,  1071,   371,  1075,   327,   328,   329,   330,
-   331,   372,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,  2216,  2218,  2217,  2219,   879,   341,  2220,   373,  2221,
-  1092,   374,   392,  1097,   327,   328,   329,   330,   331,  1101,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,   375,
-  2222,   513,  2223,  1114,   341,  1115,   327,   328,   329,   330,
-   331,   401,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,   403,  1133,  1134,  1135,  2224,   341,  2225,   409,   327,
-   328,   329,   330,   331,   684,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,   402,   411,  1156,  1157,  1158,   341,
-  2301,  2303,  2302,  2304,  2305,  1448,  2306,  2349,  2351,  2350,
-  2352,   412,  2353,  2124,  2354,  2397,  2399,  2398,  2400,  2401,
-   415,  2402,   416,   327,   328,   329,   330,   331,   813,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,   418,   420,
-  1226,   421,   423,   341,  1192,   424,    99,   353,   425,  1290,
-   426,   427,   103,   104,   105,   106,   107,   108,   109,   110,
-   111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-   121,   122,   123,   124,   125,   126,   428,   429,   430,   431,
-  1256,   432,   433,   354,   434,   435,   436,  1227,   437,   438,
-   439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
-   449,   450,   451,  1095,   452,    45,    46,    47,    48,    49,
-    50,   453,   455,   456,  1321,  1245,  1246,  1247,    56,    57,
-   457,   459,   341,   508,   520,   551,  1255,  1257,  1258,   511,
-   521,   522,   556,   562,   570,   596,   605,   599,   600,   608,
-   618,   611,   619,  1277,  1278,   620,   621,   622,   623,   624,
-   625,   626,   627,   628,   629,  1289,   630,   578,  1292,   581,
-   631,   632,   633,   634,   635,   636,   637,   638,  1302,   639,
-   131,   132,   133,   134,   640,  1309,  1310,  1311,   641,  1390,
-   642,   643,  1316,   644,   645,   646,  1320,   651,   647,   650,
-  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,
-  1332,  1333,  1334,  1335,  1336,  1337,  1338,  1339,  1340,  1341,
-  1342,  1343,  1344,  1345,  1346,  1347,   652,   759,  1350,   760,
-   761,   771,   772,   776,   781,   778,   835,   782,   783,   785,
-  1359,   787,   788,   797,   810,   816,   944,  1363,   833,   817,
-   139,   355,   829,   830,   834,   837,   141,   838,   844,   875,
-   845,   144,   882,   846,   847,   848,   147,  1372,   356,   849,
-   850,   851,   852,   853,   854,   855,   856,   857,   858,  1355,
-   859,   860,   861,   862,   980,   981,   982,   863,   864,  1474,
-  1387,   865,  1388,   876,   327,   328,   329,   330,   331,   866,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,  1365,
-   867,   868,   869,  1009,   341,   870,   871,   872,   873,   874,
-   877,   883,  1018,   884,   908,   885,   886,    99,   312,   887,
-   888,   889,   890,   103,   104,   105,   106,   107,   108,   109,
-   110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-   120,   121,   122,   123,   124,   125,   126,   891,   909,   910,
-   920,   925,  1155,   933,   934,  1006,   936,   940,   892,  1366,
-  1445,   893,   894,   928,   947,  1446,  1447,   949,   960,   961,
-  1454,   895,  1460,   896,  1463,   897,  1466,  1467,   898,   899,
-   900,   901,  1470,   959,   937,   902,   962,   963,   903,   966,
-   967,  1479,   578,   904,   581,   905,   906,   907,   968,  1487,
-   969,   970,   971,   972,  1492,   973,   974,  1495,   983,  1497,
-  1498,  1499,  1500,  1501,  1502,  1503,  1504,  1505,  1506,  1507,
-  1508,  1509,  1510,  1511,  1512,  1513,  1514,  1515,  1516,  1517,
-  1518,  1519,  1520,  1521,  1522,   975,  1367,   989,   992,  1525,
-  1615,   131,   132,   133,   134,  1531,   993,   313,   314,  1532,
-   327,   328,   329,   330,   331,   997,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,   327,   328,   329,   330,   331,
-   341,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-   327,   328,   329,   330,   331,   341,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,   999,  1004,  1005,  1010,  1011,
-   341,  1012,  1013,  1014,  1668,  1017,  1019,  1020,  1023,  1024,
-  1025,   139,   140,  1026,  1027,  1036,  1085,   141,  1037,  1038,
-  1039,  1040,   144,  1043,  1087,   317,  1041,   147,  1044,   318,
-  1599,  1093,  1094,  1100,  1108,  1110,  1604,  1111,  1119,  1608,
-   327,   328,   329,   330,   331,  1149,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,  1131,  1132,  1718,  1150,  1235,
-   341,  1236,  1160,  1631,  1632,  1633,  1634,  1635,  1636,  1637,
-  1638,  1639,  1640,  1641,  1642,  1643,  1644,  1645,  1646,  1647,
-  1648,  1649,  1650,  1651,  1136,  1653,  1159,  1654,  1161,  1165,
-  1166,  1167,  1264,  1168,  1267,  1193,  1270,  1170,  1228,  1169,
-  1229,  1171,  1279,  1172,  1174,  1231,  1175,  1176,  1237,  1183,
-  1238,  1242,  1189,  1243,  1549,  1239,   361,   327,   328,   329,
-   330,   331,   368,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,  1177,  1178,  1179,  1180,  1181,   341,  1182,  1184,
-  1185,  1186,  1244,  1187,  1248,  1249,   394,  1188,  1190,  1753,
-  1191,   399,   400,  1224,  1250,   612,  1813,  1251,  1252,  1253,
-  1254,  1265,  1268,  1271,  1273,  1274,  1275,  1276,  1282,  1291,
-  1294,  1726,  1728,  1730,  1731,  1732,  1733,  1734,  1735,  1736,
-  1737,  1738,  1739,  1740,  1741,  1742,  1743,  1744,  1745,  1746,
-  1747,  1748,  1749,  1750,  1751,  1295,  1296,   777,  1349,    99,
-   552,  1298,  1856,  1300,  1301,   103,   104,   105,   106,   107,
-   108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
-   118,   119,   120,   121,   122,   123,   124,   125,   126,  1297,
-   327,   328,   329,   330,   331,  1303,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,  1888,  1304,  1305,  1306,  1845,
-   341,  1848,  1313,  1307,  1314,  1317,  1318,   957,  1358,   798,
-  1319,  1351,  1812,  1352,  1353,  1362,  1354,  1357,  1818,  1356,
-  1820,  1368,  1822,  1371,  1824,  1825,  1826,  1827,  1828,  1829,
-  1830,  1831,  1832,  1833,  1834,  1835,  1836,  1837,  1838,  1839,
-  1840,  1841,  1842,  1843,  1844,   327,   328,   329,   330,   331,
-  1373,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-  1468,  1386,  1375,  1001,  1393,   341,  1377,  1442,  1379,  1391,
-  1396,  1385,  1475,   131,   132,   133,   134,  1394,  1395,  1455,
-  1912,  1461,  1397,  1464,   327,   328,   329,   330,   331,  1399,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,  1400,
-  1886,  1887,  1401,  1406,   341,  1405,  1409,  1478,  1894,  1895,
-  1896,  1897,  1898,  1899,  1900,  1901,  1902,  1903,  1904,  1905,
-  1906,  1907,  1908,  1909,  1910,  1911,   327,   328,   329,   330,
-   331,  1407,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,  1410,  1412,   139,   140,  1440,   341,  1480,  1482,   141,
-  1483,  1484,  1485,  1496,   144,  1486,  1488,   381,  1490,   147,
-  1940,   553,  1491,  1493,  1494,  1946,  1948,  1950,  1951,  1952,
-  1953,  1954,  1955,  1956,  1957,  1958,  1959,  1960,  1961,  1962,
-  1963,  1964,  1965,  1966,  1967,  1968,   327,   328,   329,   330,
-   331,  1524,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,  1526,  1530,  1535,  1536,  1547,   341,  1551,  1548,  1590,
-  1597,  1550,   763,  1601,  1602,  1556,  1605,  1606,  1999,  1609,
-  2001,  1552,  2003,  1557,  2005,  2006,  2007,  2008,  2009,  2010,
-  2011,  2012,  2013,  2014,  2015,  2016,  2017,  2018,  2019,  2020,
-  2021,  2022,   327,   328,   329,   330,   331,  1553,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,  1554,  1559,  1561,
-  1563,  1592,   341,  1610,  1611,  1614,  1620,  1621,  1622,  1624,
-  1625,  1626,  1627,  2046,  2047,  2048,  2049,  2050,  2051,  2052,
-  2053,  2054,  2055,  2056,  2057,  2058,  2059,  2060,  1655,  1659,
-  1661,  1667,  1662,  1664,  1666,  1669,  1670,  1671,  1672,  1673,
-  1674,  1703,  1675,  1704,  1705,  1676,  1677,  1699,  2082,  2084,
-  2086,  2087,  2088,  2089,  2090,  2091,  2092,  2093,  2094,  2095,
-  2096,  2097,  2098,  2099,  2100,  2101,  1702,   327,   328,   329,
-   330,   331,  1707,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,  1711,  1717,  1714,  1721,  1722,   341,  1724,  2125,
-  1755,  2127,  1756,  2129,   541,  2131,  2132,  2133,  2134,  2135,
-  2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2144,  2145,
-  1758,  1767,  1762,  1770,  1764,  1771,  1766,   588,    28,    29,
-   589,   590,    32,   591,    34,  1765,    35,  1768,    37,    38,
-    39,  1769,    41,    42,  1801,  1803,  1802,  1806,    44,  2169,
-  2170,  2171,  2172,  2173,  2174,  2175,  2176,  2177,  1807,  1809,
-    55,  1811,  1816,  1817,  1819,  1821,  1823,  1846,  1849,  1882,
-  1857,  1851,  1883,  1858,  2194,  2196,  2198,  2200,  2202,  2204,
-  2205,  2206,  2207,  2208,  2209,  2210,  2211,  2212,  2213,  1854,
-  1884,  1885,  1913,    59,    60,    61,  1917,  1916,  1919,  1918,
-  1941,  1920,  1921,  1942,  1970,  1971,  1996,  1998,  2000,  2002,
-  2235,    71,  2237,  2004,  2239,  2023,  2241,  2061,  2243,  2062,
-  2245,  2063,  2247,  2248,  2249,  2250,  2251,  2252,  2253,  2254,
-  2255,  2126,  2102,   945,   946,  2064,   948,  2128,   950,   951,
-  2130,  2146,  2162,  2178,  2179,  2180,  2181,  2236,  2238,  2182,
-  2183,  2240,  2265,  2266,  2267,  2268,  2269,  2270,  2242,  2244,
-  2246,  2280,  2314,  2316,  2281,  2282,  2318,  2359,  2334,  2335,
-  2283,  2284,  2285,  2286,  2287,  2288,  2290,  2292,  2294,  2336,
-  2361,  2363,  2388,  2389,   994,   995,  2390,  2404,   998,  2406,
-  2408,  2307,  2308,  2309,  2310,  2311,  2312,  2313,  2410,  2315,
-  2411,  2317,  1230,   592,   881,  1015,  1016,    78,    86,     0,
-     0,  1021,  1022,     0,     0,  2325,  2326,  2327,  1028,     0,
-  1035,     0,     0,     0,     0,     0,     0,  2337,  2338,  2339,
-  2341,  2343,  2345,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,  2355,  2356,  2357,  2358,     0,  2360,     0,  2362,
+   587,   521,   222,   224,   260,   149,   945,   194,    79,   557,
+   396,    80,   197,   401,   210,   265,   778,   225,   220,   160,
+   213,   154,  1293,  1294,   220,   398,  1473,   399,   208,  1473,
+   162,  1474,  1397,  1479,  1474,  1482,   420,   102,   422,   160,
+   321,  1111,    89,   936,  1373,   409,  1473,   127,   128,   129,
+     5,  1474,   130,   127,   128,   129,  1473,  1473,   130,  1473,
+  1112,  1474,  1474,  1473,  1474,  1312,  1114,   267,  1474,   268,
+  1473,   507,   220,    90,  1321,  1474,   183,   184,   220,   387,
+   388,  1328,   387,   388,   269,    96,   270,   185,   337,   338,
+   339,   340,   341,   425,   186,  1473,  1374,   389,   342,   578,
+  1474,   127,   128,   129,    91,  1113,   130,   127,   128,   129,
+    92,  1115,   130,   387,   388,   314,   315,   316,    93,   201,
+   317,   320,   202,   102,   325,  1557,   387,   388,    94,  1557,
+   588,   345,  1557,   346,   347,   348,   517,   350,   220,   352,
+   353,   378,   364,   410,   390,   387,   388,  1493,   379,   322,
+   323,   380,   937,   938,   760,   542,   761,    97,   381,   161,
+   543,   385,   386,   660,   387,   388,   831,   127,   128,   129,
+  1105,   157,   130,  1556,   517,   653,  1560,   832,   830,   161,
+   654,   985,   407,   408,    95,   411,   520,   413,   387,   388,
+   416,   417,   209,  1563,   164,   784,   165,   387,   388,   772,
+   271,   833,   272,  1776,  1780,  1148,  1782,  1149,   798,  1175,
+  1869,   156,   226,   135,   136,   137,   138,  1871,   195,   167,
+  1299,  1454,   162,   198,   214,   211,   266,   779,   221,   615,
+   155,   400,   387,   388,   223,   387,   388,    98,   461,   508,
+   509,   510,  1872,   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,   490,   491,
+   492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
+   502,   503,   504,   505,   506,   187,   189,   387,   388,    10,
+   153,   622,  1099,  1494,   273,   516,   274,  1498,   168,   135,
+   136,   137,   138,   522,   527,   528,   529,   530,   531,   532,
+   533,   534,   535,   536,   537,   538,   539,   540,   541,  1725,
+   142,   143,  1729,  1163,  1732,   548,   762,   550,   771,   157,
+  1164,   763,   315,   516,  1244,   949,   158,   142,   143,   159,
+   769,   561,   562,   563,   564,   885,   566,   567,   568,   569,
+   570,   571,   572,  1095,   574,   575,   576,   577,   769,   275,
+   517,   276,   135,   136,   137,   138,   387,   388,   589,   590,
+   591,   592,  1398,   517,   163,  1557,   602,  1231,  1184,  1557,
+   606,   607,  1557,   142,   143,   164,   611,   387,   388,   166,
+   339,   340,   341,   583,   583,   619,   586,   586,   342,   328,
+   329,   330,   331,   332,  1389,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,   169,   928,   971,   170,  1823,   342,
+  1473,   382,  1827,   384,  1829,  1474,   387,   388,  1300,   391,
+   180,   181,   387,   388,   174,    11,    12,    13,    14,    15,
+    16,    17,    18,  1150,   659,  1151,   277,   959,   278,  1152,
+   774,  1153,   142,   143,   599,   600,  1635,  1636,  1637,  1638,
+   885,   387,   388,  1642,   387,   388,   179,   972,   135,   136,
+   137,   138,  1011,  1557,   182,   387,   388,  1557,  1391,  1557,
+   190,  1393,   993,   994,   995,   996,   387,   388,   767,   142,
+   143,   315,  1553,   769,   327,   770,   175,   775,   196,   176,
+   177,   773,   178,  1559,   463,   331,   332,   199,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,   526,   200,   516,
+   785,   206,   342,   387,   388,   142,   143,   142,   143,   767,
+   796,   262,   516,   263,   800,   801,     6,     7,   203,     8,
+  1562,   807,   330,   331,   332,   204,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,   821,   822,   279,   191,   280,
+   342,   192,   193,   205,   825,    45,    46,    47,    48,   281,
+    50,   282,   207,  1738,  1739,   215,   834,  1742,    56,    57,
+   517,   142,   143,   283,   217,   284,   934,   512,   887,   263,
+   846,   216,   848,   849,  1138,  1139,  1456,   328,   329,   330,
+   331,   332,   218,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,   517,   219,  1122,  1098,  1100,   342,  1038,  1039,
+  1040,  1041,  1042,   285,   258,   286,   581,   582,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,   142,   143,   287,
+   886,   288,   342,   553,   289,   263,   290,   517,   517,   517,
+   517,   328,   329,   330,   331,   332,   261,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,   171,   172,   291,   173,
+   292,   342,  1833,  1012,   309,   328,   329,   330,   331,   332,
+   310,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+   293,   295,   294,   296,   929,   342,  1129,  1130,   328,   329,
+   330,   331,   332,   311,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,   942,   142,   143,   918,   919,   342,   324,
+   797,   297,   263,   298,   299,   301,   300,   302,   312,   344,
+   920,   921,   922,   923,   924,   925,   926,   326,   343,   516,
+   965,   303,   930,   304,   305,   933,   306,   307,   939,   308,
+   349,   769,   769,   799,   963,   351,   366,  1276,   948,   365,
+  1107,  1908,  1108,   769,   769,  1121,  1154,   769,   769,  1155,
+  1156,   516,   769,   767,  1157,  1231,  1233,  1232,  1234,   517,
+   769,   367,  1251,   997,  1231,  1231,  1399,  1540,  1778,   368,
+  1779,  1051,  1791,  1793,  1792,  1794,  1795,  1818,  1796,  1819,
+  1899,  1991,  1900,  1992,   370,   371,   516,   516,   516,   516,
+  1104,   372,   999,  1000,  1993,   373,  1994,   820,  1005,  1995,
+   374,  1996,  1963,  2122,  2124,  2123,  2125,   375,   376,  1016,
+  1017,   377,   392,    99,   313,  2126,  2233,  2127,  2234,   103,
+   104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+   114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+   124,   125,   126,   393,   394,  1055,  1056,  1057,  1058,  1059,
+  1060,  1061,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,
+  1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,  1078,  1079,
+  1080,  2235,  1084,  2236,   328,   329,   330,   331,   332,   558,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,  2237,
+  2239,  2238,  2240,   886,   342,  2241,   395,  2242,  1101,   404,
+  1106,   328,   329,   330,   331,   332,  1110,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,   405,  2243,   516,  2244,
+  1123,   342,  1124,  2320,  2322,  2321,  2323,  2324,   406,  2325,
+  2368,  2370,  2369,  2371,  2372,   412,  2373,   131,   132,   133,
+   134,  1144,  1145,  1146,   328,   329,   330,   331,   332,   414,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,  2416,
+  2418,  2417,  2419,   415,   342,  1167,  1168,  1169,  2420,   418,
+  2421,   328,   329,   330,   331,   332,  1465,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,  2143,   419,   421,   423,
+   424,   342,   458,   426,   427,   428,   429,   430,   431,   432,
+   433,   434,   435,   436,   437,   951,   438,   139,   140,  1237,
+   439,   440,   441,   141,  1203,   456,   442,  1303,   144,   443,
+   444,   318,  1368,   147,   445,   319,   446,   447,   328,   329,
+   330,   331,   332,   448,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,   449,  1378,   989,   990,   991,   342,  1267,
+   450,   451,   452,   453,   454,  1274,  1238,  1275,   328,   329,
+   330,   331,   332,   455,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,   459,  1018,  1379,   460,   462,   342,   511,
+   342,   523,   514,  1027,  1256,  1257,  1258,   524,   525,  1334,
+  1380,   554,   559,   565,   573,  1266,  1268,  1269,  1270,  1271,
+   601,   610,   604,   605,   613,   616,   623,   624,   625,   626,
+   627,   628,   629,   630,  1290,  1291,   631,   632,   633,   634,
+   635,   636,   637,   638,   639,   640,  1302,   641,   642,  1305,
+   643,   583,   644,   645,   586,   646,   647,   648,   649,  1315,
+   650,   651,   652,   764,   655,   657,  1322,  1323,  1324,  1405,
+   656,   765,   766,  1329,   776,   777,   781,  1333,   783,   815,
+   786,  1335,  1336,  1337,  1338,  1339,  1340,  1341,  1342,  1343,
+  1344,  1345,  1346,  1347,  1348,  1349,  1350,  1351,  1352,  1353,
+  1354,  1355,  1356,  1357,  1358,  1359,  1360,   787,   788,  1363,
+   790,   792,   793,   802,   823,   824,   836,   840,   841,   837,
+   842,  1372,   844,   328,   329,   330,   331,   332,  1376,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,   845,   851,
+   882,   852,   853,   342,   883,   328,   329,   330,   331,   332,
+  1387,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+   854,   855,   856,   857,   858,   342,  1568,   859,   860,   861,
+   862,  1491,   889,  1402,   890,  1403,   328,   329,   330,   331,
+   332,   863,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,   328,   329,   330,   331,   332,   342,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,   617,   891,   917,   927,
+   864,   342,   865,    99,   313,   866,   867,   868,   892,   103,
+   104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+   114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+   124,   125,   126,   869,   870,   932,   940,   941,  1015,   943,
+   947,   980,  1246,  1460,  1247,   871,   954,   935,   872,   956,
+  1463,  1464,   967,   873,   874,  1471,   968,  1477,   875,  1480,
+   876,  1483,  1484,   944,   969,   877,   878,  1487,   893,   879,
+   880,   881,   894,   884,   895,   896,  1496,  1277,   897,  1280,
+   583,  1283,   898,   586,  1504,   899,   900,   901,   902,  1509,
+   903,   904,  1512,   905,  1514,  1515,  1516,  1517,  1518,  1519,
+  1520,  1521,  1522,  1523,  1524,  1525,  1526,  1527,  1528,  1529,
+  1530,  1531,  1532,  1533,  1534,  1535,  1536,  1537,  1538,  1539,
+   782,   906,   907,   908,  1542,   909,  1634,   131,   132,   133,
+   134,   910,  1550,   915,   314,   315,  1551,   328,   329,   330,
+   331,   332,   911,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,   328,   329,   330,   331,   332,   342,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,   912,   913,   914,
+   916,   966,   342,   970,   513,   328,   329,   330,   331,   332,
+   973,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+  1687,   974,   975,   976,   977,   342,   978,   139,   140,   979,
+   981,   982,   983,   141,   984,   992,   998,  1001,   144,  1002,
+  1019,   794,  1006,   147,   964,   795,  1008,  1013,  1014,  1618,
+  1020,  1021,  1022,  1023,  1050,  1623,  1026,  1028,  1627,  1010,
+  1029,  1032,  1033,  1034,  1035,  1036,  1045,  1094,  1102,  1046,
+  1047,  1048,  1049,  1737,  1052,  1096,  1166,  1053,  1128,  1103,
+  1109,  1117,  1650,  1651,  1652,  1653,  1654,  1655,  1656,  1657,
+  1658,  1659,  1660,  1661,  1662,  1663,  1664,  1665,  1666,  1667,
+  1668,  1669,  1670,  1119,  1672,  1120,  1673,   328,   329,   330,
+   331,   332,  1140,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,  1141,  1142,  1143,  1147,  1160,   342,   362,   328,
+   329,   330,   331,   332,   369,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,  1161,  1170,  1171,  1172,  1472,   342,
+  1478,  1176,  1481,  1177,  1178,  1179,  1181,  1180,  1204,   397,
+  1186,  1239,  1182,  1183,   402,   403,  1185,  1187,  1772,  1188,
+  1189,  1190,  1832,  1191,  1192,  1193,  1194,  1240,  1242,  1195,
+  1196,  1200,  1197,  1198,  1248,  1199,  1249,  1201,  1202,  1235,
+  1745,  1747,  1749,  1750,  1751,  1752,  1753,  1754,  1755,  1756,
+  1757,  1758,  1759,  1760,  1761,  1762,  1763,  1764,  1765,  1766,
+  1767,  1768,  1769,  1770,  1253,  1250,  1254,  1255,  1875,  1259,
+  1260,  1261,  1262,   328,   329,   330,   331,   332,   384,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,   328,   329,
+   330,   331,   332,   342,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,  1263,  1264,  1265,  1278,  1281,   342,  1284,
+  1286,  1907,  1287,  1288,  1289,  1295,  1292,  1304,  1864,  1307,
+  1867,  1308,  1309,  1311,  1314,  1310,  1313,  1317,  1316,  1318,
+  1320,  1831,  1319,  1327,  1326,  1330,  1331,  1837,  1362,  1839,
+  1332,  1841,  1364,  1843,  1844,  1845,  1846,  1847,  1848,  1849,
+  1850,  1851,  1852,  1853,  1854,  1855,  1856,  1857,  1858,  1859,
+  1860,  1861,  1862,  1863,   328,   329,   330,   331,   332,  1365,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,  1366,
+  1367,  1371,  1369,  1370,   342,   593,    28,    29,   594,   595,
+    32,   596,    34,   803,    35,  1375,    37,    38,    39,  1931,
+    41,    42,  1381,  1388,  1386,  1390,    44,  1392,  1394,  1400,
+  1406,  1401,  1408,  1409,  1410,  1411,  1492,  1485,    55,  1905,
+  1906,  1412,  1414,  1415,  1416,  1420,  1421,  1913,  1914,  1915,
+  1916,  1917,  1918,  1919,  1920,  1921,  1922,  1923,  1924,  1925,
+  1926,  1927,  1928,  1929,  1930,  1422,  1424,  1425,  1427,  1455,
+  1495,    59,    60,    61,   328,   329,   330,   331,   332,  1497,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,    71,
+  1457,  1500,  1499,  1501,   342,  1502,  1503,  1505,  1507,  1959,
+  1508,  1297,  1510,  1298,  1965,  1967,  1969,  1970,  1971,  1972,
+  1973,  1974,  1975,  1976,  1977,  1978,  1979,  1980,  1981,  1982,
+  1983,  1984,  1985,  1986,  1987,   593,    28,    29,   594,   595,
+    32,   596,    34,  1511,    35,  1513,    37,    38,    39,  1541,
+    41,    42,  1543,  1736,  1545,  1546,    44,   768,  1549,  1554,
+  1555,  1570,  1609,  1616,  1566,  1620,  1621,  2018,    55,  2020,
+  1575,  2022,  1624,  2024,  2025,  2026,  2027,  2028,  2029,  2030,
+  2031,  2032,  2033,  2034,  2035,  2036,  2037,  2038,  2039,  2040,
+  2041,   597,  1567,  1569,  1571,  1572,  1573,  1576,  1578,  1580,
+  1625,    59,    60,    61,  1628,  1582,  1611,  1629,  1630,  1633,
+  1639,  1640,  1641,  1643,  1644,  1645,  1646,  1674,  1686,    71,
+  1690,  1678,  2065,  2066,  2067,  2068,  2069,  2070,  2071,  2072,
+  2073,  2074,  2075,  2076,  2077,  2078,  2079,  1680,  1722,  1681,
+  1683,  1685,  1688,  1689,  1691,  1692,  1693,  1723,  1694,  1695,
+  1724,  1696,  1718,  1721,  1726,  1730,  1733,  2101,  2103,  2105,
+  2106,  2107,  2108,  2109,  2110,  2111,  2112,  2113,  2114,  2115,
+  2116,  2117,  2118,  2119,  2120,  1740,   328,   329,   330,   331,
+   332,  1741,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,  1774,  1743,  1775,  1777,  1781,   342,  1783,  2144,  1785,
+  2146,  1784,  2148,   544,  2150,  2151,  2152,  2153,  2154,  2155,
+  2156,  2157,  2158,  2159,  2160,  2161,  2162,  2163,  2164,  1787,
+  1786,  1788,  1789,  1790,  1821,  1820,   593,    28,    29,   594,
+   595,    32,   596,    34,  1822,    35,  1825,    37,    38,    39,
+  1826,    41,    42,  1828,  1830,  1835,  1836,    44,  2188,  2189,
+  2190,  2191,  2192,  2193,  2194,  2195,  2196,  1838,  1840,    55,
+  1842,  1865,  1868,  1901,  1902,  1876,  1870,  1873,  1877,  1903,
+  1904,  1932,  1935,  2213,  2215,  2217,  2219,  2221,  2223,  2224,
+  2225,  2226,  2227,  2228,  2229,  2230,  2231,  2232,  1936,  1937,
+  1960,  1938,    59,    60,    61,  1939,  1940,  1961,  1989,  1990,
+  2015,  2017,  2019,  2021,  2023,  2145,  2042,  2080,  2147,  2254,
+    71,  2256,  2081,  2258,  2082,  2260,  2149,  2262,  2181,  2264,
+  2255,  2266,  2267,  2268,  2269,  2270,  2271,  2272,  2273,  2274,
+   952,   953,  2083,   955,  2121,   957,   958,  2165,  2197,  2198,
+  2199,  2200,  2201,  2257,  2202,  2259,  2261,  2263,  2265,  2299,
+  2333,  2284,  2285,  2286,  2287,  2288,  2289,  2300,  2301,  2335,
+  2337,  2353,  2354,  2378,  2380,  2382,  2355,  2407,  2408,  2302,
+  2303,  2304,  2305,  2306,  2307,  2309,  2311,  2313,  2409,  2423,
+  2425,  2427,  2429,  1003,  1004,  2430,   888,  1007,    78,  1241,
+  2326,  2327,  2328,  2329,  2330,  2331,  2332,    86,  2334,     0,
+  2336,     0,   603,     0,  1024,  1025,     0,     0,     0,     0,
+  1030,  1031,     0,     0,  2344,  2345,  2346,  1037,     0,  1044,
+     0,     0,     0,     0,     0,     0,  2356,  2357,  2358,  2360,
+  2362,  2364,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,  2374,  2375,  2376,  2377,     0,  2379,     0,  2381,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,  2386,
+  2387,  2388,     0,     0,     0,  2392,  2393,  2394,     0,     0,
+     0,  2398,  2399,  2400,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,  2411,  2413,  2415,     0,     0,     0,     0,
+     0,     0,  2422,     0,  2424,     0,  2426,  1116,     0,  1118,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  2367,  2368,  2369,     0,     0,     0,  2373,  2374,  2375,     0,
-     0,     0,  2379,  2380,  2381,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  2392,  2394,  2396,     0,     0,     0,
-     0,     0,     0,  2403,     0,  2405,     0,  2407,  1107,     0,
-  1109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  1116,  1117,  1118,     0,     0,     0,  1122,  1123,  1124,
-  1125,  1126,  1127,  1128,    99,   312,     0,     0,     0,     0,
-   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-   113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-   123,   124,   125,   126,    99,   312,     0,     0,     0,     0,
-   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-   113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-   123,   124,   125,   126,    99,   312,     0,     0,     0,     0,
-   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-   113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-   123,   124,   125,   126,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,     0,     0,     0,     0,
-  1225,  1284,     0,  1285,     0,     0,     0,     0,   131,   132,
-   133,   134,     0,     0,   588,    28,    29,   589,   590,    32,
-   591,    34,     0,    35,     0,    37,    38,    39,     0,    41,
-    42,     0,     0,     0,     0,    44,     0,     0,   131,   132,
-   133,   134,   327,   328,   329,   330,   331,    55,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,   510,     0,  1283,     0,   131,   132,
-   133,   134,     0,     0,  1293,     0,     0,     0,   139,   140,
-    59,    60,    61,     0,   141,     0,     0,     0,     0,   144,
-     0,     0,   789,  1312,   147,     0,   790,     0,    71,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   139,   140,
-     0,     0,     0,     0,   141,     0,     0,     0,     0,   144,
-     0,     0,   954,     0,   147,     0,   955,     0,     0,     0,
-     0,  1348,     0,     0,     0,     0,     0,     0,  1451,  1452,
-     0,     0,     0,     0,   141,     0,     0,     0,     0,  1453,
-     0,    99,   100,   101,   147,   102,   185,   103,   104,   105,
-   106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-   116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-   126,     0,   127,   128,   129,    99,   353,   130,     0,     0,
-   598,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+  1125,  1126,  1127,     0,     0,     0,  1131,  1132,  1133,  1134,
+  1135,  1136,  1137,     0,     0,    99,   354,     0,     0,     0,
+     0,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    122,   123,   124,   125,   126,     0,     0,     0,     0,     0,
-     0,     0,   354,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,    45,    46,    47,    48,    49,    50,
-  1449,     0,  1450,     0,     0,     0,     0,    56,    57,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,   131,   132,   133,   134,   341,
-     0,   542,   588,    28,    29,   589,   590,    32,   591,    34,
-     0,    35,     0,    37,    38,    39,  1469,    41,    42,     0,
-  1473,     0,     0,    44,     0,     0,     0,     0,     0,   131,
-   132,   133,   134,     0,     0,    55,  1489,     0,     0,     0,
+     0,     0,   355,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,    45,    46,    47,    48,    49,    50,
+  1466,     0,  1467,     0,     0,     0,     0,    56,    57,     0,
+     0,     0,    99,   313,     0,     0,     0,     0,   103,   104,
+   105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+   115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+   125,   126,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,  1236,     0,     0,     0,     0,     0,     0,     0,   131,
+   132,   133,   134,    99,   555,     0,     0,     0,     0,   103,
+   104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+   114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+   124,   125,   126,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,     0,     0,  1296,
+     0,     0,   808,     0,     0,     0,     0,  1306,     0,   139,
+   356,     0,     0,     0,     0,   141,   131,   132,   133,   134,
+   144,     0,     0,     0,     0,   147,  1325,   357,     0,     0,
+     0,     0,     0,     0,    99,   313,     0,     0,     0,     0,
+   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+   113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+   123,   124,   125,   126,  1361,     0,     0,   131,   132,   133,
+   134,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,   139,   140,     0,     0,
+     0,   342,   141,   513,     0,     0,     0,   144,   579,     0,
+   961,     0,   147,     0,   962,     0,   661,   662,   663,   664,
+   665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
+   675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
+   685,   686,   687,   688,     0,     0,     0,   139,   140,     0,
+     0,     0,     0,   141,     0,     0,     0,     0,   144,     0,
+     0,     0,     0,   147,     0,   556,     0,     0,   131,   132,
+   133,   134,    99,   100,   101,     0,   102,     0,   103,   104,
+   105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+   115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+   125,   126,     0,   127,   128,   129,     0,     0,   130,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,  1461,  1462,     0,     0,   342,
+     0,     0,     0,     0,     0,     0,   579,     0,  1468,  1469,
+     0,     0,     0,  1486,   141,     0,     0,  1490,     0,  1470,
+     0,     0,     0,     0,   147,   689,   186,     0,     0,     0,
+     0,     0,     0,  1506,   661,   662,   663,   664,   665,   666,
+   667,   668,   669,   670,   671,   672,   673,   674,   675,   676,
+   677,   678,   679,   680,   681,   682,   683,   684,   685,   686,
+   687,   688,     0,     0,     0,     0,   131,   132,   133,   134,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   135,   136,   137,   138,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   139,   140,     0,    59,    60,
-    61,   141,   142,   143,     0,     0,   144,     0,   145,     0,
-   146,   147,     0,     0,     0,     0,    71,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   139,
-   512,     0,     0,     0,     0,   141,     0,     0,     0,     0,
-   144,    99,   312,   219,     0,   147,     0,   103,   104,   105,
+     0,    99,   313,   220,     0,     0,     0,   103,   104,   105,
    106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
    116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
    126,     0,   127,   128,   129,     0,     0,   130,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1593,  1594,
-  1595,     0,     0,     0,     0,     0,     0,  1600,     0,     0,
-     0,     0,     0,     0,    99,   312,     0,     0,  1612,  1613,
-   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-   113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-   123,   124,   125,   126,     0,     0,     0,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,  1656,  1657,  1658,   341,     0,     0,
-     0,   516,     0,    99,   552,   131,   132,   133,   134,   103,
+     0,     0,   135,   136,   137,   138,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   139,   140,     0,     0,
+     0,     0,   141,   142,   143,     0,     0,   144,     0,   145,
+     0,   146,   147,     0,     0,     0,     0,  1612,     0,     0,
+  1613,  1614,     0,     0,     0,     0,     0,     0,  1619,     0,
+     0,     0,     0,  1054,     0,    99,   354,     0,     0,  1631,
+  1632,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+   112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
+   122,   123,   124,   125,   126,   131,   132,   133,   134,     0,
+     0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,  1675,  1676,  1677,     0,     0,
+     0,     0,     0,     0,    45,    46,    47,    48,    49,    50,
+     0,     0,     0,     0,     0,     0,     0,    56,    57,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,     0,     0,     0,     0,   139,   140,     0,   809,     0,
+     0,   141,     0,     0,     0,     0,   144,     0,     0,     0,
+     0,   147,     0,  1728,     0,     0,     0,     0,  1735,   131,
+   132,   133,   134,    99,   313,     0,     0,     0,     0,   103,
    104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
    114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-   124,   125,   126,   588,    28,    29,   589,   590,    32,   591,
-    34,     0,    35,     0,    37,    38,    39,     0,    41,    42,
-     0,     0,     0,     0,    44,     0,     0,     0,     0,     0,
-     0,     0,  1709,     0,     0,     0,    55,  1716,   131,   132,
-   133,   134,     0,     0,     0,   139,   140,     0,     0,     0,
-     0,   141,     0,     0,     0,     0,   144,     0,     0,     0,
-     0,   147,     0,     0,     0,     0,     0,     0,     0,    59,
-    60,    61,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,    71,     0,     0,
-     0,     0,   341,     0,     0,     0,     0,   131,   132,   133,
-   134,   803,     0,     0,     0,     0,     0,     0,   139,   140,
-     0,     0,     0,     0,   141,     0,     0,     0,     0,   144,
-     0,     0,     0,     0,   147,     0,     0,     0,     0,     0,
-  1805,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  1815,     0,     0,     0,    -7,     1,     0,   -12,   -55,     0,
-     0,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,   139,   140,     0,
-     0,   341,     0,   141,     0,     0,     0,   -55,   144,   615,
-   804,   -55,   -55,   147,   -55,   -55,   -55,   -55,   -55,   -55,
+   124,   125,   126,    99,   555,     0,     0,     0,     0,   103,
+   104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+   114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+   124,   125,   126,     0,     0,     0,   228,     0,     0,   139,
+   515,     0,     0,     0,     0,   141,     0,     0,     0,     0,
+   144,     0,     0,     0,     0,   147,   328,   329,   330,   331,
+   332,  1824,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,  1834,     0,     0,     0,     0,   342,     0,     0,     0,
+     0,     0,     0,     0,     0,   817,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   131,   132,   133,
+   134,     0,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   229,   230,   231,   131,   132,   133,
+   134,   819,   232,   233,   234,   235,   236,   237,   238,   239,
+   240,   241,     0,     0,     0,     0,     0,     0,     0,     0,
+   242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
+  1909,   252,   253,   254,   255,   256,   257,   139,   140,     0,
+     0,     0,     0,   141,     0,     0,     0,     0,   144,     0,
+     0,     0,     0,   147,    -7,     1,     0,   -12,   -55,     0,
+     0,     0,     0,     0,     0,     0,     0,   139,   140,     0,
+     0,     0,     0,   141,     0,     0,     0,     0,   144,     0,
+     0,     0,     0,   147,     0,     0,     0,   -55,     0,  1962,
+     0,   -55,   -55,     0,   -55,   -55,   -55,   -55,   -55,   -55,
    -55,   -55,     0,   -55,   -55,   -55,   -55,   -55,   -55,   -55,
    -55,     0,     0,     0,   -55,   -55,   -55,   -55,   -55,   -55,
    -55,   -55,     0,   -55,   -55,   -55,   -55,   -55,     0,   -55,
-   -55,     0,     0,     0,   327,   328,   329,   330,   331,  1890,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,     0,     0,     0,   -55,
-   -55,   -55,   -55,   812,     0,     0,     0,   -55,     0,   -55,
+   -55,     0,   593,    28,    29,   594,   595,    32,   596,    34,
+     0,    35,  2016,    37,    38,    39,     0,    41,    42,     0,
+     0,     0,     0,    44,     0,     0,     0,     0,     0,   -55,
+   -55,   -55,   -55,     0,     0,    55,     0,   -55,     0,   -55,
      0,   -55,   -55,   -55,   -55,   -55,   -55,   -55,   -55,   -55,
-   -55,   588,    28,    29,   589,   590,    32,   591,    34,     0,
-    35,     0,    37,    38,    39,     0,    41,    42,  1943,     0,
-     0,     0,    44,   -12,   -12,   -12,   -12,   -12,   -12,   -12,
-   -12,     0,     0,     0,    55,     0,     0,     0,     0,     0,
+   -55,   593,    28,    29,   594,   595,    32,   596,    34,     0,
+    35,     0,    37,    38,    39,  2061,    41,    42,    59,    60,
+    61,     0,    44,   -12,   -12,   -12,   -12,   -12,   -12,   -12,
+   -12,     0,     0,     0,    55,     0,    71,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,    -7,    -7,
-     0,    -7,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,    59,    60,    61,
-     0,  1997,   341,     0,   543,   588,    28,    29,   589,   590,
-    32,   591,    34,     0,    35,    71,    37,    38,    39,     0,
-    41,    42,     0,     0,     0,     0,    44,     0,     0,     0,
-     0,     0,     0,   327,   328,   329,   330,   331,    55,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,   227,     0,
-     0,     0,     0,   341,  2042,     0,     0,     0,     0,     0,
-     0,     0,   953,     0,     0,     0,     0,     0,     0,     0,
-     0,    59,    60,    61,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,    71,
-     0,     0,  2080,     0,   341,     0,     0,     0,     0,     0,
-     0,     0,     0,   979,     0,     0,     0,   616,   656,   657,
-   658,   659,   660,   661,   662,   663,   664,   665,   666,   667,
-   668,   669,   670,   671,   672,   673,   674,   675,   676,   677,
-   678,   679,   680,   681,   682,   683,   228,   229,   230,     0,
-     0,     0,     0,     0,   231,   232,   233,   234,   235,   236,
-   237,   238,   239,   240,    23,     0,     0,     0,     0,     0,
-     0,     0,   241,   242,   243,   244,   245,   246,   247,   248,
-   249,   250,     0,   251,   252,   253,   254,   255,   256,     0,
-     0,   840,     0,    24,     0,     0,     0,    25,    26,     0,
-    27,    28,    29,    30,    31,    32,    33,    34,     0,    35,
-    36,    37,    38,    39,    40,    41,    42,     0,     0,     0,
-    43,    44,    45,    46,    47,    48,    49,    50,     0,    51,
-    52,    53,    54,    55,     0,    56,    57,     0,     0,     0,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,  1045,     0,     0,
-   341,     0,     0,     0,     0,    58,    59,    60,    61,  1259,
-     0,     0,     0,    62,     0,    63,     0,    64,    65,    66,
-    67,    68,    69,    70,    71,    72,    73,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,     0,
-     0,   327,   328,   329,   330,   331,  1471,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,     0,     0,   327,   328,   329,   330,   331,
-  1472,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   327,
-   328,   329,   330,   331,  1528,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,     0,     0,   327,   328,   329,   330,   331,  1529,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,     0,     0,   327,   328,   329,
-   330,   331,  1533,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,     0,
-     0,   327,   328,   329,   330,   331,  1539,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,     0,     0,   327,   328,   329,   330,   331,
-  1542,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   327,
-   328,   329,   330,   331,  1545,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,     0,     0,   327,   328,   329,   330,   331,  1546,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,     0,     0,   327,   328,   329,
-   330,   331,  1596,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,     0,
-     0,   327,   328,   329,   330,   331,  1660,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,     0,     0,   327,   328,   329,   330,   331,
-  1663,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   327,
-   328,   329,   330,   331,  1665,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,     0,     0,   327,   328,   329,   330,   331,  1701,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,     0,     0,   327,   328,   329,
-   330,   331,  1915,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,     0,
-     0,   327,   328,   329,   330,   331,  1969,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   510,     0,     0,     0,     0,   574,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,   574,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,   575,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-   609,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,   735,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,   736,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,   749,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,   750,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-   751,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,   752,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,   753,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,   754,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,   819,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-   820,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,   821,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,   943,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,   977,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,   978,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1000,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1147,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1148,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1162,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1163,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1194,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1195,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1196,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1197,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1198,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1199,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1200,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1201,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1202,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1203,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1204,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1205,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1206,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1207,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1208,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1209,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1210,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1211,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1212,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1213,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1214,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1215,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1216,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1217,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1218,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1219,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1234,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1241,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1364,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1369,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1370,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1380,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1381,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1389,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1392,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1403,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1408,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1411,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1413,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1414,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1415,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1416,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1417,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1418,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1419,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1420,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1421,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1422,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1423,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1424,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1425,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1426,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1427,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1428,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1429,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1430,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1431,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1432,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1433,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1434,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1435,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1436,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1437,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1438,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1443,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1444,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1555,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1567,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1568,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1569,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1570,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1571,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1572,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1573,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1574,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1575,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1576,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1577,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1578,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1579,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1580,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1581,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1582,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1583,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1584,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1585,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1586,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1587,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1589,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1591,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1678,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1679,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1680,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1681,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1682,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1683,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1684,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1685,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1686,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1687,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1688,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1689,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1690,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1691,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1692,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1693,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1694,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1695,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1696,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1697,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1698,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1778,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1779,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1780,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1781,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1782,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1783,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1784,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1785,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1786,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1787,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1788,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1789,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1790,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1791,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1792,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1793,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1794,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1795,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1796,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1797,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1798,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1855,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1862,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1863,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1864,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1865,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1866,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1867,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1868,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1869,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1870,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1871,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1872,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1873,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1874,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1875,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1876,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1877,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1878,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1879,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1914,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1922,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1923,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1924,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1925,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1926,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1927,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1928,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1929,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1930,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1931,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1932,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1933,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1934,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1935,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1936,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1937,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1938,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1939,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1978,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1979,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1980,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1981,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1982,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1983,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1984,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1985,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1986,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1987,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1988,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1989,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1990,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  1991,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  1992,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  1993,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  1994,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  1995,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2027,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2028,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2029,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2030,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2031,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2032,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2033,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2034,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2035,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2036,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2037,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2038,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2039,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2040,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2041,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2065,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2066,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2067,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2068,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2069,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2070,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2071,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2072,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2073,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2074,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2075,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2076,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2077,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2078,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2079,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2109,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2110,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2111,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2112,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2113,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2114,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2115,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2116,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2117,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2118,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2119,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2120,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2121,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2122,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2123,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2153,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2154,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2155,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2156,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2157,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2158,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2159,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2160,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2161,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2184,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2185,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2186,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2187,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2188,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2189,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2190,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2191,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2192,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2226,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2227,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2228,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2229,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2230,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2231,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2232,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2233,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2234,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2256,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2257,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2258,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2259,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2260,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2261,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2274,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2275,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2276,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2277,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2278,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2279,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2295,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2296,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2297,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2298,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2299,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2300,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2319,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2320,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2321,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2331,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2332,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2333,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2346,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2347,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2348,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2364,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2365,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2366,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2370,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   327,   328,   329,
-   330,   331,  2371,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   327,
-   328,   329,   330,   331,  2372,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   327,   328,   329,   330,   331,  2376,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   327,   328,   329,   330,   331,  2377,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   327,   328,   329,   330,   331,
-  2378,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   653,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   714,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   716,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   718,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   720,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   722,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   724,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   726,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   728,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   730,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   732,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   734,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   738,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   740,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   742,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   744,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   746,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   748,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   822,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   828,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   831,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,   832,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,   924,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,  1077,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,  1079,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,  1081,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,  1083,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,     0,     0,  1084,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,     0,     0,  1232,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,   544,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   546,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,   548,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   549,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,   557,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   603,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-   604,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   607,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,   613,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   713,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,   715,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   717,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,   719,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   721,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,   723,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   725,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-   727,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   729,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,   731,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   733,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,   737,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   739,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,   741,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   743,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,   745,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   747,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-   784,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   786,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,   799,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,   800,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,   801,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,   805,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,   806,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,   807,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,   808,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,   809,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-   811,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,   836,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,   843,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,  1076,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,  1078,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,  1080,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,  1082,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,  1088,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,  1151,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,  1260,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-  1288,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,  1398,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,  1402,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,  1404,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,  1527,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,  1558,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,  1560,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,  1562,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,  1564,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,  1565,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-  1566,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,  1588,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,  1700,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,  1859,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,  1860,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,  1861,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,  2024,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,  2025,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,  2026,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,  2147,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-  2148,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,  2149,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,  2150,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,  2151,
-   327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
-   336,   337,   338,   339,   340,     0,     0,     0,     0,     0,
-   341,     0,  2152,   327,   328,   329,   330,   331,     0,   332,
-   333,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-     0,     0,     0,   341,     0,  2262,   327,   328,   329,   330,
-   331,     0,   332,   333,   334,   335,   336,   337,   338,   339,
-   340,     0,     0,     0,     0,     0,   341,     0,  2263,   327,
-   328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
-   337,   338,   339,   340,     0,     0,     0,     0,     0,   341,
-     0,  2264,   327,   328,   329,   330,   331,     0,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-     0,     0,   341,     0,  2322,   327,   328,   329,   330,   331,
-     0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-     0,     0,     0,     0,     0,   341,     0,  2323,   327,   328,
-   329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
-   338,   339,   340,     0,     0,     0,     0,     0,   341,     0,
-  2324,   327,   328,   329,   330,   331,     0,   332,   333,   334,
-   335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-     0,   341,     0,  2382,   327,   328,   329,   330,   331,     0,
-   332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
-     0,     0,     0,     0,   341,     0,  2383,   327,   328,   329,
-   330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
-   339,   340,     0,     0,     0,     0,     0,   341,     0,  2384
+     0,    -7,     0,  2099,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    59,    60,    61,
+     0,   593,    28,    29,   594,   595,    32,   596,    34,     0,
+    35,     0,    37,    38,    39,    71,    41,    42,     0,     0,
+     0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    55,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,    23,     0,   342,     0,     0,   620,     0,
+     0,     0,     0,     0,   960,     0,     0,    59,    60,    61,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    24,     0,     0,    71,    25,    26,     0,    27,
+    28,    29,    30,    31,    32,    33,    34,     0,    35,    36,
+    37,    38,    39,    40,    41,    42,     0,   621,     0,    43,
+    44,    45,    46,    47,    48,    49,    50,     0,    51,    52,
+    53,    54,    55,     0,    56,    57,     0,     0,     0,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,     0,     0,     0,    58,    59,    60,    61,   988,     0,
+     0,     0,    62,     0,    63,     0,    64,    65,    66,    67,
+    68,    69,    70,    71,    72,    73,     0,   847,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   328,   329,   330,   331,   332,  1272,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,     0,     0,   328,   329,   330,   331,
+   332,  1382,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,     0,     0,
+   328,   329,   330,   331,   332,  1383,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,     0,     0,   328,   329,   330,   331,   332,  1488,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,     0,     0,   328,   329,
+   330,   331,   332,  1489,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   328,   329,   330,   331,   332,  1547,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,     0,     0,   328,   329,   330,   331,
+   332,  1548,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,     0,     0,
+   328,   329,   330,   331,   332,  1552,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,     0,     0,   328,   329,   330,   331,   332,  1558,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,     0,     0,   328,   329,
+   330,   331,   332,  1561,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   328,   329,   330,   331,   332,  1564,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,     0,     0,   328,   329,   330,   331,
+   332,  1565,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,     0,     0,
+   328,   329,   330,   331,   332,  1615,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,     0,     0,   328,   329,   330,   331,   332,  1679,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,     0,     0,   328,   329,
+   330,   331,   332,  1682,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   328,   329,   330,   331,   332,  1684,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,     0,     0,   328,   329,   330,   331,
+   332,  1720,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,     0,     0,
+   328,   329,   330,   331,   332,  1934,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,     0,     0,   328,   329,   330,   331,   332,  1988,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,   580,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,   614,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,   740,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,   741,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,   754,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,   755,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,   756,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,   757,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,   758,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,   759,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,   826,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,   827,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,   828,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,   950,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,   986,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,   987,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1009,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1158,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1159,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1173,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1174,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1205,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1206,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1207,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1208,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1209,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1210,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1211,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1212,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1213,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1214,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1215,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1216,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1217,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1218,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1219,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1220,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1221,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1222,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1223,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1224,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1225,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1226,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1227,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1228,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1229,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1230,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1245,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1252,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1377,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1384,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1385,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1395,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1396,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1404,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1407,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1418,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1423,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1426,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1428,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1429,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1430,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1431,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1432,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1433,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1434,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1435,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1436,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1437,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1438,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1439,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1440,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1441,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1442,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1443,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1444,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1445,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1446,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1447,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1448,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1449,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1450,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1451,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1452,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1453,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1458,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1459,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1574,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1586,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1587,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1588,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1589,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1590,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1591,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1592,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1593,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1594,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1595,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1596,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1597,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1598,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1599,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1600,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1601,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1602,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1603,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1604,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1605,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1606,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1608,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1610,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1697,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1698,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1699,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1700,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1701,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1702,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1703,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1704,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1705,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1706,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1707,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1708,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1709,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1710,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1711,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1712,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1713,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1714,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1715,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1716,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1717,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1797,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1798,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1799,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1800,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1801,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1802,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1803,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1804,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1805,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1806,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1807,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1808,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1809,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1810,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1811,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1812,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1813,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1814,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1815,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1816,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1817,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1874,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1881,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1882,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1883,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1884,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1885,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1886,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1887,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1888,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1889,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1890,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1891,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1892,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1893,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1894,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1895,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1896,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1897,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1898,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1933,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1941,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1942,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1943,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1944,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1945,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1946,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1947,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1948,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1949,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1950,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1951,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1952,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1953,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1954,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1955,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1956,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  1957,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  1958,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  1997,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  1998,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  1999,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2000,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2001,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2002,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2003,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2004,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2005,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2006,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2007,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2008,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2009,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2010,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2011,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2012,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2013,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2014,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2046,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2047,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2048,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2049,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2050,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2051,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2052,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2053,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2054,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2055,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2056,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2057,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2058,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2059,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2060,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2084,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2085,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2086,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2087,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2088,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2089,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2090,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2091,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2092,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2093,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2094,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2095,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2096,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2097,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2098,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2128,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2129,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2130,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2131,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2132,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2133,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2134,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2135,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2136,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2137,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2138,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2139,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2140,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2141,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2142,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2172,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2173,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2174,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2175,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2176,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2177,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2178,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2179,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2180,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2203,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2204,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2205,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2206,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2207,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2208,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2209,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2210,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2211,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2245,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2246,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2247,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2248,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2249,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2250,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2251,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2252,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2253,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2275,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2276,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2277,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2278,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2279,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2280,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2293,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2294,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2295,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2296,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2297,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2298,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2314,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2315,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2316,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2317,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2318,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2319,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2338,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2339,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2340,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2350,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2351,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2352,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2365,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2366,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2367,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2383,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2384,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2385,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2389,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   328,   329,   330,   331,   332,  2390,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   328,   329,   330,   331,   332,  2391,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   328,   329,   330,   331,   332,  2395,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   328,   329,   330,   331,
+   332,  2396,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   328,   329,
+   330,   331,   332,  2397,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   519,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   658,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   719,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   721,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   723,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   725,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   727,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   729,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   731,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   733,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   735,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   737,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   739,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   743,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   745,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   747,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   749,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   751,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   753,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   829,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   835,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   838,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,   839,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,   931,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,  1086,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,  1088,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,  1090,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,  1092,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+     0,     0,  1093,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,     0,     0,  1243,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   545,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,   546,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   547,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,   549,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   551,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,   552,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   560,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,   608,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   609,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,   612,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   618,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,   718,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   720,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,   722,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   724,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,   726,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   728,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,   730,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   732,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,   734,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   736,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,   738,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   742,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,   744,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   746,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,   748,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   750,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,   752,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   789,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,   791,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   804,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,   805,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,   806,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,   810,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,   811,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,   812,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,   813,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,   814,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,   816,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,   818,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+   843,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,   850,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,  1085,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,  1087,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,  1089,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,  1091,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,  1097,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,  1162,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,  1273,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,  1301,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+  1413,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,  1417,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,  1419,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,  1544,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,  1577,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,  1579,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,  1581,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,  1583,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,  1584,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,  1585,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+  1607,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,  1719,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,  1878,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,  1879,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,  1880,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,  2043,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,  2044,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,  2045,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,  2166,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,  2167,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+  2168,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,  2169,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,  2170,   328,   329,   330,
+   331,   332,     0,   333,   334,   335,   336,   337,   338,   339,
+   340,   341,     0,     0,     0,     0,     0,   342,     0,  2171,
+   328,   329,   330,   331,   332,     0,   333,   334,   335,   336,
+   337,   338,   339,   340,   341,     0,     0,     0,     0,     0,
+   342,     0,  2281,   328,   329,   330,   331,   332,     0,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,     0,     0,
+     0,     0,     0,   342,     0,  2282,   328,   329,   330,   331,
+   332,     0,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,     0,     0,     0,     0,     0,   342,     0,  2283,   328,
+   329,   330,   331,   332,     0,   333,   334,   335,   336,   337,
+   338,   339,   340,   341,     0,     0,     0,     0,     0,   342,
+     0,  2341,   328,   329,   330,   331,   332,     0,   333,   334,
+   335,   336,   337,   338,   339,   340,   341,     0,     0,     0,
+     0,     0,   342,     0,  2342,   328,   329,   330,   331,   332,
+     0,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     0,     0,     0,     0,     0,   342,     0,  2343,   328,   329,
+   330,   331,   332,     0,   333,   334,   335,   336,   337,   338,
+   339,   340,   341,     0,     0,     0,     0,     0,   342,     0,
+  2401,   328,   329,   330,   331,   332,     0,   333,   334,   335,
+   336,   337,   338,   339,   340,   341,     0,     0,     0,     0,
+     0,   342,     0,  2402,   328,   329,   330,   331,   332,     0,
+   333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
+     0,     0,     0,     0,   342,     0,  2403
 };
 
 static const short yycheck[] = {    23,
-    97,   387,    72,    73,    23,     4,   320,     4,   356,   774,
-  1377,   194,  1379,     4,   197,     4,     4,     7,     4,     4,
-    68,     5,     3,     6,  1152,  1153,    68,     6,    68,     4,
-     7,     6,     4,    44,     5,  1279,     4,   220,    69,   222,
-    69,    69,     4,    74,    69,    74,    74,     6,     6,    74,
-    34,    35,    36,    69,    69,    39,    69,    69,    74,    74,
-  1169,    74,    74,    34,    35,    36,    69,   318,    39,  1178,
-  1458,    74,   110,   208,  1462,   210,  1185,  1465,   197,   198,
-     5,   208,   197,   198,   208,   197,   198,     6,   215,   197,
-   198,   215,    51,    51,     6,   226,   215,     4,     5,   214,
-    40,   216,   214,    43,   216,   356,   214,     6,   216,    34,
-    35,    36,   197,   198,    39,   139,   140,   141,   197,   198,
-   144,   145,   178,   208,   148,     5,     7,    34,    35,    36,
-   215,   155,    39,   157,   158,   159,   215,   161,   209,   163,
-   164,     6,   166,   214,     6,   113,   114,     6,  1392,   204,
-   205,   113,   114,     6,    34,    35,    36,   212,     7,    39,
-   184,   185,   197,   198,   197,   198,   208,   215,   208,    69,
-   208,   936,   208,   215,    74,   214,   209,   216,   208,   215,
-   215,   205,   206,     7,   208,   216,   210,   216,   216,   213,
-   214,   216,   540,   183,   184,   185,   186,   208,     6,     7,
-   216,   216,   516,   216,   216,   553,   183,   184,   185,   186,
-   208,     6,   210,   216,   204,   205,   208,   198,   197,   198,
-     6,  1349,   212,   215,   215,    68,   215,   215,   411,   215,
-   215,   215,   215,   204,   205,   210,   208,   261,   308,   309,
-   310,   212,   266,   267,   268,   269,   270,   271,   272,   273,
+   390,   321,    72,    73,    97,    23,   779,     4,     4,   357,
+   195,     4,     4,   198,     4,     4,     4,     3,     5,    68,
+     4,     6,  1163,  1164,     5,     4,    69,     6,    44,    69,
+    68,    74,  1292,  1392,    74,  1394,   221,     7,   223,    68,
+     4,     6,   178,     4,     6,   110,    69,    34,    35,    36,
+     6,    74,    39,    34,    35,    36,    69,    69,    39,    69,
+     6,    74,    74,    69,    74,  1180,     6,   208,    74,   210,
+    69,     4,     5,     7,  1189,    74,   197,   198,     5,   197,
+   198,  1196,   197,   198,   208,   208,   210,   208,   197,   198,
+   199,   200,   201,   227,   215,    69,     6,   215,   207,   214,
+    74,    34,    35,    36,     6,    51,    39,    34,    35,    36,
+     6,    51,    39,   197,   198,   139,   140,   141,     6,    40,
+   144,   145,    43,     7,   148,  1475,   197,   198,     6,  1479,
+   214,   155,  1482,   157,   158,   159,   319,   161,     5,   163,
+   164,   208,   166,   208,   215,   197,   198,  1407,   215,   113,
+   114,   208,   113,   114,   210,   209,   212,   208,   215,   208,
+   214,   185,   186,   215,   197,   198,   215,    34,    35,    36,
+   943,   208,    39,   216,   357,   209,   216,   215,   215,   208,
+   214,   214,   206,   207,     6,   209,     7,   211,   197,   198,
+   214,   215,   208,   216,   208,   543,    48,   197,   198,   519,
+   208,   215,   210,   216,   216,   214,   216,   216,   556,   209,
+   216,     6,   198,   183,   184,   185,   186,   216,   215,    44,
+     8,  1362,    68,   215,   208,   215,   215,   215,   215,   414,
+   215,   210,   197,   198,   215,   197,   198,   208,   262,   309,
+   310,   311,   216,   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,  1393,   197,   198,   208,  1397,   540,
-   215,   422,  1659,   208,   318,  1662,    48,  1664,   197,   198,
-   208,   320,   553,   327,   328,   329,   330,   331,   332,   333,
-   334,   335,   336,   337,   338,   339,   340,   341,  1706,   208,
-     3,   210,  1710,   208,   348,  1713,   350,   197,   198,   204,
-   205,   355,   356,  1098,   183,   184,   185,   186,    58,    59,
-   364,   365,   366,   367,   214,   369,   370,   371,   372,   373,
-   374,   375,   208,   377,   378,   204,   205,   197,   198,   183,
-   184,   185,   186,   197,   198,   389,   390,   391,   392,   197,
-   198,   209,   208,   397,   214,   209,   214,   401,   402,   209,
-   204,   205,   208,   407,   214,   208,   214,   386,   387,   386,
-   387,  1758,   416,   174,   175,  1762,   177,  1764,   190,   191,
-    44,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-   758,   204,   205,     8,   208,   207,  1804,   210,    44,   212,
-  1808,   209,  1810,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,   197,   198,   197,   198,
-   459,   207,   790,  1552,  1553,  1554,  1555,   517,     6,   209,
-  1559,   209,    44,   214,   214,   214,   214,   197,   198,   208,
-    44,   210,   197,   198,   208,     8,   149,   150,   151,   152,
-   153,   154,   155,   156,   214,   823,   824,   825,   826,   214,
-    46,    46,    47,   197,   198,   509,     6,    44,   512,   197,
-   198,   208,   215,   210,   518,   204,   205,   516,    44,    57,
-   214,   210,   208,   212,   210,   215,   214,   758,     6,    62,
-    63,    64,    65,   764,    67,    40,   540,   541,    43,    44,
-     6,    46,    75,    76,     6,     7,   550,   551,   208,   553,
-   210,   555,   556,   134,   135,   136,   137,   138,   562,   790,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,    40,
-   574,   575,    43,    44,   207,     6,     4,   204,   205,   583,
-  1669,  1670,     4,   210,  1673,   212,   197,   198,   199,   200,
-   201,   595,   823,   824,   825,   826,   207,     4,   199,   200,
-   201,    43,    44,   653,    46,   609,   207,   611,   612,   208,
-   208,  1356,   187,   188,   189,   190,   191,   208,   193,   194,
-   195,   196,   197,   198,   199,   200,   201,   955,   208,   208,
-   210,   210,   207,     4,   928,   929,   181,     4,   183,   204,
-   205,   216,    44,     5,   189,   210,   208,   212,   210,   187,
-   188,   189,   190,   191,   653,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,   187,   188,   189,   190,   191,   207,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,  1768,
-   208,   208,   210,   210,   207,     4,   209,   187,   188,   189,
-   190,   191,   208,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,   208,   210,   210,   212,   208,   207,   210,   759,
-   208,   208,   210,   210,   208,   208,   210,   210,   208,   264,
-   210,   208,   208,   210,   955,     6,   208,     6,   210,   208,
-     6,   735,   736,   214,   214,   216,   216,   214,   214,   216,
-   216,   214,   214,   216,   216,   749,   750,   751,   752,   753,
-   754,   755,   208,     6,   758,   208,   214,   761,   216,   214,
-   764,   216,   214,   767,   216,   214,     4,   216,  1857,   214,
-  1136,   216,     5,   777,   214,     6,   216,   214,   214,   216,
-   216,   214,   214,   216,   216,   214,   790,   216,   792,   214,
-   214,   216,   216,   214,   214,   216,   216,   214,     6,   216,
-   877,   215,   208,   187,   188,   189,   190,   191,   208,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,   208,   823,
-   824,   825,   826,   207,   215,   829,   830,   215,   215,  1918,
-   214,   835,   216,   214,   214,   216,   216,   215,   208,   384,
-   385,   215,   846,   847,     8,    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,   214,   214,   216,   216,   208,   882,   883,
-   884,   885,   886,   887,   888,   889,   890,   891,   892,   893,
+   304,   305,   306,   307,   308,    46,    47,   197,   198,     3,
+   208,   425,     7,  1408,   208,   319,   210,  1412,    44,   183,
+   184,   185,   186,   321,   328,   329,   330,   331,   332,   333,
+   334,   335,   336,   337,   338,   339,   340,   341,   342,  1678,
+   204,   205,  1681,   208,  1683,   349,   209,   351,   212,   208,
+   215,   214,   356,   357,  1107,   209,   208,   204,   205,   208,
+   214,   365,   366,   367,   368,   212,   370,   371,   372,   373,
+   374,   375,   376,   209,   378,   379,   380,   381,   214,   208,
+   543,   210,   183,   184,   185,   186,   197,   198,   392,   393,
+   394,   395,   209,   556,   208,  1725,   400,   214,   209,  1729,
+   404,   405,  1732,   204,   205,   208,   410,   197,   198,   208,
+   199,   200,   201,   389,   390,   419,   389,   390,   207,   187,
+   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
+   198,   199,   200,   201,    44,   763,     6,    44,  1777,   207,
+    69,   182,  1781,   184,  1783,    74,   197,   198,   216,   190,
+    43,    44,   197,   198,    46,   149,   150,   151,   152,   153,
+   154,   155,   156,   214,   462,   216,   208,   795,   210,   214,
+   520,   216,   204,   205,     6,     7,  1571,  1572,  1573,  1574,
+   212,   197,   198,  1578,   197,   198,   208,    57,   183,   184,
+   185,   186,     8,  1823,   215,   197,   198,  1827,   214,  1829,
+   215,   214,   830,   831,   832,   833,   197,   198,   512,   204,
+   205,   515,   214,   214,     6,   216,    40,   521,    44,    43,
+    44,   519,    46,   214,   265,   190,   191,     6,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,     6,     6,   543,
+   544,   208,   207,   197,   198,   204,   205,   204,   205,   553,
+   554,   210,   556,   212,   558,   559,   174,   175,     4,   177,
+   214,   565,   189,   190,   191,     4,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,   579,   580,   208,    40,   210,
+   207,    43,    44,     4,   588,    62,    63,    64,    65,   208,
+    67,   210,   208,  1688,  1689,   208,   600,  1692,    75,    76,
+   763,   204,   205,   208,     4,   210,   769,   210,   658,   212,
+   614,     6,   616,   617,     6,     7,  1369,   187,   188,   189,
+   190,   191,     4,   193,   194,   195,   196,   197,   198,   199,
+   200,   201,   795,    44,   962,   935,   936,   207,   134,   135,
+   136,   137,   138,   208,   208,   210,   387,   388,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,   204,   205,   208,
+   658,   210,   207,   210,   208,   212,   210,   830,   831,   832,
+   833,   187,   188,   189,   190,   191,     5,   193,   194,   195,
+   196,   197,   198,   199,   200,   201,    43,    44,   208,    46,
+   210,   207,  1787,   209,   208,   187,   188,   189,   190,   191,
+   208,   193,   194,   195,   196,   197,   198,   199,   200,   201,
+   208,   208,   210,   210,   764,   207,    58,    59,   187,   188,
+   189,   190,   191,   208,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,     6,   204,   205,   740,   741,   207,     4,
+   210,   208,   212,   210,   208,   208,   210,   210,   208,     5,
+   754,   755,   756,   757,   758,   759,   760,     6,     6,   763,
+     6,   208,   766,   210,   208,   769,   210,   208,   772,   210,
+   208,   214,   214,   216,   216,   208,   208,  1147,   782,   215,
+   214,  1876,   216,   214,   214,   216,   216,   214,   214,   216,
+   216,   795,   214,   797,   216,   214,   214,   216,   216,   962,
+   214,   208,   216,     6,   214,   214,   216,   216,   214,   208,
+   216,   884,   214,   214,   216,   216,   214,   214,   216,   216,
+   214,   214,   216,   216,   215,   215,   830,   831,   832,   833,
+     6,   208,   836,   837,   214,   208,   216,   578,   842,   214,
+   208,   216,  1937,   214,   214,   216,   216,   208,   208,   853,
+   854,     4,   215,     3,     4,   214,   214,   216,   216,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    32,   215,   215,   889,   890,   891,   892,   893,
    894,   895,   896,   897,   898,   899,   900,   901,   902,   903,
-   904,   905,   906,   907,   208,   909,   187,   188,   189,   190,
-   191,   208,   193,   194,   195,   196,   197,   198,   199,   200,
-   201,   214,   214,   216,   216,   924,   207,   214,   208,   216,
-   929,   208,   210,   937,   187,   188,   189,   190,   191,   943,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,   208,
-   214,   955,   216,   957,   207,   959,   187,   188,   189,   190,
-   191,   210,   193,   194,   195,   196,   197,   198,   199,   200,
-   201,     6,   976,   977,   978,   214,   207,   216,   212,   187,
-   188,   189,   190,   191,   216,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,   210,   215,  1000,  1001,  1002,   207,
-   214,   214,   216,   216,   214,  1371,   216,   214,   214,   216,
-   216,   116,   214,  2102,   216,   214,   214,   216,   216,   214,
-     6,   216,   208,   187,   188,   189,   190,   191,   573,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,     6,     6,
-  1090,     3,   208,   207,  1043,   208,     3,     4,   208,  1160,
-   208,   208,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,    32,   208,   208,   208,   208,
-  1130,   208,   208,    40,   208,   208,   208,  1091,   208,   208,
-   208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
-   208,   208,   208,     6,   208,    62,    63,    64,    65,    66,
-    67,     5,   214,   209,  1191,  1119,  1120,  1121,    75,    76,
-   214,     4,   207,     5,   212,   215,  1130,  1131,  1132,     7,
-     7,   210,     7,     7,   209,     6,   111,     7,     7,   113,
-     5,   215,     5,  1147,  1148,     5,     5,     5,     5,     5,
-     5,     5,     5,     5,     5,  1159,     5,  1136,  1162,  1136,
-     5,     5,     5,     5,     5,     5,     5,     5,  1172,     5,
-   127,   128,   129,   130,     5,  1179,  1180,  1181,   167,  1290,
-     5,     5,  1186,     5,     5,     3,  1190,     6,     5,     5,
-  1194,  1195,  1196,  1197,  1198,  1199,  1200,  1201,  1202,  1203,
-  1204,  1205,  1206,  1207,  1208,  1209,  1210,  1211,  1212,  1213,
-  1214,  1215,  1216,  1217,  1218,  1219,     5,   214,  1222,   209,
-   214,     6,     4,   211,     7,     6,   208,     7,     7,     7,
-  1234,     7,     7,     7,   212,   216,   781,  1241,     7,   216,
-   197,   198,   215,   215,     7,     7,   203,   212,   179,     5,
-   214,   208,   208,   214,   214,   214,   213,  1261,   215,   214,
-   214,   214,   214,   214,   214,   214,   214,   214,   214,     6,
-   214,   214,   214,   214,   819,   820,   821,   214,   214,  1390,
-  1284,   214,  1286,   209,   187,   188,   189,   190,   191,   214,
+   904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
+   914,   214,   916,   216,   187,   188,   189,   190,   191,     8,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,   214,
+   214,   216,   216,   931,   207,   214,   210,   216,   936,   210,
+   944,   187,   188,   189,   190,   191,   950,   193,   194,   195,
+   196,   197,   198,   199,   200,   201,   210,   214,   962,   216,
+   964,   207,   966,   214,   214,   216,   216,   214,     6,   216,
+   214,   214,   216,   216,   214,   212,   216,   127,   128,   129,
+   130,   985,   986,   987,   187,   188,   189,   190,   191,   215,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,   214,
+   214,   216,   216,   116,   207,  1009,  1010,  1011,   214,     6,
+   216,   187,   188,   189,   190,   191,  1386,   193,   194,   195,
+   196,   197,   198,   199,   200,   201,  2121,   208,     6,     6,
+     3,   207,   214,   208,   208,   208,   208,   208,   208,   208,
+   208,   208,   208,   208,   208,   786,   208,   197,   198,  1099,
+   208,   208,   208,   203,  1052,     5,   208,  1171,   208,   208,
+   208,   211,     6,   213,   208,   215,   208,   208,   187,   188,
+   189,   190,   191,   208,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,   208,     6,   826,   827,   828,   207,  1139,
+   208,   208,   208,   208,   208,   214,  1100,   216,   187,   188,
+   189,   190,   191,   208,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,   209,   855,     6,   214,     4,   207,     5,
+   207,   212,     7,   864,  1128,  1129,  1130,     7,   210,  1202,
+     6,   215,     7,     7,   209,  1139,  1140,  1141,  1142,  1143,
+     6,   111,     7,     7,   113,   215,     5,     5,     5,     5,
+     5,     5,     5,     5,  1158,  1159,     5,     5,     5,     5,
+     5,     5,     5,     5,     5,     5,  1170,     5,     5,  1173,
+     5,  1147,     5,     5,  1147,   167,     5,     5,     5,  1183,
+     5,     3,     5,   214,     5,     5,  1190,  1191,  1192,  1303,
+     6,   209,   214,  1197,     6,     4,   211,  1201,     6,   212,
+     7,  1205,  1206,  1207,  1208,  1209,  1210,  1211,  1212,  1213,
+  1214,  1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,  1223,
+  1224,  1225,  1226,  1227,  1228,  1229,  1230,     7,     7,  1233,
+     7,     7,     7,     7,   216,   216,   215,     7,     7,   215,
+   208,  1245,     7,   187,   188,   189,   190,   191,  1252,   193,
+   194,   195,   196,   197,   198,   199,   200,   201,   212,   179,
+     5,   214,   214,   207,   209,   187,   188,   189,   190,   191,
+  1274,   193,   194,   195,   196,   197,   198,   199,   200,   201,
+   214,   214,   214,   214,   214,   207,     6,   214,   214,   214,
+   214,  1405,   208,  1297,   208,  1299,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,   187,   188,   189,   190,   191,   207,   193,   194,   195,
+   196,   197,   198,   199,   200,   201,     8,   208,     6,     4,
+   214,   207,   214,     3,     4,   214,   214,   214,   208,     9,
+    10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    32,   214,   214,     6,     6,     6,     3,     7,
+     6,     4,  1113,  1377,  1115,   214,     7,   211,   214,     7,
+  1384,  1385,     7,   214,   214,  1389,     7,  1391,   214,  1393,
+   214,  1395,  1396,   210,     7,   214,   214,  1401,   208,   214,
+   214,   214,   208,   214,   208,   208,  1410,  1148,   208,  1150,
+  1386,  1152,   208,  1386,  1418,   208,   208,   208,   208,  1423,
+   208,   208,  1426,   208,  1428,  1429,  1430,  1431,  1432,  1433,
+  1434,  1435,  1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,
+  1444,  1445,  1446,  1447,  1448,  1449,  1450,  1451,  1452,  1453,
+     8,   208,   208,   208,  1458,   208,  1570,   127,   128,   129,
+   130,   208,  1466,   215,  1468,  1469,  1470,   187,   188,   189,
+   190,   191,   208,   193,   194,   195,   196,   197,   198,   199,
+   200,   201,   187,   188,   189,   190,   191,   207,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,   208,   208,   208,
+   215,   215,   207,     7,   209,   187,   188,   189,   190,   191,
+     7,   193,   194,   195,   196,   197,   198,   199,   200,   201,
+  1634,     7,     7,     7,     7,   207,     7,   197,   198,     7,
+     7,     7,     7,   203,     7,     6,     6,     6,   208,     6,
+     3,   211,     7,   213,     8,   215,     4,     7,   180,  1553,
+     3,   199,     3,     3,     6,  1559,     3,     3,  1562,     8,
+     3,     3,     3,     3,     3,     3,     3,   209,   212,     5,
+     5,     3,     3,  1687,     4,   209,   112,     6,   208,     7,
+     6,     6,  1586,  1587,  1588,  1589,  1590,  1591,  1592,  1593,
+  1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,  1602,  1603,
+  1604,  1605,  1606,     6,  1608,     6,  1610,   187,   188,   189,
+   190,   191,   215,   193,   194,   195,   196,   197,   198,   199,
+   200,   201,   215,   215,   215,   215,     6,   207,   165,   187,
+   188,   189,   190,   191,   171,   193,   194,   195,   196,   197,
+   198,   199,   200,   201,     6,   215,   176,   214,  1389,   207,
+  1391,   214,  1393,   209,   214,   209,   209,   214,     6,   196,
+   209,     6,   214,   214,   201,   202,   214,   209,  1718,   214,
+   214,   214,  1786,   214,   214,   214,   209,     4,     6,   214,
+   214,   209,   214,   214,     6,   214,     6,   214,   214,   212,
+  1694,  1695,  1696,  1697,  1698,  1699,  1700,  1701,  1702,  1703,
+  1704,  1705,  1706,  1707,  1708,  1709,  1710,  1711,  1712,  1713,
+  1714,  1715,  1716,  1717,     6,   211,     6,     6,  1832,     6,
+     6,     6,     6,   187,   188,   189,   190,   191,  1469,   193,
+   194,   195,   196,   197,   198,   199,   200,   201,   187,   188,
+   189,   190,   191,   207,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,     6,     6,     6,     6,     6,   207,     6,
+     6,  1875,     6,     6,     6,   112,     7,     3,  1818,     6,
+  1820,     3,     6,     6,     3,   199,     6,     3,     6,     6,
+     3,  1785,     6,     3,     6,     3,     3,  1791,   215,  1793,
+     6,  1795,     6,  1797,  1798,  1799,  1800,  1801,  1802,  1803,
+  1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,  1813,
+  1814,  1815,  1816,  1817,   187,   188,   189,   190,   191,     4,
    193,   194,   195,   196,   197,   198,   199,   200,   201,     6,
-   214,   214,   214,   848,   207,   214,   214,   214,   214,   214,
-   214,   208,   857,   208,   215,   208,   208,     3,     4,   208,
-   208,   208,   208,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,   208,   215,     6,
-     4,     6,   112,     6,     6,     3,     7,     6,   208,     6,
-  1364,   208,   208,   211,     7,  1369,  1370,     7,     7,     7,
-  1374,   208,  1376,   208,  1378,   208,  1380,  1381,   208,   208,
-   208,   208,  1386,   215,   210,   208,     7,     7,   208,     7,
-     7,  1395,  1371,   208,  1371,   208,   208,   208,     7,  1403,
-     7,     7,     7,     7,  1408,     4,     7,  1411,     6,  1413,
-  1414,  1415,  1416,  1417,  1418,  1419,  1420,  1421,  1422,  1423,
-  1424,  1425,  1426,  1427,  1428,  1429,  1430,  1431,  1432,  1433,
-  1434,  1435,  1436,  1437,  1438,     7,     6,     6,     6,  1443,
-  1551,   127,   128,   129,   130,  1449,     6,  1451,  1452,  1453,
-   187,   188,   189,   190,   191,     7,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,   187,   188,   189,   190,   191,
-   207,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-   187,   188,   189,   190,   191,   207,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,     4,     7,   180,     3,     3,
-   207,   199,     3,     3,  1615,     3,     3,     3,     3,     3,
-     3,   197,   198,     3,     3,     3,   209,   203,     5,     5,
-     3,     3,   208,     4,   209,   211,     6,   213,     6,   215,
-  1534,   212,     7,     6,     6,     6,  1540,     6,   208,  1543,
-   187,   188,   189,   190,   191,     6,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,   215,   215,  1668,     6,  1104,
-   207,  1106,   176,  1567,  1568,  1569,  1570,  1571,  1572,  1573,
-  1574,  1575,  1576,  1577,  1578,  1579,  1580,  1581,  1582,  1583,
-  1584,  1585,  1586,  1587,   215,  1589,   215,  1591,   214,   214,
-   209,   214,  1137,   209,  1139,     6,  1141,   209,     6,   214,
-     4,   214,     7,   214,   214,     6,   209,   209,     6,   209,
-     6,     6,   209,     6,     6,   211,   165,   187,   188,   189,
-   190,   191,   171,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,   214,   214,   214,   214,   214,   207,   214,   214,
-   214,   214,     6,   214,     6,     6,   195,   214,   214,  1699,
-   214,   200,   201,   212,     6,     8,  1767,     6,     6,     6,
-     6,     6,     6,     6,     6,     6,     6,     6,   112,     3,
-     6,  1675,  1676,  1677,  1678,  1679,  1680,  1681,  1682,  1683,
-  1684,  1685,  1686,  1687,  1688,  1689,  1690,  1691,  1692,  1693,
-  1694,  1695,  1696,  1697,  1698,     3,     6,     8,   215,     3,
-     4,     6,  1813,     6,     3,     9,    10,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    30,    31,    32,   199,
-   187,   188,   189,   190,   191,     6,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,  1856,     3,     6,     6,  1799,
-   207,  1801,     6,     3,     3,     3,     3,     8,   212,   216,
-     6,     6,  1766,     4,     6,   211,     6,     6,  1772,     7,
-  1774,     6,  1776,   215,  1778,  1779,  1780,  1781,  1782,  1783,
-  1784,  1785,  1786,  1787,  1788,  1789,  1790,  1791,  1792,  1793,
-  1794,  1795,  1796,  1797,  1798,   187,   188,   189,   190,   191,
-   216,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-   112,   109,   215,     8,   214,   207,   215,   114,   215,   209,
-   209,   215,     6,   127,   128,   129,   130,   214,   214,  1374,
-  1880,  1376,   214,  1378,   187,   188,   189,   190,   191,   214,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,   209,
-  1854,  1855,   209,   209,   207,   214,   214,     3,  1862,  1863,
-  1864,  1865,  1866,  1867,  1868,  1869,  1870,  1871,  1872,  1873,
-  1874,  1875,  1876,  1877,  1878,  1879,   187,   188,   189,   190,
-   191,   209,   193,   194,   195,   196,   197,   198,   199,   200,
-   201,   209,   214,   197,   198,   209,   207,     6,     6,   203,
-     3,     6,     6,     5,   208,     6,     6,  1452,     6,   213,
-  1914,   215,     6,     3,     6,  1919,  1920,  1921,  1922,  1923,
-  1924,  1925,  1926,  1927,  1928,  1929,  1930,  1931,  1932,  1933,
-  1934,  1935,  1936,  1937,  1938,  1939,   187,   188,   189,   190,
+     6,   212,     7,     6,   207,    40,    41,    42,    43,    44,
+    45,    46,    47,   216,    49,   211,    51,    52,    53,  1899,
+    55,    56,     6,   216,   215,   215,    61,   215,   215,   215,
+   209,   109,   214,   214,   214,   209,     6,   112,    73,  1873,
+  1874,   214,   214,   209,   209,   214,   209,  1881,  1882,  1883,
+  1884,  1885,  1886,  1887,  1888,  1889,  1890,  1891,  1892,  1893,
+  1894,  1895,  1896,  1897,  1898,   209,   214,   209,   214,   209,
+     3,   106,   107,   108,   187,   188,   189,   190,   191,     6,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,   124,
+   114,     3,     6,     6,   207,     6,     6,     6,     6,  1933,
+     6,   214,     3,   216,  1938,  1939,  1940,  1941,  1942,  1943,
+  1944,  1945,  1946,  1947,  1948,  1949,  1950,  1951,  1952,  1953,
+  1954,  1955,  1956,  1957,  1958,    40,    41,    42,    43,    44,
+    45,    46,    47,     6,    49,     5,    51,    52,    53,     6,
+    55,    56,     5,   109,     6,     6,    61,   514,   216,     6,
+   215,   176,     6,     6,   215,     6,     6,  1991,    73,  1993,
+   209,  1995,     6,  1997,  1998,  1999,  2000,  2001,  2002,  2003,
+  2004,  2005,  2006,  2007,  2008,  2009,  2010,  2011,  2012,  2013,
+  2014,   216,   214,   216,   214,   214,   214,   209,   214,   209,
+     6,   106,   107,   108,     6,   214,   214,     6,     6,     6,
+     6,     6,     6,     6,     6,     6,     5,     5,   216,   124,
+   209,   215,  2046,  2047,  2048,  2049,  2050,  2051,  2052,  2053,
+  2054,  2055,  2056,  2057,  2058,  2059,  2060,   214,     6,   215,
+   215,   214,   214,   214,   209,   214,   214,     6,   215,   215,
+     6,   215,   215,   214,     6,     6,     6,  2081,  2082,  2083,
+  2084,  2085,  2086,  2087,  2088,  2089,  2090,  2091,  2092,  2093,
+  2094,  2095,  2096,  2097,  2098,     6,   187,   188,   189,   190,
    191,     6,   193,   194,   195,   196,   197,   198,   199,   200,
-   201,     5,   216,     6,   215,   215,   207,   176,   214,     6,
-     6,   216,   511,     6,     6,   209,     6,     6,  1972,     6,
-  1974,   214,  1976,   209,  1978,  1979,  1980,  1981,  1982,  1983,
-  1984,  1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,  1993,
-  1994,  1995,   187,   188,   189,   190,   191,   214,   193,   194,
-   195,   196,   197,   198,   199,   200,   201,   214,   214,   209,
-   214,   214,   207,     6,     6,     6,     6,     6,     6,     6,
-     6,     6,     5,  2027,  2028,  2029,  2030,  2031,  2032,  2033,
-  2034,  2035,  2036,  2037,  2038,  2039,  2040,  2041,     5,   215,
-   214,   216,   215,   215,   214,   214,   214,   209,   209,   214,
-   214,     6,   215,     6,     6,   215,   215,   215,  2062,  2063,
-  2064,  2065,  2066,  2067,  2068,  2069,  2070,  2071,  2072,  2073,
-  2074,  2075,  2076,  2077,  2078,  2079,   214,   187,   188,   189,
-   190,   191,     6,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,     6,   109,     6,     6,     6,   207,     5,  2103,
-     6,  2105,     5,  2107,   214,  2109,  2110,  2111,  2112,  2113,
-  2114,  2115,  2116,  2117,  2118,  2119,  2120,  2121,  2122,  2123,
-   215,   176,   215,   209,   215,   209,   215,    40,    41,    42,
-    43,    44,    45,    46,    47,   216,    49,   214,    51,    52,
-    53,   214,    55,    56,   215,     6,   216,     6,    61,  2153,
-  2154,  2155,  2156,  2157,  2158,  2159,  2160,  2161,     6,     6,
-    73,   109,     6,     6,     6,     6,     6,     6,     6,     6,
-   214,   216,     6,   214,  2178,  2179,  2180,  2181,  2182,  2183,
-  2184,  2185,  2186,  2187,  2188,  2189,  2190,  2191,  2192,   215,
-     6,     6,     6,   106,   107,   108,   214,   181,   215,   214,
-     6,   215,   215,   182,   214,   209,     6,     6,     6,     6,
-  2214,   124,  2216,     6,  2218,   214,  2220,   214,  2222,   215,
-  2224,   215,  2226,  2227,  2228,  2229,  2230,  2231,  2232,  2233,
-  2234,     6,   214,   782,   783,   215,   785,     6,   787,   788,
-     6,   209,     6,   215,   215,   215,   215,     6,     6,   215,
-   215,     6,  2256,  2257,  2258,  2259,  2260,  2261,     6,     6,
-     6,   215,     6,     6,   215,   215,     6,     6,   215,   215,
-  2274,  2275,  2276,  2277,  2278,  2279,  2280,  2281,  2282,   215,
-     6,     6,   215,   215,   833,   834,   215,     6,   837,     6,
-     6,  2295,  2296,  2297,  2298,  2299,  2300,  2301,     0,  2303,
-     0,  2305,  1094,   216,   655,   854,   855,     4,     4,    -1,
-    -1,   860,   861,    -1,    -1,  2319,  2320,  2321,   867,    -1,
-   869,    -1,    -1,    -1,    -1,    -1,    -1,  2331,  2332,  2333,
-  2334,  2335,  2336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  2346,  2347,  2348,  2349,    -1,  2351,    -1,  2353,
+   201,     6,     5,     5,   215,   215,   207,   215,  2122,   215,
+  2124,   216,  2126,   214,  2128,  2129,  2130,  2131,  2132,  2133,
+  2134,  2135,  2136,  2137,  2138,  2139,  2140,  2141,  2142,   214,
+   176,   214,   209,   209,   216,   215,    40,    41,    42,    43,
+    44,    45,    46,    47,     6,    49,     6,    51,    52,    53,
+     6,    55,    56,     6,   109,     6,     6,    61,  2172,  2173,
+  2174,  2175,  2176,  2177,  2178,  2179,  2180,     6,     6,    73,
+     6,     6,     6,     6,     6,   214,   216,   215,   214,     6,
+     6,     6,   181,  2197,  2198,  2199,  2200,  2201,  2202,  2203,
+  2204,  2205,  2206,  2207,  2208,  2209,  2210,  2211,   214,   214,
+     6,   215,   106,   107,   108,   215,   215,   182,   214,   209,
+     6,     6,     6,     6,     6,     6,   214,   214,     6,  2233,
+   124,  2235,   215,  2237,   215,  2239,     6,  2241,     6,  2243,
+     6,  2245,  2246,  2247,  2248,  2249,  2250,  2251,  2252,  2253,
+   787,   788,   215,   790,   214,   792,   793,   209,   215,   215,
+   215,   215,   215,     6,   215,     6,     6,     6,     6,   215,
+     6,  2275,  2276,  2277,  2278,  2279,  2280,   215,   215,     6,
+     6,   215,   215,     6,     6,     6,   215,   215,   215,  2293,
+  2294,  2295,  2296,  2297,  2298,  2299,  2300,  2301,   215,     6,
+     6,     6,     0,   840,   841,     0,   660,   844,     4,  1103,
+  2314,  2315,  2316,  2317,  2318,  2319,  2320,     4,  2322,    -1,
+  2324,    -1,   216,    -1,   861,   862,    -1,    -1,    -1,    -1,
+   867,   868,    -1,    -1,  2338,  2339,  2340,   874,    -1,   876,
+    -1,    -1,    -1,    -1,    -1,    -1,  2350,  2351,  2352,  2353,
+  2354,  2355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,  2365,  2366,  2367,  2368,    -1,  2370,    -1,  2372,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2383,
+  2384,  2385,    -1,    -1,    -1,  2389,  2390,  2391,    -1,    -1,
+    -1,  2395,  2396,  2397,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,  2407,  2408,  2409,    -1,    -1,    -1,    -1,
+    -1,    -1,  2416,    -1,  2418,    -1,  2420,   954,    -1,   956,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  2364,  2365,  2366,    -1,    -1,    -1,  2370,  2371,  2372,    -1,
-    -1,    -1,  2376,  2377,  2378,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  2388,  2389,  2390,    -1,    -1,    -1,
-    -1,    -1,    -1,  2397,    -1,  2399,    -1,  2401,   947,    -1,
-   949,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   960,   961,   962,    -1,    -1,    -1,   966,   967,   968,
-   969,   970,   971,   972,     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,     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,     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,   187,   188,   189,   190,   191,    -1,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
-    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,    -1,
-  1089,   214,    -1,   216,    -1,    -1,    -1,    -1,   127,   128,
-   129,   130,    -1,    -1,    40,    41,    42,    43,    44,    45,
-    46,    47,    -1,    49,    -1,    51,    52,    53,    -1,    55,
-    56,    -1,    -1,    -1,    -1,    61,    -1,    -1,   127,   128,
-   129,   130,   187,   188,   189,   190,   191,    73,   193,   194,
-   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
-    -1,    -1,   207,    -1,   209,    -1,  1155,    -1,   127,   128,
-   129,   130,    -1,    -1,  1163,    -1,    -1,    -1,   197,   198,
-   106,   107,   108,    -1,   203,    -1,    -1,    -1,    -1,   208,
-    -1,    -1,   211,  1182,   213,    -1,   215,    -1,   124,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   197,   198,
-    -1,    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,
-    -1,    -1,   211,    -1,   213,    -1,   215,    -1,    -1,    -1,
-    -1,  1220,    -1,    -1,    -1,    -1,    -1,    -1,   197,   198,
-    -1,    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,
-    -1,     3,     4,     5,   213,     7,   215,     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,     3,     4,    39,    -1,    -1,
-   216,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+   967,   968,   969,    -1,    -1,    -1,   973,   974,   975,   976,
+   977,   978,   979,    -1,    -1,     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,    40,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
     -1,    -1,    -1,   207,    62,    63,    64,    65,    66,    67,
-   214,    -1,   216,    -1,    -1,    -1,    -1,    75,    76,   187,
+   214,    -1,   216,    -1,    -1,    -1,    -1,    75,    76,    -1,
+    -1,    -1,     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,  1098,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   127,
+   128,   129,   130,     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,   187,   188,   189,   190,   191,    -1,   193,
+   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,    -1,  1166,
+    -1,    -1,   216,    -1,    -1,    -1,    -1,  1174,    -1,   197,
+   198,    -1,    -1,    -1,    -1,   203,   127,   128,   129,   130,
+   208,    -1,    -1,    -1,    -1,   213,  1193,   215,    -1,    -1,
+    -1,    -1,    -1,    -1,     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,  1231,    -1,    -1,   127,   128,   129,
+   130,   187,   188,   189,   190,   191,    -1,   193,   194,   195,
+   196,   197,   198,   199,   200,   201,   197,   198,    -1,    -1,
+    -1,   207,   203,   209,    -1,    -1,    -1,   208,   214,    -1,
+   211,    -1,   213,    -1,   215,    -1,    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,    -1,    -1,    -1,   197,   198,    -1,
+    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,    -1,
+    -1,    -1,    -1,   213,    -1,   215,    -1,    -1,   127,   128,
+   129,   130,     3,     4,     5,    -1,     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,    -1,    -1,    39,   187,
    188,   189,   190,   191,    -1,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,   127,   128,   129,   130,   207,
-    -1,   209,    40,    41,    42,    43,    44,    45,    46,    47,
-    -1,    49,    -1,    51,    52,    53,  1385,    55,    56,    -1,
-  1389,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,   127,
-   128,   129,   130,    -1,    -1,    73,  1405,    -1,    -1,    -1,
+   198,   199,   200,   201,    -1,  1382,  1383,    -1,    -1,   207,
+    -1,    -1,    -1,    -1,    -1,    -1,   214,    -1,   197,   198,
+    -1,    -1,    -1,  1400,   203,    -1,    -1,  1404,    -1,   208,
+    -1,    -1,    -1,    -1,   213,   216,   215,    -1,    -1,    -1,
+    -1,    -1,    -1,  1420,    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,    -1,    -1,    -1,    -1,   127,   128,   129,   130,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   183,   184,   185,   186,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,   197,   198,    -1,   106,   107,
-   108,   203,   204,   205,    -1,    -1,   208,    -1,   210,    -1,
-   212,   213,    -1,    -1,    -1,    -1,   124,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   197,
-   198,    -1,    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,
-   208,     3,     4,     5,    -1,   213,    -1,     9,    10,    11,
+    -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,    -1,    34,    35,    36,    -1,    -1,    39,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1527,  1528,
-  1529,    -1,    -1,    -1,    -1,    -1,    -1,  1536,    -1,    -1,
-    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,  1547,  1548,
-     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,   187,   188,   189,
-   190,   191,    -1,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,  1593,  1594,  1595,   207,    -1,    -1,
-    -1,   211,    -1,     3,     4,   127,   128,   129,   130,     9,
+    -1,    -1,   183,   184,   185,   186,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   197,   198,    -1,    -1,
+    -1,    -1,   203,   204,   205,    -1,    -1,   208,    -1,   210,
+    -1,   212,   213,    -1,    -1,    -1,    -1,  1544,    -1,    -1,
+  1547,  1548,    -1,    -1,    -1,    -1,    -1,    -1,  1555,    -1,
+    -1,    -1,    -1,   216,    -1,     3,     4,    -1,    -1,  1566,
+  1567,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,    32,   127,   128,   129,   130,    -1,
+    -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,  1612,  1613,  1614,    -1,    -1,
+    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,   187,
+   188,   189,   190,   191,    -1,   193,   194,   195,   196,   197,
+   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
+    -1,    -1,    -1,    -1,    -1,   197,   198,    -1,   216,    -1,
+    -1,   203,    -1,    -1,    -1,    -1,   208,    -1,    -1,    -1,
+    -1,   213,    -1,  1680,    -1,    -1,    -1,    -1,  1685,   127,
+   128,   129,   130,     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,    40,    41,    42,    43,    44,    45,    46,
-    47,    -1,    49,    -1,    51,    52,    53,    -1,    55,    56,
-    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,  1661,    -1,    -1,    -1,    73,  1666,   127,   128,
-   129,   130,    -1,    -1,    -1,   197,   198,    -1,    -1,    -1,
-    -1,   203,    -1,    -1,    -1,    -1,   208,    -1,    -1,    -1,
-    -1,   213,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
-   107,   108,   187,   188,   189,   190,   191,    -1,   193,   194,
-   195,   196,   197,   198,   199,   200,   201,   124,    -1,    -1,
-    -1,    -1,   207,    -1,    -1,    -1,    -1,   127,   128,   129,
-   130,   216,    -1,    -1,    -1,    -1,    -1,    -1,   197,   198,
-    -1,    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,
-    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,    -1,
-  1759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-  1769,    -1,    -1,    -1,     0,     1,    -1,     3,     4,    -1,
-    -1,   187,   188,   189,   190,   191,    -1,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,   197,   198,    -1,
-    -1,   207,    -1,   203,    -1,    -1,    -1,    33,   208,   216,
-   216,    37,    38,   213,    40,    41,    42,    43,    44,    45,
+    30,    31,    32,     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,    43,    -1,    -1,   197,
+   198,    -1,    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,
+   208,    -1,    -1,    -1,    -1,   213,   187,   188,   189,   190,
+   191,  1778,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,  1788,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,   216,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   127,   128,   129,
+   130,    -1,   187,   188,   189,   190,   191,    -1,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   131,   132,   133,   127,   128,   129,
+   130,   216,   139,   140,   141,   142,   143,   144,   145,   146,
+   147,   148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+  1877,   168,   169,   170,   171,   172,   173,   197,   198,    -1,
+    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,    -1,
+    -1,    -1,    -1,   213,     0,     1,    -1,     3,     4,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   197,   198,    -1,
+    -1,    -1,    -1,   203,    -1,    -1,    -1,    -1,   208,    -1,
+    -1,    -1,    -1,   213,    -1,    -1,    -1,    33,    -1,  1936,
+    -1,    37,    38,    -1,    40,    41,    42,    43,    44,    45,
     46,    47,    -1,    49,    50,    51,    52,    53,    54,    55,
     56,    -1,    -1,    -1,    60,    61,    62,    63,    64,    65,
     66,    67,    -1,    69,    70,    71,    72,    73,    -1,    75,
-    76,    -1,    -1,    -1,   187,   188,   189,   190,   191,  1858,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
-    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,    -1,   105,
-   106,   107,   108,   216,    -1,    -1,    -1,   113,    -1,   115,
+    76,    -1,    40,    41,    42,    43,    44,    45,    46,    47,
+    -1,    49,  1989,    51,    52,    53,    -1,    55,    56,    -1,
+    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,   105,
+   106,   107,   108,    -1,    -1,    73,    -1,   113,    -1,   115,
     -1,   117,   118,   119,   120,   121,   122,   123,   124,   125,
    126,    40,    41,    42,    43,    44,    45,    46,    47,    -1,
-    49,    -1,    51,    52,    53,    -1,    55,    56,  1917,    -1,
-    -1,    -1,    61,   149,   150,   151,   152,   153,   154,   155,
-   156,    -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,    -1,
+    49,    -1,    51,    52,    53,  2042,    55,    56,   106,   107,
+   108,    -1,    61,   149,   150,   151,   152,   153,   154,   155,
+   156,    -1,    -1,    -1,    73,    -1,   124,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   174,   175,
-    -1,   177,   187,   188,   189,   190,   191,    -1,   193,   194,
-   195,   196,   197,   198,   199,   200,   201,   106,   107,   108,
-    -1,  1970,   207,    -1,   209,    40,    41,    42,    43,    44,
-    45,    46,    47,    -1,    49,   124,    51,    52,    53,    -1,
-    55,    56,    -1,    -1,    -1,    -1,    61,    -1,    -1,    -1,
-    -1,    -1,    -1,   187,   188,   189,   190,   191,    73,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    43,    -1,
-    -1,    -1,    -1,   207,  2023,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   106,   107,   108,   187,   188,   189,   190,   191,    -1,
-   193,   194,   195,   196,   197,   198,   199,   200,   201,   124,
-    -1,    -1,  2061,    -1,   207,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   216,    -1,    -1,    -1,   216,    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,   131,   132,   133,    -1,
-    -1,    -1,    -1,    -1,   139,   140,   141,   142,   143,   144,
-   145,   146,   147,   148,     4,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   157,   158,   159,   160,   161,   162,   163,   164,
-   165,   166,    -1,   168,   169,   170,   171,   172,   173,    -1,
-    -1,   216,    -1,    33,    -1,    -1,    -1,    37,    38,    -1,
-    40,    41,    42,    43,    44,    45,    46,    47,    -1,    49,
-    50,    51,    52,    53,    54,    55,    56,    -1,    -1,    -1,
-    60,    61,    62,    63,    64,    65,    66,    67,    -1,    69,
-    70,    71,    72,    73,    -1,    75,    76,    -1,    -1,    -1,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,   216,    -1,    -1,
-   207,    -1,    -1,    -1,    -1,   105,   106,   107,   108,   216,
-    -1,    -1,    -1,   113,    -1,   115,    -1,   117,   118,   119,
-   120,   121,   122,   123,   124,   125,   126,   187,   188,   189,
-   190,   191,    -1,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,
-    -1,   187,   188,   189,   190,   191,   216,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,
-   216,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,
-   188,   189,   190,   191,   216,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,
-   190,   191,   216,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,
-    -1,   187,   188,   189,   190,   191,   216,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,
-   216,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,
-   188,   189,   190,   191,   216,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,
-   190,   191,   216,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,
-    -1,   187,   188,   189,   190,   191,   216,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,
-   216,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,
-   188,   189,   190,   191,   216,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,
-   190,   191,   216,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,
-    -1,   187,   188,   189,   190,   191,   216,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   209,    -1,    -1,    -1,    -1,   214,   187,
+    -1,   177,    -1,  2080,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108,
+    -1,    40,    41,    42,    43,    44,    45,    46,    47,    -1,
+    49,    -1,    51,    52,    53,   124,    55,    56,    -1,    -1,
+    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    73,   187,   188,   189,   190,   191,
+    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
+    -1,    -1,    -1,     4,    -1,   207,    -1,    -1,   216,    -1,
+    -1,    -1,    -1,    -1,   216,    -1,    -1,   106,   107,   108,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    33,    -1,    -1,   124,    37,    38,    -1,    40,
+    41,    42,    43,    44,    45,    46,    47,    -1,    49,    50,
+    51,    52,    53,    54,    55,    56,    -1,   216,    -1,    60,
+    61,    62,    63,    64,    65,    66,    67,    -1,    69,    70,
+    71,    72,    73,    -1,    75,    76,    -1,    -1,    -1,   187,
    188,   189,   190,   191,    -1,   193,   194,   195,   196,   197,
    198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,    -1,   105,   106,   107,   108,   216,    -1,
+    -1,    -1,   113,    -1,   115,    -1,   117,   118,   119,   120,
+   121,   122,   123,   124,   125,   126,    -1,   216,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   187,   188,   189,   190,   191,   216,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,
+   191,   216,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,
+   187,   188,   189,   190,   191,   216,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,   188,
+   189,   190,   191,   216,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   187,   188,   189,   190,   191,   216,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,
+   191,   216,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,
+   187,   188,   189,   190,   191,   216,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,   188,
+   189,   190,   191,   216,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   187,   188,   189,   190,   191,   216,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,
+   191,   216,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,
+   187,   188,   189,   190,   191,   216,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   187,   188,
+   189,   190,   191,   216,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   187,   188,   189,   190,   191,   216,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,    -1,    -1,   187,   188,   189,   190,
+   191,   216,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,
+   187,   188,   189,   190,   191,   216,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,    -1,    -1,   187,   188,   189,   190,   191,   216,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   187,   188,   189,   190,   191,   214,   193,   194,   195,   196,
+   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
+   207,    -1,   187,   188,   189,   190,   191,   214,   193,   194,
+   195,   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,
+    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,   214,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,
+   191,   214,   193,   194,   195,   196,   197,   198,   199,   200,
+   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,
+   189,   190,   191,   214,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
-   196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+    -1,    -1,   211,   187,   188,   189,   190,   191,    -1,   193,
    194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,   188,   189,
-   190,   191,   214,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   187,
-   188,   189,   190,   191,   214,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,
-    -1,   187,   188,   189,   190,   191,   214,   193,   194,   195,
+    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,   187,   188,
+   189,   190,   191,    -1,   193,   194,   195,   196,   197,   198,
+   199,   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,
+   209,   187,   188,   189,   190,   191,    -1,   193,   194,   195,
    196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
-    -1,   207,    -1,   187,   188,   189,   190,   191,   214,   193,
-   194,   195,   196,   197,   198,   199,   200,   201,    -1,    -1,
-    -1,    -1,    -1,   207,    -1,   187,   188,   189,   190,   191,
-   214,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
-   187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
-   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
-   207,    -1,    -1,    -1,   211,   187,   188,   189,   190,   191,
-    -1,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,    -1,   211,
+    -1,   207,    -1,   209,   187,   188,   189,   190,   191,    -1,
+   193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
+    -1,    -1,    -1,    -1,   207,    -1,   209,   187,   188,   189,
+   190,   191,    -1,   193,   194,   195,   196,   197,   198,   199,
+   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   209,
    187,   188,   189,   190,   191,    -1,   193,   194,   195,   196,
    197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,    -1,
    207,    -1,   209,   187,   188,   189,   190,   191,    -1,   193,
@@ -4225,9 +4268,7 @@ static const short yycheck[] = {    23,
    196,   197,   198,   199,   200,   201,    -1,    -1,    -1,    -1,
     -1,   207,    -1,   209,   187,   188,   189,   190,   191,    -1,
    193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
-    -1,    -1,    -1,    -1,   207,    -1,   209,   187,   188,   189,
-   190,   191,    -1,   193,   194,   195,   196,   197,   198,   199,
-   200,   201,    -1,    -1,    -1,    -1,    -1,   207,    -1,   209
+    -1,    -1,    -1,    -1,   207,    -1,   209
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/share/bison.simple"
@@ -6609,6 +6650,43 @@ case 250:
     break;}
 case 251:
 #line 1947 "Gmsh.y"
+{
+      // define a new line
+      int num = (int)yyvsp[-7].d;
+      if(FindCurve(num, THEM)){
+	yymsg(GERROR, "Curve %d already exists", num);
+	List_Delete(yyvsp[-1].l);
+      }
+      else{
+	Curve *c = Create_Curve(num, MSH_SEGM_DISCRETE, 1, NULL, NULL, -1, -1, 0, 1);
+	c->theSegmRep = new SEGM_rep((int)yyvsp[-3].d, yyvsp[-1].l);
+	Tree_Add(THEM->Curves, &c);
+	CreateReversedCurve(THEM, c);
+      }
+      yyval.s.Type = MSH_SEGM_DISCRETE;
+      yyval.s.Num = num;
+    ;
+    break;}
+case 252:
+#line 1964 "Gmsh.y"
+{
+      // add a poly rep to an existing line
+      int num = (int)yyvsp[-7].d, type = 0;
+      Curve *c = FindCurve(num, THEM);
+      if(!c) {
+	yymsg(GERROR, "Unknown curve %d", num);
+	List_Delete(yyvsp[-1].l);
+      }
+      else{
+	c->theSegmRep = new SEGM_rep((int)yyvsp[-3].d, yyvsp[-1].l);
+	type = c->Typ;
+      }
+      yyval.s.Type = type;
+      yyval.s.Num = num;
+    ;
+    break;}
+case 253:
+#line 1980 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindEdgeLoop(num, THEM)){
@@ -6626,8 +6704,8 @@ case 251:
       yyval.s.Num = num;
     ;
     break;}
-case 252:
-#line 1964 "Gmsh.y"
+case 254:
+#line 1997 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){
 	double p;
@@ -6646,8 +6724,8 @@ case 252:
       yyval.s.Num = 0;
     ;
     break;}
-case 253:
-#line 1982 "Gmsh.y"
+case 255:
+#line 2015 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE, THEM)){
@@ -6664,8 +6742,8 @@ case 253:
       yyval.s.Num = num;
     ;
     break;}
-case 254:
-#line 2001 "Gmsh.y"
+case 256:
+#line 2034 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindSurface(num, THEM)){
@@ -6685,8 +6763,8 @@ case 254:
       yyval.s.Num = num;
     ;
     break;}
-case 255:
-#line 2020 "Gmsh.y"
+case 257:
+#line 2053 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d, type = 0;
       if(FindSurface(num, THEM)){
@@ -6726,8 +6804,8 @@ case 255:
       yyval.s.Num = num;
     ;
     break;}
-case 256:
-#line 2059 "Gmsh.y"
+case 258:
+#line 2092 "Gmsh.y"
 {
       int num = (int)yyvsp[-8].d;
       Surface *support = FindSurface((int)yyvsp[-4].d, THEM);
@@ -6753,8 +6831,8 @@ case 256:
       yyval.s.Num = num;
     ;
     break;}
-case 257:
-#line 2085 "Gmsh.y"
+case 259:
+#line 2118 "Gmsh.y"
 {
       // define a new surface
       int num = (int)yyvsp[-10].d;
@@ -6774,8 +6852,8 @@ case 257:
       yyval.s.Num = num;
     ;
     break;}
-case 258:
-#line 2105 "Gmsh.y"
+case 260:
+#line 2138 "Gmsh.y"
 {
       // add a poly rep to an existing surface
       int num = (int)yyvsp[-10].d, type = 0;
@@ -6793,8 +6871,8 @@ case 258:
       yyval.s.Num = num;
     ;
     break;}
-case 259:
-#line 2124 "Gmsh.y"
+case 261:
+#line 2157 "Gmsh.y"
 {
       int num = (int)yyvsp[-10].d, type = 0;
       Surface *s = FindSurface(num, THEM);
@@ -6811,8 +6889,8 @@ case 259:
       yyval.s.Num = num;
     ;
     break;}
-case 260:
-#line 2142 "Gmsh.y"
+case 262:
+#line 2175 "Gmsh.y"
 {
       int num = (int)yyvsp[-16].d;
       if(FindSurface(num, THEM)){
@@ -6830,8 +6908,8 @@ case 260:
       yyval.s.Num = num;
     ;
     break;}
-case 261:
-#line 2161 "Gmsh.y"
+case 263:
+#line 2194 "Gmsh.y"
 {
       int num = (int)yyvsp[-16].d;
       if(FindSurface(num, THEM)){
@@ -6849,8 +6927,8 @@ case 261:
       yyval.s.Num = num;
     ;
     break;}
-case 262:
-#line 2178 "Gmsh.y"
+case 264:
+#line 2211 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindSurfaceLoop(num, THEM)){
@@ -6867,8 +6945,8 @@ case 262:
       yyval.s.Num = num;
     ;
     break;}
-case 263:
-#line 2194 "Gmsh.y"
+case 265:
+#line 2227 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE, THEM)){
@@ -6885,8 +6963,8 @@ case 263:
       yyval.s.Num = num;
     ;
     break;}
-case 264:
-#line 2214 "Gmsh.y"
+case 266:
+#line 2247 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindVolume(num, THEM)){
@@ -6904,8 +6982,8 @@ case 264:
       yyval.s.Num = num;
     ;
     break;}
-case 265:
-#line 2231 "Gmsh.y"
+case 267:
+#line 2264 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindVolume(num, THEM)){
@@ -6923,8 +7001,8 @@ case 265:
       yyval.s.Num = num;
     ;
     break;}
-case 266:
-#line 2248 "Gmsh.y"
+case 268:
+#line 2281 "Gmsh.y"
 {
       int num = (int)yyvsp[-4].d;
       if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME, THEM)){
@@ -6941,60 +7019,60 @@ case 266:
       yyval.s.Num = num;
     ;
     break;}
-case 267:
-#line 2269 "Gmsh.y"
+case 269:
+#line 2302 "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 268:
-#line 2274 "Gmsh.y"
+case 270:
+#line 2307 "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 269:
-#line 2279 "Gmsh.y"
+case 271:
+#line 2312 "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 270:
-#line 2284 "Gmsh.y"
+case 272:
+#line 2317 "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 271:
-#line 2291 "Gmsh.y"
+case 273:
+#line 2324 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 272:
-#line 2292 "Gmsh.y"
+case 274:
+#line 2325 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 273:
-#line 2293 "Gmsh.y"
+case 275:
+#line 2326 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 274:
-#line 2298 "Gmsh.y"
+case 276:
+#line 2331 "Gmsh.y"
 {
       yyval.l = List_Create(3, 3, sizeof(Shape));
     ;
     break;}
-case 275:
-#line 2302 "Gmsh.y"
+case 277:
+#line 2335 "Gmsh.y"
 {
       List_Add(yyval.l, &yyvsp[0].s);
     ;
     break;}
-case 276:
-#line 2306 "Gmsh.y"
+case 278:
+#line 2339 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -7011,8 +7089,8 @@ case 276:
       }
     ;
     break;}
-case 277:
-#line 2322 "Gmsh.y"
+case 279:
+#line 2355 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -7029,8 +7107,8 @@ case 277:
       }
     ;
     break;}
-case 278:
-#line 2338 "Gmsh.y"
+case 280:
+#line 2371 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -7047,8 +7125,8 @@ case 278:
       }
     ;
     break;}
-case 279:
-#line 2354 "Gmsh.y"
+case 281:
+#line 2387 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
 	double d;
@@ -7065,8 +7143,8 @@ case 279:
       }
     ;
     break;}
-case 280:
-#line 2375 "Gmsh.y"
+case 282:
+#line 2408 "Gmsh.y"
 {
       yyval.l = List_Create(3, 3, sizeof(Shape));
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
@@ -7080,32 +7158,32 @@ case 280:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 281:
-#line 2389 "Gmsh.y"
+case 283:
+#line 2422 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0);
       Free(yyvsp[-4].c);
       yyval.l = NULL;
     ;
     break;}
-case 282:
-#line 2395 "Gmsh.y"
+case 284:
+#line 2428 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0);
       Free(yyvsp[-4].c);
       yyval.l = NULL;
     ;
     break;}
-case 283:
-#line 2401 "Gmsh.y"
+case 285:
+#line 2434 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1);
       Free(yyvsp[-4].c);
       yyval.l = NULL;
     ;
     break;}
-case 284:
-#line 2413 "Gmsh.y"
+case 286:
+#line 2446 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -7115,8 +7193,8 @@ case 284:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 285:
-#line 2422 "Gmsh.y"
+case 287:
+#line 2455 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-4].c, "View")){
 	RemoveViewByIndex((int)yyvsp[-2].d);
@@ -7127,8 +7205,8 @@ case 285:
       Free(yyvsp[-4].c);
     ;
     break;}
-case 286:
-#line 2432 "Gmsh.y"
+case 288:
+#line 2465 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){
 	Init_Mesh(THEM);
@@ -7139,8 +7217,8 @@ case 286:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 287:
-#line 2442 "Gmsh.y"
+case 289:
+#line 2475 "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--){
@@ -7155,8 +7233,8 @@ case 287:
       Free(yyvsp[-2].c); Free(yyvsp[-1].c);
     ;
     break;}
-case 288:
-#line 2461 "Gmsh.y"
+case 290:
+#line 2494 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -7166,8 +7244,8 @@ case 288:
       List_Delete(yyvsp[-1].l);      
     ;
     break;}
-case 289:
-#line 2475 "Gmsh.y"
+case 291:
+#line 2508 "Gmsh.y"
 {
       int m = (CTX.visibility_mode == 2) ? VIS_MESH : 
 	((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
@@ -7176,16 +7254,16 @@ case 289:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 290:
-#line 2483 "Gmsh.y"
+case 292:
+#line 2516 "Gmsh.y"
 {
       for(int i = 2; i < 6; i++)
 	SetVisibilityByNumber(yyvsp[-1].c, i, 0);
       Free(yyvsp[-1].c);
     ;
     break;}
-case 291:
-#line 2489 "Gmsh.y"
+case 293:
+#line 2522 "Gmsh.y"
 {
       int m = (CTX.visibility_mode == 2) ? VIS_MESH :
 	((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH);
@@ -7197,8 +7275,8 @@ case 291:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 292:
-#line 2500 "Gmsh.y"
+case 294:
+#line 2533 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	Shape TheShape;
@@ -7208,8 +7286,8 @@ case 292:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 293:
-#line 2514 "Gmsh.y"
+case 295:
+#line 2547 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Include")){
 	char tmpstring[1024];
@@ -7254,8 +7332,8 @@ case 293:
       Free(yyvsp[-2].c); Free(yyvsp[-1].c);
     ;
     break;}
-case 294:
-#line 2558 "Gmsh.y"
+case 296:
+#line 2591 "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);
@@ -7271,8 +7349,8 @@ case 294:
       Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-1].c);
     ;
     break;}
-case 295:
-#line 2573 "Gmsh.y"
+case 297:
+#line 2606 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Sleep")){
 	long sleep_time = GetTime();
@@ -7289,8 +7367,8 @@ case 295:
       Free(yyvsp[-2].c);
     ;
     break;}
-case 296:
-#line 2589 "Gmsh.y"
+case 298:
+#line 2622 "Gmsh.y"
 {
        try {
 	 GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0);
@@ -7301,8 +7379,8 @@ case 296:
        Free(yyvsp[-4].c); Free(yyvsp[-1].c);
      ;
     break;}
-case 297:
-#line 2599 "Gmsh.y"
+case 299:
+#line 2632 "Gmsh.y"
 {
       // for backward compatibility
       if(!strcmp(yyvsp[-1].c, "Views"))
@@ -7314,26 +7392,26 @@ case 297:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 298:
-#line 2610 "Gmsh.y"
+case 300:
+#line 2643 "Gmsh.y"
 {
       exit(0);
     ;
     break;}
-case 299:
-#line 2614 "Gmsh.y"
+case 301:
+#line 2647 "Gmsh.y"
 {
       SetBoundingBox();
     ;
     break;}
-case 300:
-#line 2618 "Gmsh.y"
+case 302:
+#line 2651 "Gmsh.y"
 {
       SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
-case 301:
-#line 2622 "Gmsh.y"
+case 303:
+#line 2655 "Gmsh.y"
 {
 #if defined(HAVE_FLTK)
       if(!CTX.batch) // we're in interactive mode
@@ -7341,8 +7419,8 @@ case 301:
 #endif
     ;
     break;}
-case 302:
-#line 2635 "Gmsh.y"
+case 304:
+#line 2668 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
@@ -7358,8 +7436,8 @@ case 302:
       if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
     ;
     break;}
-case 303:
-#line 2650 "Gmsh.y"
+case 305:
+#line 2683 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
@@ -7376,8 +7454,8 @@ case 303:
 	skip_until("For", "EndFor");
     ;
     break;}
-case 304:
-#line 2666 "Gmsh.y"
+case 306:
+#line 2699 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d;
@@ -7404,8 +7482,8 @@ case 304:
       if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
     ;
     break;}
-case 305:
-#line 2692 "Gmsh.y"
+case 307:
+#line 2725 "Gmsh.y"
 {
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d;
@@ -7433,8 +7511,8 @@ case 305:
 	skip_until("For", "EndFor");
     ;
     break;}
-case 306:
-#line 2719 "Gmsh.y"
+case 308:
+#line 2752 "Gmsh.y"
 {
       if(ImbricatedLoop <= 0){
 	yymsg(GERROR, "Invalid For/EndFor loop");
@@ -7467,8 +7545,8 @@ case 306:
       }
     ;
     break;}
-case 307:
-#line 2751 "Gmsh.y"
+case 309:
+#line 2784 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno))
 	yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c);
@@ -7476,34 +7554,34 @@ case 307:
       //FIXME: wee leak $2
     ;
     break;}
-case 308:
-#line 2758 "Gmsh.y"
+case 310:
+#line 2791 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno))
 	yymsg(GERROR, "Error while exiting function");
     ;
     break;}
-case 309:
-#line 2763 "Gmsh.y"
+case 311:
+#line 2796 "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 310:
-#line 2769 "Gmsh.y"
+case 312:
+#line 2802 "Gmsh.y"
 {
       if(!yyvsp[-1].d) skip_until("If", "EndIf");
     ;
     break;}
-case 311:
-#line 2773 "Gmsh.y"
+case 313:
+#line 2806 "Gmsh.y"
 {
     ;
     break;}
-case 312:
-#line 2784 "Gmsh.y"
+case 314:
+#line 2817 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7520,8 +7598,8 @@ case 312:
       }
     ;
     break;}
-case 313:
-#line 2800 "Gmsh.y"
+case 315:
+#line 2833 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7538,8 +7616,8 @@ case 313:
       }
     ;
     break;}
-case 314:
-#line 2816 "Gmsh.y"
+case 316:
+#line 2849 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7556,15 +7634,15 @@ case 314:
       }
     ;
     break;}
-case 315:
-#line 2832 "Gmsh.y"
+case 317:
+#line 2865 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 316:
-#line 2837 "Gmsh.y"
+case 318:
+#line 2870 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7581,15 +7659,15 @@ case 316:
       }
     ;
     break;}
-case 317:
-#line 2853 "Gmsh.y"
+case 319:
+#line 2886 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 318:
-#line 2858 "Gmsh.y"
+case 320:
+#line 2891 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7606,15 +7684,15 @@ case 318:
       }
     ;
     break;}
-case 319:
-#line 2874 "Gmsh.y"
+case 321:
+#line 2907 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 320:
-#line 2879 "Gmsh.y"
+case 322:
+#line 2912 "Gmsh.y"
 {
       Curve *pc, *prc;
       Shape TheShape;
@@ -7631,8 +7709,8 @@ case 320:
       }
     ;
     break;}
-case 321:
-#line 2897 "Gmsh.y"
+case 323:
+#line 2930 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7656,8 +7734,8 @@ case 321:
       }
     ;
     break;}
-case 322:
-#line 2920 "Gmsh.y"
+case 324:
+#line 2953 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7681,8 +7759,8 @@ case 322:
       }
     ;
     break;}
-case 323:
-#line 2943 "Gmsh.y"
+case 325:
+#line 2976 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7706,15 +7784,15 @@ case 323:
       }
     ;
     break;}
-case 324:
-#line 2966 "Gmsh.y"
+case 326:
+#line 2999 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 325:
-#line 2971 "Gmsh.y"
+case 327:
+#line 3004 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7738,15 +7816,15 @@ case 325:
       }
     ;
     break;}
-case 326:
-#line 2994 "Gmsh.y"
+case 328:
+#line 3027 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 327:
-#line 2999 "Gmsh.y"
+case 329:
+#line 3032 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7770,15 +7848,15 @@ case 327:
       }
     ;
     break;}
-case 328:
-#line 3022 "Gmsh.y"
+case 330:
+#line 3055 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 329:
-#line 3027 "Gmsh.y"
+case 331:
+#line 3060 "Gmsh.y"
 {
       Surface *ps;
       Shape TheShape;
@@ -7802,8 +7880,8 @@ case 329:
       }
     ;
     break;}
-case 330:
-#line 3053 "Gmsh.y"
+case 332:
+#line 3086 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7827,8 +7905,8 @@ case 330:
       }
     ;
     break;}
-case 331:
-#line 3076 "Gmsh.y"
+case 333:
+#line 3109 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7852,8 +7930,8 @@ case 331:
       }
     ;
     break;}
-case 332:
-#line 3099 "Gmsh.y"
+case 334:
+#line 3132 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7877,15 +7955,15 @@ case 332:
       }
     ;
     break;}
-case 333:
-#line 3122 "Gmsh.y"
+case 335:
+#line 3155 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 334:
-#line 3127 "Gmsh.y"
+case 336:
+#line 3160 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7909,15 +7987,15 @@ case 334:
       }
     ;
     break;}
-case 335:
-#line 3150 "Gmsh.y"
+case 337:
+#line 3183 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 336:
-#line 3156 "Gmsh.y"
+case 338:
+#line 3189 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7941,15 +8019,15 @@ case 336:
       }
     ;
     break;}
-case 337:
-#line 3179 "Gmsh.y"
+case 339:
+#line 3212 "Gmsh.y"
 {
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
     ;
     break;}
-case 338:
-#line 3185 "Gmsh.y"
+case 340:
+#line 3218 "Gmsh.y"
 {
       Volume *pv;
       Shape TheShape;
@@ -7973,18 +8051,18 @@ case 338:
       }
     ;
     break;}
-case 339:
-#line 3211 "Gmsh.y"
+case 341:
+#line 3244 "Gmsh.y"
 {
     ;
     break;}
-case 340:
-#line 3214 "Gmsh.y"
+case 342:
+#line 3247 "Gmsh.y"
 {
     ;
     break;}
-case 341:
-#line 3220 "Gmsh.y"
+case 343:
+#line 3253 "Gmsh.y"
 {
       double d;
       extr.mesh.ExtrudeMesh = true;
@@ -8011,8 +8089,8 @@ case 341:
       List_Delete(yyvsp[-2].l);
     ;
     break;}
-case 342:
-#line 3246 "Gmsh.y"
+case 344:
+#line 3279 "Gmsh.y"
 {
       double d;
       extr.mesh.ExtrudeMesh = true;
@@ -8037,14 +8115,14 @@ case 342:
       List_Delete(yyvsp[-2].l);
     ;
     break;}
-case 343:
-#line 3270 "Gmsh.y"
+case 345:
+#line 3303 "Gmsh.y"
 {
       extr.mesh.Recombine = true;
     ;
     break;}
-case 344:
-#line 3279 "Gmsh.y"
+case 346:
+#line 3312 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -8063,8 +8141,8 @@ case 344:
       List_Delete(yyvsp[-3].l);
     ;
     break;}
-case 345:
-#line 3297 "Gmsh.y"
+case 347:
+#line 3330 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
@@ -8083,8 +8161,8 @@ case 345:
       List_Delete(yyvsp[-6].l);
     ;
     break;}
-case 346:
-#line 3315 "Gmsh.y"
+case 348:
+#line 3348 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){
 	double d;
@@ -8103,8 +8181,8 @@ case 346:
       List_Delete(yyvsp[-6].l);
     ;
     break;}
-case 347:
-#line 3333 "Gmsh.y"
+case 349:
+#line 3366 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
@@ -8132,8 +8210,8 @@ case 347:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 348:
-#line 3360 "Gmsh.y"
+case 350:
+#line 3393 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d, THEM);
       if(!s)
@@ -8160,8 +8238,8 @@ case 348:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 349:
-#line 3386 "Gmsh.y"
+case 351:
+#line 3419 "Gmsh.y"
 {
       Volume *v = FindVolume((int)yyvsp[-4].d, THEM);
       if(!v)
@@ -8188,8 +8266,8 @@ case 349:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 350:
-#line 3412 "Gmsh.y"
+case 352:
+#line 3445 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){
 	double d;
@@ -8204,8 +8282,8 @@ case 350:
       List_Delete(yyvsp[-3].l);
     ;
     break;}
-case 351:
-#line 3426 "Gmsh.y"
+case 353:
+#line 3459 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){
 	double d;
@@ -8219,72 +8297,72 @@ case 351:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 352:
-#line 3445 "Gmsh.y"
+case 354:
+#line 3478 "Gmsh.y"
 { 
       ReplaceAllDuplicates(THEM);
     ;
     break;}
-case 353:
-#line 3449 "Gmsh.y"
+case 355:
+#line 3482 "Gmsh.y"
 { 
       IntersectAllSegmentsTogether();
     ;
     break;}
-case 354:
-#line 3458 "Gmsh.y"
+case 356:
+#line 3491 "Gmsh.y"
 {yyval.i = 1;;
     break;}
-case 355:
-#line 3459 "Gmsh.y"
+case 357:
+#line 3492 "Gmsh.y"
 {yyval.i = 0;;
     break;}
-case 356:
-#line 3460 "Gmsh.y"
+case 358:
+#line 3493 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 357:
-#line 3461 "Gmsh.y"
+case 359:
+#line 3494 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 358:
-#line 3462 "Gmsh.y"
+case 360:
+#line 3495 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 359:
-#line 3466 "Gmsh.y"
+case 361:
+#line 3499 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
-case 360:
-#line 3467 "Gmsh.y"
+case 362:
+#line 3500 "Gmsh.y"
 { yyval.d = yyvsp[-1].d;           ;
     break;}
-case 361:
-#line 3468 "Gmsh.y"
+case 363:
+#line 3501 "Gmsh.y"
 { yyval.d = -yyvsp[0].d;          ;
     break;}
-case 362:
-#line 3469 "Gmsh.y"
+case 364:
+#line 3502 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
-case 363:
-#line 3470 "Gmsh.y"
+case 365:
+#line 3503 "Gmsh.y"
 { yyval.d = !yyvsp[0].d;          ;
     break;}
-case 364:
-#line 3471 "Gmsh.y"
+case 366:
+#line 3504 "Gmsh.y"
 { yyval.d = yyvsp[-2].d - yyvsp[0].d;      ;
     break;}
-case 365:
-#line 3472 "Gmsh.y"
+case 367:
+#line 3505 "Gmsh.y"
 { yyval.d = yyvsp[-2].d + yyvsp[0].d;      ;
     break;}
-case 366:
-#line 3473 "Gmsh.y"
+case 368:
+#line 3506 "Gmsh.y"
 { yyval.d = yyvsp[-2].d * yyvsp[0].d;      ;
     break;}
-case 367:
-#line 3475 "Gmsh.y"
+case 369:
+#line 3508 "Gmsh.y"
 { 
       if(!yyvsp[0].d)
 	yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
@@ -8292,248 +8370,248 @@ case 367:
 	yyval.d = yyvsp[-2].d / yyvsp[0].d;     
     ;
     break;}
-case 368:
-#line 3481 "Gmsh.y"
+case 370:
+#line 3514 "Gmsh.y"
 { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d;  ;
     break;}
-case 369:
-#line 3482 "Gmsh.y"
+case 371:
+#line 3515 "Gmsh.y"
 { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d);  ;
     break;}
-case 370:
-#line 3483 "Gmsh.y"
+case 372:
+#line 3516 "Gmsh.y"
 { yyval.d = yyvsp[-2].d < yyvsp[0].d;      ;
     break;}
-case 371:
-#line 3484 "Gmsh.y"
+case 373:
+#line 3517 "Gmsh.y"
 { yyval.d = yyvsp[-2].d > yyvsp[0].d;      ;
     break;}
-case 372:
-#line 3485 "Gmsh.y"
+case 374:
+#line 3518 "Gmsh.y"
 { yyval.d = yyvsp[-2].d <= yyvsp[0].d;     ;
     break;}
-case 373:
-#line 3486 "Gmsh.y"
+case 375:
+#line 3519 "Gmsh.y"
 { yyval.d = yyvsp[-2].d >= yyvsp[0].d;     ;
     break;}
-case 374:
-#line 3487 "Gmsh.y"
+case 376:
+#line 3520 "Gmsh.y"
 { yyval.d = yyvsp[-2].d == yyvsp[0].d;     ;
     break;}
-case 375:
-#line 3488 "Gmsh.y"
+case 377:
+#line 3521 "Gmsh.y"
 { yyval.d = yyvsp[-2].d != yyvsp[0].d;     ;
     break;}
-case 376:
-#line 3489 "Gmsh.y"
+case 378:
+#line 3522 "Gmsh.y"
 { yyval.d = yyvsp[-2].d && yyvsp[0].d;     ;
     break;}
-case 377:
-#line 3490 "Gmsh.y"
+case 379:
+#line 3523 "Gmsh.y"
 { yyval.d = yyvsp[-2].d || yyvsp[0].d;     ;
     break;}
-case 378:
-#line 3491 "Gmsh.y"
+case 380:
+#line 3524 "Gmsh.y"
 { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d;  ;
     break;}
-case 379:
-#line 3492 "Gmsh.y"
+case 381:
+#line 3525 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
-case 380:
-#line 3493 "Gmsh.y"
+case 382:
+#line 3526 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
-case 381:
-#line 3494 "Gmsh.y"
+case 383:
+#line 3527 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
-case 382:
-#line 3495 "Gmsh.y"
+case 384:
+#line 3528 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
-case 383:
-#line 3496 "Gmsh.y"
+case 385:
+#line 3529 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
-case 384:
-#line 3497 "Gmsh.y"
+case 386:
+#line 3530 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
-case 385:
-#line 3498 "Gmsh.y"
+case 387:
+#line 3531 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
-case 386:
-#line 3499 "Gmsh.y"
+case 388:
+#line 3532 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
-case 387:
-#line 3500 "Gmsh.y"
+case 389:
+#line 3533 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
-case 388:
-#line 3501 "Gmsh.y"
+case 390:
+#line 3534 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
-case 389:
-#line 3502 "Gmsh.y"
+case 391:
+#line 3535 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
     break;}
-case 390:
-#line 3503 "Gmsh.y"
+case 392:
+#line 3536 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
-case 391:
-#line 3504 "Gmsh.y"
+case 393:
+#line 3537 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
-case 392:
-#line 3505 "Gmsh.y"
+case 394:
+#line 3538 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
-case 393:
-#line 3506 "Gmsh.y"
+case 395:
+#line 3539 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
-case 394:
-#line 3507 "Gmsh.y"
+case 396:
+#line 3540 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
-case 395:
-#line 3508 "Gmsh.y"
+case 397:
+#line 3541 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
-case 396:
-#line 3509 "Gmsh.y"
+case 398:
+#line 3542 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
-case 397:
-#line 3510 "Gmsh.y"
+case 399:
+#line 3543 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
-case 398:
-#line 3511 "Gmsh.y"
+case 400:
+#line 3544 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
-case 399:
-#line 3512 "Gmsh.y"
+case 401:
+#line 3545 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
-case 400:
-#line 3514 "Gmsh.y"
+case 402:
+#line 3547 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
-case 401:
-#line 3515 "Gmsh.y"
+case 403:
+#line 3548 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
-case 402:
-#line 3516 "Gmsh.y"
+case 404:
+#line 3549 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
-case 403:
-#line 3517 "Gmsh.y"
+case 405:
+#line 3550 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
-case 404:
-#line 3518 "Gmsh.y"
+case 406:
+#line 3551 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
-case 405:
-#line 3519 "Gmsh.y"
+case 407:
+#line 3552 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
-case 406:
-#line 3520 "Gmsh.y"
+case 408:
+#line 3553 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
-case 407:
-#line 3521 "Gmsh.y"
+case 409:
+#line 3554 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
-case 408:
-#line 3522 "Gmsh.y"
+case 410:
+#line 3555 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
-case 409:
-#line 3523 "Gmsh.y"
+case 411:
+#line 3556 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
-case 410:
-#line 3524 "Gmsh.y"
+case 412:
+#line 3557 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
     break;}
-case 411:
-#line 3525 "Gmsh.y"
+case 413:
+#line 3558 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
-case 412:
-#line 3526 "Gmsh.y"
+case 414:
+#line 3559 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
-case 413:
-#line 3527 "Gmsh.y"
+case 415:
+#line 3560 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
-case 414:
-#line 3528 "Gmsh.y"
+case 416:
+#line 3561 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
-case 415:
-#line 3529 "Gmsh.y"
+case 417:
+#line 3562 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
-case 416:
-#line 3530 "Gmsh.y"
+case 418:
+#line 3563 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
-case 417:
-#line 3531 "Gmsh.y"
+case 419:
+#line 3564 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
-case 418:
-#line 3532 "Gmsh.y"
+case 420:
+#line 3565 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
     break;}
-case 419:
-#line 3533 "Gmsh.y"
+case 421:
+#line 3566 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
-case 420:
-#line 3534 "Gmsh.y"
+case 422:
+#line 3567 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
-case 421:
-#line 3543 "Gmsh.y"
+case 423:
+#line 3576 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
-case 422:
-#line 3544 "Gmsh.y"
+case 424:
+#line 3577 "Gmsh.y"
 { yyval.d = 3.141592653589793; ;
     break;}
-case 423:
-#line 3545 "Gmsh.y"
+case 425:
+#line 3578 "Gmsh.y"
 { yyval.d = ParUtil::Instance()->rank(); ;
     break;}
-case 424:
-#line 3546 "Gmsh.y"
+case 426:
+#line 3579 "Gmsh.y"
 { yyval.d = ParUtil::Instance()->size(); ;
     break;}
-case 425:
-#line 3547 "Gmsh.y"
+case 427:
+#line 3580 "Gmsh.y"
 { yyval.d = GMSH_MAJOR_VERSION; ;
     break;}
-case 426:
-#line 3548 "Gmsh.y"
+case 428:
+#line 3581 "Gmsh.y"
 { yyval.d = GMSH_MINOR_VERSION; ;
     break;}
-case 427:
-#line 3549 "Gmsh.y"
+case 429:
+#line 3582 "Gmsh.y"
 { yyval.d = GMSH_PATCH_VERSION; ;
     break;}
-case 428:
-#line 3554 "Gmsh.y"
+case 430:
+#line 3587 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[0].c;
@@ -8547,8 +8625,8 @@ case 428:
       Free(yyvsp[0].c);
     ;
     break;}
-case 429:
-#line 3567 "Gmsh.y"
+case 431:
+#line 3600 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-3].c;
@@ -8569,8 +8647,8 @@ case 429:
       Free(yyvsp[-3].c);
     ;
     break;}
-case 430:
-#line 3587 "Gmsh.y"
+case 432:
+#line 3620 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-2].c;
@@ -8585,8 +8663,8 @@ case 430:
       Free(yyvsp[-2].c);
     ;
     break;}
-case 431:
-#line 3601 "Gmsh.y"
+case 433:
+#line 3634 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-1].c;
@@ -8600,8 +8678,8 @@ case 431:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 432:
-#line 3614 "Gmsh.y"
+case 434:
+#line 3647 "Gmsh.y"
 {
       Symbol TheSymbol;
       TheSymbol.Name = yyvsp[-4].c;
@@ -8622,8 +8700,8 @@ case 432:
       Free(yyvsp[-4].c);
     ;
     break;}
-case 433:
-#line 3637 "Gmsh.y"
+case 435:
+#line 3670 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8642,8 +8720,8 @@ case 433:
       Free(yyvsp[-2].c); Free(yyvsp[0].c);
     ;
     break;}
-case 434:
-#line 3655 "Gmsh.y"
+case 436:
+#line 3688 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8662,8 +8740,8 @@ case 434:
       Free(yyvsp[-5].c); Free(yyvsp[0].c);
     ;
     break;}
-case 435:
-#line 3673 "Gmsh.y"
+case 437:
+#line 3706 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8682,8 +8760,8 @@ case 435:
       Free(yyvsp[-3].c); Free(yyvsp[-1].c);
     ;
     break;}
-case 436:
-#line 3691 "Gmsh.y"
+case 438:
+#line 3724 "Gmsh.y"
 {
       double (*pNumOpt)(int num, int action, double value);
       StringXNumber *pNumCat;
@@ -8702,138 +8780,138 @@ case 436:
       Free(yyvsp[-6].c); Free(yyvsp[-1].c);
     ;
     break;}
-case 437:
-#line 3709 "Gmsh.y"
+case 439:
+#line 3742 "Gmsh.y"
 { 
       yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d);
       Free(yyvsp[-3].c);
     ;
     break;}
-case 438:
-#line 3717 "Gmsh.y"
+case 440:
+#line 3750 "Gmsh.y"
 {
       memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double));
     ;
     break;}
-case 439:
-#line 3721 "Gmsh.y"
+case 441:
+#line 3754 "Gmsh.y"
 {
       for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i];
     ;
     break;}
-case 440:
-#line 3725 "Gmsh.y"
+case 442:
+#line 3758 "Gmsh.y"
 { 
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i];
     ;
     break;}
-case 441:
-#line 3729 "Gmsh.y"
+case 443:
+#line 3762 "Gmsh.y"
 { 
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
     ;
     break;}
-case 442:
-#line 3733 "Gmsh.y"
+case 444:
+#line 3766 "Gmsh.y"
 {
       for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i];
     ;
     break;}
-case 443:
-#line 3740 "Gmsh.y"
+case 445:
+#line 3773 "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 444:
-#line 3744 "Gmsh.y"
+case 446:
+#line 3777 "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 445:
-#line 3748 "Gmsh.y"
+case 447:
+#line 3781 "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 446:
-#line 3752 "Gmsh.y"
+case 448:
+#line 3785 "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 447:
-#line 3759 "Gmsh.y"
+case 449:
+#line 3792 "Gmsh.y"
 {
     ;
     break;}
-case 448:
-#line 3762 "Gmsh.y"
+case 450:
+#line 3795 "Gmsh.y"
 {
     ;
     break;}
-case 449:
-#line 3768 "Gmsh.y"
+case 451:
+#line 3801 "Gmsh.y"
 {
     ;
     break;}
-case 450:
-#line 3771 "Gmsh.y"
+case 452:
+#line 3804 "Gmsh.y"
 {
     ;
     break;}
-case 451:
-#line 3777 "Gmsh.y"
+case 453:
+#line 3810 "Gmsh.y"
 {
     ;
     break;}
-case 452:
-#line 3780 "Gmsh.y"
+case 454:
+#line 3813 "Gmsh.y"
 {
        yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 453:
-#line 3784 "Gmsh.y"
+case 455:
+#line 3817 "Gmsh.y"
 {
        yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 454:
-#line 3791 "Gmsh.y"
+case 456:
+#line 3824 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(List_T*));
       List_Add(yyval.l, &(yyvsp[0].l));
     ;
     break;}
-case 455:
-#line 3796 "Gmsh.y"
+case 457:
+#line 3829 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].l));
     ;
     break;}
-case 456:
-#line 3804 "Gmsh.y"
+case 458:
+#line 3837 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
-case 457:
-#line 3809 "Gmsh.y"
+case 459:
+#line 3842 "Gmsh.y"
 {
       yyval.l = yyvsp[0].l;
     ;
     break;}
-case 458:
-#line 3813 "Gmsh.y"
+case 460:
+#line 3846 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 459:
-#line 3817 "Gmsh.y"
+case 461:
+#line 3850 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
       double *pd;
@@ -8843,16 +8921,16 @@ case 459:
       }
     ;
     break;}
-case 460:
-#line 3829 "Gmsh.y"
+case 462:
+#line 3862 "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 461:
-#line 3835 "Gmsh.y"
+case 463:
+#line 3868 "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)){
@@ -8864,8 +8942,8 @@ case 461:
 	  List_Add(yyval.l, &d);
    ;
     break;}
-case 462:
-#line 3846 "Gmsh.y"
+case 464:
+#line 3879 "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
@@ -8886,8 +8964,8 @@ case 462:
       }
     ;
     break;}
-case 463:
-#line 3866 "Gmsh.y"
+case 465:
+#line 3899 "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++){
@@ -8898,8 +8976,8 @@ case 463:
       List_Delete(yyvsp[0].l);
     ;
     break;}
-case 464:
-#line 3876 "Gmsh.y"
+case 466:
+#line 3909 "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++){
@@ -8910,8 +8988,8 @@ case 464:
       List_Delete(yyvsp[0].l);
     ;
     break;}
-case 465:
-#line 3886 "Gmsh.y"
+case 467:
+#line 3919 "Gmsh.y"
 {
       // FIXME: The syntax for this is ugly: we get double semi-colons
       // at the end of the line
@@ -8924,8 +9002,8 @@ case 465:
       List_Delete(yyvsp[0].l);
     ;
     break;}
-case 466:
-#line 3898 "Gmsh.y"
+case 468:
+#line 3931 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8943,8 +9021,8 @@ case 466:
       Free(yyvsp[-2].c);
     ;
     break;}
-case 467:
-#line 3915 "Gmsh.y"
+case 469:
+#line 3948 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8964,8 +9042,8 @@ case 467:
       Free(yyvsp[-2].c);
     ;
     break;}
-case 468:
-#line 3934 "Gmsh.y"
+case 470:
+#line 3967 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -8990,8 +9068,8 @@ case 468:
       List_Delete(yyvsp[-2].l);
     ;
     break;}
-case 469:
-#line 3958 "Gmsh.y"
+case 471:
+#line 3991 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       Symbol TheSymbol;
@@ -9018,27 +9096,27 @@ case 469:
       List_Delete(yyvsp[-2].l);
     ;
     break;}
-case 470:
-#line 3987 "Gmsh.y"
+case 472:
+#line 4020 "Gmsh.y"
 {
       yyval.l = List_Create(2, 1, sizeof(double));
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
-case 471:
-#line 3992 "Gmsh.y"
+case 473:
+#line 4025 "Gmsh.y"
 {
       yyval.l = yyvsp[0].l;
     ;
     break;}
-case 472:
-#line 3996 "Gmsh.y"
+case 474:
+#line 4029 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].d));
     ;
     break;}
-case 473:
-#line 4000 "Gmsh.y"
+case 475:
+#line 4033 "Gmsh.y"
 {
       for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
 	double d;
@@ -9048,20 +9126,20 @@ case 473:
       List_Delete(yyvsp[0].l);
     ;
     break;}
-case 474:
-#line 4013 "Gmsh.y"
+case 476:
+#line 4046 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
     ;
     break;}
-case 475:
-#line 4017 "Gmsh.y"
+case 477:
+#line 4050 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
     ;
     break;}
-case 476:
-#line 4029 "Gmsh.y"
+case 478:
+#line 4062 "Gmsh.y"
 {
       int flag;
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
@@ -9069,8 +9147,8 @@ case 476:
       Free(yyvsp[0].c);
     ;
     break;}
-case 477:
-#line 4036 "Gmsh.y"
+case 479:
+#line 4069 "Gmsh.y"
 {
       unsigned int (*pColOpt)(int num, int action, unsigned int value);
       StringXColor *pColCat;
@@ -9090,14 +9168,14 @@ case 477:
       Free(yyvsp[-4].c); Free(yyvsp[0].c);
     ;
     break;}
-case 478:
-#line 4058 "Gmsh.y"
+case 480:
+#line 4091 "Gmsh.y"
 {
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 479:
-#line 4062 "Gmsh.y"
+case 481:
+#line 4095 "Gmsh.y"
 {
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d);
@@ -9110,27 +9188,27 @@ case 479:
       Free(yyvsp[-5].c);
     ;
     break;}
-case 480:
-#line 4077 "Gmsh.y"
+case 482:
+#line 4110 "Gmsh.y"
 {
       yyval.l = List_Create(256, 10, sizeof(unsigned int));
       List_Add(yyval.l, &(yyvsp[0].u));
     ;
     break;}
-case 481:
-#line 4082 "Gmsh.y"
+case 483:
+#line 4115 "Gmsh.y"
 {
       List_Add(yyval.l, &(yyvsp[0].u));
     ;
     break;}
-case 482:
-#line 4089 "Gmsh.y"
+case 484:
+#line 4122 "Gmsh.y"
 {
       yyval.c = yyvsp[0].c;
     ;
     break;}
-case 483:
-#line 4093 "Gmsh.y"
+case 485:
+#line 4126 "Gmsh.y"
 {
       yyval.c = (char *)Malloc(32*sizeof(char));
       time_t now;
@@ -9139,8 +9217,8 @@ case 483:
       yyval.c[strlen(yyval.c) - 1] = '\0';
     ;
     break;}
-case 484:
-#line 4101 "Gmsh.y"
+case 486:
+#line 4134 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char));
       strcpy(yyval.c, yyvsp[-3].c);
@@ -9149,8 +9227,8 @@ case 484:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 485:
-#line 4109 "Gmsh.y"
+case 487:
+#line 4142 "Gmsh.y"
 {
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char));
       int i;
@@ -9165,14 +9243,14 @@ case 485:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 486:
-#line 4123 "Gmsh.y"
+case 488:
+#line 4156 "Gmsh.y"
 {
       yyval.c = yyvsp[-1].c;
     ;
     break;}
-case 487:
-#line 4127 "Gmsh.y"
+case 489:
+#line 4160 "Gmsh.y"
 {
       char tmpstring[1024];
       int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring);
@@ -9192,8 +9270,8 @@ case 487:
       List_Delete(yyvsp[-1].l);
     ;
     break;}
-case 488:
-#line 4146 "Gmsh.y"
+case 490:
+#line 4179 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -9210,8 +9288,8 @@ case 488:
       }
     ;
     break;}
-case 489:
-#line 4162 "Gmsh.y"
+case 491:
+#line 4195 "Gmsh.y"
 { 
       char* (*pStrOpt)(int num, int action, char *value);
       StringXString *pStrCat;
@@ -9450,7 +9528,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 4179 "Gmsh.y"
+#line 4212 "Gmsh.y"
 
 
 void DeleteSymbol(void *a, void *b){
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index b6a6d000030b984069ab2af3a739a47582040ee0..6996b171131d02dc9641fb4f14964fb131798f44 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// $Id: Gmsh.y,v 1.202 2005-02-02 18:47:59 geuzaine Exp $
+// $Id: Gmsh.y,v 1.203 2005-02-20 06:36:58 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -1943,6 +1943,39 @@ Shape :
       $$.Type = MSH_SEGM_NURBS;
       $$.Num = num;
     }
+  | tDiscrete tLine '(' FExpr ')' tAFFECT '{' FExpr '}' ListOfDouble tEND
+    {
+      // define a new line
+      int num = (int)$4;
+      if(FindCurve(num, THEM)){
+	yymsg(GERROR, "Curve %d already exists", num);
+	List_Delete($10);
+      }
+      else{
+	Curve *c = Create_Curve(num, MSH_SEGM_DISCRETE, 1, NULL, NULL, -1, -1, 0, 1);
+	c->theSegmRep = new SEGM_rep((int)$8, $10);
+	Tree_Add(THEM->Curves, &c);
+	CreateReversedCurve(THEM, c);
+      }
+      $$.Type = MSH_SEGM_DISCRETE;
+      $$.Num = num;
+    }
+  | tDiscrete tLine '{' FExpr '}' tAFFECT '{' FExpr '}' ListOfDouble tEND
+    {
+      // add a poly rep to an existing line
+      int num = (int)$4, type = 0;
+      Curve *c = FindCurve(num, THEM);
+      if(!c) {
+	yymsg(GERROR, "Unknown curve %d", num);
+	List_Delete($10);
+      }
+      else{
+	c->theSegmRep = new SEGM_rep((int)$8, $10);
+	type = c->Typ;
+      }
+      $$.Type = type;
+      $$.Num = num;
+    }
   | tLine tLoop '(' FExpr ')' tAFFECT ListOfDouble tEND
     {
       int num = (int)$4;
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 870966ca068e9bd36ebb0d2333833eae4cf1bc6c..cf1ae0a40f46b7639ccab67914d8f48d923e3cf8 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.231 2005-02-02 18:47:59 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.232 2005-02-20 06:36:58 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -1073,7 +1073,7 @@ char *yytext;
 #line 1 "Gmsh.l"
 #define INITIAL 0
 #line 2 "Gmsh.l"
-// $Id: Gmsh.yy.cpp,v 1.231 2005-02-02 18:47:59 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.232 2005-02-20 06:36:58 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp
index 3a6eed99e1e9f7cc2ad75d71b90519d52acb098b..127186c822e333c776fe343dc11a2936d6ce4551 100644
--- a/Parser/OpenFile.cpp
+++ b/Parser/OpenFile.cpp
@@ -1,4 +1,4 @@
-// $Id: OpenFile.cpp,v 1.70 2005-01-08 20:15:17 geuzaine Exp $
+// $Id: OpenFile.cpp,v 1.71 2005-02-20 06:36:58 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -92,6 +92,38 @@ void SetBoundingBox(void)
     // else, if we have geometry points, use them
     CalculateMinMax(THEM->Points, NULL);
   }
+  else if(Tree_Nbr(THEM->Curves)) { 
+    // else, if we have (discrete) curves, use them
+    List_T *l = Tree2List(THEM->Curves);
+    int first = 1;
+    double bbox[6];
+    for(int i = 0; i < List_Nbr(l); i++){
+      Curve *c = *(Curve**)List_Pointer(l, i);
+      if(c->theSegmRep){
+	if(first){
+	  first = 0;
+	  for(int j = 0; j < 6; j++)
+	    bbox[j] = c->theSegmRep->bounding_box[j];
+	}
+	else{
+	  if(c->theSegmRep->bounding_box[0] < bbox[0])
+	    bbox[0] = c->theSegmRep->bounding_box[0];
+	  if(c->theSegmRep->bounding_box[1] > bbox[1])
+	    bbox[1] = c->theSegmRep->bounding_box[1];
+	  if(c->theSegmRep->bounding_box[2] < bbox[2])
+	    bbox[2] = c->theSegmRep->bounding_box[2];
+	  if(c->theSegmRep->bounding_box[3] > bbox[3])
+	    bbox[3] = c->theSegmRep->bounding_box[3];
+	  if(c->theSegmRep->bounding_box[4] < bbox[4])
+	    bbox[4] = c->theSegmRep->bounding_box[4];
+	  if(c->theSegmRep->bounding_box[5] > bbox[5])
+	    bbox[5] = c->theSegmRep->bounding_box[5];
+	}
+      }
+    }
+    CalculateMinMax(NULL, bbox);
+    List_Delete(l);
+  }
   else if(Tree_Nbr(THEM->Surfaces)) { 
     // else, if we have (discrete) surfaces, use them
     List_T *l = Tree2List(THEM->Surfaces);
diff --git a/doc/VERSIONS b/doc/VERSIONS
index 1854c904f9170db94416f1541db41b91ae69cfcd..bf01705104eb1ff987a60a98ff8b5de2d4b83ced 100644
--- a/doc/VERSIONS
+++ b/doc/VERSIONS
@@ -1,6 +1,7 @@
-$Id: VERSIONS,v 1.309 2005-02-12 18:43:10 geuzaine Exp $
+$Id: VERSIONS,v 1.310 2005-02-20 06:36:58 geuzaine Exp $
 
-New since 1.59: new Window menu on Mac OS X; fixed small bugs.
+New since 1.59: added support for discrete curves; new Window menu on
+Mac OS X; fixed small bugs.
 
 New in 1.59: added support for discrete (triangulated) surfaces,
 either in STL format or with the new "Discrete Surface" command; added
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index edebfa268eba3e1dfb24ac2c80ad1115b14ccea0..7e9666c7535a7ce189a0877bd13e10774e860e09 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.172 2005-02-06 06:29:27 geuzaine Exp $
+@c $Id: gmsh.texi,v 1.173 2005-02-20 06:36:59 geuzaine Exp $
 @c
 @c Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 @c
@@ -1514,6 +1514,14 @@ spline's identification number; the @var{expression-list} on the right hand
 side should contain the identification numbers of all the spline's control
 points.
 
+@item Discrete Line ( @var{expression} ) = @{ @var{expression} @} @{ @var{expression-list} @};
+Creates a discrete line, i.e., a line defined by a series of points.  The
+@var{expression} on the right hand side gives the number of points in the
+discretization and the @var{expression-list} gives the list of these points,
+by groups of three coordinates (X, Y and Z). This discretization is used
+both for the graphical representation and for the one-dimensional mesh of
+the line.
+
 @item Line Loop ( @var{expression} ) = @{ @var{expression-list} @};
 Creates an oriented line loop. The @var{expression} inside the parentheses
 is the line loop's identification number; the @var{expression-list} on the
@@ -1578,7 +1586,7 @@ composed of either three or four elementary lines.
 @item Discrete Surface ( @var{expression} ) = @{ @var{expression}, @var{expression} @} @{ @var{expression-list} @} @{ @var{expression-list} @};
 Creates a discrete surface, i.e., a surface defined by a polygonal
 discretization (usually a triangulation).  The two @w{@var{expression}s} on
-the right hand side define the number of points and the number of polygons
+the right hand side give the number of points and the number of polygons
 in the discretization, respectively. The first @var{expression-list} gives
 the list of discretization points and their associated normals, by groups of
 six @w{@var{expression}s} (three node coordinates and three normal
@@ -1834,12 +1842,13 @@ the signification of the `Saved in:' field in the following list, see
 Gmsh's mesh module regroups several 1D, 2D and 3D mesh algorithms, all
 producing grids conforming in the sense of finite elements (@pxref{Mesh}).
 
-The 2D unstructured algorithms generate triangles or both triangles and
-quadrangles (when @code{Recombine Surface} is used: see @ref{Miscellaneous
-mesh commands}). The 3D unstructured algorithm only generates tetrahedra.
+The 2D @emph{unstructured} algorithms generate triangles or both triangles
+and quadrangles (when @code{Recombine Surface} is used: see
+@ref{Miscellaneous mesh commands}). The 3D unstructured algorithms only
+generate tetrahedra.
 
-The 2D structured algorithms (transfinite, elliptic and extrusion) generate
-triangles by default, but quadrangles can be obtained by using the
+The 2D @emph{structured} algorithms (transfinite, elliptic and extrusion)
+generate triangles by default, but quadrangles can be obtained by using the
 @code{Recombine} commands (see @ref{Structured grids}, and
 @ref{Miscellaneous mesh commands}). The 3D structured algorithms generate
 tetrahedra, hexahedra, prisms and pyramids, depending on the type of the
@@ -2091,16 +2100,6 @@ the surface. The ordering of these point numbers defines the ordering and
 orientation of the mesh elements, and should thus follow the node ordering
 for triangles or quadrangles given in @ref{Gmsh node ordering}.
 
-@item Discrete Surface @{ @var{expression} @} = @{ @var{expression}, @var{expression} @} @{ @var{expression-list} @} @{ @var{expression-list} @};
-Associates a polygonal discretization to the (existing) surface
-@var{expression}.  This polygonal discretization is used for the graphical
-representation of the surface and can also be used as the actual
-two-dimensional mesh of the surface if all the polygons are triangles.
-
-See the definition of @code{Discrete Surface} in @ref{Surfaces}, for an
-explanation of the meaning of the @w{@var{expression}s} and
-@w{@var{expression-list}s} on the right hand side.
-
 @end ftable
 
 @c .........................................................................
@@ -2113,6 +2112,25 @@ explanation of the meaning of the @w{@var{expression}s} and
 Here is a list of all other mesh commands currently available:
 
 @ftable @code
+@item Discrete Line @{ @var{expression} @} = @{ @var{expression} @} @{ @var{expression-list} @};
+Associates a discretization with the (existing) curve @var{expression}.
+This discretization is used both for the graphical representation and for
+the one-dimensional mesh of the line.
+
+See the definition of @code{Discrete Line} in @ref{Lines}, for an
+explanation of the meaning of the @var{expression} and the
+@var{expression-list} on the right hand side.
+
+@item Discrete Surface @{ @var{expression} @} = @{ @var{expression}, @var{expression} @} @{ @var{expression-list} @} @{ @var{expression-list} @};
+Associates a polygonal discretization with the (existing) surface
+@var{expression}.  This polygonal discretization is used for the graphical
+representation of the surface and can also be used as the actual
+two-dimensional mesh of the surface if all the polygons are triangles.
+
+See the definition of @code{Discrete Surface} in @ref{Surfaces}, for an
+explanation of the meaning of the @w{@var{expression}s} and
+@w{@var{expression-list}s} on the right hand side.
+
 @item Color @var{color-expression} @{ Point | Line | Surface | Volume @{ @var{expression-list} @}; @dots{} @}
 Sets the mesh color of the entities in @var{expression-list} to @var{color-expression}.
 
@@ -3626,7 +3644,7 @@ add the prototype in @file{Common/Options.h});
 @item
 optional: create the associated widget in @file{Fltk/GUI.cpp};
 @item
-optional: if no special callback is to be associated to the widget, add the
+optional: if no special callback is to be associated with the widget, add the
 handling routine @code{opt_XXX} to the OK callback for the corresponding
 option panel (in @file{Fltk/Callbacks.cpp}).
 @end enumerate
diff --git a/doc/texinfo/shortcuts.texi b/doc/texinfo/shortcuts.texi
index a9c027c3d8620aa526a8f7b6995be3ec33337711..d36760166da907d43a0cf43ba875d63dd8c86b27 100644
--- a/doc/texinfo/shortcuts.texi
+++ b/doc/texinfo/shortcuts.texi
@@ -58,8 +58,6 @@ Show post-processing view options
 Show statistics window 
 @item Ctrl+l
 Show message console
-@item Ctrl+m
-Merge file(s)
 @item Ctrl+n
 Create new project file 
 @item Ctrl+o
@@ -75,8 +73,10 @@ Save file
 
 @item Shift+Ctrl+c
 Show clipping plane window
-@item Shift+Ctrl+o
+@item Shift+Ctrl+n
 Show option window 
+@item Shift+Ctrl+o
+Merge file(s)
 @item Shift+Ctrl+s
 Save mesh in default format
 @item Shift+Ctrl+v