diff --git a/Common/Context.cpp b/Common/Context.cpp
index b3ef62b887bdcb014d568578129a246dc75bb248..b0a5dc0c474aaef65f31867b3e7115e9704f8913 100644
--- a/Common/Context.cpp
+++ b/Common/Context.cpp
@@ -1,4 +1,4 @@
-/* $Id: Context.cpp,v 1.21 2000-12-10 00:06:50 geuzaine Exp $ */
+/* $Id: Context.cpp,v 1.22 2000-12-11 22:09:42 geuzaine Exp $ */
 
 #include "Gmsh.h"
 #include "Const.h"
@@ -22,12 +22,6 @@ extern StringXNumber MeshOptions_Number[] ;
 extern StringXNumber PostProcessingOptions_Number[] ;
 extern StringXNumber PrintOptions_Number[] ;
 
-extern StringXArray GeneralOptions_Array[] ;
-extern StringXArray GeometryOptions_Array[] ;
-extern StringXArray MeshOptions_Array[] ;
-extern StringXArray PostProcessingOptions_Array[] ;
-extern StringXArray PrintOptions_Array[] ;
-
 extern StringXColor GeneralOptions_Color[] ;
 extern StringXColor GeometryOptions_Color[] ;
 extern StringXColor MeshOptions_Color[] ;
@@ -121,94 +115,6 @@ void Print_NumberOptions(StringXNumber s[], char *prefix, FILE *file){
   }
 }
 
-
-// ARRAY OPTIONS
-
-StringXArray * Get_ArrayOptionCategory(char * cat){
-  if     (!strcmp(cat,"General"))        return GeneralOptions_Array ;
-  else if(!strcmp(cat,"Geometry"))       return GeometryOptions_Array ;
-  else if(!strcmp(cat,"Mesh"))           return MeshOptions_Array ;
-  else if(!strcmp(cat,"PostProcessing")) return PostProcessingOptions_Array ;
-  else if(!strcmp(cat,"Print"))          return PrintOptions_Array ;
-  else                                   return NULL ;
-}
-
-void Set_DefaultArrayOptions(StringXArray s[]){
-  int i = 0;
-  
-  while(s[i].str){
-    switch(s[i].type){
-    case GMSH_INT:
-      ((int*)s[i].ptr)[0] = (int)s[i].def1;
-      ((int*)s[i].ptr)[1] = (int)s[i].def2;
-      ((int*)s[i].ptr)[2] = (int)s[i].def3;
-      ((int*)s[i].ptr)[3] = (int)s[i].def4;
-      break;
-    case GMSH_LONG:
-      ((long*)s[i].ptr)[0] = (long)s[i].def1;
-      ((long*)s[i].ptr)[1] = (long)s[i].def2;
-      ((long*)s[i].ptr)[2] = (long)s[i].def3;
-      ((long*)s[i].ptr)[3] = (long)s[i].def4;
-      break;
-    case GMSH_FLOAT:
-      ((float*)s[i].ptr)[0] = (float)s[i].def1;
-      ((float*)s[i].ptr)[1] = (float)s[i].def2;
-      ((float*)s[i].ptr)[2] = (float)s[i].def3;
-      ((float*)s[i].ptr)[3] = (float)s[i].def4;
-      break;
-    case GMSH_DOUBLE:
-      ((double*)s[i].ptr)[0] = (double)s[i].def1;
-      ((double*)s[i].ptr)[1] = (double)s[i].def2;
-      ((double*)s[i].ptr)[2] = (double)s[i].def3;
-      ((double*)s[i].ptr)[3] = (double)s[i].def4;
-      break;
-    }
-    i++;
-  }
-}
-
-void * Get_ArrayOption(char *str, StringXArray s[], int *type){
-  int i = 0;
-  while ((s[i].str != NULL) && (strcmp(s[i].str, str))) i++ ;
-  if(!s[i].str)
-    return NULL;
-  else{
-    *type = s[i].type ;
-    return s[i].ptr;
-  }
-}
-
-void Print_ArrayOptions(StringXArray s[], char *prefix, FILE *file){
-  int i = 0;
-  while(s[i].str){
-    fprintf(file, "%s%s = {", prefix, s[i].str);
-    switch(s[i].type){
-    case GMSH_INT : 
-      fprintf(file, "%d,%d,%d,%d};\n", 
-	      ((int*)s[i].ptr)[0], ((int*)s[i].ptr)[1], 
-	      ((int*)s[i].ptr)[2], ((int*)s[i].ptr)[3]); 
-      break;
-    case GMSH_LONG : 
-      fprintf(file, "%ld,%ld,%ld,%ld};\n", 
-	      ((long*)s[i].ptr)[0], ((long*)s[i].ptr)[1], 
-	      ((long*)s[i].ptr)[2], ((long*)s[i].ptr)[3]); 
-      break;
-    case GMSH_FLOAT : 
-      fprintf(file, "%g,%g,%g,%g};\n", 
-	      ((float*)s[i].ptr)[0], ((float*)s[i].ptr)[1], 
-	      ((float*)s[i].ptr)[2], ((float*)s[i].ptr)[3]); 
-      break;
-    case GMSH_DOUBLE : 
-      fprintf(file, "%g,%g,%g,%g};\n", 
-	      ((double*)s[i].ptr)[0], ((double*)s[i].ptr)[1], 
-	      ((double*)s[i].ptr)[2], ((double*)s[i].ptr)[3]); 
-      break;
-    }
-    i++;
-  }
-}
-
-
 // COLORS
 
 StringXColor * Get_ColorOptionCategory(char * cat){
@@ -327,13 +233,6 @@ void Init_Context(void){
   Set_DefaultNumberOptions(PostProcessingOptions_Number);
   Set_DefaultNumberOptions(PrintOptions_Number);
 
-  // Default array options
-  Set_DefaultArrayOptions(GeneralOptions_Array);
-  Set_DefaultArrayOptions(GeometryOptions_Array);
-  Set_DefaultArrayOptions(MeshOptions_Array);
-  Set_DefaultArrayOptions(PostProcessingOptions_Array);
-  Set_DefaultArrayOptions(PrintOptions_Array);
-
   // Default color options
   Init_Colors(0);
 
@@ -357,32 +256,26 @@ void Print_Context(char *filename){
 
   Print_StringOptions(GeneralOptions_String, "General.", file);
   Print_NumberOptions(GeneralOptions_Number, "General.", file);
-  Print_ArrayOptions(GeneralOptions_Array, "General.", file);
   Print_ColorOptions(GeneralOptions_Color, "General.", file);
   fprintf(file, "\n");
   Print_StringOptions(GeometryOptions_String, "Geometry.", file);
   Print_NumberOptions(GeometryOptions_Number, "Geometry.", file);
-  Print_ArrayOptions(GeometryOptions_Array, "Geometry.", file);
   Print_ColorOptions(GeometryOptions_Color, "Geometry.", file);
   fprintf(file, "\n");
   Print_StringOptions(MeshOptions_String, "Mesh.", file);
   Print_NumberOptions(MeshOptions_Number, "Mesh.", file);
-  Print_ArrayOptions(MeshOptions_Array, "Mesh.", file);
   Print_ColorOptions(MeshOptions_Color, "Mesh.", file);
   fprintf(file, "\n");
   Print_StringOptions(PostProcessingOptions_String, "PostProcessing.", file);
   Print_NumberOptions(PostProcessingOptions_Number, "PostProcessing.", file);
-  Print_ArrayOptions(PostProcessingOptions_Array, "PostProcessing.", file);
   Print_ColorOptions(PostProcessingOptions_Color, "PostProcessing.", file);
   for(i=0; i<List_Nbr(Post_ViewList) ; i++){
     Print_StringViewOptions(i, file);
     Print_NumberViewOptions(i, file);
-    Print_ArrayViewOptions(i, file);
   }
   fprintf(file, "\n");
   Print_StringOptions(PrintOptions_String, "Print.", file);
   Print_NumberOptions(PrintOptions_Number, "Print.", file);
-  Print_ArrayOptions(PrintOptions_Array, "Print.", file);
   Print_ColorOptions(PrintOptions_Color, "Print.", file);
 
   if(filename){
@@ -484,11 +377,6 @@ void Context_T::buildRotmatrix(void)
     rot[3][1] = 0.0 ;
     rot[3][2] = 0.0 ;
     rot[3][3] = 1.0 ;
-    /*
-    glRotated (CTX.r[0], 1., 0., 0.);
-    glRotated (CTX.r[1], 0., 1., 0.);
-    glRotated (CTX.r[2], 0., 0., 1.);
-    */
   }
 
 }
diff --git a/Common/Context.h b/Common/Context.h
index 8b9f5de27dd19f93e6e90e760d3ebbd340747ac8..97d034a0874fc72aa74acb31db390c72f474e71f 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -1,4 +1,4 @@
-/* $Id: Context.h,v 1.19 2000-12-10 00:06:50 geuzaine Exp $ */
+/* $Id: Context.h,v 1.20 2000-12-11 22:09:42 geuzaine Exp $ */
 #ifndef _CONTEXT_H_
 #define _CONTEXT_H_
 
@@ -167,13 +167,6 @@ typedef struct {
   double def ;
 } StringXNumber ;
 
-typedef struct {
-  char *str;
-  int type;
-  void *ptr;
-  double def1, def2, def3, def4 ;
-} StringXArray ;
-
 typedef struct {
   char *str ; 
   unsigned int *ptr ;
@@ -182,23 +175,19 @@ typedef struct {
 
 StringXString * Get_StringOptionCategory(char * cat);
 StringXNumber * Get_NumberOptionCategory(char * cat);
-StringXArray * Get_ArrayOptionCategory(char * cat);
 StringXColor * Get_ColorOptionCategory(char * cat);
 
 void Set_DefaultStringOptions(StringXString s[]);
 void Set_DefaultNumberOptions(StringXNumber s[]);
-void Set_DefaultArrayOptions(StringXArray s[]);
 void Set_DefaultColorOptions(StringXColor s[], int num);
 
 char ** Get_StringOption(char *str, StringXString s[]);
 void * Get_NumberOption(char *str, StringXNumber s[], int *type);
-void * Get_ArrayOption(char *str, StringXArray s[], int *type);
 unsigned int * Get_ColorOption(char *str, StringXColor s[]);
 
 void Print_StringOptions(StringXString s[], char *prefix, FILE *file);
 void Print_NumberOptions(StringXNumber s[], char *prefix, FILE *file);
-void Print_ArrayOptions(StringXArray s[], char *prefix, FILE *file);
-void Print_ColorOptions(StringXArray s[], char *prefix, FILE *file);
+void Print_ColorOptions(StringXColor s[], char *prefix, FILE *file);
 
 void Init_Colors (int num);
 void Init_Context (void);
diff --git a/Common/Options.h b/Common/Options.h
index 4193b01ae191b871dd46654d8802b758449c317e..1e0f47b1d66d418cc29cb47225a98e299936f4b2 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -1,4 +1,4 @@
-/* $Id: Options.h,v 1.5 2000-12-09 22:26:12 geuzaine Exp $ */
+/* $Id: Options.h,v 1.6 2000-12-11 22:09:42 geuzaine Exp $ */
 #ifndef _OPTIONS_H_
 #define _OPTIONS_H_
 
@@ -40,6 +40,14 @@ StringXNumber GeneralOptions_Number[] = {
   { "Rotation0"    , GMSH_DOUBLE, (void*)&CTX.r[0]          , 0.0 }, 
   { "Rotation1"    , GMSH_DOUBLE, (void*)&CTX.r[1]          , 0.0 }, 
   { "Rotation2"    , GMSH_DOUBLE, (void*)&CTX.r[2]          , 0.0 }, 
+  { "TrackballQuaternion0" , 
+                     GMSH_FLOAT,  (void*)&CTX.quaternion[0] , 0.0 }, 
+  { "TrackballQuaternion1" , 
+                     GMSH_FLOAT,  (void*)&CTX.quaternion[1] , 0.0 }, 
+  { "TrackballQuaternion2" , 
+                     GMSH_FLOAT,  (void*)&CTX.quaternion[2] , 0.0 }, 
+  { "TrackballQuaternion3" , 
+                     GMSH_FLOAT,  (void*)&CTX.quaternion[3] , 1.0 }, 
   { "Translation0" , GMSH_DOUBLE, (void*)&CTX.t[0]          , 0.0 }, 
   { "Translation1" , GMSH_DOUBLE, (void*)&CTX.t[1]          , 0.0 }, 
   { "Translation2" , GMSH_DOUBLE, (void*)&CTX.t[2]          , 0.0 }, 
@@ -58,17 +66,65 @@ StringXNumber GeneralOptions_Number[] = {
   { "AlphaBlending", GMSH_INT,    (void*)&CTX.alpha         , 0. },
   { "Trackball"    , GMSH_INT,    (void*)&CTX.useTrackball  , 1. },
   { "Clip0"        , GMSH_INT,    (void*)&CTX.clip[0]       , 0. },
+  { "Clip00"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[0][0] , 0.0 }, 
+  { "Clip01"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[0][1] , 0.0 }, 
+  { "Clip02"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[0][2] , 0.0 }, 
+  { "Clip03"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[0][3] , 0.0 }, 
   { "Clip1"        , GMSH_INT,    (void*)&CTX.clip[1]       , 0. },
+  { "Clip10"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[1][0] , 0.0 }, 
+  { "Clip11"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[1][1] , 0.0 }, 
+  { "Clip12"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[1][2] , 0.0 }, 
+  { "Clip13"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[1][3] , 0.0 }, 
   { "Clip2"        , GMSH_INT,    (void*)&CTX.clip[2]       , 0. },
+  { "Clip20"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[2][0] , 0.0 }, 
+  { "Clip21"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[2][1] , 0.0 }, 
+  { "Clip22"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[2][2] , 0.0 }, 
+  { "Clip23"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[2][3] , 0.0 }, 
   { "Clip3"        , GMSH_INT,    (void*)&CTX.clip[3]       , 0. },
+  { "Clip30"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[3][0] , 0.0 }, 
+  { "Clip31"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[3][1] , 0.0 }, 
+  { "Clip32"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[3][2] , 0.0 }, 
+  { "Clip33"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[3][3] , 0.0 }, 
   { "Clip4"        , GMSH_INT,    (void*)&CTX.clip[4]       , 0. },
+  { "Clip40"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[4][0] , 0.0 }, 
+  { "Clip41"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[4][1] , 0.0 }, 
+  { "Clip42"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[4][2] , 0.0 }, 
+  { "Clip43"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[4][3] , 0.0 }, 
   { "Clip5"        , GMSH_INT,    (void*)&CTX.clip[5]       , 0. },
+  { "Clip50"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[5][0] , 0.0 }, 
+  { "Clip51"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[5][1] , 0.0 }, 
+  { "Clip52"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[5][2] , 0.0 }, 
+  { "Clip53"       , GMSH_DOUBLE, (void*)&CTX.clip_plane[5][3] , 0.0 }, 
   { "Light0"       , GMSH_INT,    (void*)&CTX.light[0]      , 1. },
+  { "Light00"      , GMSH_FLOAT,  (void*)&CTX.light_position[0][0] , 0.5 }, 
+  { "Light01"      , GMSH_FLOAT,  (void*)&CTX.light_position[0][1] , 0.3 }, 
+  { "Light02"      , GMSH_FLOAT,  (void*)&CTX.light_position[0][2] , 1.0 }, 
+  { "Light03"      , GMSH_FLOAT,  (void*)&CTX.light_position[0][3] , 0.0 }, 
   { "Light1"       , GMSH_INT,    (void*)&CTX.light[1]      , 0. },
+  { "Light10"      , GMSH_FLOAT,  (void*)&CTX.light_position[1][0] , 0.0 }, 
+  { "Light11"      , GMSH_FLOAT,  (void*)&CTX.light_position[1][1] , 0.0 }, 
+  { "Light12"      , GMSH_FLOAT,  (void*)&CTX.light_position[1][2] , 0.0 }, 
+  { "Light13"      , GMSH_FLOAT,  (void*)&CTX.light_position[1][3] , 0.0 }, 
   { "Light2"       , GMSH_INT,    (void*)&CTX.light[2]      , 0. },
+  { "Light20"      , GMSH_FLOAT,  (void*)&CTX.light_position[2][0] , 0.0 }, 
+  { "Light21"      , GMSH_FLOAT,  (void*)&CTX.light_position[2][1] , 0.0 }, 
+  { "Light22"      , GMSH_FLOAT,  (void*)&CTX.light_position[2][2] , 0.0 }, 
+  { "Light23"      , GMSH_FLOAT,  (void*)&CTX.light_position[2][3] , 0.0 }, 
   { "Light3"       , GMSH_INT,    (void*)&CTX.light[3]      , 0. },
+  { "Light30"      , GMSH_FLOAT,  (void*)&CTX.light_position[3][0] , 0.0 }, 
+  { "Light31"      , GMSH_FLOAT,  (void*)&CTX.light_position[3][1] , 0.0 }, 
+  { "Light32"      , GMSH_FLOAT,  (void*)&CTX.light_position[3][2] , 0.0 }, 
+  { "Light33"      , GMSH_FLOAT,  (void*)&CTX.light_position[3][3] , 0.0 }, 
   { "Light4"       , GMSH_INT,    (void*)&CTX.light[4]      , 0. },
+  { "Light40"      , GMSH_FLOAT,  (void*)&CTX.light_position[4][0] , 0.0 }, 
+  { "Light41"      , GMSH_FLOAT,  (void*)&CTX.light_position[4][1] , 0.0 }, 
+  { "Light42"      , GMSH_FLOAT,  (void*)&CTX.light_position[4][2] , 0.0 }, 
+  { "Light43"      , GMSH_FLOAT,  (void*)&CTX.light_position[4][3] , 0.0 }, 
   { "Light5"       , GMSH_INT,    (void*)&CTX.light[5]      , 0. },
+  { "Light50"      , GMSH_FLOAT,  (void*)&CTX.light_position[5][0] , 0.0 }, 
+  { "Light51"      , GMSH_FLOAT,  (void*)&CTX.light_position[5][1] , 0.0 }, 
+  { "Light52"      , GMSH_FLOAT,  (void*)&CTX.light_position[5][2] , 0.0 }, 
+  { "Light53"      , GMSH_FLOAT,  (void*)&CTX.light_position[5][3] , 0.0 }, 
   { NULL           , GMSH_DOUBLE, NULL , 0. }
 } ;
 
@@ -140,42 +196,6 @@ StringXNumber PrintOptions_Number[] = {
   { NULL       , GMSH_DOUBLE, NULL , 0. }
 } ;
 
-// ARRAYS
-
-StringXArray GeneralOptions_Array[] = {
-  { "TrackballQuaternion" , 
-                       GMSH_FLOAT,  CTX.quaternion    , 0., 0., 0., 1. }, 
-  { "ClipPlane0"     , GMSH_DOUBLE, CTX.clip_plane[0] , 0., 0., 0., 0. }, 
-  { "ClipPlane1"     , GMSH_DOUBLE, CTX.clip_plane[1] , 0., 0., 0., 0. }, 
-  { "ClipPlane2"     , GMSH_DOUBLE, CTX.clip_plane[2] , 0., 0., 0., 0. }, 
-  { "ClipPlane3"     , GMSH_DOUBLE, CTX.clip_plane[3] , 0., 0., 0., 0. }, 
-  { "ClipPlane4"     , GMSH_DOUBLE, CTX.clip_plane[4] , 0., 0., 0., 0. }, 
-  { "ClipPlane5"     , GMSH_DOUBLE, CTX.clip_plane[5] , 0., 0., 0., 0. }, 
-  { "LightPosition0" , GMSH_FLOAT,  CTX.light_position[0]  , 0.5, 0.3, 1.0, 0.0 }, 
-  { "LightPosition1" , GMSH_FLOAT,  CTX.light_position[1]  , 0.5, 0.3, 1.0, 0.0 }, 
-  { "LightPosition2" , GMSH_FLOAT,  CTX.light_position[2]  , 0.5, 0.3, 1.0, 0.0 }, 
-  { "LightPosition3" , GMSH_FLOAT,  CTX.light_position[3]  , 0.5, 0.3, 1.0, 0.0 }, 
-  { "LightPosition4" , GMSH_FLOAT,  CTX.light_position[4]  , 0.5, 0.3, 1.0, 0.0 }, 
-  { "LightPosition5" , GMSH_FLOAT,  CTX.light_position[5]  , 0.5, 0.3, 1.0, 0.0 }, 
-  { NULL ,             GMSH_DOUBLE, NULL, 0., 0., 0., 0. }
-} ;
-
-StringXArray GeometryOptions_Array[] = {
-  { NULL , GMSH_DOUBLE, NULL, 0., 0., 0., 0. }
-} ;
-
-StringXArray MeshOptions_Array[] = {
-  { NULL , GMSH_DOUBLE, NULL, 0., 0., 0., 0. }
-} ;
-
-StringXArray PostProcessingOptions_Array[] = {
-  { NULL , GMSH_DOUBLE, NULL, 0., 0., 0., 0. }
-} ;
-
-StringXArray PrintOptions_Array[] = {
-  { NULL , GMSH_DOUBLE, NULL, 0., 0., 0., 0. }
-} ;
-
 // COLORS
 
 StringXColor GeneralOptions_Color[] = {
diff --git a/Common/Views.cpp b/Common/Views.cpp
index 66398acb256e3516011e68fc0a6ca4a227d044bd..5ce0161bd2fbb522bcd1eea22c3c50126aebe662 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-/* $Id: Views.cpp,v 1.15 2000-12-08 10:56:36 geuzaine Exp $ */
+/* $Id: Views.cpp,v 1.16 2000-12-11 22:09:42 geuzaine Exp $ */
 
 #include "Gmsh.h"
 #include "Views.h"
@@ -340,18 +340,11 @@ char *Get_StringViewOption(int num, char *str, int *type){
   }
   v = (Post_View*)List_Pointer(Post_ViewList, num);
 
-  if(!strcmp(str, "Format")){
-    return v->Format ;
-  }
-  else if(!strcmp(str, "FileName")){
-    return v->FileName ;
-  }
-  else if(!strcmp(str, "Name")){
-    return v->Name ;
-  }
-  else{
-    return NULL ;
-  }
+  if(!strcmp(str, "Format")) return v->Format ;
+  else if(!strcmp(str, "FileName")) return v->FileName ;
+  else if(!strcmp(str, "Name")) return v->Name ;
+  else return NULL ;
+
 }
 
 void Print_StringViewOptions(int num, FILE *file){
@@ -375,82 +368,31 @@ void *Get_NumberViewOption(int num, char *str, int *type){
   }
   v = (Post_View*)List_Pointer(Post_ViewList, num);
 
-  if(!strcmp(str, "NbTimeStep")){
-    *type = GMSH_INT ;
-    return (void*)&v->NbTimeStep ;
-  }
-  else if(!strcmp(str, "TimeStep")){
-    *type = GMSH_INT ;
-    return (void*)&v->TimeStep ;
-  }
-  else if(!strcmp(str, "Min")){
-    *type = GMSH_DOUBLE ;
-    return (void*)&v->Min ;
-  }
-  else if(!strcmp(str, "Max")){
-    *type = GMSH_DOUBLE ;
-    return (void*)&v->Max ;
-  }
-  else if(!strcmp(str, "CustomMin")){
-    *type = GMSH_DOUBLE ;
-    return (void*)&v->CustomMin ;
-  }
-  else if(!strcmp(str, "CustomMax")){
-    *type = GMSH_DOUBLE ;
-    return (void*)&v->CustomMax ;
-  }
-  else if(!strcmp(str, "ArrowScale")){
-    *type = GMSH_DOUBLE ;
-    return (void*)&v->ArrowScale ;
-  }
-  else if(!strcmp(str, "Visible")){
-    *type = GMSH_INT ;
-    return (void*)&v->Visible ;
-  }
-  else if(!strcmp(str, "IntervalsType")){
-    *type = GMSH_INT ;
-    return (void*)&v->IntervalsType ;
-  }
-  else if(!strcmp(str, "NbIso")){
-    *type = GMSH_INT ;
-    return (void*)&v->NbIso ;
-  }
-  else if(!strcmp(str, "Light")){
-    *type = GMSH_INT ;
-    return (void*)&v->Light ;
-  }
-  else if(!strcmp(str, "ShowElement")){
-    *type = GMSH_INT ;
-    return (void*)&v->ShowElement ;
-  }
-  else if(!strcmp(str, "ShowTime")){
-    *type = GMSH_INT ;
-    return (void*)&v->ShowTime ;
-  }
-  else if(!strcmp(str, "ShowScale")){
-    *type = GMSH_INT ;
-    return (void*)&v->ShowScale ;
-  }
-  else if(!strcmp(str, "TransparentScale")){
-    *type = GMSH_INT ;
-    return (void*)&v->TransparentScale ;
-  }
-  else if(!strcmp(str, "ScaleType")){
-    *type = GMSH_INT ;
-    return (void*)&v->ScaleType ;
-  }
-  else if(!strcmp(str, "RangeType")){
-    *type = GMSH_INT ;
-    return (void*)&v->RangeType ;
-  }
-  else if(!strcmp(str, "ArrowType")){
-    *type = GMSH_INT ;
-    return (void*)&v->ArrowType ;
-  }
-  else if(!strcmp(str, "ArrowLocation")){
-    *type = GMSH_INT ;
-    return (void*)&v->ArrowLocation ;
-  }
+  if(!strcmp(str, "NbTimeStep")) { *type = GMSH_INT; return (void*)&v->NbTimeStep; }
+  else if(!strcmp(str, "TimeStep")) { *type = GMSH_INT; return (void*)&v->TimeStep; }
+  else if(!strcmp(str, "Min")) { *type = GMSH_DOUBLE; return (void*)&v->Min ; }
+  else if(!strcmp(str, "Max")) { *type = GMSH_DOUBLE ; return (void*)&v->Max ; }
+  else if(!strcmp(str, "CustomMin")) { *type = GMSH_DOUBLE ; return (void*)&v->CustomMin ; }
+  else if(!strcmp(str, "CustomMax")) { *type = GMSH_DOUBLE ; return (void*)&v->CustomMax ; }
+  else if(!strcmp(str, "Offset0")) { *type = GMSH_DOUBLE ; return (void*)&v->Offset[0] ; }
+  else if(!strcmp(str, "Offset1")) { *type = GMSH_DOUBLE ; return (void*)&v->Offset[1] ; }
+  else if(!strcmp(str, "Offset2")) { *type = GMSH_DOUBLE ; return (void*)&v->Offset[2] ; }
+  else if(!strcmp(str, "Raise0")) { *type = GMSH_DOUBLE ; return (void*)&v->Raise[0] ; }
+  else if(!strcmp(str, "Raise1")) { *type = GMSH_DOUBLE ; return (void*)&v->Raise[1] ; }
+  else if(!strcmp(str, "Raise2")) { *type = GMSH_DOUBLE ; return (void*)&v->Raise[2] ; }
+  else if(!strcmp(str, "ArrowScale")) { *type = GMSH_DOUBLE ; return (void*)&v->ArrowScale ; }
+  else if(!strcmp(str, "Visible")) { *type = GMSH_INT ; return (void*)&v->Visible ; }
+  else if(!strcmp(str, "IntervalsType")) { *type = GMSH_INT ; return (void*)&v->IntervalsType ; }
+  else if(!strcmp(str, "NbIso")) { *type = GMSH_INT ; return (void*)&v->NbIso ; }
+  else if(!strcmp(str, "Light")) { *type = GMSH_INT ; return (void*)&v->Light ; }
+  else if(!strcmp(str, "ShowElement")) { *type = GMSH_INT ; return (void*)&v->ShowElement ; }
+  else if(!strcmp(str, "ShowTime")) { *type = GMSH_INT ; return (void*)&v->ShowTime ; }
+  else if(!strcmp(str, "ShowScale")) { *type = GMSH_INT ; return (void*)&v->ShowScale ; }
+  else if(!strcmp(str, "TransparentScale")) { *type = GMSH_INT ; return (void*)&v->TransparentScale ; }
+  else if(!strcmp(str, "ScaleType")) { *type = GMSH_INT ; return (void*)&v->ScaleType ; }
+  else if(!strcmp(str, "RangeType")) { *type = GMSH_INT ; return (void*)&v->RangeType ; }
+  else if(!strcmp(str, "ArrowType")) { *type = GMSH_INT ; return (void*)&v->ArrowType ; }
+  else if(!strcmp(str, "ArrowLocation")) { *type = GMSH_INT ; return (void*)&v->ArrowLocation ; }
   else{
     return NULL ;
   }
@@ -482,28 +424,16 @@ void Print_NumberViewOptions(int num, FILE *file){
   fprintf(file, "PostProcessing.View[%d].RangeType = %d;\n", num, v->RangeType);
   fprintf(file, "PostProcessing.View[%d].ArrowType = %d;\n", num, v->ArrowType);
   fprintf(file, "PostProcessing.View[%d].ArrowLocation = %d;\n", num, v->ArrowLocation);
-}
-
-void *Get_ArrayViewOption(int num, char *str, int *type){
-  Post_View *v;
-
-  if(num < 0 || num >= List_Nbr(Post_ViewList)){
-    *type = -1 ;
-    return NULL ;
-  }
-  v = (Post_View*)List_Pointer(Post_ViewList, num);
+  fprintf(file, "PostProcessing.View[%d].Offset0 = %g;\n", num, v->Offset[0]);
+  fprintf(file, "PostProcessing.View[%d].Offset1 = %g;\n", num, v->Offset[1]);
+  fprintf(file, "PostProcessing.View[%d].Offset2 = %g;\n", num, v->Offset[2]);
+  fprintf(file, "PostProcessing.View[%d].Raise0 = %g;\n", num, v->Raise[0]);
+  fprintf(file, "PostProcessing.View[%d].Raise1 = %g;\n", num, v->Raise[1]);
+  fprintf(file, "PostProcessing.View[%d].Raise2 = %g;\n", num, v->Raise[2]);
+  fprintf(file, "PostProcessing.View[%d].Color = { ", num);
+  ColorTable_Print(&v->CT, file);
+  fprintf(file, " };\n");
 
-  if(!strcmp(str, "Offset")){
-    *type = GMSH_DOUBLE ;
-    return (void*)v->Offset ;
-  }
-  else if(!strcmp(str, "Raise")){
-    *type = GMSH_DOUBLE ;
-    return (void*)v->Raise ;
-  }
-  else{
-    return NULL ;
-  }
 }
 
 ColorTable *Get_ColorTableViewOption(int num){
@@ -515,25 +445,6 @@ ColorTable *Get_ColorTableViewOption(int num){
   return &v->CT ;
 }
 
-void Print_ArrayViewOptions(int num, FILE *file){
-  Post_View *v;
-
-  if(num < 0 || num >= List_Nbr(Post_ViewList))
-    return ;
-  v = (Post_View*)List_Pointer(Post_ViewList, num);
-
-  fprintf(file, "PostProcessing.View[%d].Offset = {%g,%g,%g};\n", 
-	  num, v->Offset[0], v->Offset[1], v->Offset[2]);
-  fprintf(file, "PostProcessing.View[%d].Raise = {%g,%g,%g};\n", 
-	  num, v->Raise[0], v->Raise[1], v->Raise[2]);
-
-  fprintf(file, "PostProcessing.View[%d].Color = { ", num);
-  ColorTable_Print(&v->CT, file);
-  fprintf(file, " };\n");
-}
-
-
-
 /* ------------------------------------------------------------------------ */
 /*  R e a d _ V i e w                                                       */
 /* ------------------------------------------------------------------------ */
diff --git a/Makefile b/Makefile
index 0d1614bfd4413bc1824514a4b9a19b045623d9d7..e6a4a085b684bd9b828a2fbe677b6ab7a5698229 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,9 @@
-# $Id: Makefile,v 1.20 2000-12-11 08:54:04 geuzaine Exp $
+# $Id: Makefile,v 1.21 2000-12-11 22:09:42 geuzaine Exp $
 # ----------------------------------------------------------------------
 #  Makefile for Gmsh  
 # ----------------------------------------------------------------------
 
-    GMSH_RELEASE = 0.995
+    GMSH_RELEASE = 0.996
 
             MAKE = make
               CC = g++
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index acf6e194f56e98cbecc1b64989873bdc45f530fd..01eee9eb06d50583334bb224ae86e178944566c5 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -166,7 +166,7 @@
 #define	UNARYPREC	416
 
 #line 1 "Gmsh.y"
- /* $Id: Gmsh.tab.cpp,v 1.45 2000-12-11 19:39:14 geuzaine Exp $ */
+ /* $Id: Gmsh.tab.cpp,v 1.46 2000-12-11 22:09:42 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -216,12 +216,11 @@ static ExtrudeParams  extr;
 static List_T         *ListOfDouble_L,*ListOfDouble2_L;
 static List_T         *ListOfListOfDouble_L, *ListOfColor_L=NULL;
 static char           *str;
-static void           *pNumOpt, *pArrOpt;
+static void           *pNumOpt;
 static char          **pStrOpt, *pStrViewOpt;
 static unsigned int   *pColOpt;
 static StringXString  *pStrCat;
 static StringXNumber  *pNumCat;
-static StringXArray   *pArrCat;
 static StringXColor   *pColCat;
 
 void yyerror (char *s);
@@ -229,7 +228,7 @@ void vyyerror (char *fmt, ...);
 void skip_until (char *until);
 
 
-#line 65 "Gmsh.y"
+#line 64 "Gmsh.y"
 typedef union {
   char    *c;
   int      i;
@@ -249,11 +248,11 @@ typedef union {
 
 
 
-#define	YYFINAL		1567
+#define	YYFINAL		1533
 #define	YYFLAG		-32768
 #define	YYNTBASE	181
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 416 ? yytranslate[x] : 259)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 416 ? yytranslate[x] : 260)
 
 static const short yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -302,318 +301,309 @@ static const short yytranslate[] = {     0,
 
 #if YYDEBUG != 0
 static const short yyprhs[] = {     0,
-     0,     2,     4,     6,     8,    30,    32,    33,    36,    38,
-    40,    42,    45,    48,    51,    54,    57,    60,    68,    74,
+     0,     2,     4,     6,     9,    11,    33,    35,    36,    39,
+    41,    43,    45,    48,    51,    54,    57,    60,    68,    74,
     92,   102,   126,   158,   174,   186,   198,   214,   224,   238,
    248,   260,   274,   284,   294,   306,   316,   328,   338,   350,
    364,   378,   390,   404,   422,   432,   444,   456,   470,   482,
    492,   493,   496,   498,   500,   502,   504,   506,   508,   510,
-   512,   514,   516,   518,   520,   523,   529,   537,   544,   553,
+   512,   514,   516,   518,   520,   526,   534,   541,   550,   551,
    554,   557,   560,   563,   566,   569,   572,   575,   578,   581,
-   584,   587,   590,   592,   596,   597,   611,   613,   617,   618,
-   632,   634,   638,   639,   653,   655,   659,   660,   680,   682,
-   686,   687,   707,   709,   713,   714,   734,   736,   740,   741,
-   767,   769,   773,   774,   800,   802,   806,   807,   833,   835,
-   839,   840,   872,   874,   878,   879,   911,   913,   917,   918,
-   950,   955,   963,   967,   974,   978,   985,   990,   998,  1003,
-  1011,  1016,  1024,  1029,  1037,  1044,  1056,  1063,  1075,  1082,
-  1094,  1101,  1113,  1120,  1132,  1139,  1151,  1157,  1169,  1175,
-  1187,  1194,  1206,  1213,  1225,  1232,  1244,  1253,  1265,  1273,
-  1282,  1295,  1302,  1308,  1316,  1324,  1337,  1345,  1355,  1373,
-  1381,  1390,  1399,  1407,  1419,  1425,  1434,  1444,  1453,  1476,
-  1497,  1506,  1515,  1521,  1530,  1538,  1547,  1553,  1565,  1571,
-  1581,  1583,  1585,  1587,  1588,  1591,  1596,  1601,  1605,  1609,
-  1612,  1615,  1622,  1631,  1640,  1651,  1653,  1655,  1659,  1662,
-  1667,  1669,  1678,  1691,  1700,  1713,  1722,  1735,  1747,  1763,
-  1765,  1768,  1778,  1781,  1788,  1798,  1808,  1817,  1826,  1835,
-  1842,  1847,  1850,  1852,  1854,  1856,  1858,  1860,  1862,  1866,
-  1869,  1872,  1875,  1879,  1883,  1887,  1891,  1895,  1899,  1903,
-  1907,  1911,  1915,  1919,  1923,  1927,  1931,  1937,  1942,  1947,
-  1952,  1957,  1962,  1967,  1972,  1977,  1982,  1987,  1994,  1999,
-  2004,  2009,  2014,  2019,  2024,  2031,  2038,  2045,  2050,  2052,
-  2054,  2056,  2061,  2064,  2070,  2073,  2079,  2083,  2092,  2097,
-  2107,  2112,  2122,  2126,  2132,  2134,  2137,  2140,  2144,  2148,
-  2160,  2170,  2178,  2186,  2190,  2199,  2200,  2204,  2206,  2210,
-  2211,  2215,  2219,  2221,  2225,  2226,  2228,  2232,  2236,  2238,
-  2240,  2244,  2248,  2252,  2258,  2268,  2276,  2282,  2284,  2290,
-  2294,  2303,  2305,  2309,  2311,  2316
+   584,   587,   589,   593,   594,   608,   610,   614,   615,   629,
+   631,   635,   636,   650,   652,   656,   657,   677,   679,   683,
+   684,   704,   706,   710,   711,   731,   733,   737,   738,   764,
+   766,   770,   771,   797,   799,   803,   804,   830,   832,   836,
+   837,   869,   871,   875,   876,   908,   910,   914,   915,   947,
+   952,   960,   964,   971,   975,   982,   987,   995,  1000,  1008,
+  1013,  1021,  1026,  1034,  1041,  1053,  1060,  1072,  1079,  1091,
+  1098,  1110,  1117,  1129,  1136,  1148,  1154,  1166,  1172,  1184,
+  1193,  1205,  1213,  1222,  1235,  1242,  1248,  1256,  1264,  1277,
+  1285,  1295,  1313,  1321,  1330,  1339,  1347,  1359,  1365,  1374,
+  1387,  1396,  1419,  1440,  1449,  1458,  1464,  1473,  1481,  1490,
+  1496,  1508,  1514,  1524,  1526,  1528,  1530,  1531,  1534,  1539,
+  1544,  1548,  1552,  1555,  1558,  1565,  1574,  1583,  1594,  1596,
+  1598,  1602,  1605,  1610,  1612,  1621,  1634,  1643,  1656,  1665,
+  1678,  1690,  1706,  1708,  1711,  1721,  1724,  1731,  1741,  1751,
+  1760,  1769,  1778,  1785,  1790,  1793,  1795,  1798,  1800,  1802,
+  1804,  1806,  1808,  1810,  1814,  1817,  1820,  1823,  1827,  1831,
+  1835,  1839,  1843,  1847,  1851,  1855,  1859,  1863,  1867,  1871,
+  1875,  1879,  1885,  1890,  1895,  1900,  1905,  1910,  1915,  1920,
+  1925,  1930,  1935,  1942,  1947,  1952,  1957,  1962,  1967,  1972,
+  1979,  1986,  1993,  1998,  2000,  2002,  2004,  2009,  2012,  2018,
+  2021,  2027,  2031,  2040,  2045,  2055,  2060,  2070,  2074,  2080,
+  2082,  2085,  2088,  2092,  2096,  2108,  2118,  2126,  2134,  2135,
+  2139,  2141,  2145,  2146,  2150,  2154,  2156,  2160,  2161,  2163,
+  2167,  2171,  2173,  2175,  2179,  2183,  2187,  2193,  2203,  2211,
+  2217,  2219,  2225,  2229,  2238,  2240,  2244,  2246,  2251
 };
 
 static const short yyrhs[] = {   183,
-     0,   182,     0,   188,     0,   139,     0,   142,   143,   244,
-   244,   244,   144,   145,   141,   244,   244,   244,   141,   244,
-   244,   244,   141,   244,   244,   244,   146,   147,     0,   140,
-     0,     0,   183,   184,     0,   185,     0,   187,     0,   186,
-     0,     1,     6,     0,   113,     6,     0,   114,     6,     0,
+     0,   182,     0,   188,     0,     1,     6,     0,   139,     0,
+   142,   143,   243,   243,   243,   144,   145,   141,   243,   243,
+   243,   141,   243,   243,   243,   141,   243,   243,   243,   146,
+   147,     0,   140,     0,     0,   183,   184,     0,   185,     0,
+   187,     0,   186,     0,   113,     6,     0,   114,     6,     0,
    116,     6,     0,   115,     6,     0,   117,     6,     0,   118,
-   173,   249,   178,     5,   174,     6,     0,   119,   173,   249,
-   174,     6,     0,   120,   173,     5,   178,     5,   178,   249,
-   178,   249,   178,     5,   178,     5,   178,     5,   174,     6,
-     0,     3,     7,    97,   173,     5,   178,   247,   174,     6,
-     0,     3,     7,    96,   173,     5,   178,   244,   178,   253,
-   178,   243,   178,   243,   178,   243,   178,   253,   178,   253,
-   178,   243,   174,     6,     0,     3,     7,    95,   173,     5,
-   178,   244,   178,   244,   178,   251,   178,   243,   178,   243,
-   178,   243,   178,   243,   178,   253,   178,   253,   178,   253,
-   178,   253,   178,   243,   174,     6,     0,     3,     7,   103,
-   173,     5,   178,     3,   178,     3,   178,     3,   178,   243,
+   173,   250,   178,     5,   174,     6,     0,   119,   173,   250,
+   174,     6,     0,   120,   173,     5,   178,     5,   178,   250,
+   178,   250,   178,     5,   178,     5,   178,     5,   174,     6,
+     0,     3,     7,    97,   173,     5,   178,   248,   174,     6,
+     0,     3,     7,    96,   173,     5,   178,   245,   178,   254,
+   178,   244,   178,   244,   178,   244,   178,   254,   178,   254,
+   178,   244,   174,     6,     0,     3,     7,    95,   173,     5,
+   178,   245,   178,   245,   178,   252,   178,   244,   178,   244,
+   178,   244,   178,   244,   178,   254,   178,   254,   178,   254,
+   178,   254,   178,   244,   174,     6,     0,     3,     7,   103,
+   173,     5,   178,     3,   178,     3,   178,     3,   178,   244,
    174,     6,     0,     3,     7,   107,   173,     5,   178,     3,
-   178,   243,   174,     6,     0,     3,     7,   124,   173,     5,
-   178,     3,   178,   243,   174,     6,     0,     3,     7,   105,
-   173,     5,   178,   164,   178,   164,   178,   244,   178,   243,
-   174,     6,     0,     3,     7,   108,   173,     5,   178,   253,
-   174,     6,     0,     3,     7,   109,   173,     5,   178,   253,
-   178,     3,   178,   243,   174,     6,     0,     3,     7,   104,
+   178,   244,   174,     6,     0,     3,     7,   124,   173,     5,
+   178,     3,   178,   244,   174,     6,     0,     3,     7,   105,
+   173,     5,   178,   164,   178,   164,   178,   245,   178,   244,
+   174,     6,     0,     3,     7,   108,   173,     5,   178,   254,
+   174,     6,     0,     3,     7,   109,   173,     5,   178,   254,
+   178,     3,   178,   244,   174,     6,     0,     3,     7,   104,
    173,     5,   178,     3,   174,     6,     0,     3,     7,   110,
-   173,     5,   178,     3,   178,   244,   174,     6,     0,     3,
+   173,     5,   178,     3,   178,   245,   174,     6,     0,     3,
      7,   112,   173,     5,   178,     3,   178,     3,   178,     3,
-   174,     6,     0,     3,     7,   111,   173,     5,   178,   247,
+   174,     6,     0,     3,     7,   111,   173,     5,   178,   248,
    174,     6,     0,     3,     7,   106,   173,     5,   178,     3,
    174,     6,     0,     3,     7,    37,   173,     5,   178,     3,
    178,     3,   174,     6,     0,     3,     7,   122,   173,     5,
-   178,   253,   174,     6,     0,     3,     7,   123,   173,     5,
-   178,   253,   178,     3,   174,     6,     0,     3,     7,   121,
+   178,   254,   174,     6,     0,     3,     7,   123,   173,     5,
+   178,   254,   178,     3,   174,     6,     0,     3,     7,   121,
    173,     5,   178,     3,   174,     6,     0,     3,     7,   125,
-   173,     5,   178,     3,   178,   244,   174,     6,     0,     3,
-     7,   126,   173,     5,   178,     3,   178,   244,   178,   244,
+   173,     5,   178,     3,   178,   245,   174,     6,     0,     3,
+     7,   126,   173,     5,   178,     3,   178,   245,   178,   245,
    174,     6,     0,     3,     7,   133,   173,     5,   178,     3,
-   178,   244,   178,   244,   174,     6,     0,     3,     7,   127,
-   173,     5,   178,     3,   178,   244,   174,     6,     0,     3,
-     7,   137,   173,     5,   178,     3,   178,   244,   178,   244,
+   178,   245,   178,   245,   174,     6,     0,     3,     7,   127,
+   173,     5,   178,     3,   178,   245,   174,     6,     0,     3,
+     7,   137,   173,     5,   178,     3,   178,   245,   178,   245,
    174,     6,     0,     3,     7,   128,   173,     5,   178,     3,
-   178,   253,   178,   253,   178,   243,   178,   243,   174,     6,
-     0,     3,     7,   129,   173,     5,   178,   253,   174,     6,
-     0,     3,     7,   130,   173,   131,   178,   243,   178,     3,
-   174,     6,     0,     3,     7,   132,   173,     5,   178,   253,
-   178,   243,   174,     6,     0,     3,     7,   134,   173,     5,
+   178,   254,   178,   254,   178,   244,   178,   244,   174,     6,
+     0,     3,     7,   129,   173,     5,   178,   254,   174,     6,
+     0,     3,     7,   130,   173,   131,   178,   244,   178,     3,
+   174,     6,     0,     3,     7,   132,   173,     5,   178,   254,
+   178,   244,   174,     6,     0,     3,     7,   134,   173,     5,
    178,     5,   178,     3,   178,     3,   174,     6,     0,     3,
      7,   135,   173,     5,   178,     5,   178,     3,   174,     6,
      0,     3,     7,   136,   173,     3,   178,     3,   174,     6,
      0,     0,   188,   189,     0,   191,     0,   190,     0,   229,
      0,   230,     0,   231,     0,   234,     0,   235,     0,   238,
-     0,   241,     0,   242,     0,   237,     0,   236,     0,     1,
-     6,     0,    31,   173,     5,   174,     6,     0,    31,   173,
-     5,   178,   254,   174,     6,     0,    63,     5,   179,   192,
-   180,     6,     0,    63,     5,     4,   247,   179,   192,   180,
-     6,     0,     0,   192,   194,     0,   192,   197,     0,   192,
-   200,     0,   192,   203,     0,   192,   206,     0,   192,   209,
-     0,   192,   212,     0,   192,   215,     0,   192,   218,     0,
-   192,   221,     0,   192,   224,     0,   192,   227,     0,   244,
-     0,   193,   178,   244,     0,     0,    75,   173,   244,   178,
-   244,   178,   244,   174,   195,   179,   193,   180,     6,     0,
-   244,     0,   196,   178,   244,     0,     0,    76,   173,   244,
-   178,   244,   178,   244,   174,   198,   179,   196,   180,     6,
-     0,   244,     0,   199,   178,   244,     0,     0,    77,   173,
-   244,   178,   244,   178,   244,   174,   201,   179,   199,   180,
-     6,     0,   244,     0,   202,   178,   244,     0,     0,    72,
-   173,   244,   178,   244,   178,   244,   178,   244,   178,   244,
-   178,   244,   174,   204,   179,   202,   180,     6,     0,   244,
-     0,   205,   178,   244,     0,     0,    73,   173,   244,   178,
-   244,   178,   244,   178,   244,   178,   244,   178,   244,   174,
-   207,   179,   205,   180,     6,     0,   244,     0,   208,   178,
-   244,     0,     0,    74,   173,   244,   178,   244,   178,   244,
-   178,   244,   178,   244,   178,   244,   174,   210,   179,   208,
-   180,     6,     0,   244,     0,   211,   178,   244,     0,     0,
-    69,   173,   244,   178,   244,   178,   244,   178,   244,   178,
-   244,   178,   244,   178,   244,   178,   244,   178,   244,   174,
-   213,   179,   211,   180,     6,     0,   244,     0,   214,   178,
-   244,     0,     0,    70,   173,   244,   178,   244,   178,   244,
-   178,   244,   178,   244,   178,   244,   178,   244,   178,   244,
-   178,   244,   174,   216,   179,   214,   180,     6,     0,   244,
-     0,   217,   178,   244,     0,     0,    71,   173,   244,   178,
-   244,   178,   244,   178,   244,   178,   244,   178,   244,   178,
-   244,   178,   244,   178,   244,   174,   219,   179,   217,   180,
-     6,     0,   244,     0,   220,   178,   244,     0,     0,    66,
-   173,   244,   178,   244,   178,   244,   178,   244,   178,   244,
-   178,   244,   178,   244,   178,   244,   178,   244,   178,   244,
-   178,   244,   178,   244,   174,   222,   179,   220,   180,     6,
-     0,   244,     0,   223,   178,   244,     0,     0,    67,   173,
-   244,   178,   244,   178,   244,   178,   244,   178,   244,   178,
-   244,   178,   244,   178,   244,   178,   244,   178,   244,   178,
-   244,   178,   244,   174,   225,   179,   223,   180,     6,     0,
-   244,     0,   226,   178,   244,     0,     0,    68,   173,   244,
-   178,   244,   178,   244,   178,   244,   178,   244,   178,   244,
-   178,   244,   178,   244,   178,   244,   178,   244,   178,   244,
-   178,   244,   174,   228,   179,   226,   180,     6,     0,     4,
-     7,   244,     6,     0,     4,   175,   244,   176,     7,   244,
-     6,     0,     4,   169,     6,     0,     4,   175,   244,   176,
-   169,     6,     0,     4,   170,     6,     0,     4,   175,   244,
-   176,   170,     6,     0,     4,   148,   244,     6,     0,     4,
-   175,   244,   176,   148,   244,     6,     0,     4,   149,   244,
-     6,     0,     4,   175,   244,   176,   149,   244,     6,     0,
-     4,   150,   244,     6,     0,     4,   175,   244,   176,   150,
-   244,     6,     0,     4,   151,   244,     6,     0,     4,   175,
-   244,   176,   151,   244,     6,     0,     4,   177,     4,     7,
-     5,     6,     0,     4,   177,    63,   175,   244,   176,   177,
-     4,     7,     5,     6,     0,     4,   177,     4,     7,   244,
-     6,     0,     4,   177,    63,   175,   244,   176,   177,     4,
-     7,   244,     6,     0,     4,   177,     4,   148,   244,     6,
-     0,     4,   177,    63,   175,   244,   176,   177,     4,   148,
-   244,     6,     0,     4,   177,     4,   149,   244,     6,     0,
-     4,   177,    63,   175,   244,   176,   177,     4,   149,   244,
-     6,     0,     4,   177,     4,   150,   244,     6,     0,     4,
-   177,    63,   175,   244,   176,   177,     4,   150,   244,     6,
-     0,     4,   177,     4,   151,   244,     6,     0,     4,   177,
-    63,   175,   244,   176,   177,     4,   151,   244,     6,     0,
-     4,   177,     4,   169,     6,     0,     4,   177,    63,   175,
-   244,   176,   177,     4,   169,   244,     6,     0,     4,   177,
-     4,   170,     6,     0,     4,   177,    63,   175,   244,   176,
-   177,     4,   170,   244,     6,     0,     4,   177,     4,     7,
-   247,     6,     0,     4,   177,    63,   175,   244,   176,   177,
-     4,     7,   247,     6,     0,     4,   177,     4,   148,   247,
-     6,     0,     4,   177,    63,   175,   244,   176,   177,     4,
-   148,   247,     6,     0,     4,   177,     4,   149,   247,     6,
-     0,     4,   177,    63,   175,   244,   176,   177,     4,   149,
-   247,     6,     0,     4,   177,    84,   177,     4,     7,   255,
-     6,     0,     4,   177,    63,   175,   244,   176,   177,    84,
-     7,   256,     6,     0,    34,   173,   244,   174,     7,   247,
-     6,     0,    49,    34,   173,   244,   174,     7,   253,     6,
-     0,    64,    34,   253,     7,   179,   244,   178,   244,   178,
-   244,   180,     6,     0,    41,    42,   253,     7,   244,     6,
-     0,    34,   179,   244,   180,     6,     0,    37,   173,   244,
-   174,     7,   253,     6,     0,    39,   173,   244,   174,     7,
-   253,     6,     0,    64,    37,   253,     7,   179,   244,   178,
-   244,   178,   244,   180,     6,     0,    35,   173,   244,   174,
-     7,   253,     6,     0,    35,   173,   244,   174,     7,   253,
-    45,   247,     6,     0,    43,   173,   244,   174,     7,   179,
-   244,   178,   244,   178,     5,   178,     5,   178,     5,   180,
-     6,     0,    36,   173,   244,   174,     7,   253,     6,     0,
-    49,    37,   173,   244,   174,     7,   253,     6,     0,    37,
-    59,   173,   244,   174,     7,   253,     6,     0,    78,   173,
-   244,   174,     7,   253,     6,     0,    79,   173,   244,   174,
-     7,   253,    83,   253,    80,   244,     6,     0,    37,   179,
-   244,   180,     6,     0,    45,    38,   173,   244,   174,     7,
-   253,     6,     0,   138,    38,   173,   244,   174,     7,   244,
-   253,     6,     0,    46,    38,   173,   244,   174,     7,   253,
-     6,     0,    79,    38,    81,    82,   173,   244,   174,     7,
-   251,    83,   179,   253,   178,   253,   180,    80,   179,   244,
-   178,   244,   180,     6,     0,    79,    38,   173,   244,   174,
-     7,   251,    83,   179,   253,   178,   253,   180,    80,   179,
-   244,   178,   244,   180,     6,     0,    49,    38,   173,   244,
-   174,     7,   253,     6,     0,    38,    59,   173,   244,   174,
-     7,   253,     6,     0,    38,   179,   244,   180,     6,     0,
-    48,    40,   173,   244,   174,     7,   253,     6,     0,    40,
-   173,   244,   174,     7,   253,     6,     0,    49,    40,   173,
-   244,   174,     7,   253,     6,     0,    54,   247,   179,   232,
-   180,     0,    53,   179,   247,   178,   247,   178,   244,   180,
-   179,   232,   180,     0,    55,   247,   179,   232,   180,     0,
-    56,   179,   247,   178,   244,   180,   179,   232,   180,     0,
-   234,     0,   233,     0,   231,     0,     0,   233,   230,     0,
-    58,   179,   233,   180,     0,    61,   179,   233,   180,     0,
-     4,   258,     6,     0,     4,   244,     6,     0,    90,     6,
-     0,    33,     6,     0,    85,   173,   244,     8,   244,   174,
-     0,    85,   173,   244,     8,   244,     8,   244,   174,     0,
-    85,     4,    86,   179,   244,     8,   244,   180,     0,    85,
-     4,    86,   179,   244,     8,   244,     8,   244,   180,     0,
-    87,     0,    92,     0,    93,     4,     6,     0,    94,     4,
-     0,    88,   173,   244,   174,     0,    89,     0,    57,    34,
-   179,   244,   178,   247,   180,     6,     0,    57,    34,   179,
-   244,   178,   247,   178,   247,   178,   244,   180,     6,     0,
-    57,    37,   179,   244,   178,   247,   180,     6,     0,    57,
-    37,   179,   244,   178,   247,   178,   247,   178,   244,   180,
-     6,     0,    57,    38,   179,   244,   178,   247,   180,     6,
-     0,    57,    38,   179,   244,   178,   247,   178,   247,   178,
-   244,   180,     6,     0,    57,    38,   179,   244,   178,   247,
-   180,   179,   239,   180,     6,     0,    57,    38,   179,   244,
-   178,   247,   178,   247,   178,   244,   180,   179,   239,   180,
-     6,     0,   240,     0,   239,   240,     0,    65,   179,   253,
-   178,   253,   178,   253,   180,     6,     0,    60,     6,     0,
-    47,    37,   253,     7,   244,     6,     0,    47,    37,   253,
-     7,   244,    50,    52,   244,     6,     0,    47,    37,   253,
-     7,   244,    50,    51,   244,     6,     0,    47,    38,   179,
-   244,   180,     7,   253,     6,     0,    44,    38,   179,   244,
-   180,     7,   253,     6,     0,    47,    40,   179,   244,   180,
-     7,   253,     6,     0,    60,    38,   253,     7,   244,     6,
-     0,    60,    38,   253,     6,     0,    62,     6,     0,    98,
-     0,    99,     0,   100,     0,   101,     0,   102,     0,   245,
-     0,   173,   244,   174,     0,   163,   244,     0,   162,   244,
-     0,   168,   244,     0,   244,   163,   244,     0,   244,   162,
-   244,     0,   244,   164,   244,     0,   244,   165,   244,     0,
-   244,   166,   244,     0,   244,   172,   244,     0,   244,   158,
-   244,     0,   244,   160,   244,     0,   244,   159,   244,     0,
-   244,   161,   244,     0,   244,   155,   244,     0,   244,   156,
-   244,     0,   244,   154,   244,     0,   244,   153,   244,     0,
-   244,   152,   244,     8,   244,     0,    10,   173,   244,   174,
-     0,    11,   173,   244,   174,     0,    12,   173,   244,   174,
-     0,    13,   173,   244,   174,     0,    14,   173,   244,   174,
-     0,    15,   173,   244,   174,     0,    16,   173,   244,   174,
-     0,    17,   173,   244,   174,     0,    18,   173,   244,   174,
-     0,    20,   173,   244,   174,     0,    21,   173,   244,   178,
-   244,   174,     0,    22,   173,   244,   174,     0,    23,   173,
-   244,   174,     0,    24,   173,   244,   174,     0,    25,   173,
-   244,   174,     0,    26,   173,   244,   174,     0,    27,   173,
-   244,   174,     0,    28,   173,   244,   178,   244,   174,     0,
-    29,   173,   244,   178,   244,   174,     0,    30,   173,   244,
-   178,   244,   174,     0,    19,   173,   244,   174,     0,     3,
-     0,     9,     0,     4,     0,     4,   175,   244,   176,     0,
-     4,   169,     0,     4,   175,   244,   176,   169,     0,     4,
-   170,     0,     4,   175,   244,   176,   170,     0,     4,   177,
-     4,     0,     4,   177,    63,   175,   244,   176,   177,     4,
-     0,     4,   177,     4,   169,     0,     4,   177,    63,   175,
-   244,   176,   177,     4,   169,     0,     4,   177,     4,   170,
-     0,     4,   177,    63,   175,   244,   176,   177,     4,   170,
-     0,   244,     8,   244,     0,   244,     8,   244,     8,   244,
-     0,   248,     0,   163,   247,     0,   162,   247,     0,   247,
-   163,   247,     0,   247,   162,   247,     0,   179,   244,   178,
-   244,   178,   244,   178,   244,   178,   244,   180,     0,   179,
-   244,   178,   244,   178,   244,   178,   244,   180,     0,   179,
-   244,   178,   244,   178,   244,   180,     0,   173,   244,   178,
-   244,   178,   244,   174,     0,     4,   177,     4,     0,     4,
-   177,    63,   175,   244,   176,   177,     4,     0,     0,   173,
-   250,   174,     0,     5,     0,   250,   178,     5,     0,     0,
-   179,   252,   180,     0,   173,   252,   174,     0,   253,     0,
-   252,   178,   253,     0,     0,   244,     0,     4,   175,   176,
-     0,   179,   254,   180,     0,   244,     0,   246,     0,     4,
-   175,   176,     0,   254,   178,   244,     0,   254,   178,   246,
-     0,   254,   178,     4,   175,   176,     0,   179,   244,   178,
-   244,   178,   244,   178,   244,   180,     0,   179,   244,   178,
-   244,   178,   244,   180,     0,   179,     4,   178,   244,   180,
-     0,     4,     0,     4,   177,    84,   177,     4,     0,   179,
-   257,   180,     0,     4,   177,    63,   175,   244,   176,   177,
-    84,     0,   255,     0,   257,   178,   255,     0,     5,     0,
-    32,   173,     5,   174,     0,    32,   173,     5,   178,   254,
-   174,     0
+     0,   241,     0,   242,     0,   237,     0,   236,     0,    31,
+   173,     5,   174,     6,     0,    31,   173,     5,   178,   255,
+   174,     6,     0,    63,     5,   179,   192,   180,     6,     0,
+    63,     5,     4,   248,   179,   192,   180,     6,     0,     0,
+   192,   194,     0,   192,   197,     0,   192,   200,     0,   192,
+   203,     0,   192,   206,     0,   192,   209,     0,   192,   212,
+     0,   192,   215,     0,   192,   218,     0,   192,   221,     0,
+   192,   224,     0,   192,   227,     0,   245,     0,   193,   178,
+   245,     0,     0,    75,   173,   245,   178,   245,   178,   245,
+   174,   195,   179,   193,   180,     6,     0,   245,     0,   196,
+   178,   245,     0,     0,    76,   173,   245,   178,   245,   178,
+   245,   174,   198,   179,   196,   180,     6,     0,   245,     0,
+   199,   178,   245,     0,     0,    77,   173,   245,   178,   245,
+   178,   245,   174,   201,   179,   199,   180,     6,     0,   245,
+     0,   202,   178,   245,     0,     0,    72,   173,   245,   178,
+   245,   178,   245,   178,   245,   178,   245,   178,   245,   174,
+   204,   179,   202,   180,     6,     0,   245,     0,   205,   178,
+   245,     0,     0,    73,   173,   245,   178,   245,   178,   245,
+   178,   245,   178,   245,   178,   245,   174,   207,   179,   205,
+   180,     6,     0,   245,     0,   208,   178,   245,     0,     0,
+    74,   173,   245,   178,   245,   178,   245,   178,   245,   178,
+   245,   178,   245,   174,   210,   179,   208,   180,     6,     0,
+   245,     0,   211,   178,   245,     0,     0,    69,   173,   245,
+   178,   245,   178,   245,   178,   245,   178,   245,   178,   245,
+   178,   245,   178,   245,   178,   245,   174,   213,   179,   211,
+   180,     6,     0,   245,     0,   214,   178,   245,     0,     0,
+    70,   173,   245,   178,   245,   178,   245,   178,   245,   178,
+   245,   178,   245,   178,   245,   178,   245,   178,   245,   174,
+   216,   179,   214,   180,     6,     0,   245,     0,   217,   178,
+   245,     0,     0,    71,   173,   245,   178,   245,   178,   245,
+   178,   245,   178,   245,   178,   245,   178,   245,   178,   245,
+   178,   245,   174,   219,   179,   217,   180,     6,     0,   245,
+     0,   220,   178,   245,     0,     0,    66,   173,   245,   178,
+   245,   178,   245,   178,   245,   178,   245,   178,   245,   178,
+   245,   178,   245,   178,   245,   178,   245,   178,   245,   178,
+   245,   174,   222,   179,   220,   180,     6,     0,   245,     0,
+   223,   178,   245,     0,     0,    67,   173,   245,   178,   245,
+   178,   245,   178,   245,   178,   245,   178,   245,   178,   245,
+   178,   245,   178,   245,   178,   245,   178,   245,   178,   245,
+   174,   225,   179,   223,   180,     6,     0,   245,     0,   226,
+   178,   245,     0,     0,    68,   173,   245,   178,   245,   178,
+   245,   178,   245,   178,   245,   178,   245,   178,   245,   178,
+   245,   178,   245,   178,   245,   178,   245,   178,   245,   174,
+   228,   179,   226,   180,     6,     0,     4,     7,   245,     6,
+     0,     4,   175,   245,   176,     7,   245,     6,     0,     4,
+   169,     6,     0,     4,   175,   245,   176,   169,     6,     0,
+     4,   170,     6,     0,     4,   175,   245,   176,   170,     6,
+     0,     4,   148,   245,     6,     0,     4,   175,   245,   176,
+   148,   245,     6,     0,     4,   149,   245,     6,     0,     4,
+   175,   245,   176,   149,   245,     6,     0,     4,   150,   245,
+     6,     0,     4,   175,   245,   176,   150,   245,     6,     0,
+     4,   151,   245,     6,     0,     4,   175,   245,   176,   151,
+   245,     6,     0,     4,   177,     4,     7,     5,     6,     0,
+     4,   177,    63,   175,   245,   176,   177,     4,     7,     5,
+     6,     0,     4,   177,     4,     7,   245,     6,     0,     4,
+   177,    63,   175,   245,   176,   177,     4,     7,   245,     6,
+     0,     4,   177,     4,   148,   245,     6,     0,     4,   177,
+    63,   175,   245,   176,   177,     4,   148,   245,     6,     0,
+     4,   177,     4,   149,   245,     6,     0,     4,   177,    63,
+   175,   245,   176,   177,     4,   149,   245,     6,     0,     4,
+   177,     4,   150,   245,     6,     0,     4,   177,    63,   175,
+   245,   176,   177,     4,   150,   245,     6,     0,     4,   177,
+     4,   151,   245,     6,     0,     4,   177,    63,   175,   245,
+   176,   177,     4,   151,   245,     6,     0,     4,   177,     4,
+   169,     6,     0,     4,   177,    63,   175,   245,   176,   177,
+     4,   169,   245,     6,     0,     4,   177,     4,   170,     6,
+     0,     4,   177,    63,   175,   245,   176,   177,     4,   170,
+   245,     6,     0,     4,   177,    84,   177,     4,     7,   256,
+     6,     0,     4,   177,    63,   175,   245,   176,   177,    84,
+     7,   257,     6,     0,    34,   173,   245,   174,     7,   248,
+     6,     0,    49,    34,   173,   245,   174,     7,   254,     6,
+     0,    64,    34,   254,     7,   179,   245,   178,   245,   178,
+   245,   180,     6,     0,    41,    42,   254,     7,   245,     6,
+     0,    34,   179,   245,   180,     6,     0,    37,   173,   245,
+   174,     7,   254,     6,     0,    39,   173,   245,   174,     7,
+   254,     6,     0,    64,    37,   254,     7,   179,   245,   178,
+   245,   178,   245,   180,     6,     0,    35,   173,   245,   174,
+     7,   254,     6,     0,    35,   173,   245,   174,     7,   254,
+    45,   248,     6,     0,    43,   173,   245,   174,     7,   179,
+   245,   178,   245,   178,     5,   178,     5,   178,     5,   180,
+     6,     0,    36,   173,   245,   174,     7,   254,     6,     0,
+    49,    37,   173,   245,   174,     7,   254,     6,     0,    37,
+    59,   173,   245,   174,     7,   254,     6,     0,    78,   173,
+   245,   174,     7,   254,     6,     0,    79,   173,   245,   174,
+     7,   254,    83,   254,    80,   245,     6,     0,    37,   179,
+   245,   180,     6,     0,    45,    38,   173,   245,   174,     7,
+   254,     6,     0,   138,    38,   173,   245,   174,     7,   179,
+   245,   178,   254,   180,     6,     0,    46,    38,   173,   245,
+   174,     7,   254,     6,     0,    79,    38,    81,    82,   173,
+   245,   174,     7,   252,    83,   179,   254,   178,   254,   180,
+    80,   179,   245,   178,   245,   180,     6,     0,    79,    38,
+   173,   245,   174,     7,   252,    83,   179,   254,   178,   254,
+   180,    80,   179,   245,   178,   245,   180,     6,     0,    49,
+    38,   173,   245,   174,     7,   254,     6,     0,    38,    59,
+   173,   245,   174,     7,   254,     6,     0,    38,   179,   245,
+   180,     6,     0,    48,    40,   173,   245,   174,     7,   254,
+     6,     0,    40,   173,   245,   174,     7,   254,     6,     0,
+    49,    40,   173,   245,   174,     7,   254,     6,     0,    54,
+   248,   179,   232,   180,     0,    53,   179,   248,   178,   248,
+   178,   245,   180,   179,   232,   180,     0,    55,   248,   179,
+   232,   180,     0,    56,   179,   248,   178,   245,   180,   179,
+   232,   180,     0,   234,     0,   233,     0,   231,     0,     0,
+   233,   230,     0,    58,   179,   233,   180,     0,    61,   179,
+   233,   180,     0,     4,   259,     6,     0,     4,   245,     6,
+     0,    90,     6,     0,    33,     6,     0,    85,   173,   245,
+     8,   245,   174,     0,    85,   173,   245,     8,   245,     8,
+   245,   174,     0,    85,     4,    86,   179,   245,     8,   245,
+   180,     0,    85,     4,    86,   179,   245,     8,   245,     8,
+   245,   180,     0,    87,     0,    92,     0,    93,     4,     6,
+     0,    94,     4,     0,    88,   173,   245,   174,     0,    89,
+     0,    57,    34,   179,   245,   178,   248,   180,     6,     0,
+    57,    34,   179,   245,   178,   248,   178,   248,   178,   245,
+   180,     6,     0,    57,    37,   179,   245,   178,   248,   180,
+     6,     0,    57,    37,   179,   245,   178,   248,   178,   248,
+   178,   245,   180,     6,     0,    57,    38,   179,   245,   178,
+   248,   180,     6,     0,    57,    38,   179,   245,   178,   248,
+   178,   248,   178,   245,   180,     6,     0,    57,    38,   179,
+   245,   178,   248,   180,   179,   239,   180,     6,     0,    57,
+    38,   179,   245,   178,   248,   178,   248,   178,   245,   180,
+   179,   239,   180,     6,     0,   240,     0,   239,   240,     0,
+    65,   179,   254,   178,   254,   178,   254,   180,     6,     0,
+    60,     6,     0,    47,    37,   254,     7,   245,     6,     0,
+    47,    37,   254,     7,   245,    50,    52,   245,     6,     0,
+    47,    37,   254,     7,   245,    50,    51,   245,     6,     0,
+    47,    38,   179,   245,   180,     7,   254,     6,     0,    44,
+    38,   179,   245,   180,     7,   254,     6,     0,    47,    40,
+   179,   245,   180,     7,   254,     6,     0,    60,    38,   254,
+     7,   245,     6,     0,    60,    38,   254,     6,     0,    62,
+     6,     0,     3,     0,   163,     3,     0,    98,     0,    99,
+     0,   100,     0,   101,     0,   102,     0,   246,     0,   173,
+   245,   174,     0,   163,   245,     0,   162,   245,     0,   168,
+   245,     0,   245,   163,   245,     0,   245,   162,   245,     0,
+   245,   164,   245,     0,   245,   165,   245,     0,   245,   166,
+   245,     0,   245,   172,   245,     0,   245,   158,   245,     0,
+   245,   160,   245,     0,   245,   159,   245,     0,   245,   161,
+   245,     0,   245,   155,   245,     0,   245,   156,   245,     0,
+   245,   154,   245,     0,   245,   153,   245,     0,   245,   152,
+   245,     8,   245,     0,    10,   173,   245,   174,     0,    11,
+   173,   245,   174,     0,    12,   173,   245,   174,     0,    13,
+   173,   245,   174,     0,    14,   173,   245,   174,     0,    15,
+   173,   245,   174,     0,    16,   173,   245,   174,     0,    17,
+   173,   245,   174,     0,    18,   173,   245,   174,     0,    20,
+   173,   245,   174,     0,    21,   173,   245,   178,   245,   174,
+     0,    22,   173,   245,   174,     0,    23,   173,   245,   174,
+     0,    24,   173,   245,   174,     0,    25,   173,   245,   174,
+     0,    26,   173,   245,   174,     0,    27,   173,   245,   174,
+     0,    28,   173,   245,   178,   245,   174,     0,    29,   173,
+   245,   178,   245,   174,     0,    30,   173,   245,   178,   245,
+   174,     0,    19,   173,   245,   174,     0,     3,     0,     9,
+     0,     4,     0,     4,   175,   245,   176,     0,     4,   169,
+     0,     4,   175,   245,   176,   169,     0,     4,   170,     0,
+     4,   175,   245,   176,   170,     0,     4,   177,     4,     0,
+     4,   177,    63,   175,   245,   176,   177,     4,     0,     4,
+   177,     4,   169,     0,     4,   177,    63,   175,   245,   176,
+   177,     4,   169,     0,     4,   177,     4,   170,     0,     4,
+   177,    63,   175,   245,   176,   177,     4,   170,     0,   245,
+     8,   245,     0,   245,     8,   245,     8,   245,     0,   249,
+     0,   163,   248,     0,   162,   248,     0,   248,   163,   248,
+     0,   248,   162,   248,     0,   179,   245,   178,   245,   178,
+   245,   178,   245,   178,   245,   180,     0,   179,   245,   178,
+   245,   178,   245,   178,   245,   180,     0,   179,   245,   178,
+   245,   178,   245,   180,     0,   173,   245,   178,   245,   178,
+   245,   174,     0,     0,   173,   251,   174,     0,     5,     0,
+   251,   178,     5,     0,     0,   179,   253,   180,     0,   173,
+   253,   174,     0,   254,     0,   253,   178,   254,     0,     0,
+   245,     0,     4,   175,   176,     0,   179,   255,   180,     0,
+   245,     0,   247,     0,     4,   175,   176,     0,   255,   178,
+   245,     0,   255,   178,   247,     0,   255,   178,     4,   175,
+   176,     0,   179,   245,   178,   245,   178,   245,   178,   245,
+   180,     0,   179,   245,   178,   245,   178,   245,   180,     0,
+   179,     4,   178,   245,   180,     0,     4,     0,     4,   177,
+    84,   177,     4,     0,   179,   258,   180,     0,     4,   177,
+    63,   175,   245,   176,   177,    84,     0,   256,     0,   258,
+   178,   256,     0,     5,     0,    32,   173,     5,   174,     0,
+    32,   173,     5,   178,   255,   174,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   144,   146,   147,   154,   162,   176,   188,   190,   193,   195,
-   196,   197,   200,   206,   211,   212,   213,   216,   220,   223,
-   229,   234,   240,   248,   253,   257,   263,   268,   272,   277,
-   281,   284,   289,   293,   297,   301,   306,   310,   313,   317,
-   321,   325,   329,   333,   337,   340,   344,   347,   351,   354,
-   363,   367,   373,   375,   376,   377,   378,   379,   380,   381,
-   382,   383,   384,   385,   386,   389,   394,   423,   428,   434,
-   439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
-   449,   450,   453,   456,   460,   466,   472,   475,   479,   485,
-   491,   494,   498,   504,   510,   513,   517,   525,   531,   534,
-   538,   546,   552,   555,   559,   567,   573,   576,   580,   592,
-   598,   601,   605,   617,   623,   626,   630,   642,   648,   651,
-   655,   668,   674,   677,   681,   694,   700,   703,   707,   720,
-   732,   748,   760,   769,   781,   789,   801,   809,   821,   829,
-   841,   849,   861,   873,   892,   905,   923,   940,   961,   978,
-   999,  1016,  1037,  1054,  1075,  1096,  1122,  1139,  1160,  1177,
-  1200,  1225,  1254,  1279,  1308,  1333,  1364,  1377,  1402,  1413,
-  1419,  1438,  1449,  1457,  1463,  1469,  1488,  1494,  1510,  1517,
-  1523,  1529,  1535,  1541,  1560,  1572,  1578,  1597,  1618,  1626,
-  1632,  1638,  1644,  1656,  1662,  1668,  1680,  1686,  1691,  1696,
-  1703,  1705,  1706,  1709,  1714,  1725,  1743,  1758,  1830,  1850,
-  1854,  1873,  1889,  1903,  1928,  1953,  1979,  1984,  1989,  1996,
-  2000,  2010,  2016,  2022,  2026,  2030,  2034,  2038,  2043,  2050,
-  2054,  2059,  2077,  2087,  2105,  2122,  2139,  2160,  2180,  2200,
-  2217,  2241,  2254,  2256,  2257,  2258,  2259,  2262,  2264,  2265,
-  2266,  2267,  2268,  2269,  2270,  2271,  2278,  2279,  2280,  2281,
-  2282,  2283,  2284,  2285,  2286,  2287,  2288,  2289,  2290,  2291,
-  2292,  2293,  2294,  2295,  2296,  2297,  2298,  2299,  2300,  2301,
-  2302,  2303,  2304,  2305,  2306,  2307,  2308,  2309,  2314,  2319,
-  2323,  2335,  2353,  2365,  2383,  2395,  2415,  2436,  2460,  2481,
-  2505,  2526,  2551,  2558,  2571,  2578,  2582,  2586,  2590,  2595,
-  2600,  2604,  2608,  2612,  2644,  2681,  2685,  2690,  2694,  2699,
-  2703,  2707,  2713,  2719,  2725,  2729,  2735,  2750,  2757,  2763,
-  2772,  2784,  2788,  2796,  2809,  2814,  2818,  2823,  2828,  2847,
-  2852,  2873,  2882,  2888,  2893,  2897
+   143,   145,   146,   147,   154,   162,   176,   188,   190,   193,
+   195,   196,   199,   205,   210,   211,   212,   215,   219,   222,
+   228,   233,   239,   247,   252,   256,   262,   267,   271,   276,
+   280,   283,   288,   292,   296,   300,   305,   309,   312,   316,
+   320,   324,   328,   332,   336,   339,   343,   346,   350,   353,
+   362,   366,   372,   374,   375,   376,   377,   378,   379,   380,
+   381,   382,   383,   384,   387,   392,   421,   426,   432,   437,
+   438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
+   448,   451,   454,   458,   464,   470,   473,   477,   483,   489,
+   492,   496,   502,   508,   511,   515,   523,   529,   532,   536,
+   544,   550,   553,   557,   565,   571,   574,   578,   590,   596,
+   599,   603,   615,   621,   624,   628,   640,   646,   649,   653,
+   666,   672,   675,   679,   692,   698,   701,   705,   718,   730,
+   746,   758,   767,   779,   787,   799,   807,   819,   827,   839,
+   847,   859,   871,   890,   903,   921,   938,   959,   976,   997,
+  1014,  1035,  1052,  1073,  1094,  1120,  1137,  1158,  1175,  1198,
+  1211,  1236,  1247,  1253,  1272,  1283,  1291,  1297,  1303,  1322,
+  1328,  1344,  1351,  1357,  1363,  1369,  1375,  1394,  1406,  1412,
+  1431,  1452,  1460,  1466,  1472,  1478,  1490,  1496,  1502,  1514,
+  1520,  1525,  1530,  1537,  1539,  1540,  1543,  1548,  1559,  1577,
+  1592,  1664,  1684,  1688,  1707,  1723,  1737,  1762,  1787,  1813,
+  1818,  1823,  1830,  1834,  1844,  1850,  1856,  1860,  1864,  1868,
+  1872,  1877,  1884,  1888,  1893,  1911,  1921,  1939,  1956,  1973,
+  1994,  2014,  2034,  2051,  2075,  2087,  2089,  2092,  2094,  2095,
+  2096,  2097,  2100,  2102,  2103,  2104,  2105,  2106,  2107,  2108,
+  2109,  2116,  2117,  2118,  2119,  2120,  2121,  2122,  2123,  2124,
+  2125,  2126,  2127,  2128,  2129,  2130,  2131,  2132,  2133,  2134,
+  2135,  2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2144,
+  2145,  2146,  2147,  2152,  2157,  2161,  2173,  2191,  2203,  2221,
+  2233,  2253,  2274,  2298,  2319,  2343,  2364,  2389,  2396,  2409,
+  2416,  2420,  2424,  2428,  2433,  2438,  2442,  2446,  2452,  2456,
+  2461,  2465,  2470,  2474,  2478,  2484,  2490,  2496,  2500,  2506,
+  2521,  2528,  2534,  2543,  2555,  2559,  2567,  2580,  2585,  2589,
+  2594,  2599,  2618,  2623,  2644,  2653,  2659,  2664,  2668
 };
 #endif
 
@@ -656,1491 +646,1416 @@ static const char * const yytname[] = {   "$","error","$undefined.","tDOUBLE",
 "ScalarTetrahedron","@10","VectorTetrahedronValues","VectorTetrahedron","@11",
 "TensorTetrahedronValues","TensorTetrahedron","@12","Affectation","Shape","Transform",
 "MultipleShape","ListOfShapes","Duplicata","Delete","Command","Loop","Extrude",
-"ExtrudeParameters","ExtrudeParameter","Transfini","Coherence","BoolExpr","FExpr",
-"FExpr_Single","FExpr_Range","VExpr","VExpr_Single","ListOfStrings","RecursiveListOfStrings",
-"ListOfListOfDouble","RecursiveListOfListOfDouble","ListOfDouble","RecursiveListOfDouble",
-"ColorExpr","ListOfColor","RecursiveListOfColor","StringExpr", NULL
+"ExtrudeParameters","ExtrudeParameter","Transfini","Coherence","SignedDouble",
+"BoolExpr","FExpr","FExpr_Single","FExpr_Range","VExpr","VExpr_Single","ListOfStrings",
+"RecursiveListOfStrings","ListOfListOfDouble","RecursiveListOfListOfDouble",
+"ListOfDouble","RecursiveListOfDouble","ColorExpr","ListOfColor","RecursiveListOfColor",
+"StringExpr", NULL
 };
 #endif
 
 static const short yyr1[] = {     0,
-   181,   181,   181,   182,   182,   182,   183,   183,   184,   184,
+   181,   181,   181,   181,   182,   182,   182,   183,   183,   184,
    184,   184,   185,   185,   185,   185,   185,   186,   186,   186,
    187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
    187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
    187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
    188,   188,   189,   189,   189,   189,   189,   189,   189,   189,
-   189,   189,   189,   189,   189,   190,   190,   191,   191,   192,
+   189,   189,   189,   189,   190,   190,   191,   191,   192,   192,
    192,   192,   192,   192,   192,   192,   192,   192,   192,   192,
-   192,   192,   193,   193,   195,   194,   196,   196,   198,   197,
-   199,   199,   201,   200,   202,   202,   204,   203,   205,   205,
-   207,   206,   208,   208,   210,   209,   211,   211,   213,   212,
-   214,   214,   216,   215,   217,   217,   219,   218,   220,   220,
-   222,   221,   223,   223,   225,   224,   226,   226,   228,   227,
+   192,   193,   193,   195,   194,   196,   196,   198,   197,   199,
+   199,   201,   200,   202,   202,   204,   203,   205,   205,   207,
+   206,   208,   208,   210,   209,   211,   211,   213,   212,   214,
+   214,   216,   215,   217,   217,   219,   218,   220,   220,   222,
+   221,   223,   223,   225,   224,   226,   226,   228,   227,   229,
    229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
    229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
    229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
-   229,   229,   229,   229,   229,   229,   229,   229,   230,   230,
+   229,   230,   230,   230,   230,   230,   230,   230,   230,   230,
    230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
-   230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
-   230,   230,   230,   230,   230,   230,   231,   231,   231,   231,
-   232,   232,   232,   233,   233,   234,   235,   236,   236,   236,
-   236,   237,   237,   237,   237,   237,   237,   237,   237,   237,
-   237,   238,   238,   238,   238,   238,   238,   238,   238,   239,
-   239,   240,   240,   241,   241,   241,   241,   241,   241,   241,
-   241,   242,   243,   243,   243,   243,   243,   244,   244,   244,
-   244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
-   244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
-   244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
-   244,   244,   244,   244,   244,   244,   244,   244,   245,   245,
+   230,   230,   230,   230,   230,   230,   230,   230,   230,   231,
+   231,   231,   231,   232,   232,   232,   233,   233,   234,   235,
+   236,   236,   236,   236,   237,   237,   237,   237,   237,   237,
+   237,   237,   237,   237,   238,   238,   238,   238,   238,   238,
+   238,   238,   239,   239,   240,   240,   241,   241,   241,   241,
+   241,   241,   241,   241,   242,   243,   243,   244,   244,   244,
+   244,   244,   245,   245,   245,   245,   245,   245,   245,   245,
+   245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-   245,   245,   246,   246,   247,   247,   247,   247,   247,   248,
-   248,   248,   248,   248,   248,   249,   249,   250,   250,   251,
-   251,   251,   252,   252,   253,   253,   253,   253,   254,   254,
-   254,   254,   254,   254,   255,   255,   255,   255,   255,   256,
-   256,   257,   257,   258,   258,   258
+   245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
+   245,   245,   245,   246,   246,   246,   246,   246,   246,   246,
+   246,   246,   246,   246,   246,   246,   246,   247,   247,   248,
+   248,   248,   248,   248,   249,   249,   249,   249,   250,   250,
+   251,   251,   252,   252,   252,   253,   253,   254,   254,   254,
+   254,   255,   255,   255,   255,   255,   255,   256,   256,   256,
+   256,   256,   257,   257,   258,   258,   259,   259,   259
 };
 
 static const short yyr2[] = {     0,
-     1,     1,     1,     1,    21,     1,     0,     2,     1,     1,
-     1,     2,     2,     2,     2,     2,     2,     7,     5,    17,
+     1,     1,     1,     2,     1,    21,     1,     0,     2,     1,
+     1,     1,     2,     2,     2,     2,     2,     7,     5,    17,
      9,    23,    31,    15,    11,    11,    15,     9,    13,     9,
     11,    13,     9,     9,    11,     9,    11,     9,    11,    13,
     13,    11,    13,    17,     9,    11,    11,    13,    11,     9,
      0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     2,     5,     7,     6,     8,     0,
+     1,     1,     1,     1,     5,     7,     6,     8,     0,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     1,     3,     0,    13,     1,     3,     0,    13,
-     1,     3,     0,    13,     1,     3,     0,    19,     1,     3,
-     0,    19,     1,     3,     0,    19,     1,     3,     0,    25,
-     1,     3,     0,    25,     1,     3,     0,    25,     1,     3,
-     0,    31,     1,     3,     0,    31,     1,     3,     0,    31,
-     4,     7,     3,     6,     3,     6,     4,     7,     4,     7,
-     4,     7,     4,     7,     6,    11,     6,    11,     6,    11,
-     6,    11,     6,    11,     6,    11,     5,    11,     5,    11,
-     6,    11,     6,    11,     6,    11,     8,    11,     7,     8,
-    12,     6,     5,     7,     7,    12,     7,     9,    17,     7,
-     8,     8,     7,    11,     5,     8,     9,     8,    22,    20,
-     8,     8,     5,     8,     7,     8,     5,    11,     5,     9,
-     1,     1,     1,     0,     2,     4,     4,     3,     3,     2,
-     2,     6,     8,     8,    10,     1,     1,     3,     2,     4,
-     1,     8,    12,     8,    12,     8,    12,    11,    15,     1,
-     2,     9,     2,     6,     9,     9,     8,     8,     8,     6,
-     4,     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,     1,     1,
-     1,     4,     2,     5,     2,     5,     3,     8,     4,     9,
-     4,     9,     3,     5,     1,     2,     2,     3,     3,    11,
-     9,     7,     7,     3,     8,     0,     3,     1,     3,     0,
-     3,     3,     1,     3,     0,     1,     3,     3,     1,     1,
-     3,     3,     3,     5,     9,     7,     5,     1,     5,     3,
-     8,     1,     3,     1,     4,     6
+     2,     1,     3,     0,    13,     1,     3,     0,    13,     1,
+     3,     0,    13,     1,     3,     0,    19,     1,     3,     0,
+    19,     1,     3,     0,    19,     1,     3,     0,    25,     1,
+     3,     0,    25,     1,     3,     0,    25,     1,     3,     0,
+    31,     1,     3,     0,    31,     1,     3,     0,    31,     4,
+     7,     3,     6,     3,     6,     4,     7,     4,     7,     4,
+     7,     4,     7,     6,    11,     6,    11,     6,    11,     6,
+    11,     6,    11,     6,    11,     5,    11,     5,    11,     8,
+    11,     7,     8,    12,     6,     5,     7,     7,    12,     7,
+     9,    17,     7,     8,     8,     7,    11,     5,     8,    12,
+     8,    22,    20,     8,     8,     5,     8,     7,     8,     5,
+    11,     5,     9,     1,     1,     1,     0,     2,     4,     4,
+     3,     3,     2,     2,     6,     8,     8,    10,     1,     1,
+     3,     2,     4,     1,     8,    12,     8,    12,     8,    12,
+    11,    15,     1,     2,     9,     2,     6,     9,     9,     8,
+     8,     8,     6,     4,     2,     1,     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,     1,     1,     1,     4,     2,     5,     2,
+     5,     3,     8,     4,     9,     4,     9,     3,     5,     1,
+     2,     2,     3,     3,    11,     9,     7,     7,     0,     3,
+     1,     3,     0,     3,     3,     1,     3,     0,     1,     3,
+     3,     1,     1,     3,     3,     3,     5,     9,     7,     5,
+     1,     5,     3,     8,     1,     3,     1,     4,     6
 };
 
-static const short yydefact[] = {    51,
-     4,     6,     0,     2,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     8,     9,    11,
-    10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+static const short yydefact[] = {     0,
+     0,     5,     7,     0,     2,     1,     3,     4,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     9,    10,
+    12,    11,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   216,     0,   221,     0,   217,     0,
+     0,     0,     0,     0,   209,     0,   214,     0,   210,     0,
      0,     0,    52,    54,    53,    55,    56,    57,    58,    59,
-    64,    63,    60,    61,    62,   289,   291,   290,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   248,    12,     0,    13,    14,    16,
-    15,    17,   316,   316,     0,    65,   344,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   211,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   325,     0,     0,     0,     0,   325,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   305,     0,     0,     0,     0,     0,   204,   325,
-   204,   242,     0,   325,   325,     0,     0,     0,     0,     0,
-     0,   210,     0,   219,     0,   293,   295,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    64,    63,    60,    61,    62,   236,     0,     0,     0,    13,
+    14,    16,    15,    17,   309,   309,     0,   284,   286,   337,
+     0,   285,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   251,   250,   252,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   243,     0,     0,
+   204,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   318,     0,     0,     0,     0,   318,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   300,     0,     0,     0,     0,     0,   197,   318,   197,
+   235,     0,   318,   318,     0,     0,     0,     0,     0,     0,
+   203,     0,   212,     0,   237,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   133,   135,     0,     0,     0,     0,   209,     0,     0,   208,
+   288,   290,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   291,     0,   326,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   307,   306,     0,     0,     0,     0,   204,   204,     0,     0,
-     0,     0,     0,     0,     0,     0,    70,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   218,     0,     0,   297,
+     0,   246,   245,   247,   132,   134,     0,     0,     0,     0,
+     0,   202,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   201,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   286,     0,   319,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   302,   301,     0,
+     0,     0,     0,   197,   197,     0,     0,     0,     0,     0,
+     0,     0,     0,    69,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   211,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   249,     0,   266,   265,   263,   264,   259,   261,
-   260,   262,   251,   250,   255,   256,   257,   258,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   311,     0,     0,     0,
+     0,     0,   292,     0,   130,     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,     0,     0,   131,     0,   137,   139,   141,   143,
+     0,     0,     0,     0,     0,     0,     0,   136,   138,   140,
+   142,   244,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   261,   260,   258,   259,   254,   256,   255,
+   257,   249,   248,   250,   251,   252,   253,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   254,   253,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   291,   329,   330,     0,
+     0,   286,   322,   323,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   314,     0,     0,     0,   309,   308,
-   203,     0,   202,   201,     0,     0,     0,     0,     0,   206,
-   205,   241,     0,   207,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   220,     0,   292,   299,   301,     0,
-   268,   269,   270,   271,   272,   273,   274,   275,   276,   288,
-   277,     0,   279,   280,   281,   282,   283,   284,     0,     0,
+     0,   304,   303,   196,     0,   195,   194,     0,     0,     0,
+     0,     0,   199,   198,   234,     0,   200,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   213,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   317,     0,     0,    19,     0,   345,     0,
-     0,     0,     0,     0,     0,     0,     0,   291,     0,     0,
+   310,     0,     0,    19,     0,   287,   294,   296,     0,   263,
+   264,   265,   266,   267,   268,   269,   270,   271,   283,   272,
+     0,   274,   275,   276,   277,   278,   279,     0,     0,     0,
+   338,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   156,   158,     0,     0,     0,
+    65,     0,     0,   166,   318,   318,     0,   318,   178,     0,
+   186,   318,   318,   320,     0,     0,     0,   321,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   157,   159,     0,     0,    66,     0,     0,   173,   325,   325,
-     0,   325,   185,     0,   193,   325,   325,   327,     0,     0,
-     0,   328,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   197,
-   199,     0,     0,     0,     0,     0,    70,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-    81,    82,     0,     0,   325,     0,     0,   325,     0,     0,
-     0,   294,   296,     0,     0,     0,     0,     0,   267,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   325,
-   325,     0,     0,     0,     0,   325,   325,     0,     0,     0,
-     0,     0,   325,     0,   325,     0,     0,     0,     0,     0,
-   319,     0,   316,     0,     0,     0,     0,     0,     0,   134,
-   136,     0,   145,     0,   147,   161,   149,   163,   151,   165,
-   153,   155,     0,     0,     0,     0,     0,     0,   325,     0,
-   325,     0,     0,   331,   303,   291,   332,   333,   172,     0,
-   325,   325,   325,   234,     0,   325,   325,   325,   325,   325,
-   325,   325,     0,     0,     0,     0,     0,     0,     0,     0,
-   240,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    68,     0,     0,     0,     0,   320,
-     0,     0,     0,   212,     0,     0,   278,   285,   286,   287,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   243,   244,   245,   246,   247,     0,
-     0,     0,     0,     0,     0,     0,    18,     0,   346,   132,
-   138,   140,   142,   144,   297,     0,     0,   338,     0,     0,
-    67,   169,   177,     0,   180,     0,   174,     0,   175,   195,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
+     0,     0,     0,     0,   190,   192,     0,     0,     0,     0,
+     0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    70,    71,    72,    73,    74,
+    75,    76,    77,    78,    79,    80,    81,     0,     0,   318,
+     0,     0,   318,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   318,   318,     0,     0,
+     0,     0,   318,   318,     0,     0,     0,     0,     0,   318,
+     0,   318,     0,     0,     0,     0,     0,   312,     0,   309,
+   289,   291,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   133,   135,   144,   146,   148,   150,   152,
+   154,     0,     0,   262,     0,     0,     0,     0,   318,     0,
+   318,     0,     0,   324,   298,   286,   325,   326,   165,     0,
+   318,   318,   318,   227,     0,   318,   318,   318,   318,   318,
+   318,   318,     0,     0,     0,     0,     0,     0,     0,   233,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    67,     0,     0,     0,     0,   313,     0,
+     0,     0,   205,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   183,     0,   325,   325,     0,   325,     0,     0,   325,
-     0,     0,     0,     0,   325,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   238,   239,
+   240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
+    18,     0,     0,   273,   280,   281,   282,   339,   131,   137,
+   139,   141,   143,     0,   331,     0,     0,    66,   162,   170,
+     0,   173,     0,   167,     0,   168,   188,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   325,     0,     0,     0,     0,     0,     0,
-     0,     0,   316,     0,     0,     0,     0,   291,     0,   167,
-     0,   182,   192,   304,   334,     0,   238,   186,   188,     0,
-     0,   237,   239,   194,   170,   181,   191,   196,     0,     0,
-   313,     0,   312,     0,     0,   222,     0,   224,     0,   226,
-     0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   320,     0,   323,     0,
-     0,     0,     0,   214,   213,     0,   298,     0,     0,     0,
-     0,    21,     0,    30,     0,    34,     0,    28,     0,     0,
-    33,     0,    38,    36,     0,     0,     0,     0,     0,     0,
-    45,     0,     0,     0,     0,     0,    50,     0,     0,     0,
+     0,     0,     0,     0,     0,   197,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   178,     0,   236,   235,   204,   315,     0,   200,     0,
-     0,     0,     0,     0,     0,   230,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   176,     0,   318,
+   318,     0,   318,     0,     0,     0,     0,     0,     0,   318,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   322,   325,   321,   325,     0,     0,   187,   300,   302,
-     0,     0,   320,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   325,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   318,     0,
+     0,     0,     0,     0,     0,     0,     0,   309,     0,     0,
+     0,     0,   286,     0,   160,     0,   175,   185,   299,   327,
+     0,   231,   179,   181,     0,     0,   230,   232,   187,   163,
+   174,   184,   189,     0,   308,     0,   307,     0,     0,   215,
+     0,   217,     0,   219,     0,    68,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   313,     0,   316,     0,     0,     0,     0,   207,   206,     0,
+     0,     0,     0,     0,    21,     0,    30,     0,    34,     0,
+    28,     0,     0,    33,     0,    38,    36,     0,     0,     0,
+     0,     0,     0,    45,     0,     0,     0,     0,     0,    50,
+     0,     0,   293,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   171,     0,   229,   228,   197,     0,
+   193,     0,     0,     0,     0,     0,     0,   223,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   311,     0,     0,     0,   233,   325,
-     0,   231,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   324,     0,     0,
-   215,     0,    35,     0,     0,     0,     0,    25,     0,    31,
-     0,    37,    26,    39,     0,    42,     0,    46,    47,     0,
-     0,    49,     0,     0,     0,   146,   148,   162,   150,   164,
-   152,   166,   154,   156,   158,   160,     0,   342,     0,   168,
-   339,   337,     0,     0,   198,     0,     0,     0,     0,     0,
-   228,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   325,   325,   184,     0,     0,
+     0,     0,     0,   315,   318,   314,   318,     0,     0,   318,
+     0,     0,   313,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   318,     0,     0,     0,     0,
+     0,     0,     0,   295,   297,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   298,     0,     0,   340,     0,     0,   310,   223,   225,
-   227,     0,   325,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    85,    89,    93,   171,   176,     0,     0,     0,
-     0,     0,     0,     0,    29,    32,    40,     0,    41,    48,
-    43,     0,     0,   343,     0,   336,     0,     0,     0,     0,
+     0,     0,   306,     0,     0,     0,   226,   318,     0,   224,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   325,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   325,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   317,     0,     0,   208,     0,
+     0,    35,     0,     0,     0,     0,    25,     0,    31,     0,
+    37,    26,    39,     0,    42,     0,    46,    47,     0,     0,
+    49,     0,     0,   145,   147,   149,   151,   153,   155,   157,
+   159,     0,   335,     0,   161,   332,   330,     0,     0,   191,
+     0,     0,     0,     0,     0,   221,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    24,    27,     0,     0,     0,   335,     0,   229,
+   318,   318,   177,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   333,
+     0,     0,   305,   216,   218,   220,     0,   318,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    84,    88,    92,
+   164,   169,     0,     0,   180,     0,     0,     0,     0,     0,
+    29,    32,    40,     0,    41,    48,    43,     0,     0,   336,
+     0,   329,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   318,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    83,     0,    87,     0,    91,     0,     0,     0,     0,
-   325,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   318,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    24,    27,
+     0,     0,     0,   328,     0,   222,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    82,     0,    86,
+     0,    90,     0,     0,     0,     0,   318,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    44,    20,   341,   179,
-   232,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    84,    86,    88,    90,    92,    94,     0,     0,     0,     0,
-   325,     0,     0,     0,     0,     0,     0,    97,   101,   105,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     5,   325,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   190,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    95,
-     0,    99,     0,   103,     0,   325,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   189,
-     0,    22,     0,     0,     0,     0,     0,     0,    96,    98,
-   100,   102,   104,   106,   325,     0,     0,     0,   109,   113,
-   117,     0,     0,     0,     0,     0,     0,     0,   325,     0,
+     0,     0,    44,    20,   334,   172,   225,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    83,    85,    87,    89,
+    91,    93,     0,     0,     0,     0,   318,     0,     0,     0,
+     0,     0,     0,    96,   100,   104,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   107,     0,   111,     0,   115,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   108,
-   110,   112,   114,   116,   118,     0,   121,   125,   129,    23,
-     0,     0,     0,     0,     0,     0,     0,   119,     0,   123,
-     0,   127,     0,     0,     0,     0,     0,     0,   120,   122,
-   124,   126,   128,   130,     0,     0,     0
+     0,     0,     6,   318,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   183,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    94,     0,    98,     0,   102,
+     0,   318,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   182,     0,    22,     0,     0,
+     0,     0,     0,     0,    95,    97,    99,   101,   103,   105,
+   318,     0,     0,     0,   108,   112,   116,     0,     0,     0,
+     0,     0,     0,     0,   318,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   106,     0,   110,     0,
+   114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   107,   109,   111,   113,   115,
+   117,     0,   120,   124,   128,    23,     0,     0,     0,     0,
+     0,     0,     0,   118,     0,   122,     0,   126,     0,     0,
+     0,     0,     0,     0,   119,   121,   123,   125,   127,   129,
+     0,     0,     0
 };
 
-static const short yydefgoto[] = {  1565,
-     4,     5,    18,    19,    20,    21,     6,    63,    64,    65,
-   486,  1341,   641,  1289,  1343,   642,  1290,  1345,   643,  1291,
-  1449,   644,  1422,  1451,   645,  1423,  1453,   646,  1424,  1510,
-   647,  1496,  1512,   648,  1497,  1514,   649,  1498,  1547,   650,
-  1541,  1549,   651,  1542,  1551,   652,  1543,    66,   481,   471,
-   472,   473,   474,    70,    71,    72,    73,  1055,  1056,    74,
-    75,   820,   295,   105,   449,   311,   163,   262,   411,   896,
-   988,   989,   450,   840,  1118,  1189,   129
+static const short yydefgoto[] = {  1531,
+     5,     6,    19,    20,    21,    22,     7,    63,    64,    65,
+   479,  1307,   626,  1255,  1309,   627,  1256,  1311,   628,  1257,
+  1415,   629,  1388,  1417,   630,  1389,  1419,   631,  1390,  1476,
+   632,  1462,  1478,   633,  1463,  1480,   634,  1464,  1513,   635,
+  1507,  1515,   636,  1508,  1517,   637,  1509,    66,   474,   464,
+   465,   466,   467,    70,    71,    72,    73,  1027,  1028,    74,
+    75,    78,   794,   293,   128,   444,   161,   162,   218,   368,
+   872,   962,   963,   445,   817,  1086,  1154,   129
 };
 
-static const short yypact[] = {   432,
--32768,-32768,  -115,-32768,    44,  2780,  1830,    50,    52,   104,
-   159,   164,   170,   172,   -73,   -52,   -17,-32768,-32768,-32768,
--32768,   201,  1572,    51,   226,   -87,    82,    97,   -37,   -38,
-   105,   110,   260,   138,   285,   295,   320,   272,   319,   370,
-   191,    94,    94,   202,   357,   214,   337,   219,   400,   406,
-   323,   255,   -30,     2,-32768,   261,-32768,   419,-32768,   434,
-   437,   417,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   254,-32768,   291,   302,
-   338,   348,   362,   369,   394,   396,   402,   403,   407,   418,
-   433,   435,   436,   443,   444,   445,   446,   447,   448,  1830,
-  1830,  1830,  1830,  1664,-32768,-32768,  2818,-32768,-32768,-32768,
--32768,-32768,   449,   449,   462,-32768,-32768,  1830,   450,  1830,
-  1830,  1830,  1830,   537,   590,  1830,    19,  1029,   601,   568,
--32768,  1830,  1830,  1830,  1830,   451,  1830,  1830,   452,  1830,
-  1830,  1830,   778,  1830,   466,   453,   455,   778,   469,   471,
-   456,   457,   458,   478,   479,    94,   476,    94,    94,  1830,
-  1830,  -133,-32768,  -100,    94,   477,   481,   482,-32768,   778,
--32768,-32768,    -2,   778,   778,  1830,   -68,  1830,   526,  1830,
-  1830,-32768,   649,-32768,   489,-32768,-32768,  1830,    10,  1830,
-  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,
-   491,   491,   491,  5757,  1830,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1664,
-   494,   495,   496,   501,   502,   525,   529,   530,   531,   554,
-   555,   556,   557,   558,   559,   561,   563,   564,   565,   566,
-   569,   570,   571,   572,   577,   578,   579,   580,   581,   582,
-   735,   591,   594,   592,  1117,   736,  1162,  1368,  1552,  1599,
--32768,-32768,  5582,   111,   596,   595,-32768,  1830,  1830,-32768,
-    -6,  5780,  2862,  5803,  5826,  1830,  5849,  2885,  1830,  2908,
-  5872,  5895,   273,  1877,  7229,   766,  5918,  1830,  1830,  1830,
-   767,  1830,  1830,  1830,  1830,  1830,  1830,  1830,   -93,    13,
--32768,-32768,  3341,  3362,    94,    94,   424,   424,   -91,  1830,
-  1830,  1830,  2711,    31,  2728,    94,-32768,   770,   772,  5941,
-   698,  1830,  5964,   604,  1311,  5987,-32768,  1830,  5607,   315,
-   610,  6010,  6033,  6056,  6079,  6102,  6125,  6148,  6171,  6194,
-  6217,  6240,  3383,  6263,  6286,  6309,  6332,  6355,  6378,  3404,
-  3425,  3446,-32768,  2465,  1278,   423,   439,   439,   155,   155,
-   155,   155,  -138,   -27,   491,   491,   491,   491,  2931,   781,
-   804,   805,   806,   807,   808,   809,   810,   811,   812,   813,
-   814,   816,   817,   818,   819,   820,   821,   822,   823,   826,
-   828,   831,   706,   833,   834,   836,   837,   840,   842,-32768,
-   116,   843,   846,   844,-32768,   148,-32768,-32768,-32768,-32768,
-   115,   667,   984,   984,  1830,  1830,   847,   848,  1830,   851,
-   281,   281,   850,  1877,   853,   856,   859,   860,  6401,   861,
-   864,  6424,   865,   866,   867,   326,   282,  2499,-32768,  -130,
-  1830,   869,  2946,  6447,  6470,  1830,  2969,  2992,  6493,  6516,
-  6539,  6562,  6585,    94,-32768,   682,  1830,  1830,-32768,-32768,
--32768,   692,  2841,-32768,   697,  1830,  3467,  3488,  3509,-32768,
--32768,-32768,  1830,-32768,   -98,   567,   699,   700,   873,   708,
-  6608,   875,  1830,  1830,-32768,  6631,   331,-32768,-32768,  1830,
+static const short yypact[] = {  2404,
+    24,-32768,-32768,  -126,-32768,   113,  2521,-32768,    13,    55,
+    51,   149,   180,   196,   219,   -87,   -50,   -45,-32768,-32768,
+-32768,-32768,   942,    66,   264,   -98,   138,   141,   -48,   -47,
+   152,   204,   297,   243,   379,   386,   397,   305,   396,   161,
+   268,   -33,   -33,   314,   225,   324,   405,   326,   501,   505,
+   256,   338,   -29,     9,-32768,   339,-32768,   507,-32768,   511,
+   512,   479,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   517,    13,  2559,-32768,
+-32768,-32768,-32768,-32768,   348,   348,   518,-32768,  -136,-32768,
+  1593,-32768,   355,   363,   364,   365,   366,   367,   368,   369,
+   370,   371,   372,   373,   375,   376,   392,   398,   408,   409,
+   410,   412,   416,   432,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,   581,   600,  1593,  1593,    16,   438,-32768,   601,   603,
+-32768,  1593,  1593,  1593,  1593,   436,  1593,  1593,   439,  1593,
+  1593,  1593,   462,  1593,   434,   441,   449,   462,   444,   450,
+   455,   458,   460,   461,   463,   -33,   -33,   -33,  1593,  1593,
+  -127,-32768,   -99,   -33,   459,   469,   480,-32768,   462,-32768,
+-32768,    -2,   462,   462,  1593,   -60,  1593,   551,  1593,  1593,
+-32768,   633,-32768,   467,-32768,    13,   485,   487,   488,   492,
+   493,   494,   499,   500,   523,   525,   536,   542,   543,   544,
+   545,   558,   559,   560,   561,   562,   563,   564,   579,   582,
+   584,   585,   586,   589,   595,   621,   637,   617,   622,   619,
+-32768,-32768,  1593,    36,   491,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,  1593,  1593,  1593,   794,   611,   626,   851,
+   986,   628,   628,   628,-32768,-32768,  5362,  5237,    15,   627,
+   624,-32768,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,  1593,  1593,  1593,  1593,-32768,  -101,  5385,
+  2574,  5408,  5431,  1593,  5454,  2597,  1593,  2620,  5477,  5500,
+   128,  1666,  6834,   796,  5523,  1593,  1593,  1593,   797,  1593,
+  1593,  1593,  1593,  1593,  1593,  1593,   -36,-32768,-32768,  2375,
+  3011,   -33,   -33,    50,    50,    -4,  1593,  1593,  1593,    10,
+   190,  2352,   -33,-32768,   800,   801,  5546,   727,  1593,  5569,
+   631,  2131,  5592,-32768,  1593,   669,   809,   810,   811,   812,
+   814,   815,   817,   819,   820,   824,   825,   826,   829,   832,
+   834,   835,   840,   841,   842,   844,   846,   847,   850,   728,
+   856,   858,   859,   860,   864,   863,-32768,    98,   865,   866,
+   871,  5262,   150,   694,-32768,  5615,  5638,  5661,  5684,  5707,
+  5730,  5753,  5776,  5799,  5822,  5845,  3032,  5868,  5891,  5914,
+  5937,  5960,  5983,  3053,  3074,  3095,   135,-32768,-32768,-32768,
+-32768,-32768,    22,   665,  1593,  1593,  1593,  1593,   872,   873,
+  1593,   867,  2146,   901,   965,   541,   541,   165,   165,   165,
+   165,   214,   214,   628,   628,   628,   628,   875,  1666,   870,
+   876,   878,   879,  6006,   881,   877,  6029,   884,   885,   886,
+   346,   223,  2177,-32768,   -35,  1593,   887,  2643,  6052,  6075,
+  1593,  2666,  2689,  6098,  6121,  6144,  6167,  6190,   -33,  1593,
+  1593,-32768,-32768,-32768,   711,  2582,-32768,   715,  1593,  3116,
+  3137,  3158,-32768,-32768,-32768,  1593,-32768,   -72,   484,   717,
+   718,   895,   730,  6213,   904,  1593,  1593,-32768,  6236,   767,
+   736,   737,   738,   739,   740,   741,   743,   744,   745,   758,
+   759,   760,   761,   762,   763,   764,   765,   770,   772,   795,
+   798,   799,   802,   816,   818,   830,   843,   848,   849,   852,
+-32768,   970,   804,-32768,   853,   166,-32768,-32768,  1593,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,  1830,-32768,-32768,-32768,-32768,-32768,-32768,  1830,  1830,
-  1830,  1830,   740,   709,   710,   711,   712,   713,   714,   715,
-   716,   718,   720,   721,   723,   724,   725,   726,   727,   728,
-   730,   731,   732,   733,   734,   739,   741,   742,   744,   745,
-   746,   748,   750,-32768,   881,   755,-32768,   752,-32768,  1877,
-  1830,  1830,  1830,  1830,  1830,   907,   912,   293,   925,   984,
-   984,  1830,  1855,     4,  1870,    43,  1958,    68,  1973,  1988,
--32768,-32768,  5632,   926,-32768,   150,    94,-32768,   778,   778,
-   927,   778,-32768,   928,-32768,   778,   778,-32768,  1606,  1830,
-  1905,-32768,  2031,   753,   929,   930,   931,   894,   935,   936,
-   938,   940,   941,   942,   943,   -79,  1830,  3530,  3551,-32768,
--32768,  3015,    94,    94,    94,  2046,-32768,   780,   783,   785,
-   786,   787,   788,   789,   790,   791,   792,   845,   858,   948,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  1830,  1830,   778,  1830,   971,   778,  2557,   944,
-   972,-32768,-32768,  5657,  6654,  6677,  6700,  6723,  7229,   839,
-   978,  1830,  1830,    94,   979,   980,   825,   981,   982,   778,
-   778,   987,    94,   989,  1012,   778,   778,  1013,  1014,  1016,
-  1017,  1033,   778,   408,   778,  1034,  1027,  1035,  1036,  1038,
--32768,  1032,   449,   231,  2068,  2083,  2098,  2149,  2164,-32768,
--32768,    14,-32768,  3314,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   874,     0,  1055,   106,     9,  1058,   778,  1059,
-   778,  1061,  1062,-32768,  2572,   296,  2499,-32768,-32768,  1830,
-   778,   778,   778,-32768,    39,   778,   778,   778,   778,   778,
-   778,   778,  1830,  5682,  1830,  1830,   863,  -127,  -123,  -120,
--32768,  1188,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,-32768,  3572,  3593,  1064,  6746,   -50,
-   988,  1830,  1830,-32768,  1830,   895,-32768,-32768,-32768,-32768,
-  1830,   897,  3614,  3635,   -96,   899,   904,   905,   908,   906,
-   911,   910,   913,   112,   915,   916,   920,   923,   933,   934,
-   937,   946,   947,   939,-32768,-32768,-32768,-32768,-32768,   960,
-   962,   963,   965,   966,   945,   970,-32768,   973,-32768,-32768,
--32768,-32768,-32768,-32768,   315,   914,    22,   909,  1933,  1108,
--32768,-32768,-32768,    94,-32768,  1114,-32768,  1115,-32768,-32768,
-  1830,  1634,  3656,  1116,  1143,  1144,  1830,  1830,  1147,  1148,
-  1149,  1150,  1152,  1153,  1154,  3038,   985,  6769,  1044,   424,
-    94,  1155,    94,  1160,    94,     3,  1161,  3677,  3698,  3719,
-  3740,  3761,  3782,  3803,  3824,  3845,  3866,  3887,  3908,  1830,
-  1830,-32768,  1165,   778,   778,  1086,   778,   364,  6792,   224,
-  1169,  1664,  1171,  1830,   778,  1170,  1172,  1174,  1047,  1208,
-   408,  1211,  1175,  1830,  1212,  1216,  1214,  1215,  1220,   408,
-  1830,  1830,  1830,   778,  1222,  1226,   408,  1830,  1243,  1244,
-  1242,  1830,   449,  1830,   251,  1245,  1166,   196,  3929,-32768,
-   114,-32768,-32768,  7229,-32768,  1830,-32768,-32768,-32768,  2207,
-  2259,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1070,  1247,
--32768,  1830,-32768,  1087,   -74,-32768,   -61,-32768,   -54,-32768,
-    15,-32768,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  3950,  3971,   -50,   252,-32768,   154,
-  1095,  1204,  1830,-32768,-32768,  1279,   334,  1664,  1112,  3992,
-  1109,-32768,  1110,-32768,  1113,-32768,  1118,-32768,  1119,  6815,
--32768,  1120,-32768,-32768,  1121,  1122,  6838,  4013,  6861,  1133,
--32768,  1138,  1156,  4034,  1151,  1157,-32768,  4055,  1158,  5707,
-   696,   984,   984,  1830,  1830,  1830,  1830,     1,  1163,  1830,
-  1830,-32768,  4076,-32768,-32768,   424,-32768,  2804,-32768,  1830,
-  1830,  1830,  1284,  1159,   -41,-32768,  4097,  4118,  4139,  4160,
-  4181,  4202,  4223,  4244,  4265,  4286,  4307,  4328,  1830,  1830,
-  1210,-32768,   778,-32768,   778,  1830,  3061,-32768,-32768,-32768,
-  2435,  1288,   -50,   408,  1329,  1830,  1327,   408,  1331,  1332,
-  1333,  1337,  1338,  1830,  1339,   778,  1340,  1341,  1830,  1345,
-  1343,  1830,  1355,  1185,  1358,  2274,   126,  2289,   141,  2325,
-   145,  2340,  2368,  2383,  2398,  1189,     0,  1359,  1365,  3084,
-  4349,  1366,  1190,  1830,-32768,  3107,  3130,  3153,-32768,   778,
-  1367,-32768,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  3176,  3199,  1193,-32768,  1197,  2450,
--32768,  1830,-32768,  1198,  1199,  1200,  4370,-32768,  1205,-32768,
-  1206,-32768,-32768,-32768,  6884,-32768,  1207,-32768,-32768,  6907,
-  1209,-32768,  6930,  1223,  1378,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  1323,-32768,   189,-32768,
--32768,-32768,  1830,  1224,-32768,  3222,  1381,  1382,    25,  1225,
--32768,  4391,  4412,  4433,  4454,  4475,  4496,  4517,  4538,  4559,
-  6953,  6976,  6999,  1386,  1387,   778,   778,-32768,  1664,   408,
-   408,   408,   408,  1388,  1398,  1399,   408,  1400,  1401,  1403,
-  1405,   334,  1236,     0,-32768,  2833,  1407,-32768,-32768,-32768,
--32768,    15,   778,  1830,  1830,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,-32768,-32768,-32768,-32768,-32768,  1235,  1234,  1664,
-  1237,  1238,  1246,  1248,-32768,-32768,-32768,  1239,-32768,-32768,
--32768,  1241,  1830,-32768,  1830,-32768,  1257,   -40,  1267,  4580,
-  4601,  4622,  4643,  4664,  4685,  4706,  4727,  4748,  1268,  1269,
-  1270,   778,  1380,  2525,   408,   408,  1415,  1440,   408,  1453,
-  5732,  3245,  1457,  1462,   778,  1830,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1298,  1303,  1830,
-  1306,  1307,-32768,-32768,  1312,  1313,  1314,-32768,  1308,-32768,
-  1309,  4769,  4790,  4811,  4832,  4853,  4874,  4895,  4916,  4937,
-   278,  7229,   294,  7229,   303,  7229,  1410,  1830,  1664,   408,
-   778,  1486,  1493,  1416,  1495,  1496,  1830,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  1830,  1830,  1497,  1830,  1498,  1830,
-  1499,  1328,  4958,  1664,  1330,  1336,-32768,-32768,-32768,-32768,
--32768,  4979,  5000,  5021,  5042,  5063,  5084,  7022,  7045,  7068,
-  7229,-32768,  7229,-32768,  7229,-32768,  1830,  1830,  5105,   408,
-   778,  1830,  1830,  1830,  1830,  1830,  1830,-32768,-32768,-32768,
-  5120,  3268,  1362,  1347,  1357,  5141,  5162,  5183,  5204,  5225,
-  5246,  1363,  1364,  1370,  1830,  1500,-32768,   778,   408,  1830,
-  1830,  1830,  1830,  1830,  1830,  1830,  1830,  1830,  3291,-32768,
-  1369,  1342,  5267,  5288,  5309,  5330,  5351,  5372,   312,  7229,
-   317,  7229,   318,  7229,  1512,   778,  1513,  1830,  1830,  1830,
-  1830,  1830,  1830,  1830,  1530,  1830,  1535,  1830,  1538,-32768,
-  1373,-32768,  5393,  5414,  5435,  7091,  7114,  7137,  7229,-32768,
-  7229,-32768,  7229,-32768,   778,  1830,  1830,  1830,-32768,-32768,
--32768,  1374,  5456,  5477,  5498,  1375,  1376,  1377,   778,  1830,
-  1830,  1830,  1830,  1830,  1830,  1383,  5519,  5540,  5561,   353,
-  7229,   354,  7229,   359,  7229,   408,  1830,  1830,  1830,  1830,
-  1539,  1830,  1547,  1830,  1554,  1389,  7160,  7183,  7206,  7229,
--32768,  7229,-32768,  7229,-32768,  1556,-32768,-32768,-32768,-32768,
-  1385,  1390,  1391,  1830,  1830,  1830,   360,  7229,   382,  7229,
-   388,  7229,  1830,  1559,  1830,  1560,  1830,  1561,  7229,-32768,
-  7229,-32768,  7229,-32768,  1568,  1571,-32768
+  1593,-32768,-32768,-32768,-32768,-32768,-32768,  1593,  1593,  1593,
+-32768,  1666,  1593,  1593,  1593,  1593,  1593,   973,   982,   983,
+  1047,  1162,  1260,  1472,  1493,-32768,-32768,  5287,   988,  1593,
+-32768,   170,   -33,-32768,   462,   462,   990,   462,-32768,   991,
+-32768,   462,   462,-32768,  1498,  1593,  1759,-32768,  1691,   823,
+  1013,  1015,  1017,   296,  1021,  1022,  1025,  1027,  1028,  1029,
+  1030,    93,  3179,  3200,-32768,-32768,  2712,   -33,   -33,   -33,
+  1706,-32768,   869,   874,   898,   899,   902,   903,   921,   922,
+   923,   924,   925,   926,   987,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1593,  1593,   462,
+  1593,  1031,   462,  2198,   414,  1032,   907,  1037,  1593,  1593,
+   -33,  1040,  1041,   888,  1042,  1051,   462,   462,  1065,   -33,
+  1071,  1097,   462,   462,  1098,  1099,  1100,  1103,  1104,   462,
+   136,   462,  1105,  1045,  1108,  1106,  1111,-32768,  1110,   348,
+-32768,-32768,  5312,  6259,  6282,  6305,  6328,   221,  1728,  1743,
+  1812,  1827,  1842,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   941,    -1,  6834,  1116,    26,    20,  1126,   462,  1127,
+   462,  1130,  1137,-32768,  2213,   250,  2177,-32768,-32768,  1593,
+   462,   462,   462,-32768,   302,   462,   462,   462,   462,   462,
+   462,   462,  1593,  1593,  1593,   992,  -102,   -96,   -93,-32768,
+   674,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,-32768,  3221,  3242,  1163,  6351,   -32,  1087,
+  1593,  1593,-32768,   993,    13,   996,  3263,  3284,   -91,   998,
+  1003,  1000,  1006,  1004,  1009,  1007,  1018,   -13,  1019,  1010,
+  1024,  1026,  1036,  1039,  1043,  1044,  1046,  1052,-32768,-32768,
+-32768,-32768,-32768,  1049,  1053,  1054,  1055,  1056,  1062,  1059,
+-32768,  1060,  1038,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    38,  1063,  1787,  1189,-32768,-32768,-32768,
+   -33,-32768,  1214,-32768,  1223,-32768,-32768,  1593,  1537,  3305,
+  1224,  1233,  1235,  1593,  1593,  1236,  1237,  1239,  1240,  1241,
+  1242,  1255,  2735,  6374,  1001,    50,   -33,  1256,   -33,  1257,
+   -33,     0,  1259,  3326,  3347,  3368,  3389,  3410,  3431,  3452,
+  3473,  3494,  3515,  3536,  3557,  1593,  1593,-32768,  1261,   462,
+   462,  1184,   462,   249,  6397,  1593,    13,  1266,  1593,   462,
+  1264,  1268,  1267,  1113,  1269,   136,  1272,  1271,  1593,  1273,
+  1277,  1275,  1276,  1280,   136,  1593,  1593,  1593,   462,  1278,
+  1282,   136,  1593,  1283,  1284,  1286,  1593,   348,  1289,   117,
+  1265,  1204,   163,  3578,-32768,    31,-32768,-32768,  6834,-32768,
+  1593,-32768,-32768,-32768,  1867,  1904,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,  1115,-32768,  1593,-32768,  1117,   122,-32768,
+   126,-32768,   129,-32768,   -22,-32768,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  3599,  3620,
+   -32,   252,-32768,   -27,  1119,  1210,  1593,-32768,-32768,  3641,
+    13,  1121,  3662,  1118,-32768,  1132,-32768,  1134,-32768,  1125,
+-32768,  1141,  6420,-32768,  1151,-32768,-32768,  1156,  1157,  6443,
+  3683,  6466,  1154,-32768,  1159,  1161,  3704,  1158,  1164,-32768,
+  3725,  1165,   227,  1565,  1593,  1593,  1593,  1593,  1593,  1593,
+     1,  1160,  1593,  1593,-32768,  3746,-32768,-32768,    50,  2064,
+-32768,  1593,  1593,  1593,  1333,  1172,   -46,-32768,  3767,  3788,
+  3809,  3830,  3851,  3872,  3893,  3914,  3935,  3956,  3977,  3998,
+  1593,  1593,  1270,-32768,   462,-32768,   462,  1593,  2758,   462,
+  1201,  1338,   -32,   136,  1349,  1593,  1348,   136,  1350,  1352,
+  1351,  1355,  1356,  1593,  1357,   462,  1358,  1359,  1593,  1363,
+  1361,  1593,  1353,-32768,-32768,  1364,  1919,  1934,  1955,  2003,
+  2018,  2039,  2095,  1192,    -1,  1365,  1368,  2781,  4019,  1377,
+  1203,  1593,-32768,  2804,  2827,  2850,-32768,   462,  1378,-32768,
+  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  2873,  2896,  1206,-32768,  1209,  2116,-32768,  1208,
+    13,-32768,  1211,  1212,  1213,  4040,-32768,  1218,-32768,  1219,
+-32768,-32768,-32768,  6489,-32768,  1216,-32768,-32768,  6512,  1221,
+-32768,  6535,  1220,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,  1334,-32768,   -18,-32768,-32768,-32768,  1593,  1222,-32768,
+  2919,  1390,  1393,     2,  1230,-32768,  4061,  4082,  4103,  4124,
+  4145,  4166,  4187,  4208,  4229,  6558,  6581,  6604,  1404,  1411,
+   462,   462,-32768,  1421,    13,   136,   136,   136,   136,  1422,
+  1427,  1428,   136,  1429,  1431,  1432,  1434,  1279,    -1,-32768,
+  2545,  1435,-32768,-32768,-32768,-32768,   -22,   462,  1593,  1593,
+  1593,  1593,  1593,  1593,  1593,  1593,  1593,-32768,-32768,-32768,
+-32768,-32768,  1263,  1262,-32768,    13,  1274,  1281,  1290,  1292,
+-32768,-32768,-32768,  1291,-32768,-32768,-32768,  1293,  1593,-32768,
+  1593,-32768,  1294,   -42,  1295,  4250,  4271,  4292,  4313,  4334,
+  4355,  4376,  4397,  4418,  1296,  1297,  1298,   462,  1370,  1310,
+   136,   136,  1447,  1449,   136,  1451,  5337,  2942,  1452,  1462,
+   462,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,  1299,  1301,    13,  1303,  1304,-32768,-32768,
+  1300,  1309,  1307,-32768,  1305,-32768,  1306,  4439,  4460,  4481,
+  4502,  4523,  4544,  4565,  4586,  4607,    80,  6834,   121,  6834,
+   130,  6834,  1410,  1593,    13,   136,   462,  1464,  1485,  1374,
+  1486,  1487,  1593,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1488,  1593,  1491,  1593,  1497,  1325,  4628,    13,
+  1327,  1328,-32768,-32768,-32768,-32768,-32768,  4649,  4670,  4691,
+  4712,  4733,  4754,  6627,  6650,  6673,  6834,-32768,  6834,-32768,
+  6834,-32768,  1593,  1593,  1383,   136,   462,  1593,  1593,  1593,
+  1593,  1593,  1593,-32768,-32768,-32768,  4775,  2965,  1384,  1354,
+  1360,  4796,  4817,  4838,  4859,  4880,  4901,  1392,  1394,  1419,
+  1593,  1524,-32768,   462,   136,  1593,  1593,  1593,  1593,  1593,
+  1593,  1593,  1593,  1593,  2988,-32768,  1366,  1362,  4922,  4943,
+  4964,  4985,  5006,  5027,   209,  6834,   253,  6834,   254,  6834,
+  1527,   462,  1528,  1593,  1593,  1593,  1593,  1593,  1593,  1593,
+  1529,  1593,  1531,  1593,  1533,-32768,  1423,-32768,  5048,  5069,
+  5090,  6696,  6719,  6742,  6834,-32768,  6834,-32768,  6834,-32768,
+   462,  1593,  1593,  1593,-32768,-32768,-32768,  1461,  5111,  5132,
+  5153,  1420,  1463,  1471,   462,  1593,  1593,  1593,  1593,  1593,
+  1593,  1484,  5174,  5195,  5216,   261,  6834,   262,  6834,   289,
+  6834,   136,  1593,  1593,  1593,  1593,  1536,  1593,  1634,  1593,
+  1635,  1369,  6765,  6788,  6811,  6834,-32768,  6834,-32768,  6834,
+-32768,  1657,-32768,-32768,-32768,-32768,  1489,  1494,  1519,  1593,
+  1593,  1593,   316,  6834,   320,  6834,   321,  6834,  1593,  1658,
+  1593,  1661,  1593,  1695,  6834,-32768,  6834,-32768,  6834,-32768,
+  1672,  1702,-32768
 };
 
 static const short yypgoto[] = {-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   951,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+  1091,-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,  1566,  1567,
-  -311,   -21,  1597,-32768,-32768,-32768,-32768,   332, -1052,-32768,
--32768,  -859,    -7,-32768,  1005,   -10,-32768,  -113,-32768,  -976,
-   717,   484,  -422, -1090,-32768,-32768,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1697,  1699,
+  -311,   334,  1700,-32768,-32768,-32768,-32768,   502, -1020,-32768,
+-32768,   -51,  -871,   -23,-32768,  1124,    11,-32768,   -85,-32768,
+  -933,   837,   178,  -419, -1060,-32768,-32768,-32768
 };
 
 
-#define	YYLAST		7401
-
-
-static const short yytable[] = {   104,
-   263,   326,  1132,   838,  1116,   179,   475,   177,   970,   716,
-  1071,   586,   331,   340,   843,   128,   465,   835,  1053,  1053,
-   139,   136,   274,  1054,  1054,   935,  1188,     7,   315,   316,
-  1241,   162,   164,   229,   315,   316,   482,   483,   315,   316,
-  -254,   315,   316,    -1,     8,   317,     9,   601,   718,   602,
-   871,  1007,   872,   844,   873,   106,   874,   875,   107,   876,
-  1016,   315,   316,   315,   316,   315,   316,  1023,   315,   316,
-   315,   316,   341,   720,  1053,   466,   836,   906,   318,  1054,
-   627,   275,   315,   316,   464,   132,   476,   315,   316,   857,
-   858,   133,   211,   212,   213,   214,   230,   157,   753,   113,
-   315,   316,   276,  1050,   332,   936,  1154,   315,   316,   108,
-   265,   842,   267,   268,   269,   270,  1051,   422,   273,  1042,
-   114,   561,   894,  1052,   282,   283,   284,   285,   895,   287,
-   288,  1178,   290,   291,   292,   137,   297,   704,  1131,  1304,
-   140,   138,   178,  1274,   229,   309,  1180,   323,   312,   325,
-  1182,  -253,   313,   314,   319,   115,    10,    11,    12,    13,
-    14,    15,    16,    17,   109,   315,   316,   433,   330,   110,
-   333,   434,   335,   336,   180,   111,   327,   112,   839,  1117,
-   339,   971,   342,   343,   344,   345,   346,   347,   348,   349,
-   350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
-   360,   361,   362,  1242,   315,   316,   116,   364,   365,   366,
-   367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
-   377,   378,   379,   130,  1155,  1132,    76,   293,  1159,   315,
-   316,   131,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,   134,   158,   159,  1031,   423,   424,
-   425,   426,   562,   563,   564,   565,   160,   315,   316,   135,
-   431,   432,   161,   315,   316,   315,   316,   141,   439,   427,
-   428,   442,   142,   566,   567,   915,   448,   315,   316,   554,
-   453,   454,   455,   555,   457,   458,   459,   460,   461,   462,
-   463,   143,   315,   316,   469,   470,   315,   316,   148,   149,
-   144,   150,   477,   478,   479,   485,   278,   279,   226,   227,
-   228,   559,   145,   725,   491,   560,   229,   601,    76,    77,
-   496,  1073,   146,  1074,    78,    79,    80,    81,    82,    83,
-    84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-    94,    95,    96,    97,    98,    99,   174,   147,   151,   175,
-  1261,  1262,  1263,  1264,   186,   187,  1234,  1268,  1235,   156,
-   188,   993,   189,  1040,   170,   215,   216,   217,   218,   219,
-   165,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-   166,   102,   169,   167,   168,   229,   103,   171,  1032,  1033,
-  1034,  1035,   294,   152,   829,   172,   153,   154,   601,   155,
-   173,   574,   576,   578,   573,   575,   577,   579,   580,  1036,
-  1037,   583,   186,   187,   182,  1072,   448,   176,   188,  1073,
-   189,    -7,    -7,   181,    -7,  1321,  1322,   183,   339,  1325,
-   184,   186,   187,   603,   226,   227,   228,   446,   608,   189,
-   186,   187,   229,   616,   185,  1366,   599,  1367,   189,   618,
-   619,   186,   187,   190,   186,   187,   264,   188,   622,   712,
-   852,  1368,   189,  1369,   191,   626,    41,    42,    43,    44,
-  1370,    46,  1371,   498,   499,   659,   660,   100,   101,  1464,
-  1375,  1465,   664,   102,  1466,  1468,  1467,  1469,   103,   662,
-   663,   598,  1079,  1080,   665,   815,   816,   817,   818,   819,
-   192,   666,   667,   668,   669,   215,   216,   217,   218,   219,
-   193,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-  1520,  1522,  1521,  1523,   194,   229,  1524,  1553,  1525,  1554,
-  1414,   195,   271,   994,    -7,    -7,    -7,    -7,    -7,    -7,
-    -7,    -7,   448,   705,   706,   707,   708,   709,   964,  1555,
-   312,  1556,   211,   212,   714,  1557,   196,  1558,   197,  1442,
-     1,     2,   281,     3,   198,   199,   726,   218,   219,   200,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,   828,
-   201,   339,   735,   737,   229,   272,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,   202,   280,   203,   204,   754,
-   229,   334,   758,   759,   760,   205,   206,   207,   208,   209,
-   210,   261,   266,   286,   289,   299,   296,   300,   304,   305,
-   306,   301,   628,   629,   630,   631,   632,   633,   634,   635,
-   636,   637,   638,   639,   298,   776,   777,   302,   779,   303,
-   307,   308,   310,   324,   337,   320,  1526,   328,   329,   321,
-   322,   338,   229,   795,   793,   794,   380,   381,   382,    76,
-   568,   569,   804,   383,   384,    78,    79,    80,    81,    82,
-    83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-    93,    94,    95,    96,    97,    98,    99,   385,    76,   568,
-  1105,   386,   387,   388,    78,    79,    80,    81,    82,    83,
-    84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-    94,    95,    96,    97,    98,    99,   389,   390,   391,   392,
-   393,   394,   853,   395,  1123,   396,   397,   398,   399,   410,
-   416,   400,   401,   402,   403,   866,   640,   868,   869,   404,
-   405,   406,   407,   408,   409,   878,   879,   880,   881,   882,
-   883,   884,   885,   886,   887,   888,   889,   413,   412,   414,
-   429,   430,   451,   456,   898,   899,   487,   900,   488,   490,
-    76,   293,   493,   902,   500,   524,    78,    79,    80,    81,
-    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-    92,    93,    94,    95,    96,    97,    98,    99,   525,   526,
-   527,   528,   529,   530,   531,   532,   533,   534,   535,  1029,
-   536,   537,   538,   539,   540,   541,   542,   543,   570,   571,
-   544,   939,   545,   941,   102,   546,   547,   548,   549,   572,
-   550,   551,   552,   944,   339,   161,   553,   556,   558,   950,
-   951,   557,   581,   582,   584,   585,   617,   570,   571,   587,
-   965,   588,   967,   102,   969,   589,   590,   592,   572,   593,
-   595,   620,   596,   597,   161,   604,   621,   653,   654,   655,
-   656,   658,   985,   986,   670,   701,   671,   672,   673,   674,
-   675,   676,   677,   678,   998,   679,  1000,   680,   681,   744,
-   682,   683,   684,   685,   686,   687,  1010,   688,   689,   690,
-   691,   692,   710,  1017,  1018,  1019,   693,   711,   694,   695,
-  1024,   696,   697,   698,  1028,   699,  1030,   700,   702,   703,
-   713,   740,   724,   729,   731,   741,   742,   743,  1043,   100,
-   101,   746,   747,   745,   748,   102,   749,   750,   751,   752,
-   103,   783,   763,   775,  1048,   764,   294,   765,   766,   767,
-   768,   769,   770,   771,   772,  1057,  1058,  1059,  1060,  1061,
-  1062,  1063,  1064,  1065,  1066,  1067,  1068,   780,   785,   791,
-   792,   796,   797,   799,   800,  1077,    76,   568,   798,   803,
-  1081,   805,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,   806,   809,   810,   773,   811,   812,
-  1107,  1109,  1111,  1106,  1108,  1110,  1112,  1113,  1114,  1115,
-   774,   823,  1120,  1121,   277,   813,   822,   827,   825,   824,
-   826,   870,  1126,  1127,  1128,   215,   216,   217,   218,   219,
-   837,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-   841,  1145,  1146,   845,   847,   229,   849,   850,  1150,   892,
-   897,   901,   727,   728,   903,   730,   907,   908,  1157,   732,
-   733,   910,   909,   911,   912,   937,  1165,   913,   934,   917,
-   914,  1170,   916,   918,  1173,   215,   216,   217,   218,   219,
-   919,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-   920,   921,   925,   940,   922,   229,  1196,   784,   931,   942,
-   943,   947,   415,   923,   924,  1202,  1203,  1204,  1205,  1206,
-  1207,  1208,  1209,  1210,  1211,  1212,  1213,   926,   778,   927,
-   928,   781,   929,   930,  1219,   570,   571,   932,   948,   949,
-   933,   102,   952,   953,   954,   955,   572,   956,   957,   958,
-   966,   960,   161,   801,   802,   968,   972,   417,   991,   807,
-   808,   987,   997,   999,  1003,  1002,   814,  1009,   821,  1004,
-   215,   216,   217,   218,   219,  1236,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,   215,   216,   217,   218,   219,
-   229,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-  1005,  1260,   846,  1006,   848,   229,  1008,  1011,  1012,  1013,
-  1014,   962,  1015,   963,   854,   855,   856,  1021,  1022,   859,
-   860,   861,   862,   863,   864,   865,  1280,  1281,  1282,  1283,
-  1284,  1285,  1286,  1287,  1288,  1025,  1026,  1027,  1046,  1039,
-  1047,  1038,  1294,   628,   629,   630,   631,   632,   633,   634,
-   635,   636,   637,   638,   639,  1301,  1049,  1302,   215,   216,
-   217,   218,   219,  1075,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,  1076,  1078,  1082,  1084,  1085,   229,  1129,
-  1086,  1087,  1147,  1153,  1091,  1092,  1088,  1090,  1332,  1333,
-  1334,  1335,  1336,  1337,  1338,  1339,  1340,  1342,  1344,  1346,
-  1096,  1097,  1349,   215,   216,   217,   218,   219,   494,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,  1100,  1098,
-  1101,  1156,  1158,   229,  1161,  1103,  1160,  1130,  1162,  1119,
-  1373,  1374,  1163,  1164,  1166,  1168,  1169,  1171,  1172,  1382,
-  1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391,  1174,
-  1393,  1175,  1395,  1176,  1190,  1187,  1399,   877,  1191,  1195,
-  1194,  1216,  1201,   418,  1217,  1220,  1221,  1222,  1224,  1225,
-   992,  1232,  1229,   996,  1227,  1233,  1239,  1240,  1001,  1411,
-  1412,  1256,  1257,  1265,  1416,  1417,  1418,  1419,  1420,  1421,
-  1231,  1237,  1243,  1266,  1267,  1269,  1270,  1020,  1271,  1272,
-  1273,  1277,  1292,  1293,  1295,  1296,  1299,  1439,  1300,  1297,
-  1323,  1298,  1443,  1444,  1445,  1446,  1447,  1448,  1450,  1452,
-  1454,   217,   218,   219,  1303,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,  1305,  1324,  1315,  1316,  1317,   229,
-  1473,  1474,  1475,  1476,  1477,  1478,  1479,  1326,  1481,  1319,
-  1483,  1329,   215,   216,   217,   218,   219,  1330,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,  1347,  1493,  1494,
-  1495,  1348,   229,  1350,  1351,  1352,  1353,  1355,  1356,  1372,
-  1354,  1377,  1507,  1508,  1509,  1511,  1513,  1515,  1378,  1379,
-  1380,  1381,  1392,  1394,  1396,  1440,  1397,  1400,  1427,  1527,
-  1528,  1529,  1530,  1401,  1532,  1457,  1534,  1470,  1472,   215,
-   216,   217,   218,   219,  1428,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,  1429,  1480,  1548,  1550,  1552,   229,
-  1482,  1436,  1437,  1484,  1531,  1559,  1456,  1561,  1438,  1563,
-  1485,  1499,  1533,  1503,  1504,  1505,  1148,   419,  1149,  1535,
-  1516,  1540,  1536,  1544,  1560,  1562,  1564,  1566,  1545,  1546,
-  1567,    67,    68,  1278,    76,    77,   117,   762,   118,  1167,
-    78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-    88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-    98,    99,    69,   119,   420,   738,     0,     0,    76,    77,
-     0,   990,     0,  1200,    78,    79,    80,    81,    82,    83,
-    84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-    94,    95,    96,    97,    98,    99,    76,    77,     0,     0,
-     0,     0,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,     0,     0,    76,    77,     0,     0,
-     0,     0,    78,    79,    80,    81,    82,    83,    84,    85,
-    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-    96,    97,    98,    99,     0,     0,     0,     0,     0,  1258,
-  1259,     0,     0,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,   120,
-   121,   122,   123,   229,     0,     0,  1279,     0,     0,     0,
-     0,     0,     0,   100,   101,     0,     0,     0,     0,   102,
-   124,   125,     0,     0,   103,     0,   126,     0,   127,     0,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,   100,   101,     0,
-   229,     0,     0,   102,     0,  1318,     0,     0,   103,     0,
-     0,   734,     0,     0,     0,     0,     0,     0,  1331,     0,
-     0,     0,     0,     0,     0,   100,   101,     0,     0,     0,
-     0,   102,     0,     0,     0,     0,   103,     0,     0,   945,
-     0,     0,     0,     0,     0,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-     0,   102,    76,    77,  1376,   229,   103,     0,    78,    79,
-    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-    90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-   715,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   717,     0,     0,     0,    76,
-   447,     0,     0,     0,  1415,    78,    79,    80,    81,    82,
-    83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-    93,    94,    95,    96,    97,    98,    99,    76,   736,     0,
-     0,  1441,     0,    78,    79,    80,    81,    82,    83,    84,
-    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-    95,    96,    97,    98,    99,    76,   938,     0,     0,  1471,
-     0,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-    97,    98,    99,   719,     0,     0,     0,     0,  1492,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   721,     0,
-     0,     0,  1506,     0,     0,     0,     0,     0,     0,     0,
-     0,   100,   101,   722,     0,     0,     0,   102,     0,     0,
-     0,     0,   103,     0,     0,     0,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,   215,   216,   217,   218,   219,   229,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,   739,     0,   100,   101,
-     0,   229,     0,     0,   102,     0,     0,     0,     0,   103,
-     0,   761,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   100,   101,     0,     0,
-     0,     0,   102,   830,     0,     0,     0,   103,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   831,     0,
-     0,     0,     0,     0,   100,   101,     0,     0,     0,     0,
-   102,     0,     0,   832,     0,   103,     0,     0,     0,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,   215,   216,   217,   218,   219,   229,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,   215,
-   216,   217,   218,   219,   229,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,   833,     0,     0,     0,     0,   229,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   834,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,   215,   216,   217,
-   218,   219,   229,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,  1044,     0,     0,     0,     0,   229,     0,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,   215,   216,   217,   218,   219,   229,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,   215,
-   216,   217,   218,   219,   229,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,  1045,     0,     0,     0,     0,   229,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,  1177,
+#define	YYLAST		7006
+
+
+static const short yytable[] = {   127,
+   219,   323,   815,   468,  1084,   944,  1100,  1206,   176,   572,
+   136,   139,   178,  1025,   980,    76,     9,  1025,  1026,   259,
+   328,   404,  1026,   989,  1153,   820,   186,  1043,   553,     8,
+   996,   819,   221,   222,   312,   313,  1015,  1025,   223,   373,
+   224,   910,  1026,    26,    27,    28,    29,    30,    31,    32,
+    33,   314,    34,   163,    36,    37,    80,    39,    40,   312,
+   313,    79,   312,   313,   821,   312,   313,   225,   312,   313,
+   312,   313,   428,    51,   132,   847,   429,   848,   260,   315,
+   133,   849,   881,   850,   851,    85,   852,    52,    53,   312,
+   313,   248,   249,   250,   251,   252,   253,   254,   374,   261,
+   257,   258,    41,    42,    43,    44,   612,    46,   280,   281,
+   282,   283,   329,   285,   286,    10,   288,   289,   290,  1123,
+   295,   911,    86,  1004,   137,   312,   313,    87,   157,   158,
+   138,   140,   688,  1099,   336,   310,   311,  1270,  1240,   159,
+   870,   459,   587,   177,   588,   160,   871,    62,   312,   313,
+  1045,   327,  1046,   330,    81,   332,   333,   312,   313,  1199,
+   890,  1200,   405,   406,   407,   408,   307,   308,   309,   554,
+   555,   556,   557,   469,   316,    77,   324,   816,   945,  1085,
+  1207,   179,  1124,   409,   410,    82,  1128,   312,   313,   473,
+   558,   559,   312,   313,   152,   475,   476,   153,   154,   372,
+   155,    83,   376,   377,   378,   379,   380,   381,   382,   383,
+   384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
+   394,   395,   396,  1100,    84,    11,    12,    13,    14,    15,
+    16,    17,    18,   789,   790,   791,   792,   793,   130,   413,
+   414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
+   424,   425,   426,   427,   312,   313,   967,  1332,   165,  1333,
+   434,   166,   167,   437,  1005,  1006,  1007,  1008,   443,   131,
+   733,   521,   448,   449,   450,   522,   452,   453,   454,   455,
+   456,   457,   458,   312,   313,  1009,  1010,   312,   313,   173,
+   312,   313,   174,   470,   471,   472,   221,   222,  1334,  1022,
+  1335,   724,   441,  1023,   224,   484,  1024,  1336,   551,  1337,
+   134,   489,   552,   135,  1227,  1228,  1229,  1230,   527,   528,
+   294,  1234,   462,   463,   141,   299,   272,   273,   274,   275,
+   276,   221,   222,   478,   681,   682,   277,   223,   143,   224,
+  1013,   148,   149,   705,   150,   725,   321,   587,    88,    89,
+   325,   326,   834,   835,    92,    93,    94,    95,    96,    97,
+    98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+   108,   109,   110,   111,   112,   113,   142,   274,   275,   276,
+   561,   562,   563,   564,   565,   277,  1430,   568,  1431,  1287,
+  1288,   221,   222,  1291,   808,  1074,  1075,   585,   587,   224,
+   263,   264,   265,   266,   267,   443,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,   144,   145,   372,   221,   222,
+   277,   762,   589,   146,   829,  1044,   224,   594,   968,  1045,
+  1432,  1434,  1433,  1435,   147,   151,   603,   604,  1486,  1488,
+  1487,  1489,   169,   262,  1341,   607,   156,   263,   264,   265,
+   266,   267,   611,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,   644,   645,    88,   291,  1490,   277,  1491,   602,
+    92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
+   102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+   112,   113,   164,  1519,  1380,  1520,   375,  1521,  1523,  1522,
+  1524,   320,   168,   322,   170,   683,   171,   119,   120,   172,
+   175,   180,   181,   121,   182,   183,   184,   684,   124,   185,
+   217,   584,   220,  1408,   685,   686,   687,   226,   443,   689,
+   690,   691,   692,   693,   938,   227,   228,   229,   230,   231,
+   232,   233,   234,   235,   236,   237,   704,   238,   239,   613,
+   614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
+   624,   372,   715,   717,   240,   263,   264,   265,   266,   267,
+   241,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+   242,   243,   244,   706,   245,   277,   255,   763,   246,   263,
+   264,   265,   266,   267,   802,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,   247,   256,   278,   279,   284,   277,
+  1492,   287,   296,   297,   755,   756,   398,   758,   737,   738,
+   739,   298,   300,   119,   120,   767,   768,   302,   301,   121,
+   303,   399,   304,   305,   124,   306,   331,   317,   334,   335,
+   292,   367,   263,   264,   265,   266,   267,   318,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   337,   319,   338,
+   339,   769,   277,   625,   340,   341,   342,    88,    89,   560,
+   778,   343,   344,    92,    93,    94,    95,    96,    97,    98,
+    99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+   109,   110,   111,   112,   113,   345,   830,   346,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,  1091,   347,   843,
+   844,   845,   277,   877,   348,   349,   350,   351,   854,   855,
+   856,   857,   858,   859,   860,   861,   862,   863,   864,   865,
+   352,   353,   354,   355,   356,   357,   358,   874,   875,   613,
+   614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
+   624,   359,   707,   708,   360,   710,   361,   362,   363,   712,
+   713,   364,   263,   264,   265,   266,   267,   365,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   263,   264,   265,
+   266,   267,   277,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,   914,   366,   369,   370,   371,   277,   397,   277,
+   412,   411,   446,   451,   919,   372,   480,   481,   483,   486,
+   925,   926,   490,   491,   492,   493,   494,   757,   495,   496,
+   760,   497,  1002,   498,   499,   971,   119,   120,   500,   501,
+   502,   916,   121,   503,   775,   776,   504,   124,   505,   506,
+   781,   782,   959,   960,   507,   508,   509,   788,   510,   795,
+   511,   512,   970,   853,   513,   973,   400,   939,   514,   941,
+   515,   943,   516,   517,   518,   983,   519,   520,   529,   523,
+   569,   524,   990,   991,   992,   525,   573,   566,   567,   997,
+   571,   574,   579,  1001,   575,   576,   823,   578,   825,   581,
+   605,   582,   583,   590,   606,   638,   639,  1016,   831,   832,
+   833,   640,   641,   836,   837,   838,   839,   840,   841,   842,
+   643,   647,  1020,   648,   649,   650,   651,   652,   653,  1051,
+   654,   655,   656,  1029,  1030,  1031,  1032,  1033,  1034,  1035,
+  1036,  1037,  1038,  1039,  1040,   657,   658,   659,   660,   661,
+   662,   663,   664,  1049,    88,    89,    90,   665,    91,   666,
+    92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
+   102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+   112,   113,   667,   114,   678,   668,   669,   679,   694,   670,
+  1077,  1078,  1079,  1080,  1081,  1082,  1083,   695,   696,  1088,
+  1089,   401,   754,   671,   703,   672,   709,   711,  1094,  1095,
+  1096,   720,   263,   264,   265,   266,   267,   673,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,  1113,  1114,   721,
+   674,   722,   277,   723,  1118,   675,   676,   726,   727,   677,
+   680,   728,  1126,   729,   730,   731,   732,   759,   764,   766,
+  1134,   742,   770,   771,   773,  1139,   743,   765,  1142,   797,
+   966,   772,   697,   774,   265,   266,   267,   974,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   777,  1161,  1185,
+   744,   745,   277,   779,   746,   747,   993,  1167,  1168,  1169,
+  1170,  1171,  1172,  1173,  1174,  1175,  1176,  1177,  1178,   115,
+   116,   117,   118,   748,   749,   750,   751,   752,   753,   780,
+   783,   784,   785,   119,   120,   786,   787,   796,   799,   121,
+   122,   123,   798,   800,   124,   801,   125,   814,   126,   266,
+   267,   818,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,   822,   824,  1226,  1201,   826,   277,   263,   264,   265,
+   266,   267,   827,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,   263,   264,   265,   266,   267,   277,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   698,   868,   873,
+   846,   876,   277,   878,  1260,   882,   883,   884,   936,   885,
+   937,   886,   887,   892,   888,  1246,  1247,  1248,  1249,  1250,
+  1251,  1252,  1253,  1254,   915,   889,   891,   893,   263,   264,
+   265,   266,   267,   894,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,   895,   909,  1267,   896,  1268,   277,   917,
+   897,   898,  1116,   899,  1117,   900,   901,  1120,   918,   922,
+   902,   903,   904,   905,  1315,   906,   907,   908,   923,   912,
+   924,   927,   928,  1136,   929,   930,   931,   932,  1298,  1299,
+  1300,  1301,  1302,  1303,  1304,  1305,  1306,  1308,  1310,  1312,
+   933,   940,   942,  1340,   946,   699,   965,   961,   972,   975,
+   976,  1011,   977,   982,   979,  1165,   978,   981,   984,   985,
+   986,   987,   988,   994,   995,   998,   999,  1012,  1365,  1048,
+  1339,  1000,  1003,  1019,  1052,  1054,  1021,  1047,  1057,  1348,
+  1349,  1350,  1351,  1352,  1353,  1354,  1355,  1356,  1357,  1055,
+  1359,  1056,  1361,   263,   264,   265,   266,   267,  1058,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,  1060,  1061,
+  1062,  1066,  1067,   277,  1068,  1070,  1087,  1071,  1097,  1377,
+  1378,  1121,  1073,  1122,  1382,  1383,  1384,  1385,  1386,  1387,
+  1098,  1125,  1115,  1127,  1130,  1129,  1131,  1143,  1223,  1224,
+  1132,  1133,  1135,  1137,  1138,  1140,  1141,  1405,  1152,  1144,
+  1155,  1156,  1409,  1410,  1411,  1412,  1413,  1414,  1416,  1418,
+  1420,  1159,  1160,  1166,  1181,  1245,  1182,  1184,  1186,  1187,
+  1188,  1190,  1191,  1193,  1195,  1204,  1198,  1197,  1205,  1202,
+  1439,  1440,  1441,  1442,  1443,  1444,  1445,  1208,  1447,  1221,
+  1449,   263,   264,   265,   266,   267,  1222,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,  1225,  1231,  1459,  1460,
+  1461,   277,  1232,  1233,  1235,  1284,  1236,  1237,  1238,  1243,
+  1258,  1259,  1473,  1474,  1475,  1477,  1479,  1481,  1297,  1285,
+  1286,  1261,  1289,  1239,  1290,  1292,  1295,  1345,  1262,  1493,
+  1494,  1495,  1496,  1263,  1498,  1264,  1500,  1296,  1265,  1343,
+  1266,  1269,  1271,  1318,  1281,  1282,  1283,   700,  1313,  1314,
+  1316,  1317,  1319,  1320,  1321,  1322,  1514,  1516,  1518,  1338,
+  1344,  1346,  1347,  1358,  1342,  1525,  1360,  1527,   701,  1529,
+    88,    89,  1362,  1363,  1366,  1367,    92,    93,    94,    95,
+    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+   106,   107,   108,   109,   110,   111,   112,   113,  1379,  1406,
+  1393,  1394,  1436,  1438,  1446,  1423,  1448,  1395,  1450,    88,
+    89,  1497,  1502,  1422,  1381,    92,    93,    94,    95,    96,
+    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+   107,   108,   109,   110,   111,   112,   113,    88,    89,  1076,
+  1402,  1407,  1403,    92,    93,    94,    95,    96,    97,    98,
+    99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+   109,   110,   111,   112,   113,    88,    89,  1404,  1469,  1437,
+  1451,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+   101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+   111,   112,   113,   263,   264,   265,   266,   267,  1458,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,  1465,  1499,
+  1501,  1470,  1472,   277,   263,   264,   265,   266,   267,  1471,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,   119,
+   120,  1482,  1506,  1526,   277,   121,  1528,  1510,    88,   442,
+   124,  1532,  1511,   714,    92,    93,    94,    95,    96,    97,
+    98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+   108,   109,   110,   111,   112,   113,   719,  1512,   119,   120,
+  1530,  1533,   741,    67,   121,    68,    69,   964,  1244,   124,
+   718,   740,   920,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   119,   120,     0,     0,
+     0,     0,   121,   809,     0,     0,     0,   124,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
+     0,     0,     0,     0,   119,   120,     0,     0,     0,     0,
+   121,    88,   716,     0,     0,   124,     0,    92,    93,    94,
+    95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+   105,   106,   107,   108,   109,   110,   111,   112,   113,    88,
+   913,     0,     0,     0,     0,    92,    93,    94,    95,    96,
+    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+   107,   108,   109,   110,   111,   112,   113,   811,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   119,   120,     0,
+     0,     0,   812,   121,     0,     0,     0,     0,   124,     0,
+     0,     0,   263,   264,   265,   266,   267,   813,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   263,   264,   265,
+   266,   267,   277,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,  1017,     0,     0,     0,     0,   277,     0,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,   263,   264,   265,   266,   267,   277,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,  1018,
+     0,     0,     0,     0,   277,     0,     0,     0,     0,     0,
+   119,   120,     0,     0,  1145,     0,   121,     0,     0,     0,
+     0,   124,     0,     0,     0,     0,     0,     0,     0,  1146,
+     0,     0,     0,     0,     0,     0,     0,     0,   119,   120,
+     0,     0,     0,     0,   121,     0,     0,     0,     0,   124,
+  1147,     0,     0,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,   263,   264,
+   265,   266,   267,   277,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,   263,   264,   265,   266,   267,   277,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,  1148,     0,
+     0,     0,     0,   277,     0,     0,     0,     0,   263,   264,
+   265,   266,   267,  1149,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+     0,     0,     0,     0,  1150,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+   263,   264,   265,   266,   267,   277,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,   263,   264,   265,   266,   267,
+   277,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+  1151,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,  1183,     0,     0,     0,     0,   277,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   487,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1179,     0,     0,     0,     0,     0,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,   215,   216,   217,   218,   219,
-   229,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-  1181,     0,     0,     0,     0,   229,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,  1183,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,  1184,     0,     0,     0,     0,   229,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,  1185,     0,
+     0,     0,     0,   570,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,   263,
+   264,   265,   266,   267,   277,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,   586,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,   761,     0,     0,     0,     0,
+   277,     0,     0,     0,     0,   263,   264,   265,   266,   267,
+   828,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,     0,     0,     0,
+     0,  1092,     0,  1093,     0,     0,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,   263,   264,   265,   266,   267,   277,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,   263,   264,   265,
+   266,   267,   277,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,   263,   264,   265,   266,   267,   277,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,    26,    27,    28,    29,    30,
+    31,    32,    33,     0,    34,     0,    36,    37,     0,    39,
+    40,     0,     0,    -8,     1,     0,    -8,   -51,     0,     0,
+     0,     0,     0,     0,     0,    51,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    52,
+    53,     0,     0,     0,   -51,     0,   -51,   -51,   -51,   -51,
+   -51,   -51,   -51,   -51,   -51,     0,   -51,   -51,   -51,   -51,
+   -51,   -51,   -51,     0,     0,     0,   -51,   -51,   -51,   -51,
+   -51,   -51,     0,   -51,   -51,   -51,   -51,   -51,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,  1186,     0,     0,     0,     0,     0,     0,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,   215,   216,   217,   218,   219,
-   229,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-   215,   216,   217,   218,   219,   229,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,  1218,     0,     0,     0,     0,
-   229,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   522,     0,     0,     0,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,   215,   216,   217,   218,   219,   229,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,   600,     0,     0,     0,
-     0,   229,     0,     0,     0,     0,     0,     0,     0,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,   215,   216,   217,   218,   219,   229,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,   215,
-   216,   217,   218,   219,   229,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,   782,     0,     0,     0,     0,   229,
-     0,     0,     0,     0,     0,  1152,     0,     0,     0,   851,
-     0,     0,     0,     0,     0,     0,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,   215,   216,   217,   218,   219,   229,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,   215,   216,   217,   218,
-   219,   229,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,     0,     0,
+     0,   -51,   -51,     0,     0,     0,     0,     0,   -51,    62,
+   -51,   -51,   -51,   -51,     0,   -51,   -51,   -51,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,  1320,     0,     0,     0,     0,
-   229,     0,     0,     0,     0,     0,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,   215,   216,   217,   218,   219,   229,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,    26,    27,    28,    29,    30,    31,
-    32,    33,     0,    34,     0,    36,    37,     0,    39,    40,
-     0,    26,    27,    28,    29,    30,    31,    32,    33,     0,
-    34,     0,    36,    37,    51,    39,    40,     0,     0,    -3,
-    22,     0,     0,    23,     0,     0,     0,     0,    52,    53,
-     0,    51,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    52,    53,     0,     0,     0,
-    24,     0,    25,    26,    27,    28,    29,    30,    31,    32,
-    33,     0,    34,    35,    36,    37,    38,    39,    40,     0,
-     0,     0,    41,    42,    43,    44,    45,    46,     0,    47,
-    48,    49,    50,    51,     0,     0,     0,     0,    62,     0,
-     0,     0,     0,     0,   231,     0,     0,    52,    53,     0,
-     0,     0,     0,     0,    54,    62,    55,    56,    57,    58,
-     0,    59,    60,    61,    26,    27,    28,    29,    30,    31,
-    32,    33,     0,    34,     0,    36,    37,     0,    39,    40,
-   480,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    51,     0,     0,   484,     0,     0,
-     0,     0,   232,   233,   234,     0,     0,    62,    52,    53,
-   235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     0,     0,     0,     0,     0,     0,     0,     0,   245,   246,
-   247,   248,   249,   250,   251,   252,   253,   254,     0,   255,
-   256,   257,   258,   259,   260,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,     0,    62,     0,
-     0,  1124,     0,  1125,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,     0,     0,     0,     0,
-  1275,     0,  1276,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,   215,   216,   217,   218,
-   219,   436,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,     0,   215,
-   216,   217,   218,   219,   441,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,   523,     0,     0,     0,     0,   229,
-     0,     0,   215,   216,   217,   218,   219,   443,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,   215,   216,   217,
-   218,   219,   229,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,     0,
-   215,   216,   217,   218,   219,   605,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,     0,   215,   216,   217,   218,   219,   609,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,   215,   216,   217,   218,
-   219,   610,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,     0,   215,
-   216,   217,   218,   219,   757,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,     0,   215,   216,   217,   218,   219,   959,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,     0,   215,   216,   217,   218,   219,
-  1151,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,     0,   215,   216,
-   217,   218,   219,  1192,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-     0,   215,   216,   217,   218,   219,  1197,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,     0,   215,   216,   217,   218,   219,  1198,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,     0,   215,   216,   217,
-   218,   219,  1199,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,     0,
-   215,   216,   217,   218,   219,  1214,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,     0,   215,   216,   217,   218,   219,  1215,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,   215,   216,   217,   218,
-   219,  1238,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,     0,   215,
-   216,   217,   218,   219,  1328,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,     0,   215,   216,   217,   218,   219,  1426,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,     0,   215,   216,   217,   218,   219,
-  1455,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,   363,     0,     0,
-     0,   467,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,   467,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,   468,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-   512,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,   519,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,   520,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,   521,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,   623,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,   624,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,   625,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,   755,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,   756,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,   890,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-   891,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,   904,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,   905,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,   946,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,   973,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,   974,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,   975,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,   976,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,   977,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,   978,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-   979,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,   980,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,   981,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,   982,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,   983,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,   984,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1041,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1069,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1070,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1083,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1094,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1099,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1102,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1122,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1133,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1134,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1135,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1136,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1137,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1138,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1139,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1140,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1141,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1142,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1143,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1144,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1193,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1223,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1244,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1245,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1246,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1247,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1248,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1249,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1250,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1251,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1252,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1306,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1307,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1308,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1309,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1310,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1311,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1312,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1313,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1314,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1357,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1358,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1359,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1360,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1361,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1362,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1363,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1364,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1365,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1398,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1402,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1403,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1404,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1405,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1406,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-  1413,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1407,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,   215,   216,   217,   218,   219,   229,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1425,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1430,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1431,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1432,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1433,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1434,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1435,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1458,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1459,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1460,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1461,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1462,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,   215,   216,   217,   218,   219,  1463,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,   215,   216,   217,   218,   219,
-  1486,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,   215,   216,   217,   218,
-   219,  1487,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,   215,   216,   217,
-   218,   219,  1488,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,   215,   216,
-   217,   218,   219,  1500,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,   215,
-   216,   217,   218,   219,  1501,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-   215,   216,   217,   218,   219,  1502,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,   215,   216,   217,   218,   219,  1517,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,   215,   216,   217,   218,   219,  1518,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,   215,   216,   217,   218,   219,  1519,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,     0,   421,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-     0,     0,   497,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,     0,   723,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-     0,     0,   786,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,     0,   867,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-     0,     0,  1104,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,     0,     0,  1327,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-   363,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,   435,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,   437,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,   438,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,   440,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,   444,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,   445,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,   452,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,   489,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,   492,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-   495,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,   501,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,   502,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,   503,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,   504,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,   505,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,   506,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,   507,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,   508,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,   509,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-   510,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,   511,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,   513,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,   514,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,   515,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,   516,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,   517,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,   518,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,   591,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,   594,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-   606,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,   607,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,   611,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,   612,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,   613,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,   614,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,   615,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,   657,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,   661,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,   787,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-   788,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,   789,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,   790,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,   893,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,   961,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,   995,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,  1089,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,  1093,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,  1095,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,  1226,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-  1228,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,  1230,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,  1253,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,  1254,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229,     0,  1255,   215,   216,   217,   218,   219,     0,   220,
-   221,   222,   223,   278,   279,   226,   227,   228,     0,     0,
-     0,     0,     0,   229,     0,  1408,   215,   216,   217,   218,
-   219,     0,   220,   221,   222,   223,   278,   279,   226,   227,
-   228,     0,     0,     0,     0,     0,   229,     0,  1409,   215,
-   216,   217,   218,   219,     0,   220,   221,   222,   223,   278,
-   279,   226,   227,   228,     0,     0,     0,     0,     0,   229,
-     0,  1410,   215,   216,   217,   218,   219,     0,   220,   221,
-   222,   223,   278,   279,   226,   227,   228,     0,     0,     0,
-     0,     0,   229,     0,  1489,   215,   216,   217,   218,   219,
-     0,   220,   221,   222,   223,   278,   279,   226,   227,   228,
-     0,     0,     0,     0,     0,   229,     0,  1490,   215,   216,
-   217,   218,   219,     0,   220,   221,   222,   223,   278,   279,
-   226,   227,   228,     0,     0,     0,     0,     0,   229,     0,
-  1491,   215,   216,   217,   218,   219,     0,   220,   221,   222,
-   223,   278,   279,   226,   227,   228,     0,     0,     0,     0,
-     0,   229,     0,  1537,   215,   216,   217,   218,   219,     0,
-   220,   221,   222,   223,   278,   279,   226,   227,   228,     0,
-     0,     0,     0,     0,   229,     0,  1538,   215,   216,   217,
-   218,   219,     0,   220,   221,   222,   223,   278,   279,   226,
-   227,   228,     0,     0,     0,     0,     0,   229,     0,  1539,
-   215,   216,   217,   218,   219,     0,   220,   221,   222,   223,
-   278,   279,   226,   227,   228,     0,     0,     0,     0,     0,
-   229
+     0,     0,     0,     0,     0,     0,    -8,    -8,    -8,    -8,
+    -8,    -8,    -8,    -8,    23,     0,   263,   264,   265,   266,
+   267,   477,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,   -51,     2,     3,     0,     4,   277,     0,     0,     0,
+     0,    24,   460,    25,    26,    27,    28,    29,    30,    31,
+    32,    33,     0,    34,    35,    36,    37,    38,    39,    40,
+     0,     0,     0,    41,    42,    43,    44,    45,    46,     0,
+    47,    48,    49,    50,    51,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   187,     0,     0,    52,    53,
+     0,     0,     0,     0,     0,    54,     0,    55,    56,    57,
+    58,     0,    59,    60,    61,    26,    27,    28,    29,    30,
+    31,    32,    33,     0,    34,     0,    36,    37,     0,    39,
+    40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    51,     0,     0,     0,     0,
+     0,     0,     0,   188,   189,   190,     0,     0,    62,    52,
+    53,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+   200,     0,     0,     0,     0,     0,     0,     0,     0,   201,
+   202,   203,   204,   205,   206,   207,   208,   209,   210,     0,
+   211,   212,   213,   214,   215,   216,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,     0,    62,
+     0,     0,  1241,     0,  1242,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,     0,   263,   264,
+   265,   266,   267,   431,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+     0,   263,   264,   265,   266,   267,   436,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,     0,   263,   264,   265,   266,   267,   438,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,     0,   263,   264,   265,
+   266,   267,   591,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,     0,
+   263,   264,   265,   266,   267,   595,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,     0,   263,   264,   265,   266,   267,   596,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,     0,   263,   264,   265,   266,
+   267,   736,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,     0,   263,
+   264,   265,   266,   267,   934,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,     0,   263,   264,   265,   266,   267,  1119,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,     0,   263,   264,   265,   266,   267,
+  1157,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,     0,   263,   264,
+   265,   266,   267,  1162,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+     0,   263,   264,   265,   266,   267,  1163,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,     0,   263,   264,   265,   266,   267,  1164,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,     0,   263,   264,   265,
+   266,   267,  1179,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,     0,
+   263,   264,   265,   266,   267,  1180,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,     0,   263,   264,   265,   266,   267,  1203,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,     0,   263,   264,   265,   266,
+   267,  1294,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,     0,   263,
+   264,   265,   266,   267,  1392,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,     0,   263,   264,   265,   266,   267,  1421,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,   461,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,   541,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+   548,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,   549,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,   550,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,   608,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,   609,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,   610,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,   734,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,   735,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,   866,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,   867,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+   879,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,   880,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,   921,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,   947,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,   948,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,   949,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,   950,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,   951,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,   952,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,   953,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+   954,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,   955,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,   956,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,   957,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,   958,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1014,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1041,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1042,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1050,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1053,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1064,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1069,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1072,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1090,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1101,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1102,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1103,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1104,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1105,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1106,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1107,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1108,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1109,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1110,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1111,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1112,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1158,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1189,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1209,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1210,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1211,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1212,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1213,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1214,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1215,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1216,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1217,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1272,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1273,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1274,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1275,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1276,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1277,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1278,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1279,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1280,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1323,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1324,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1325,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1326,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1327,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1328,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1329,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1330,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1331,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1364,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1368,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1369,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1370,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1371,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1372,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1373,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1391,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1396,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1397,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1398,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1399,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1400,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1401,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1424,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1425,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1426,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1427,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1428,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,   263,
+   264,   265,   266,   267,  1429,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+   263,   264,   265,   266,   267,  1452,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,   263,   264,   265,   266,   267,  1453,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,   263,   264,   265,   266,   267,  1454,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,   263,   264,   265,   266,   267,  1466,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,   263,   264,   265,   266,   267,  1467,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,   263,   264,   265,   266,   267,
+  1468,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,   263,   264,   265,   266,
+   267,  1483,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,   263,   264,   265,
+   266,   267,  1484,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,   263,   264,
+   265,   266,   267,  1485,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+     0,     0,   403,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,     0,     0,   526,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+     0,     0,   702,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,     0,     0,   803,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+     0,     0,  1293,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,   402,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,   430,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,   432,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,   433,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,   435,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+   439,   263,   264,   265,   266,   267,     0,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,   440,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,   447,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,   482,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,   485,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,   488,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,   530,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,   531,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,   532,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,   533,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+   534,   263,   264,   265,   266,   267,     0,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,   535,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,   536,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,   537,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,   538,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,   539,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,   540,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,   542,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,   543,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,   544,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+   545,   263,   264,   265,   266,   267,     0,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,   546,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,   547,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,   577,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,   580,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,   592,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,   593,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,   597,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,   598,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,   599,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+   600,   263,   264,   265,   266,   267,     0,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,   601,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,   642,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,   646,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,   804,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,   805,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,   806,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,   807,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,   869,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,   935,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+   969,   263,   264,   265,   266,   267,     0,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,  1059,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,  1063,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,  1065,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,  1192,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,  1194,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,  1196,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,  1218,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,  1219,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277,     0,  1220,   263,   264,
+   265,   266,   267,     0,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,     0,     0,     0,     0,     0,   277,     0,
+  1374,   263,   264,   265,   266,   267,     0,   268,   269,   270,
+   271,   272,   273,   274,   275,   276,     0,     0,     0,     0,
+     0,   277,     0,  1375,   263,   264,   265,   266,   267,     0,
+   268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
+     0,     0,     0,     0,   277,     0,  1376,   263,   264,   265,
+   266,   267,     0,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,     0,     0,     0,     0,     0,   277,     0,  1455,
+   263,   264,   265,   266,   267,     0,   268,   269,   270,   271,
+   272,   273,   274,   275,   276,     0,     0,     0,     0,     0,
+   277,     0,  1456,   263,   264,   265,   266,   267,     0,   268,
+   269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
+     0,     0,     0,   277,     0,  1457,   263,   264,   265,   266,
+   267,     0,   268,   269,   270,   271,   272,   273,   274,   275,
+   276,     0,     0,     0,     0,     0,   277,     0,  1503,   263,
+   264,   265,   266,   267,     0,   268,   269,   270,   271,   272,
+   273,   274,   275,   276,     0,     0,     0,     0,     0,   277,
+     0,  1504,   263,   264,   265,   266,   267,     0,   268,   269,
+   270,   271,   272,   273,   274,   275,   276,     0,     0,     0,
+     0,     0,   277,     0,  1505,   263,   264,   265,   266,   267,
+     0,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     0,     0,     0,     0,     0,   277
 };
 
-static const short yycheck[] = {     7,
-   114,     4,  1055,     4,     4,     4,   318,    38,     6,     6,
-   987,   434,    81,     4,     6,    23,     4,     4,    60,    60,
-    59,    59,     4,    65,    65,     4,  1117,   143,   162,   163,
-     6,    42,    43,   172,   162,   163,     6,     7,   162,   163,
-   179,   162,   163,     0,     1,   179,     3,   178,     6,   180,
-   178,   911,   180,    45,   178,     6,   180,   178,     7,   180,
-   920,   162,   163,   162,   163,   162,   163,   927,   162,   163,
-   162,   163,    63,     6,    60,    63,    63,   174,   179,    65,
-   179,    63,   162,   163,   178,   173,   178,   162,   163,    51,
-    52,   179,   100,   101,   102,   103,   104,     4,   178,   173,
-   162,   163,    84,   178,   173,    84,  1083,   162,   163,     6,
-   118,     6,   120,   121,   122,   123,   178,     7,   126,     6,
-   173,     7,   173,   178,   132,   133,   134,   135,   179,   137,
-   138,     6,   140,   141,   142,   173,   144,   560,   180,   180,
-   179,   179,   173,  1234,   172,   156,     6,   169,   159,   171,
-     6,   179,   160,   161,   165,   173,   113,   114,   115,   116,
-   117,   118,   119,   120,     6,   162,   163,   174,   176,     6,
-   178,   178,   180,   181,   173,     6,   179,     6,   179,   179,
-   188,   179,   190,   191,   192,   193,   194,   195,   196,   197,
-   198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
-   208,   209,   210,   179,   162,   163,     6,   215,   216,   217,
-   218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
-   228,   229,   230,   173,  1084,  1278,     3,     4,  1088,   162,
-   163,     6,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,   173,   162,   163,     7,   148,   149,
-   150,   151,   148,   149,   150,   151,   173,   162,   163,   173,
-   278,   279,   179,   162,   163,   162,   163,   173,   286,   169,
-   170,   289,   173,   169,   170,   174,   294,   162,   163,   174,
-   298,   299,   300,   178,   302,   303,   304,   305,   306,   307,
-   308,    42,   162,   163,   315,   316,   162,   163,    37,    38,
-   173,    40,   320,   321,   322,   326,   162,   163,   164,   165,
-   166,   174,    38,   174,   332,   178,   172,   178,     3,     4,
-   338,   178,    38,   180,     9,    10,    11,    12,    13,    14,
+static const short yycheck[] = {    23,
+    86,     4,     4,   315,     4,     6,  1027,     6,    38,   429,
+    59,    59,     4,    60,   886,     3,   143,    60,    65,     4,
+    81,     7,    65,   895,  1085,     6,    78,   961,     7,     6,
+   902,     6,   169,   170,   162,   163,     6,    60,   175,     4,
+   177,     4,    65,    34,    35,    36,    37,    38,    39,    40,
+    41,   179,    43,    43,    45,    46,     6,    48,    49,   162,
+   163,     7,   162,   163,    45,   162,   163,    91,   162,   163,
+   162,   163,   174,    64,   173,   178,   178,   180,    63,   179,
+   179,   178,   174,   180,   178,   173,   180,    78,    79,   162,
+   163,   115,   116,   117,   118,   119,   120,   121,    63,    84,
+   124,   125,    53,    54,    55,    56,   179,    58,   132,   133,
+   134,   135,   173,   137,   138,     3,   140,   141,   142,  1053,
+   144,    84,   173,     7,   173,   162,   163,   173,   162,   163,
+   179,   179,   552,   180,   186,   159,   160,   180,  1199,   173,
+   173,   178,   178,   173,   180,   179,   179,   138,   162,   163,
+   178,   175,   180,   177,     6,   179,   180,   162,   163,   178,
+   174,   180,   148,   149,   150,   151,   156,   157,   158,   148,
+   149,   150,   151,   178,   164,   163,   179,   179,   179,   179,
+   179,   173,  1054,   169,   170,     6,  1058,   162,   163,   180,
+   169,   170,   162,   163,    34,     6,     7,    37,    38,   223,
+    40,     6,   226,   227,   228,   229,   230,   231,   232,   233,
+   234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
+   244,   245,   246,  1244,     6,   113,   114,   115,   116,   117,
+   118,   119,   120,    98,    99,   100,   101,   102,   173,   263,
+   264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
+   274,   275,   276,   277,   162,   163,     8,   178,    34,   180,
+   284,    37,    38,   287,   148,   149,   150,   151,   292,     6,
+   178,   174,   296,   297,   298,   178,   300,   301,   302,   303,
+   304,   305,   306,   162,   163,   169,   170,   162,   163,    34,
+   162,   163,    37,   317,   318,   319,   169,   170,   178,   178,
+   180,     6,   175,   178,   177,   329,   178,   178,   174,   180,
+   173,   335,   178,   173,  1186,  1187,  1188,  1189,   169,   170,
+   143,  1193,   312,   313,   173,   148,   162,   163,   164,   165,
+   166,   169,   170,   323,   169,   170,   172,   175,    42,   177,
+   178,    37,    38,   174,    40,    50,   169,   178,     3,     4,
+   173,   174,    51,    52,     9,    10,    11,    12,    13,    14,
     15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,    34,    38,    40,    37,
-  1220,  1221,  1222,  1223,   169,   170,   178,  1227,   180,   179,
-   175,     8,   177,   178,    38,   152,   153,   154,   155,   156,
-   179,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-    34,   168,   179,    37,    38,   172,   173,   179,   148,   149,
-   150,   151,   179,    34,   174,     6,    37,    38,   178,    40,
-     5,   422,   423,   424,   422,   423,   424,   425,   426,   169,
-   170,   429,   169,   170,     6,   174,   434,   173,   175,   178,
-   177,     0,     1,   173,     3,  1295,  1296,     4,   446,  1299,
-     4,   169,   170,   451,   164,   165,   166,   175,   456,   177,
-   169,   170,   172,   464,    38,   178,   175,   180,   177,   467,
-   468,   169,   170,   173,   169,   170,     5,   175,   476,   177,
-   175,   178,   177,   180,   173,   483,    53,    54,    55,    56,
-   178,    58,   180,   169,   170,   493,   494,   162,   163,   178,
-  1350,   180,   500,   168,   178,   178,   180,   180,   173,   169,
-   170,   176,   169,   170,   512,    98,    99,   100,   101,   102,
-   173,   519,   520,   521,   522,   152,   153,   154,   155,   156,
+    25,    26,    27,    28,    29,    30,   173,   164,   165,   166,
+   404,   405,   406,   407,   408,   172,   178,   411,   180,  1261,
+  1262,   169,   170,  1265,   174,   169,   170,   175,   178,   177,
+   152,   153,   154,   155,   156,   429,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   173,    38,   441,   169,   170,
+   172,     8,   446,    38,   175,   174,   177,   451,   180,   178,
+   178,   178,   180,   180,    38,    40,   460,   461,   178,   178,
+   180,   180,    38,     6,  1316,   469,   179,   152,   153,   154,
+   155,   156,   476,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,   486,   487,     3,     4,   178,   172,   180,   459,
+     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,    30,   179,   178,  1366,   180,     6,   178,   178,   180,
+   180,   168,   179,   170,   179,   529,     6,   162,   163,     5,
+   173,   173,     6,   168,     4,     4,    38,   541,   173,     3,
+   173,   176,     5,  1395,   548,   549,   550,   173,   552,   553,
+   554,   555,   556,   557,   846,   173,   173,   173,   173,   173,
+   173,   173,   173,   173,   173,   173,   570,   173,   173,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,   585,   586,   587,   173,   152,   153,   154,   155,   156,
    173,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   178,   178,   180,   180,   173,   172,   178,   178,   180,   180,
-  1400,   173,     6,   180,   113,   114,   115,   116,   117,   118,
-   119,   120,   560,   561,   562,   563,   564,   565,   870,   178,
-   571,   180,   570,   571,   572,   178,   173,   180,   173,  1429,
-   139,   140,     5,   142,   173,   173,   587,   155,   156,   173,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,   703,
-   173,   599,   600,   601,   172,     6,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,   173,     6,   173,   173,   617,
-   172,    86,   623,   624,   625,   173,   173,   173,   173,   173,
-   173,   173,   173,   173,   173,   173,   143,   173,   173,   173,
-   173,   148,    66,    67,    68,    69,    70,    71,    72,    73,
-    74,    75,    76,    77,   179,   653,   654,   179,   656,   179,
-   173,   173,   177,   170,     6,   179,  1516,   174,   175,   179,
-   179,   173,   172,   674,   672,   673,   173,   173,   173,     3,
-     4,     5,   683,   173,   173,     9,    10,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    30,   173,     3,     4,
-     5,   173,   173,   173,     9,    10,    11,    12,    13,    14,
-    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,   173,   173,   173,   173,
-   173,   173,   740,   173,  1046,   173,   173,   173,   173,     5,
-     5,   173,   173,   173,   173,   753,   180,   755,   756,   173,
-   173,   173,   173,   173,   173,   763,   764,   765,   766,   767,
-   768,   769,   770,   771,   772,   773,   774,   174,   178,   178,
-   175,   177,     7,     7,   782,   783,     7,   785,     7,    82,
-     3,     4,   179,   791,   175,     5,     9,    10,    11,    12,
-    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,    30,     5,     5,
-     5,     5,     5,     5,     5,     5,     5,     5,     5,   933,
-     5,     5,     5,     5,     5,     5,     5,     5,   162,   163,
-     5,   839,     5,   844,   168,     5,   131,     5,     5,   173,
-     5,     5,     3,   851,   852,   179,     5,     5,     5,   857,
-   858,     6,     6,     6,     4,     6,   175,   162,   163,     7,
-   871,     6,   873,   168,   875,     7,     7,     7,   173,     6,
-     6,   180,     7,     7,   179,     7,   180,   179,   179,     7,
-   173,     7,   890,   891,   145,     5,   178,   178,   178,   178,
-   178,   178,   178,   178,   902,   178,   904,   178,   178,     6,
-   178,   178,   178,   178,   178,   178,   914,   178,   178,   178,
-   178,   178,     6,   921,   922,   923,   178,     6,   178,   178,
-   928,   178,   178,   178,   932,   178,   934,   178,   174,   178,
-     6,   179,     7,     7,     7,     7,     7,     7,   946,   162,
-   163,     7,     7,    50,     7,   168,     7,     7,     7,     7,
-   173,     8,   173,     6,   962,   173,   179,   173,   173,   173,
-   173,   173,   173,   173,   173,   973,   974,   975,   976,   977,
-   978,   979,   980,   981,   982,   983,   984,     7,     7,   141,
-     3,     3,     3,     3,     3,   993,     3,     4,   164,     3,
-   998,     3,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,     3,     3,     3,   173,     3,     3,
-  1031,  1032,  1033,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
-   173,     5,  1040,  1041,     6,     3,     3,     6,     3,     5,
-     3,   179,  1050,  1051,  1052,   152,   153,   154,   155,   156,
-   177,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     6,  1069,  1070,     6,     6,   172,     6,     6,  1076,     6,
-    83,   177,   589,   590,   178,   592,   178,   174,  1086,   596,
-   597,   174,   178,   178,   174,   177,  1094,   178,   175,   174,
-   178,  1099,   178,   174,  1102,   152,   153,   154,   155,   156,
-   178,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   178,   178,   174,     6,   178,   172,  1124,   174,   174,     6,
-     6,     6,     6,   178,   178,  1133,  1134,  1135,  1136,  1137,
-  1138,  1139,  1140,  1141,  1142,  1143,  1144,   178,   655,   178,
-   178,   658,   178,   178,  1152,   162,   163,   178,     6,     6,
-   178,   168,     6,     6,     6,     6,   173,     6,     6,     6,
-     6,   177,   179,   680,   681,     6,     6,     6,    83,   686,
-   687,     7,     4,     3,     3,     6,   693,     3,   695,     6,
-   152,   153,   154,   155,   156,  1193,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,   152,   153,   154,   155,   156,
-   172,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   164,  1219,   729,     6,   731,   172,     6,     6,     3,     6,
-     6,   178,     3,   180,   741,   742,   743,     6,     3,   746,
-   747,   748,   749,   750,   751,   752,  1244,  1245,  1246,  1247,
-  1248,  1249,  1250,  1251,  1252,     3,     3,     6,   179,    84,
-     4,     7,  1260,    66,    67,    68,    69,    70,    71,    72,
-    73,    74,    75,    76,    77,  1273,   180,  1275,   152,   153,
-   154,   155,   156,   179,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,    80,     6,   174,   178,   178,   172,     6,
-   178,   174,    83,     6,   174,   174,   178,   178,  1306,  1307,
-  1308,  1309,  1310,  1311,  1312,  1313,  1314,  1315,  1316,  1317,
-   178,   174,  1320,   152,   153,   154,   155,   156,     8,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,   178,   174,
-   174,     3,     6,   172,     3,   178,     6,   179,     6,   177,
-  1348,  1349,     6,     6,     6,     6,     6,     3,     6,  1357,
-  1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,  1366,     5,
-  1368,   177,  1370,     6,     6,   177,  1374,   180,     4,   180,
-     5,   179,     6,     6,   178,   178,   178,   178,   174,   174,
-   897,     4,   174,   900,   178,    63,     6,     6,   905,  1397,
-  1398,     6,     6,     6,  1402,  1403,  1404,  1405,  1406,  1407,
-   178,   178,   178,     6,     6,     6,     6,   924,     6,     5,
-   175,     5,   178,   180,   178,   178,   178,  1425,   178,   174,
-     6,   174,  1430,  1431,  1432,  1433,  1434,  1435,  1436,  1437,
-  1438,   154,   155,   156,   178,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   178,     6,   179,   179,   179,   172,
-  1458,  1459,  1460,  1461,  1462,  1463,  1464,     5,  1466,    80,
-  1468,     5,   152,   153,   154,   155,   156,     6,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   180,  1486,  1487,
-  1488,   179,   172,   178,   178,   174,   174,   180,   180,    80,
-   177,     6,  1500,  1501,  1502,  1503,  1504,  1505,     6,    84,
-     6,     6,     6,     6,     6,     6,   179,   178,   147,  1517,
-  1518,  1519,  1520,   178,  1522,   174,  1524,     6,     6,   152,
-   153,   154,   155,   156,   178,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   178,     6,  1544,  1545,  1546,   172,
-     6,   179,   179,     6,     6,  1553,   178,  1555,   179,  1557,
-   178,   178,     6,   179,   179,   179,  1073,     6,  1075,     6,
-   178,     6,   174,   179,     6,     6,     6,     0,   179,   179,
-     0,     6,     6,  1242,     3,     4,     5,   627,     7,  1096,
+   173,   173,   173,   573,   173,   172,     6,   174,   173,   152,
+   153,   154,   155,   156,   680,   158,   159,   160,   161,   162,
+   163,   164,   165,   166,   173,     6,     6,     5,   173,   172,
+  1482,   173,   179,   173,   638,   639,     6,   641,   608,   609,
+   610,   173,   179,   162,   163,   649,   650,   173,   179,   168,
+   173,     6,   173,   173,   173,   173,    86,   179,     6,   173,
+   179,     5,   152,   153,   154,   155,   156,   179,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   173,   179,   173,
+   173,   651,   172,   180,   173,   173,   173,     3,     4,     5,
+   660,   173,   173,     9,    10,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,   173,   720,   173,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,  1019,   173,   733,
+   734,   735,   172,   765,   173,   173,   173,   173,   742,   743,
+   744,   745,   746,   747,   748,   749,   750,   751,   752,   753,
+   173,   173,   173,   173,   173,   173,   173,   761,   762,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,   173,   575,   576,   173,   578,   173,   173,   173,   582,
+   583,   173,   152,   153,   154,   155,   156,   173,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   152,   153,   154,
+   155,   156,   172,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,   816,   173,   178,   174,   178,   172,     5,   172,
+   177,   175,     7,     7,   828,   829,     7,     7,    82,   179,
+   834,   835,   144,     5,     5,     5,     5,   640,     5,     5,
+   643,     5,   908,     5,     5,   877,   162,   163,     5,     5,
+     5,   821,   168,     5,   657,   658,     5,   173,     5,     5,
+   663,   664,   866,   867,     5,     5,     5,   670,     5,   672,
+     5,     5,   876,   180,     5,   879,     6,   847,   131,   849,
+     5,   851,     5,     5,     5,   889,     3,     5,   175,     5,
+     4,     6,   896,   897,   898,     5,     7,     6,     6,   903,
+     6,     6,     6,   907,     7,     7,   709,     7,   711,     6,
+   180,     7,     7,     7,   180,   179,   179,   921,   721,   722,
+   723,     7,   173,   726,   727,   728,   729,   730,   731,   732,
+     7,   145,   936,   178,   178,   178,   178,   178,   178,   971,
+   178,   178,   178,   947,   948,   949,   950,   951,   952,   953,
+   954,   955,   956,   957,   958,   178,   178,   178,   178,   178,
+   178,   178,   178,   967,     3,     4,     5,   178,     7,   178,
      9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    30,     6,    32,     6,   601,    -1,    -1,     3,     4,
-    -1,   895,    -1,  1130,     9,    10,    11,    12,    13,    14,
-    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,     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,    -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,    -1,    -1,    -1,    -1,    -1,  1216,
-  1217,    -1,    -1,   152,   153,   154,   155,   156,    -1,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,    -1,   148,
-   149,   150,   151,   172,    -1,    -1,  1243,    -1,    -1,    -1,
-    -1,    -1,    -1,   162,   163,    -1,    -1,    -1,    -1,   168,
-   169,   170,    -1,    -1,   173,    -1,   175,    -1,   177,    -1,
-   152,   153,   154,   155,   156,    -1,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,    -1,    -1,   162,   163,    -1,
-   172,    -1,    -1,   168,    -1,  1292,    -1,    -1,   173,    -1,
-    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,  1305,    -1,
-    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,    -1,
-    -1,   168,    -1,    -1,    -1,    -1,   173,    -1,    -1,   176,
-    -1,    -1,    -1,    -1,    -1,   152,   153,   154,   155,   156,
-    -1,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-    -1,   168,     3,     4,  1351,   172,   173,    -1,     9,    10,
-    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,     6,    -1,    -1,    -1,     3,
-     4,    -1,    -1,    -1,  1401,     9,    10,    11,    12,    13,
+    29,    30,   178,    32,     5,   178,   178,   174,     6,   178,
+  1004,  1005,  1006,  1007,  1008,  1009,  1010,     6,     6,  1013,
+  1014,     6,     6,   178,     7,   178,     7,     7,  1022,  1023,
+  1024,   179,   152,   153,   154,   155,   156,   178,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,  1041,  1042,     7,
+   178,     7,   172,     7,  1048,   178,   178,     7,     7,   178,
+   178,     7,  1056,     7,     7,     7,     7,     7,     7,     3,
+  1064,   173,     3,     3,     3,  1069,   173,   141,  1072,     5,
+   873,   164,     6,     3,   154,   155,   156,   880,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,     3,  1092,  1121,
+   173,   173,   172,     3,   173,   173,   899,  1101,  1102,  1103,
+  1104,  1105,  1106,  1107,  1108,  1109,  1110,  1111,  1112,   148,
+   149,   150,   151,   173,   173,   173,   173,   173,   173,     3,
+     3,     3,     3,   162,   163,     3,     3,     3,     3,   168,
+   169,   170,     5,     3,   173,     6,   175,   177,   177,   155,
+   156,     6,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,     6,     6,  1185,  1158,     6,   172,   152,   153,   154,
+   155,   156,     6,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,   152,   153,   154,   155,   156,   172,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,     6,     6,    83,
+   179,   179,   172,   178,  1226,   178,   174,   178,   178,   174,
+   180,   178,   174,   174,   178,  1209,  1210,  1211,  1212,  1213,
+  1214,  1215,  1216,  1217,     6,   178,   178,   174,   152,   153,
+   154,   155,   156,   178,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   178,   177,  1239,   178,  1241,   172,     6,
+   178,   178,  1045,   178,  1047,   174,   178,  1050,     6,     6,
+   178,   178,   178,   178,  1286,   174,   178,   178,     6,   177,
+     6,     6,     6,  1066,     6,     6,     6,     6,  1272,  1273,
+  1274,  1275,  1276,  1277,  1278,  1279,  1280,  1281,  1282,  1283,
+     6,     6,     6,  1315,     6,     6,    83,     7,     3,     6,
+     3,     7,     6,     3,     6,  1098,   164,     6,     6,     3,
+     6,     6,     3,     6,     3,     3,     3,    84,  1340,    80,
+  1314,     6,     4,   179,   174,   178,   180,   179,   174,  1323,
+  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,  1332,   178,
+  1334,   178,  1336,   152,   153,   154,   155,   156,   178,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   178,   174,
+   174,   178,   174,   172,   174,   178,   177,   174,     6,  1363,
+  1364,   141,   178,     6,  1368,  1369,  1370,  1371,  1372,  1373,
+   179,     3,    83,     6,     3,     6,     6,     5,  1181,  1182,
+     6,     6,     6,     6,     6,     3,     6,  1391,   177,     6,
+     6,     4,  1396,  1397,  1398,  1399,  1400,  1401,  1402,  1403,
+  1404,     5,   180,     6,   179,  1208,   178,   180,   178,   178,
+   178,   174,   174,   178,   174,     6,    63,   178,     6,   178,
+  1424,  1425,  1426,  1427,  1428,  1429,  1430,   178,  1432,     6,
+  1434,   152,   153,   154,   155,   156,     6,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,     6,     6,  1452,  1453,
+  1454,   172,     6,     6,     6,  1258,     6,     6,     5,     5,
+   178,   180,  1466,  1467,  1468,  1469,  1470,  1471,  1271,    80,
+   141,   178,     6,   175,     6,     5,     5,    84,   178,  1483,
+  1484,  1485,  1486,   174,  1488,   174,  1490,     6,   178,     6,
+   178,   178,   178,   174,   179,   179,   179,     6,   180,   179,
+   178,   178,   174,   177,   180,   180,  1510,  1511,  1512,    80,
+     6,     6,     6,     6,  1317,  1519,     6,  1521,     6,  1523,
+     3,     4,     6,   179,   178,   178,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,    30,   146,     6,
+   147,   178,     6,     6,     6,   174,     6,   178,     6,     3,
+     4,     6,   174,   178,  1367,     9,    10,    11,    12,    13,
     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    30,     3,     4,    -1,
-    -1,  1428,    -1,     9,    10,    11,    12,    13,    14,    15,
+    24,    25,    26,    27,    28,    29,    30,     3,     4,     5,
+   179,  1394,   179,     9,    10,    11,    12,    13,    14,    15,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,     3,     4,    -1,    -1,  1456,
-    -1,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    26,    27,    28,    29,    30,     3,     4,   179,   179,  1422,
+   178,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,    30,     6,    -1,    -1,    -1,    -1,  1485,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,    -1,
-    -1,    -1,  1499,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   162,   163,     6,    -1,    -1,    -1,   168,    -1,    -1,
-    -1,    -1,   173,    -1,    -1,    -1,   152,   153,   154,   155,
-   156,    -1,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   152,   153,   154,   155,   156,   172,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,     6,    -1,   162,   163,
-    -1,   172,    -1,    -1,   168,    -1,    -1,    -1,    -1,   173,
-    -1,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    28,    29,    30,   152,   153,   154,   155,   156,  1451,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   178,     6,
+     6,   179,  1465,   172,   152,   153,   154,   155,   156,   179,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   162,
+   163,   178,     6,     6,   172,   168,     6,   179,     3,     4,
+   173,     0,   179,   176,     9,    10,    11,    12,    13,    14,
+    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,     6,   179,   162,   163,
+     6,     0,   612,     7,   168,     7,     7,   871,  1207,   173,
+   587,     6,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,    -1,
     -1,    -1,   168,     6,    -1,    -1,    -1,   173,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,    -1,
     -1,    -1,    -1,    -1,   162,   163,    -1,    -1,    -1,    -1,
-   168,    -1,    -1,     6,    -1,   173,    -1,    -1,    -1,   152,
-   153,   154,   155,   156,    -1,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   152,   153,   154,   155,   156,   172,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,   152,
-   153,   154,   155,   156,   172,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,     6,    -1,    -1,    -1,    -1,   172,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   152,   153,   154,   155,   156,    -1,   158,   159,
+   168,     3,     4,    -1,    -1,   173,    -1,     9,    10,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    30,     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,     6,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,    -1,
+    -1,    -1,     6,   168,    -1,    -1,    -1,    -1,   173,    -1,
+    -1,    -1,   152,   153,   154,   155,   156,     6,   158,   159,
    160,   161,   162,   163,   164,   165,   166,   152,   153,   154,
    155,   156,   172,   158,   159,   160,   161,   162,   163,   164,
    165,   166,     6,    -1,    -1,    -1,    -1,   172,    -1,   152,
    153,   154,   155,   156,    -1,   158,   159,   160,   161,   162,
    163,   164,   165,   166,   152,   153,   154,   155,   156,   172,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,   152,
-   153,   154,   155,   156,   172,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,     6,    -1,    -1,    -1,    -1,   172,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,     6,
+    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,
+   162,   163,    -1,    -1,     6,    -1,   168,    -1,    -1,    -1,
+    -1,   173,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   162,   163,
+    -1,    -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,   173,
+     6,    -1,    -1,   152,   153,   154,   155,   156,    -1,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   152,   153,
+   154,   155,   156,   172,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   152,   153,   154,   155,   156,   172,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,     6,    -1,
+    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,   152,   153,
+   154,   155,   156,     6,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,
     -1,    -1,    -1,    -1,     6,    -1,    -1,    -1,    -1,    -1,
-   152,   153,   154,   155,   156,    -1,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,   152,   153,   154,   155,   156,
-   172,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     6,    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,     6,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   152,   153,
-   154,   155,   156,    -1,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,     6,    -1,    -1,    -1,    -1,   172,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,     6,    -1,    -1,    -1,    -1,    -1,    -1,
-   152,   153,   154,   155,   156,    -1,   158,   159,   160,   161,
+    -1,    -1,    -1,    -1,    -1,   152,   153,   154,   155,   156,
+    -1,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+   152,   153,   154,   155,   156,   172,   158,   159,   160,   161,
    162,   163,   164,   165,   166,   152,   153,   154,   155,   156,
    172,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   152,   153,   154,   155,   156,   172,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,     6,    -1,    -1,    -1,    -1,
-   172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,     8,    -1,    -1,    -1,   152,   153,   154,   155,
+     6,    -1,    -1,    -1,    -1,   172,   152,   153,   154,   155,
    156,    -1,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   152,   153,   154,   155,   156,   172,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,     8,    -1,    -1,    -1,
-    -1,   172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   152,
-   153,   154,   155,   156,    -1,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   152,   153,   154,   155,   156,   172,
+   166,     6,    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,     8,   152,   153,   154,   155,   156,    -1,
    158,   159,   160,   161,   162,   163,   164,   165,   166,   152,
    153,   154,   155,   156,   172,   158,   159,   160,   161,   162,
    163,   164,   165,   166,     8,    -1,    -1,    -1,    -1,   172,
-    -1,    -1,    -1,    -1,    -1,   141,    -1,    -1,    -1,     8,
-    -1,    -1,    -1,    -1,    -1,    -1,   152,   153,   154,   155,
-   156,    -1,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   152,   153,   154,   155,   156,   172,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   152,   153,   154,   155,
-   156,   172,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    152,   153,   154,   155,   156,    -1,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,   141,    -1,    -1,    -1,    -1,
-   172,    -1,    -1,    -1,    -1,    -1,   152,   153,   154,   155,
+   162,   163,   164,   165,   166,     8,    -1,    -1,    -1,    -1,
+   172,    -1,    -1,    -1,    -1,   152,   153,   154,   155,   156,
+     8,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,
+    -1,   178,    -1,   180,    -1,    -1,   152,   153,   154,   155,
    156,    -1,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,
+   166,    -1,    -1,    -1,    -1,    -1,   172,   152,   153,   154,
+   155,   156,    -1,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,   152,   153,   154,   155,   156,   172,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   152,   153,   154,
+   155,   156,   172,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   152,   153,
    154,   155,   156,    -1,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,   152,   153,   154,   155,   156,   172,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
-    -1,    -1,    -1,   172,    34,    35,    36,    37,    38,    39,
-    40,    41,    -1,    43,    -1,    45,    46,    -1,    48,    49,
-    -1,    34,    35,    36,    37,    38,    39,    40,    41,    -1,
-    43,    -1,    45,    46,    64,    48,    49,    -1,    -1,     0,
-     1,    -1,    -1,     4,    -1,    -1,    -1,    -1,    78,    79,
-    -1,    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    78,    79,    -1,    -1,    -1,
-    31,    -1,    33,    34,    35,    36,    37,    38,    39,    40,
-    41,    -1,    43,    44,    45,    46,    47,    48,    49,    -1,
-    -1,    -1,    53,    54,    55,    56,    57,    58,    -1,    60,
-    61,    62,    63,    64,    -1,    -1,    -1,    -1,   138,    -1,
-    -1,    -1,    -1,    -1,    37,    -1,    -1,    78,    79,    -1,
-    -1,    -1,    -1,    -1,    85,   138,    87,    88,    89,    90,
-    -1,    92,    93,    94,    34,    35,    36,    37,    38,    39,
-    40,    41,    -1,    43,    -1,    45,    46,    -1,    48,    49,
-   180,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    64,    -1,    -1,   180,    -1,    -1,
-    -1,    -1,    95,    96,    97,    -1,    -1,   138,    78,    79,
-   103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,   122,
-   123,   124,   125,   126,   127,   128,   129,   130,    -1,   132,
-   133,   134,   135,   136,   137,   152,   153,   154,   155,   156,
-    -1,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,   138,    -1,
-    -1,   178,    -1,   180,   152,   153,   154,   155,   156,    -1,
+   164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,   152,
+   153,   154,   155,   156,    -1,   158,   159,   160,   161,   162,
+   163,   164,   165,   166,   152,   153,   154,   155,   156,   172,
    158,   159,   160,   161,   162,   163,   164,   165,   166,    -1,
-    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,
-   178,    -1,   180,   152,   153,   154,   155,   156,    -1,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
-    -1,    -1,    -1,   172,    -1,    -1,   152,   153,   154,   155,
+    -1,    -1,    -1,    -1,   172,    34,    35,    36,    37,    38,
+    39,    40,    41,    -1,    43,    -1,    45,    46,    -1,    48,
+    49,    -1,    -1,     0,     1,    -1,     3,     4,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+    79,    -1,    -1,    -1,    31,    -1,    33,    34,    35,    36,
+    37,    38,    39,    40,    41,    -1,    43,    44,    45,    46,
+    47,    48,    49,    -1,    -1,    -1,    53,    54,    55,    56,
+    57,    58,    -1,    60,    61,    62,    63,    64,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    78,    79,    -1,    -1,    -1,    -1,    -1,    85,   138,
+    87,    88,    89,    90,    -1,    92,    93,    94,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   113,   114,   115,   116,
+   117,   118,   119,   120,     4,    -1,   152,   153,   154,   155,
    156,   180,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,   152,
-   153,   154,   155,   156,   180,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   144,    -1,    -1,    -1,    -1,   172,
-    -1,    -1,   152,   153,   154,   155,   156,   180,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   152,   153,   154,
-   155,   156,   172,   158,   159,   160,   161,   162,   163,   164,
+   166,   138,   139,   140,    -1,   142,   172,    -1,    -1,    -1,
+    -1,    31,   178,    33,    34,    35,    36,    37,    38,    39,
+    40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
+    -1,    -1,    -1,    53,    54,    55,    56,    57,    58,    -1,
+    60,    61,    62,    63,    64,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    78,    79,
+    -1,    -1,    -1,    -1,    -1,    85,    -1,    87,    88,    89,
+    90,    -1,    92,    93,    94,    34,    35,    36,    37,    38,
+    39,    40,    41,    -1,    43,    -1,    45,    46,    -1,    48,
+    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    95,    96,    97,    -1,    -1,   138,    78,
+    79,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,
+   122,   123,   124,   125,   126,   127,   128,   129,   130,    -1,
+   132,   133,   134,   135,   136,   137,   152,   153,   154,   155,
+   156,    -1,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,   138,
+    -1,    -1,   178,    -1,   180,   152,   153,   154,   155,   156,
+    -1,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,   152,   153,
+   154,   155,   156,   180,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,
+    -1,   152,   153,   154,   155,   156,   180,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,
+    -1,   172,    -1,    -1,   152,   153,   154,   155,   156,   180,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,    -1,
+    -1,    -1,    -1,    -1,   172,    -1,    -1,   152,   153,   154,
+   155,   156,   180,   158,   159,   160,   161,   162,   163,   164,
    165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,
    152,   153,   154,   155,   156,   180,   158,   159,   160,   161,
    162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
@@ -2175,11 +2090,6 @@ static const short yycheck[] = {     7,
    153,   154,   155,   156,   180,   158,   159,   160,   161,   162,
    163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,
     -1,    -1,   152,   153,   154,   155,   156,   180,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
-    -1,    -1,   172,    -1,    -1,   152,   153,   154,   155,   156,
-   180,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-    -1,    -1,    -1,    -1,    -1,   172,    -1,   174,    -1,    -1,
-    -1,   178,   152,   153,   154,   155,   156,    -1,   158,   159,
    160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
     -1,    -1,   172,   152,   153,   154,   155,   156,   178,   158,
    159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
@@ -2346,18 +2256,6 @@ static const short yycheck[] = {     7,
    152,   153,   154,   155,   156,   178,   158,   159,   160,   161,
    162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
    172,   152,   153,   154,   155,   156,   178,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,
-    -1,   172,   152,   153,   154,   155,   156,   178,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
-    -1,    -1,   172,   152,   153,   154,   155,   156,   178,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
-    -1,    -1,    -1,   172,   152,   153,   154,   155,   156,   178,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,    -1,
-    -1,    -1,    -1,    -1,   172,   152,   153,   154,   155,   156,
-   178,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   146,    -1,    -1,    -1,    -1,   172,   152,   153,   154,   155,
-   156,   178,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   152,   153,   154,   155,   156,   172,   158,   159,   160,
    161,   162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,
     -1,   172,   152,   153,   154,   155,   156,   178,   158,   159,
    160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
@@ -2405,8 +2303,16 @@ static const short yycheck[] = {     7,
    160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
     -1,    -1,   172,   152,   153,   154,   155,   156,   178,   158,
    159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
-    -1,    -1,    -1,   172,    -1,    -1,    -1,   176,   152,   153,
-   154,   155,   156,    -1,   158,   159,   160,   161,   162,   163,
+    -1,    -1,    -1,   172,   152,   153,   154,   155,   156,   178,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,    -1,
+    -1,    -1,    -1,    -1,   172,   152,   153,   154,   155,   156,
+   178,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+    -1,    -1,    -1,    -1,    -1,   172,   152,   153,   154,   155,
+   156,   178,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,    -1,    -1,    -1,    -1,    -1,   172,   152,   153,   154,
+   155,   156,   178,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,    -1,    -1,    -1,    -1,    -1,   172,   152,   153,
+   154,   155,   156,   178,   158,   159,   160,   161,   162,   163,
    164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,
     -1,    -1,   176,   152,   153,   154,   155,   156,    -1,   158,
    159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
@@ -2420,7 +2326,16 @@ static const short yycheck[] = {     7,
    164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,
     -1,    -1,   176,   152,   153,   154,   155,   156,    -1,   158,
    159,   160,   161,   162,   163,   164,   165,   166,    -1,    -1,
-    -1,    -1,    -1,   172,    -1,    -1,    -1,   176,   152,   153,
+    -1,    -1,    -1,   172,    -1,   174,   152,   153,   154,   155,
+   156,    -1,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,   174,   152,
+   153,   154,   155,   156,    -1,   158,   159,   160,   161,   162,
+   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,
+    -1,   174,   152,   153,   154,   155,   156,    -1,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
+    -1,    -1,   172,    -1,   174,   152,   153,   154,   155,   156,
+    -1,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+    -1,    -1,    -1,    -1,    -1,   172,    -1,   174,   152,   153,
    154,   155,   156,    -1,   158,   159,   160,   161,   162,   163,
    164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,
    174,   152,   153,   154,   155,   156,    -1,   158,   159,   160,
@@ -2558,19 +2473,7 @@ static const short yycheck[] = {     7,
    160,   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,
     -1,    -1,   172,    -1,   174,   152,   153,   154,   155,   156,
     -1,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-    -1,    -1,    -1,    -1,    -1,   172,    -1,   174,   152,   153,
-   154,   155,   156,    -1,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,
-   174,   152,   153,   154,   155,   156,    -1,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,
-    -1,   172,    -1,   174,   152,   153,   154,   155,   156,    -1,
-   158,   159,   160,   161,   162,   163,   164,   165,   166,    -1,
-    -1,    -1,    -1,    -1,   172,    -1,   174,   152,   153,   154,
-   155,   156,    -1,   158,   159,   160,   161,   162,   163,   164,
-   165,   166,    -1,    -1,    -1,    -1,    -1,   172,    -1,   174,
-   152,   153,   154,   155,   156,    -1,   158,   159,   160,   161,
-   162,   163,   164,   165,   166,    -1,    -1,    -1,    -1,    -1,
-   172
+    -1,    -1,    -1,    -1,    -1,   172
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
@@ -3116,6 +3019,10 @@ yyreduce:
   switch (yyn) {
 
 case 4:
+#line 147 "Gmsh.y"
+{ yyerrok ; return 1; ;
+    break;}
+case 5:
 #line 156 "Gmsh.y"
 {
       Msg(PARSER_INFO,"STL File Format");
@@ -3124,7 +3031,7 @@ case 4:
       return 1;
     ;
     break;}
-case 5:
+case 6:
 #line 170 "Gmsh.y"
 {
       STL_Surf->STL->Add_Facet( yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d,
@@ -3133,7 +3040,7 @@ case 5:
       return 1;
     ;
     break;}
-case 6:
+case 7:
 #line 177 "Gmsh.y"
 {
       Msg(PARSER_INFO,"STL File Format Read");
@@ -3141,84 +3048,80 @@ case 6:
       return 1;
     ;
     break;}
-case 9:
+case 10:
 #line 194 "Gmsh.y"
 { return 1; ;
     break;}
-case 10:
+case 11:
 #line 195 "Gmsh.y"
 { return 1; ;
     break;}
-case 11:
+case 12:
 #line 196 "Gmsh.y"
 { return 1; ;
     break;}
-case 12:
-#line 197 "Gmsh.y"
-{ yyerrok ; return 1; ;
-    break;}
 case 13:
-#line 202 "Gmsh.y"
+#line 201 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Step Iso-10303-21 File Format");
       Create_Step_Solid_BRep();
     ;
     break;}
 case 14:
-#line 207 "Gmsh.y"
+#line 206 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Step Iso-10303-21 File Format Read");
       Resolve_BREP ();
     ;
     break;}
 case 18:
-#line 218 "Gmsh.y"
+#line 217 "Gmsh.y"
 {
     ;
     break;}
 case 19:
-#line 221 "Gmsh.y"
+#line 220 "Gmsh.y"
 {
     ;
     break;}
 case 20:
-#line 225 "Gmsh.y"
+#line 224 "Gmsh.y"
 {
    ;
     break;}
 case 21:
-#line 231 "Gmsh.y"
+#line 230 "Gmsh.y"
 {
         Add_Cartesian_Point((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2]);
     ;
     break;}
 case 22:
-#line 237 "Gmsh.y"
+#line 236 "Gmsh.y"
 {
        Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l,	yyvsp[-6].l, yyvsp[-4].l, 0., 1.);
     ;
     break;}
 case 23:
-#line 244 "Gmsh.y"
+#line 243 "Gmsh.y"
 {
       Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l,
 				      yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. );
     ;
     break;}
 case 24:
-#line 250 "Gmsh.y"
+#line 249 "Gmsh.y"
 {
       Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
     ;
     break;}
 case 25:
-#line 254 "Gmsh.y"
+#line 253 "Gmsh.y"
 {
       Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,1);
     ;
     break;}
 case 26:
-#line 258 "Gmsh.y"
+#line 257 "Gmsh.y"
 {
       /* La je dois voir la norme ! Face_Bound : trou externe a la surface ! */
       Msg(PARSER_INFO,"Found a Face Bound");
@@ -3226,211 +3129,207 @@ case 26:
     ;
     break;}
 case 27:
-#line 265 "Gmsh.y"
+#line 264 "Gmsh.y"
 {
       Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i);
     ;
     break;}
 case 28:
-#line 269 "Gmsh.y"
+#line 268 "Gmsh.y"
 {
       Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l);
     ;
     break;}
 case 29:
-#line 274 "Gmsh.y"
+#line 273 "Gmsh.y"
 {
       Add_Advanced_Face((int)yyvsp[-12].d,yyvsp[-8].c,yyvsp[-6].l,(int)yyvsp[-4].d,yyvsp[-2].i);
     ;
     break;}
 case 30:
-#line 278 "Gmsh.y"
+#line 277 "Gmsh.y"
 {
       Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
     ;
     break;}
 case 31:
-#line 282 "Gmsh.y"
+#line 281 "Gmsh.y"
 {
     ;
     break;}
 case 32:
-#line 286 "Gmsh.y"
+#line 285 "Gmsh.y"
 {
       Add_Axis2_Placement3D  ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);
     ;
     break;}
 case 33:
-#line 290 "Gmsh.y"
+#line 289 "Gmsh.y"
 {
       Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
     ;
     break;}
 case 34:
-#line 294 "Gmsh.y"
+#line 293 "Gmsh.y"
 {
       Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
     ;
     break;}
 case 35:
-#line 298 "Gmsh.y"
+#line 297 "Gmsh.y"
 {
       Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
     ;
     break;}
 case 36:
-#line 302 "Gmsh.y"
+#line 301 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Found a Closed shell");
       Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l);
     ;
     break;}
 case 37:
-#line 308 "Gmsh.y"
+#line 307 "Gmsh.y"
 {
     ;
     break;}
 case 38:
-#line 311 "Gmsh.y"
+#line 310 "Gmsh.y"
 {
     ;
     break;}
 case 39:
-#line 314 "Gmsh.y"
+#line 313 "Gmsh.y"
 {
       Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 40:
-#line 318 "Gmsh.y"
+#line 317 "Gmsh.y"
 {
       Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
     ;
     break;}
 case 41:
-#line 322 "Gmsh.y"
+#line 321 "Gmsh.y"
 {
       Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
     ;
     break;}
 case 42:
-#line 326 "Gmsh.y"
+#line 325 "Gmsh.y"
 {
       Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 43:
-#line 330 "Gmsh.y"
+#line 329 "Gmsh.y"
 {
       Add_Ellipsis((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 44:
-#line 335 "Gmsh.y"
+#line 334 "Gmsh.y"
 {
     ;
     break;}
 case 45:
-#line 338 "Gmsh.y"
+#line 337 "Gmsh.y"
 {
     ;
     break;}
 case 46:
-#line 342 "Gmsh.y"
+#line 341 "Gmsh.y"
 {
     ;
     break;}
 case 47:
-#line 345 "Gmsh.y"
+#line 344 "Gmsh.y"
 {
     ;
     break;}
 case 48:
-#line 349 "Gmsh.y"
+#line 348 "Gmsh.y"
 {
     ;
     break;}
 case 49:
-#line 352 "Gmsh.y"
+#line 351 "Gmsh.y"
 {
     ;
     break;}
 case 50:
-#line 355 "Gmsh.y"
+#line 354 "Gmsh.y"
 {
     ;
     break;}
 case 51:
-#line 365 "Gmsh.y"
+#line 364 "Gmsh.y"
 {
   ;
     break;}
 case 52:
-#line 368 "Gmsh.y"
+#line 367 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Gmsh File Format Read");
     ;
     break;}
 case 53:
-#line 374 "Gmsh.y"
+#line 373 "Gmsh.y"
 { return 1; ;
     break;}
 case 54:
-#line 375 "Gmsh.y"
+#line 374 "Gmsh.y"
 { return 1; ;
     break;}
 case 55:
-#line 376 "Gmsh.y"
+#line 375 "Gmsh.y"
 { return 1; ;
     break;}
 case 56:
-#line 377 "Gmsh.y"
+#line 376 "Gmsh.y"
 { return 1; ;
     break;}
 case 57:
-#line 378 "Gmsh.y"
+#line 377 "Gmsh.y"
 { return 1; ;
     break;}
 case 58:
-#line 379 "Gmsh.y"
+#line 378 "Gmsh.y"
 { return 1; ;
     break;}
 case 59:
-#line 380 "Gmsh.y"
+#line 379 "Gmsh.y"
 { return 1; ;
     break;}
 case 60:
-#line 381 "Gmsh.y"
+#line 380 "Gmsh.y"
 { return 1; ;
     break;}
 case 61:
-#line 382 "Gmsh.y"
+#line 381 "Gmsh.y"
 { return 1; ;
     break;}
 case 62:
-#line 383 "Gmsh.y"
+#line 382 "Gmsh.y"
 { return 1; ;
     break;}
 case 63:
-#line 384 "Gmsh.y"
+#line 383 "Gmsh.y"
 { return 1; ;
     break;}
 case 64:
-#line 385 "Gmsh.y"
+#line 384 "Gmsh.y"
 { return 1; ;
     break;}
 case 65:
-#line 386 "Gmsh.y"
-{ yyerrok; return 1;;
-    break;}
-case 66:
-#line 391 "Gmsh.y"
+#line 389 "Gmsh.y"
 {
       fprintf(stderr, yyvsp[-2].c); 
     ;
     break;}
-case 67:
-#line 395 "Gmsh.y"
+case 66:
+#line 393 "Gmsh.y"
 {
       for(i = 0 ; i<List_Nbr(ListOfDouble_L) ; i++){
 	if(!i){
@@ -3454,163 +3353,163 @@ case 67:
 	fprintf(stderr, "\n"); 
     ;
     break;}
-case 68:
-#line 425 "Gmsh.y"
+case 67:
+#line 423 "Gmsh.y"
 { 
       EndView(1, Force_ViewNumber,yyname,yyvsp[-4].c,0.,0.,0.); 
     ;
     break;}
-case 69:
-#line 429 "Gmsh.y"
+case 68:
+#line 427 "Gmsh.y"
 {
       EndView(1, Force_ViewNumber,yyname,yyvsp[-6].c,yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2]);
     ;
     break;}
-case 70:
-#line 436 "Gmsh.y"
+case 69:
+#line 434 "Gmsh.y"
 {
       BeginView(1); 
     ;
     break;}
+case 82:
+#line 453 "Gmsh.y"
+{ List_Add(ActualView->SP, &yyvsp[0].d) ; ;
+    break;}
 case 83:
 #line 455 "Gmsh.y"
 { List_Add(ActualView->SP, &yyvsp[0].d) ; ;
     break;}
 case 84:
-#line 457 "Gmsh.y"
-{ List_Add(ActualView->SP, &yyvsp[0].d) ; ;
-    break;}
-case 85:
-#line 462 "Gmsh.y"
+#line 460 "Gmsh.y"
 { 
       List_Add(ActualView->SP, &yyvsp[-5].d); List_Add(ActualView->SP, &yyvsp[-3].d);
       List_Add(ActualView->SP, &yyvsp[-1].d);
     ;
     break;}
-case 86:
-#line 467 "Gmsh.y"
+case 85:
+#line 465 "Gmsh.y"
 {
       ActualView->NbSP++ ;
     ;
     break;}
+case 86:
+#line 472 "Gmsh.y"
+{ List_Add(ActualView->VP, &yyvsp[0].d) ; ;
+    break;}
 case 87:
 #line 474 "Gmsh.y"
 { List_Add(ActualView->VP, &yyvsp[0].d) ; ;
     break;}
 case 88:
-#line 476 "Gmsh.y"
-{ List_Add(ActualView->VP, &yyvsp[0].d) ; ;
-    break;}
-case 89:
-#line 481 "Gmsh.y"
+#line 479 "Gmsh.y"
 { 
       List_Add(ActualView->VP, &yyvsp[-5].d); List_Add(ActualView->VP, &yyvsp[-3].d);
       List_Add(ActualView->VP, &yyvsp[-1].d); 
     ;
     break;}
-case 90:
-#line 486 "Gmsh.y"
+case 89:
+#line 484 "Gmsh.y"
 {
       ActualView->NbVP++ ;
     ;
     break;}
+case 90:
+#line 491 "Gmsh.y"
+{ List_Add(ActualView->TP, &yyvsp[0].d) ; ;
+    break;}
 case 91:
 #line 493 "Gmsh.y"
 { List_Add(ActualView->TP, &yyvsp[0].d) ; ;
     break;}
 case 92:
-#line 495 "Gmsh.y"
-{ List_Add(ActualView->TP, &yyvsp[0].d) ; ;
-    break;}
-case 93:
-#line 500 "Gmsh.y"
+#line 498 "Gmsh.y"
 { 
       List_Add(ActualView->TP, &yyvsp[-5].d); List_Add(ActualView->TP, &yyvsp[-3].d);
       List_Add(ActualView->TP, &yyvsp[-1].d);
     ;
     break;}
-case 94:
-#line 505 "Gmsh.y"
+case 93:
+#line 503 "Gmsh.y"
 {
       ActualView->NbTP++ ;
     ;
     break;}
+case 94:
+#line 510 "Gmsh.y"
+{ List_Add(ActualView->SL, &yyvsp[0].d) ; ;
+    break;}
 case 95:
 #line 512 "Gmsh.y"
 { List_Add(ActualView->SL, &yyvsp[0].d) ; ;
     break;}
 case 96:
-#line 514 "Gmsh.y"
-{ List_Add(ActualView->SL, &yyvsp[0].d) ; ;
-    break;}
-case 97:
-#line 520 "Gmsh.y"
+#line 518 "Gmsh.y"
 { 
       List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d);
       List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d);
       List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d);
     ;
     break;}
-case 98:
-#line 526 "Gmsh.y"
+case 97:
+#line 524 "Gmsh.y"
 {
       ActualView->NbSL++ ;
     ;
     break;}
+case 98:
+#line 531 "Gmsh.y"
+{ List_Add(ActualView->VL, &yyvsp[0].d) ; ;
+    break;}
 case 99:
 #line 533 "Gmsh.y"
 { List_Add(ActualView->VL, &yyvsp[0].d) ; ;
     break;}
 case 100:
-#line 535 "Gmsh.y"
-{ List_Add(ActualView->VL, &yyvsp[0].d) ; ;
-    break;}
-case 101:
-#line 541 "Gmsh.y"
+#line 539 "Gmsh.y"
 { 
       List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d);
       List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d);
       List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d);
     ;
     break;}
-case 102:
-#line 547 "Gmsh.y"
+case 101:
+#line 545 "Gmsh.y"
 {
       ActualView->NbVL++ ;
     ;
     break;}
+case 102:
+#line 552 "Gmsh.y"
+{ List_Add(ActualView->TL, &yyvsp[0].d) ; ;
+    break;}
 case 103:
 #line 554 "Gmsh.y"
 { List_Add(ActualView->TL, &yyvsp[0].d) ; ;
     break;}
 case 104:
-#line 556 "Gmsh.y"
-{ List_Add(ActualView->TL, &yyvsp[0].d) ; ;
-    break;}
-case 105:
-#line 562 "Gmsh.y"
+#line 560 "Gmsh.y"
 { 
       List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d);
       List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d);
       List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d);
     ;
     break;}
-case 106:
-#line 568 "Gmsh.y"
+case 105:
+#line 566 "Gmsh.y"
 {
       ActualView->NbTL++ ;
     ;
     break;}
+case 106:
+#line 573 "Gmsh.y"
+{ List_Add(ActualView->ST, &yyvsp[0].d) ; ;
+    break;}
 case 107:
 #line 575 "Gmsh.y"
 { List_Add(ActualView->ST, &yyvsp[0].d) ; ;
     break;}
 case 108:
-#line 577 "Gmsh.y"
-{ List_Add(ActualView->ST, &yyvsp[0].d) ; ;
-    break;}
-case 109:
-#line 584 "Gmsh.y"
+#line 582 "Gmsh.y"
 { 
       List_Add(ActualView->ST, &yyvsp[-17].d); List_Add(ActualView->ST, &yyvsp[-11].d);
       List_Add(ActualView->ST, &yyvsp[-5].d);
@@ -3620,22 +3519,22 @@ case 109:
       List_Add(ActualView->ST, &yyvsp[-1].d);
     ;
     break;}
-case 110:
-#line 593 "Gmsh.y"
+case 109:
+#line 591 "Gmsh.y"
 {
       ActualView->NbST++ ;
     ;
     break;}
+case 110:
+#line 598 "Gmsh.y"
+{ List_Add(ActualView->VT, &yyvsp[0].d) ; ;
+    break;}
 case 111:
 #line 600 "Gmsh.y"
 { List_Add(ActualView->VT, &yyvsp[0].d) ; ;
     break;}
 case 112:
-#line 602 "Gmsh.y"
-{ List_Add(ActualView->VT, &yyvsp[0].d) ; ;
-    break;}
-case 113:
-#line 609 "Gmsh.y"
+#line 607 "Gmsh.y"
 { 
       List_Add(ActualView->VT, &yyvsp[-17].d); List_Add(ActualView->VT, &yyvsp[-11].d);
       List_Add(ActualView->VT, &yyvsp[-5].d);
@@ -3645,22 +3544,22 @@ case 113:
       List_Add(ActualView->VT, &yyvsp[-1].d);
     ;
     break;}
-case 114:
-#line 618 "Gmsh.y"
+case 113:
+#line 616 "Gmsh.y"
 {
       ActualView->NbVT++ ;
     ;
     break;}
+case 114:
+#line 623 "Gmsh.y"
+{ List_Add(ActualView->TT, &yyvsp[0].d) ; ;
+    break;}
 case 115:
 #line 625 "Gmsh.y"
 { List_Add(ActualView->TT, &yyvsp[0].d) ; ;
     break;}
 case 116:
-#line 627 "Gmsh.y"
-{ List_Add(ActualView->TT, &yyvsp[0].d) ; ;
-    break;}
-case 117:
-#line 634 "Gmsh.y"
+#line 632 "Gmsh.y"
 { 
       List_Add(ActualView->TT, &yyvsp[-17].d); List_Add(ActualView->TT, &yyvsp[-11].d);
       List_Add(ActualView->TT, &yyvsp[-5].d);
@@ -3670,22 +3569,22 @@ case 117:
       List_Add(ActualView->TT, &yyvsp[-1].d);
     ;
     break;}
-case 118:
-#line 643 "Gmsh.y"
+case 117:
+#line 641 "Gmsh.y"
 {
       ActualView->NbTT++ ;
     ;
     break;}
+case 118:
+#line 648 "Gmsh.y"
+{ List_Add(ActualView->SS, &yyvsp[0].d) ; ;
+    break;}
 case 119:
 #line 650 "Gmsh.y"
 { List_Add(ActualView->SS, &yyvsp[0].d) ; ;
     break;}
 case 120:
-#line 652 "Gmsh.y"
-{ List_Add(ActualView->SS, &yyvsp[0].d) ; ;
-    break;}
-case 121:
-#line 660 "Gmsh.y"
+#line 658 "Gmsh.y"
 { 
       List_Add(ActualView->SS, &yyvsp[-23].d);  List_Add(ActualView->SS, &yyvsp[-17].d);
       List_Add(ActualView->SS, &yyvsp[-11].d); List_Add(ActualView->SS, &yyvsp[-5].d);
@@ -3695,22 +3594,22 @@ case 121:
       List_Add(ActualView->SS, &yyvsp[-7].d); List_Add(ActualView->SS, &yyvsp[-1].d);
     ;
     break;}
-case 122:
-#line 669 "Gmsh.y"
+case 121:
+#line 667 "Gmsh.y"
 {
       ActualView->NbSS++ ;
     ;
     break;}
+case 122:
+#line 674 "Gmsh.y"
+{ List_Add(ActualView->VS, &yyvsp[0].d) ; ;
+    break;}
 case 123:
 #line 676 "Gmsh.y"
 { List_Add(ActualView->VS, &yyvsp[0].d) ; ;
     break;}
 case 124:
-#line 678 "Gmsh.y"
-{ List_Add(ActualView->VS, &yyvsp[0].d) ; ;
-    break;}
-case 125:
-#line 686 "Gmsh.y"
+#line 684 "Gmsh.y"
 { 
       List_Add(ActualView->VS, &yyvsp[-23].d);  List_Add(ActualView->VS, &yyvsp[-17].d);
       List_Add(ActualView->VS, &yyvsp[-11].d); List_Add(ActualView->VS, &yyvsp[-5].d);
@@ -3720,22 +3619,22 @@ case 125:
       List_Add(ActualView->VS, &yyvsp[-7].d); List_Add(ActualView->VS, &yyvsp[-1].d);
     ;
     break;}
-case 126:
-#line 695 "Gmsh.y"
+case 125:
+#line 693 "Gmsh.y"
 {
       ActualView->NbVS++ ;
     ;
     break;}
+case 126:
+#line 700 "Gmsh.y"
+{ List_Add(ActualView->TS, &yyvsp[0].d) ; ;
+    break;}
 case 127:
 #line 702 "Gmsh.y"
 { List_Add(ActualView->TS, &yyvsp[0].d) ; ;
     break;}
 case 128:
-#line 704 "Gmsh.y"
-{ List_Add(ActualView->TS, &yyvsp[0].d) ; ;
-    break;}
-case 129:
-#line 712 "Gmsh.y"
+#line 710 "Gmsh.y"
 { 
       List_Add(ActualView->TS, &yyvsp[-23].d);  List_Add(ActualView->TS, &yyvsp[-17].d);
       List_Add(ActualView->TS, &yyvsp[-11].d); List_Add(ActualView->TS, &yyvsp[-5].d);
@@ -3745,14 +3644,14 @@ case 129:
       List_Add(ActualView->TS, &yyvsp[-7].d); List_Add(ActualView->TS, &yyvsp[-1].d);
     ;
     break;}
-case 130:
-#line 721 "Gmsh.y"
+case 129:
+#line 719 "Gmsh.y"
 {
       ActualView->NbTS++ ;
     ;
     break;}
-case 131:
-#line 737 "Gmsh.y"
+case 130:
+#line 735 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-3].c;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
@@ -3765,8 +3664,8 @@ case 131:
       }
     ;
     break;}
-case 132:
-#line 749 "Gmsh.y"
+case 131:
+#line 747 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-6].c;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
@@ -3779,8 +3678,8 @@ case 132:
       }
     ;
     break;}
-case 133:
-#line 761 "Gmsh.y"
+case 132:
+#line 759 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-2].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3790,8 +3689,8 @@ case 133:
       }
     ;
     break;}
-case 134:
-#line 770 "Gmsh.y"
+case 133:
+#line 768 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-5].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3804,8 +3703,8 @@ case 134:
       }
     ;
     break;}
-case 135:
-#line 782 "Gmsh.y"
+case 134:
+#line 780 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-2].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3814,8 +3713,8 @@ case 135:
 	*(double*)List_Pointer_Fast(pSymbol->val, 0) -= 1. ;
     ;
     break;}
-case 136:
-#line 790 "Gmsh.y"
+case 135:
+#line 788 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-5].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3828,8 +3727,8 @@ case 136:
       }
     ;
     break;}
-case 137:
-#line 802 "Gmsh.y"
+case 136:
+#line 800 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-3].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3838,8 +3737,8 @@ case 137:
 	*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[-1].d ;
     ;
     break;}
-case 138:
-#line 810 "Gmsh.y"
+case 137:
+#line 808 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-6].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3852,8 +3751,8 @@ case 138:
       }
     ;
     break;}
-case 139:
-#line 822 "Gmsh.y"
+case 138:
+#line 820 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-3].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3862,8 +3761,8 @@ case 139:
 	*(double*)List_Pointer_Fast(pSymbol->val, 0) -= yyvsp[-1].d ;
     ;
     break;}
-case 140:
-#line 830 "Gmsh.y"
+case 139:
+#line 828 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-6].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3876,8 +3775,8 @@ case 140:
       }
     ;
     break;}
-case 141:
-#line 842 "Gmsh.y"
+case 140:
+#line 840 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-3].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3886,8 +3785,8 @@ case 141:
 	*(double*)List_Pointer_Fast(pSymbol->val, 0) *= yyvsp[-1].d ;
     ;
     break;}
-case 142:
-#line 850 "Gmsh.y"
+case 141:
+#line 848 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-6].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
@@ -3900,8 +3799,8 @@ case 142:
       }
     ;
     break;}
-case 143:
-#line 862 "Gmsh.y"
+case 142:
+#line 860 "Gmsh.y"
 {
       if(!yyvsp[-1].d)
 	vyyerror("Division by Zero in '%s /= %g'", yyvsp[-3].c, yyvsp[-1].d);
@@ -3914,8 +3813,8 @@ case 143:
       }
     ;
     break;}
-case 144:
-#line 874 "Gmsh.y"
+case 143:
+#line 872 "Gmsh.y"
 {
       if(!yyvsp[-1].d)
 	vyyerror("Division by Zero in '%s[%d] /= %g'", yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-1].d);
@@ -3932,8 +3831,8 @@ case 144:
       }
     ;
     break;}
-case 145:
-#line 893 "Gmsh.y"
+case 144:
+#line 891 "Gmsh.y"
 { 
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown String Option Class '%s'", yyvsp[-5].c);
@@ -3946,8 +3845,8 @@ case 145:
       }
     ;
     break;}
-case 146:
-#line 906 "Gmsh.y"
+case 145:
+#line 904 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -3963,8 +3862,8 @@ case 146:
       }
     ;
     break;}
-case 147:
-#line 924 "Gmsh.y"
+case 146:
+#line 922 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -3982,8 +3881,8 @@ case 147:
       }
     ;
     break;}
-case 148:
-#line 941 "Gmsh.y"
+case 147:
+#line 939 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4004,8 +3903,8 @@ case 148:
       }
     ;
     break;}
-case 149:
-#line 962 "Gmsh.y"
+case 148:
+#line 960 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4023,8 +3922,8 @@ case 149:
       }
     ;
     break;}
-case 150:
-#line 979 "Gmsh.y"
+case 149:
+#line 977 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4045,8 +3944,8 @@ case 150:
       }
     ;
     break;}
-case 151:
-#line 1000 "Gmsh.y"
+case 150:
+#line 998 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4064,8 +3963,8 @@ case 151:
       }
     ;
     break;}
-case 152:
-#line 1017 "Gmsh.y"
+case 151:
+#line 1015 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4086,8 +3985,8 @@ case 152:
       }
     ;
     break;}
-case 153:
-#line 1038 "Gmsh.y"
+case 152:
+#line 1036 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4105,8 +4004,8 @@ case 153:
       }
     ;
     break;}
-case 154:
-#line 1055 "Gmsh.y"
+case 153:
+#line 1053 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4127,8 +4026,8 @@ case 154:
       }
     ;
     break;}
-case 155:
-#line 1076 "Gmsh.y"
+case 154:
+#line 1074 "Gmsh.y"
 {
       if(!yyvsp[-1].d)
 	vyyerror("Division by Zero in '%s.%s /= %g'", yyvsp[-5].c, yyvsp[-3].c, yyvsp[-1].d);
@@ -4150,8 +4049,8 @@ case 155:
       }
     ;
     break;}
-case 156:
-#line 1097 "Gmsh.y"
+case 155:
+#line 1095 "Gmsh.y"
 {
       if(!yyvsp[-1].d)
 	vyyerror("Division by Zero in '%s.View[%d].%s /= %g'", 
@@ -4177,8 +4076,8 @@ case 156:
       }
     ;
     break;}
-case 157:
-#line 1123 "Gmsh.y"
+case 156:
+#line 1121 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c);
@@ -4196,8 +4095,8 @@ case 157:
       }
     ;
     break;}
-case 158:
-#line 1140 "Gmsh.y"
+case 157:
+#line 1138 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4218,8 +4117,8 @@ case 158:
       }
     ;
     break;}
-case 159:
-#line 1161 "Gmsh.y"
+case 158:
+#line 1159 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c);
@@ -4237,8 +4136,8 @@ case 159:
       }
     ;
     break;}
-case 160:
-#line 1178 "Gmsh.y"
+case 159:
+#line 1176 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4259,179 +4158,8 @@ case 160:
       }
     ;
     break;}
-case 161:
-#line 1201 "Gmsh.y"
-{
-      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c)))
-	vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c);
-      else{
-	if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i)))
-	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] = yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] = (float)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] = (long)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] = (int)yyvsp[-1].v[j] ;
-	    break ;
-	  }
-	}
-      }
-    ;
-    break;}
-case 162:
-#line 1226 "Gmsh.y"
-{
-      if(strcmp(yyvsp[-10].c, "PostProcessing"))
-	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c);
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] = yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] = (float)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] = (long)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] = (int)yyvsp[-1].v[j] ;
-	    break ;
-	  }
-	}
-      }
-    ;
-    break;}
-case 163:
-#line 1255 "Gmsh.y"
-{
-      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c)))
-	vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c);
-      else{
-	if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i)))
-	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] += yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] += (float)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] += (long)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] += (int)yyvsp[-1].v[j] ;
-	    break ;
-	  }
-	}
-      }
-    ;
-    break;}
-case 164:
-#line 1280 "Gmsh.y"
-{
-      if(strcmp(yyvsp[-10].c, "PostProcessing"))
-	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c);
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] += yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] += (float)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] += (long)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] += (int)yyvsp[-1].v[j] ;
-	    break ;
-	  }
-	}
-      }
-    ;
-    break;}
-case 165:
-#line 1309 "Gmsh.y"
-{
-      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c)))
-	vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c);
-      else{
-	if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i)))
-	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] -= yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] -= (float)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] -= (long)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] -= (int)yyvsp[-1].v[j] ;
-	    break ;
-	  }
-	}
-      }
-    ;
-    break;}
-case 166:
-#line 1334 "Gmsh.y"
-{
-      if(strcmp(yyvsp[-10].c, "PostProcessing"))
-	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c);
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] -= yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] -= (float)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] -= (long)yyvsp[-1].v[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] -= (int)yyvsp[-1].v[j] ;
-	    break ;
-	  }
-	}
-      }
-    ;
-    break;}
-case 167:
-#line 1365 "Gmsh.y"
+case 160:
+#line 1199 "Gmsh.y"
 {
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c)))
 	vyyerror("Unknown Color Option Class '%s'", yyvsp[-7].c);
@@ -4444,8 +4172,8 @@ case 167:
       }
     ;
     break;}
-case 168:
-#line 1378 "Gmsh.y"
+case 161:
+#line 1212 "Gmsh.y"
 {
       if(strcmp(yyvsp[-10].c, "PostProcessing"))
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c);
@@ -4464,24 +4192,24 @@ case 168:
       }
     ;
     break;}
-case 169:
-#line 1407 "Gmsh.y"
+case 162:
+#line 1241 "Gmsh.y"
 {
       Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]);
       yyval.s.Type = MSH_POINT;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 170:
-#line 1414 "Gmsh.y"
+case 163:
+#line 1248 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_POINT;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 171:
-#line 1420 "Gmsh.y"
+case 164:
+#line 1254 "Gmsh.y"
 {
       Vertex *v;
       Attractor *a;
@@ -4501,8 +4229,8 @@ case 171:
       }
     ;
     break;}
-case 172:
-#line 1439 "Gmsh.y"
+case 165:
+#line 1273 "Gmsh.y"
 {
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
 	List_Read(yyvsp[-3].l,i,&d);
@@ -4514,31 +4242,31 @@ case 172:
       }
     ;
     break;}
-case 173:
-#line 1450 "Gmsh.y"
+case 166:
+#line 1284 "Gmsh.y"
 {
       yyval.s.Type = MSH_POINT;
       yyval.s.Num  = (int)yyvsp[-2].d;
     ;
     break;}
-case 174:
-#line 1458 "Gmsh.y"
+case 167:
+#line 1292 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_LINE;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 175:
-#line 1464 "Gmsh.y"
+case 168:
+#line 1298 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_SPLN;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 176:
-#line 1470 "Gmsh.y"
+case 169:
+#line 1304 "Gmsh.y"
 {
       Curve *c;
       Attractor *a;
@@ -4558,16 +4286,16 @@ case 176:
       }
     ;
     break;}
-case 177:
-#line 1489 "Gmsh.y"
+case 170:
+#line 1323 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_CIRC ;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 178:
-#line 1495 "Gmsh.y"
+case 171:
+#line 1329 "Gmsh.y"
 {
       List_T *temp;
       int i,j;
@@ -4584,48 +4312,48 @@ case 178:
       yyval.s.Num  = (int)yyvsp[-6].d;
     ;
     break;}
-case 179:
-#line 1512 "Gmsh.y"
+case 172:
+#line 1346 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c);
       yyval.s.Type = MSH_SEGM_PARAMETRIC ;
       yyval.s.Num  = (int)yyvsp[-14].d;
     ;
     break;}
-case 180:
-#line 1518 "Gmsh.y"
+case 173:
+#line 1352 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_ELLI ;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 181:
-#line 1524 "Gmsh.y"
+case 174:
+#line 1358 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_LINE;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 182:
-#line 1530 "Gmsh.y"
+case 175:
+#line 1364 "Gmsh.y"
 {
       yyval.s.Type = MSH_SEGM_LOOP;
       Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Num = (int)yyvsp[-4].d;
     ;
     break;}
-case 183:
-#line 1536 "Gmsh.y"
+case 176:
+#line 1370 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_BSPLN;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 184:
-#line 1542 "Gmsh.y"
+case 177:
+#line 1376 "Gmsh.y"
 {
       List_T *Temp;
       int i;
@@ -4645,8 +4373,8 @@ case 184:
       List_Delete(Temp);
     ;
     break;}
-case 185:
-#line 1561 "Gmsh.y"
+case 178:
+#line 1395 "Gmsh.y"
 {
       yyval.s.Num = (int)yyvsp[-2].d;
       Curve *c = FindCurve(yyval.s.Num,THEM);
@@ -4656,37 +4384,37 @@ case 185:
 	yyval.s.Type = c->Typ;
     ;
     break;}
-case 186:
-#line 1573 "Gmsh.y"
+case 179:
+#line 1407 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_SURF_PLAN;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 187:
-#line 1579 "Gmsh.y"
+case 180:
+#line 1413 "Gmsh.y"
 {
       Surface *s,*support;
-      support = FindSurface((int)yyvsp[-2].d,THEM);
+      support = FindSurface((int)yyvsp[-4].d,THEM);
       if(!support)
-	vyyerror("Unkown Surface %d", (int)yyvsp[-2].d);
+	vyyerror("Unkown Surface %d", (int)yyvsp[-4].d);
       else{
-	Cdbz101((int)yyvsp[-5].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
-	s = FindSurface((int)yyvsp[-5].d,THEM);
+	Cdbz101((int)yyvsp[-8].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-2].l,NULL);
+	s = FindSurface((int)yyvsp[-8].d,THEM);
 	if(!s)
-	  vyyerror("Unkown Surface %d", (int)yyvsp[-5].d);
+	  vyyerror("Unkown Surface %d", (int)yyvsp[-8].d);
 	else{
 	  s->Typ =  MSH_SURF_TRIMMED;
 	  s->Support = support;
 	  yyval.s.Type = MSH_SURF_TRIMMED;
-	  yyval.s.Num  = (int)yyvsp[-5].d;
+	  yyval.s.Num  = (int)yyvsp[-8].d;
 	}
       }
     ;
     break;}
-case 188:
-#line 1598 "Gmsh.y"
+case 181:
+#line 1432 "Gmsh.y"
 {
       List_Read(yyvsp[-1].l,0,&d);
       i = (int)d;
@@ -4708,38 +4436,38 @@ case 188:
       }
     ;
     break;}
-case 189:
-#line 1621 "Gmsh.y"
+case 182:
+#line 1455 "Gmsh.y"
 {
       CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d  , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
       yyval.s.Type  = MSH_SURF_NURBS;
       yyval.s.Num = (int)yyvsp[-16].d;
     ;
     break;}
-case 190:
-#line 1629 "Gmsh.y"
+case 183:
+#line 1463 "Gmsh.y"
 {
       CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
     ;
     break;}
-case 191:
-#line 1633 "Gmsh.y"
+case 184:
+#line 1467 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_SURFACE;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 192:
-#line 1639 "Gmsh.y"
+case 185:
+#line 1473 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_SURF_LOOP;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 193:
-#line 1645 "Gmsh.y"
+case 186:
+#line 1479 "Gmsh.y"
 {
       yyval.s.Num = (int)yyvsp[-2].d;
       Surface *s = FindSurface(yyval.s.Num,THEM);
@@ -4749,85 +4477,85 @@ case 193:
 	yyval.s.Type = s->Typ;
      ;
     break;}
-case 194:
-#line 1657 "Gmsh.y"
+case 187:
+#line 1491 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;      
     ;
     break;}
-case 195:
-#line 1663 "Gmsh.y"
+case 188:
+#line 1497 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 196:
-#line 1669 "Gmsh.y"
+case 189:
+#line 1503 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 197:
-#line 1682 "Gmsh.y"
+case 190:
+#line 1516 "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 198:
-#line 1687 "Gmsh.y"
+case 191:
+#line 1521 "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);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 199:
-#line 1692 "Gmsh.y"
+case 192:
+#line 1526 "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 200:
-#line 1697 "Gmsh.y"
+case 193:
+#line 1531 "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 201:
-#line 1704 "Gmsh.y"
+case 194:
+#line 1538 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 202:
-#line 1705 "Gmsh.y"
+case 195:
+#line 1539 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 203:
-#line 1706 "Gmsh.y"
+case 196:
+#line 1540 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 204:
-#line 1711 "Gmsh.y"
+case 197:
+#line 1545 "Gmsh.y"
 {
       yyval.l = List_Create(3,3,sizeof(Shape));
     ;
     break;}
-case 205:
-#line 1715 "Gmsh.y"
+case 198:
+#line 1549 "Gmsh.y"
 {
       List_Add(yyval.l,&yyvsp[0].s);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 206:
-#line 1727 "Gmsh.y"
+case 199:
+#line 1561 "Gmsh.y"
 {
       yyval.l = List_Create(3,3,sizeof(Shape));
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
@@ -4838,8 +4566,8 @@ case 206:
       }
     ;
     break;}
-case 207:
-#line 1745 "Gmsh.y"
+case 200:
+#line 1579 "Gmsh.y"
 {
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read (yyvsp[-1].l,i,&TheShape);
@@ -4847,8 +4575,8 @@ case 207:
       }
     ;
     break;}
-case 208:
-#line 1760 "Gmsh.y"
+case 201:
+#line 1594 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Include")){
 
@@ -4920,8 +4648,8 @@ case 208:
 	vyyerror("Unknown Command '%s'", yyvsp[-2].c);
     ;
     break;}
-case 209:
-#line 1831 "Gmsh.y"
+case 202:
+#line 1665 "Gmsh.y"
 {
       if(!strcmp(yyvsp[-2].c, "Sleep")){
 
@@ -4942,14 +4670,14 @@ case 209:
 	vyyerror("Unknown Command '%s'", yyvsp[-2].c);
     ;
     break;}
-case 210:
-#line 1851 "Gmsh.y"
+case 203:
+#line 1685 "Gmsh.y"
 {
       exit(0);
     ;
     break;}
-case 211:
-#line 1855 "Gmsh.y"
+case 204:
+#line 1689 "Gmsh.y"
 {
       if(!CTX.interactive){ // we're in interactive mode
 	if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){
@@ -4963,8 +4691,8 @@ case 211:
       }
     ;
     break;}
-case 212:
-#line 1876 "Gmsh.y"
+case 205:
+#line 1710 "Gmsh.y"
 {
       FILE* ff;
       if(RecursionLevel)
@@ -4979,8 +4707,8 @@ case 212:
       fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
     ;
     break;}
-case 213:
-#line 1890 "Gmsh.y"
+case 206:
+#line 1724 "Gmsh.y"
 {
       FILE* ff;
       if(RecursionLevel)
@@ -4995,8 +4723,8 @@ case 213:
       fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
     ;
     break;}
-case 214:
-#line 1904 "Gmsh.y"
+case 207:
+#line 1738 "Gmsh.y"
 {
       FILE* ff;
       if(RecursionLevel)
@@ -5022,8 +4750,8 @@ case 214:
       fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
     ;
     break;}
-case 215:
-#line 1929 "Gmsh.y"
+case 208:
+#line 1763 "Gmsh.y"
 {
       FILE* ff;
       if(RecursionLevel)
@@ -5049,8 +4777,8 @@ case 215:
       fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
     ;
     break;}
-case 216:
-#line 1954 "Gmsh.y"
+case 209:
+#line 1788 "Gmsh.y"
 {
       if(LoopControlVariablesTab[ImbricatedLoop-1][1] >  
 	 LoopControlVariablesTab[ImbricatedLoop-1][0]){
@@ -5077,22 +4805,22 @@ case 216:
       }
     ;
     break;}
-case 217:
-#line 1980 "Gmsh.y"
+case 210:
+#line 1814 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->leaveFunction(&yyin,yylineno))
 	vyyerror("Error while exiting function");
     ;
     break;}
-case 218:
-#line 1985 "Gmsh.y"
+case 211:
+#line 1819 "Gmsh.y"
 {
       if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yylineno))
 	vyyerror("Unknown Function %s",yyvsp[-1].c);
     ;
     break;}
-case 219:
-#line 1990 "Gmsh.y"
+case 212:
+#line 1824 "Gmsh.y"
 {
       // skip everything until return is found
       if(!FunctionManager::Instance()->createFunction(yyvsp[0].c,yyin,yylineno))
@@ -5100,82 +4828,82 @@ case 219:
       skip_until("Return");
     ;
     break;}
-case 220:
-#line 1997 "Gmsh.y"
+case 213:
+#line 1831 "Gmsh.y"
 {
       if(!yyvsp[-1].d) skip_until("EndIf");
     ;
     break;}
-case 221:
-#line 2001 "Gmsh.y"
+case 214:
+#line 1835 "Gmsh.y"
 {
     ;
     break;}
-case 222:
-#line 2012 "Gmsh.y"
+case 215:
+#line 1846 "Gmsh.y"
 {
       Curve *pc, *prc;
       Extrude_ProtudePoint(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,&pc,&prc,NULL);
     ;
     break;}
-case 223:
-#line 2017 "Gmsh.y"
+case 216:
+#line 1851 "Gmsh.y"
 {
       Curve *pc, *prc;
       Extrude_ProtudePoint(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,
 			   &pc,&prc,NULL);
     ;
     break;}
-case 224:
-#line 2023 "Gmsh.y"
+case 217:
+#line 1857 "Gmsh.y"
 {
       Extrude_ProtudeCurve(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,NULL);
     ;
     break;}
-case 225:
-#line 2027 "Gmsh.y"
+case 218:
+#line 1861 "Gmsh.y"
 {
       Extrude_ProtudeCurve(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,NULL);
     ;
     break;}
-case 226:
-#line 2031 "Gmsh.y"
+case 219:
+#line 1865 "Gmsh.y"
 {
       Extrude_ProtudeSurface(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,0,NULL);
     ;
     break;}
-case 227:
-#line 2035 "Gmsh.y"
+case 220:
+#line 1869 "Gmsh.y"
 {
       Extrude_ProtudeSurface(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
     ;
     break;}
-case 228:
-#line 2039 "Gmsh.y"
+case 221:
+#line 1873 "Gmsh.y"
 {
     int vol = NEWREG();
     Extrude_ProtudeSurface(1,(int)yyvsp[-7].d,yyvsp[-5].v[0],yyvsp[-5].v[1],yyvsp[-5].v[2],0.,0.,0.,0.,vol,&extr);
   ;
     break;}
-case 229:
-#line 2044 "Gmsh.y"
+case 222:
+#line 1878 "Gmsh.y"
 {
     int vol = NEWREG();
     Extrude_ProtudeSurface(0,(int)yyvsp[-11].d,yyvsp[-9].v[0],yyvsp[-9].v[1],yyvsp[-9].v[2],yyvsp[-7].v[0],yyvsp[-7].v[1],yyvsp[-7].v[2],yyvsp[-5].d,vol,&extr);
   ;
     break;}
-case 230:
-#line 2052 "Gmsh.y"
+case 223:
+#line 1886 "Gmsh.y"
 {
     ;
     break;}
-case 231:
-#line 2055 "Gmsh.y"
+case 224:
+#line 1889 "Gmsh.y"
 {
     ;
     break;}
-case 232:
-#line 2061 "Gmsh.y"
+case 225:
+#line 1895 "Gmsh.y"
 {
       double d;
       int j;
@@ -5193,14 +4921,14 @@ case 232:
       }
     ;
     break;}
-case 233:
-#line 2078 "Gmsh.y"
+case 226:
+#line 1912 "Gmsh.y"
 {
       extr.mesh.Recombine = true;
     ;
     break;}
-case 234:
-#line 2089 "Gmsh.y"
+case 227:
+#line 1923 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
@@ -5218,8 +4946,8 @@ case 234:
       }
     ;
     break;}
-case 235:
-#line 2106 "Gmsh.y"
+case 228:
+#line 1940 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
@@ -5237,8 +4965,8 @@ case 235:
       }
     ;
     break;}
-case 236:
-#line 2123 "Gmsh.y"
+case 229:
+#line 1957 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
@@ -5256,8 +4984,8 @@ case 236:
       }
     ;
     break;}
-case 237:
-#line 2140 "Gmsh.y"
+case 230:
+#line 1974 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
@@ -5279,8 +5007,8 @@ case 237:
       }
     ;
     break;}
-case 238:
-#line 2161 "Gmsh.y"
+case 231:
+#line 1995 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
@@ -5301,8 +5029,8 @@ case 238:
       }
     ;
     break;}
-case 239:
-#line 2181 "Gmsh.y"
+case 232:
+#line 2015 "Gmsh.y"
 {
       Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
       if(!v)
@@ -5323,8 +5051,8 @@ case 239:
       }
     ;
     break;}
-case 240:
-#line 2201 "Gmsh.y"
+case 233:
+#line 2035 "Gmsh.y"
 {
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
@@ -5342,8 +5070,8 @@ case 240:
       }
     ;
     break;}
-case 241:
-#line 2218 "Gmsh.y"
+case 234:
+#line 2052 "Gmsh.y"
 {
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
@@ -5361,66 +5089,74 @@ case 241:
       }
     ;
     break;}
-case 242:
-#line 2243 "Gmsh.y"
+case 235:
+#line 2077 "Gmsh.y"
 { 
       Coherence_PS();
     ;
     break;}
-case 243:
-#line 2255 "Gmsh.y"
+case 236:
+#line 2088 "Gmsh.y"
+{ yyval.d = yyvsp[0].d; ;
+    break;}
+case 237:
+#line 2089 "Gmsh.y"
+{ yyval.d = -yyvsp[0].d; ;
+    break;}
+case 238:
+#line 2093 "Gmsh.y"
 {yyval.i = 1;;
     break;}
-case 244:
-#line 2256 "Gmsh.y"
+case 239:
+#line 2094 "Gmsh.y"
 {yyval.i = 0;;
     break;}
-case 245:
-#line 2257 "Gmsh.y"
+case 240:
+#line 2095 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 246:
-#line 2258 "Gmsh.y"
+case 241:
+#line 2096 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 247:
-#line 2259 "Gmsh.y"
+case 242:
+#line 2097 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 248:
-#line 2263 "Gmsh.y"
+case 243:
+#line 2101 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
-case 249:
-#line 2264 "Gmsh.y"
+case 244:
+#line 2102 "Gmsh.y"
 { yyval.d = yyvsp[-1].d ;          ;
     break;}
-case 250:
-#line 2265 "Gmsh.y"
+case 245:
+#line 2103 "Gmsh.y"
 { yyval.d = -yyvsp[0].d ;         ;
     break;}
-case 251:
-#line 2266 "Gmsh.y"
+case 246:
+#line 2104 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
-case 252:
-#line 2267 "Gmsh.y"
+case 247:
+#line 2105 "Gmsh.y"
 { yyval.d = !yyvsp[0].d ;         ;
     break;}
-case 253:
-#line 2268 "Gmsh.y"
+case 248:
+#line 2106 "Gmsh.y"
 { yyval.d = yyvsp[-2].d - yyvsp[0].d ;     ;
     break;}
-case 254:
-#line 2269 "Gmsh.y"
+case 249:
+#line 2107 "Gmsh.y"
 { yyval.d = yyvsp[-2].d + yyvsp[0].d ;     ;
     break;}
-case 255:
-#line 2270 "Gmsh.y"
+case 250:
+#line 2108 "Gmsh.y"
 { yyval.d = yyvsp[-2].d * yyvsp[0].d ;     ;
     break;}
-case 256:
-#line 2272 "Gmsh.y"
+case 251:
+#line 2110 "Gmsh.y"
 { 
       if(!yyvsp[0].d)
 	vyyerror("Division by Zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
@@ -5428,144 +5164,144 @@ case 256:
 	yyval.d = yyvsp[-2].d / yyvsp[0].d ;     
     ;
     break;}
-case 257:
-#line 2278 "Gmsh.y"
+case 252:
+#line 2116 "Gmsh.y"
 { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  ;
     break;}
-case 258:
-#line 2279 "Gmsh.y"
+case 253:
+#line 2117 "Gmsh.y"
 { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  ;
     break;}
-case 259:
-#line 2280 "Gmsh.y"
+case 254:
+#line 2118 "Gmsh.y"
 { yyval.d = yyvsp[-2].d < yyvsp[0].d ;     ;
     break;}
-case 260:
-#line 2281 "Gmsh.y"
+case 255:
+#line 2119 "Gmsh.y"
 { yyval.d = yyvsp[-2].d > yyvsp[0].d ;     ;
     break;}
-case 261:
-#line 2282 "Gmsh.y"
+case 256:
+#line 2120 "Gmsh.y"
 { yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    ;
     break;}
-case 262:
-#line 2283 "Gmsh.y"
+case 257:
+#line 2121 "Gmsh.y"
 { yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    ;
     break;}
-case 263:
-#line 2284 "Gmsh.y"
+case 258:
+#line 2122 "Gmsh.y"
 { yyval.d = yyvsp[-2].d == yyvsp[0].d ;    ;
     break;}
-case 264:
-#line 2285 "Gmsh.y"
+case 259:
+#line 2123 "Gmsh.y"
 { yyval.d = yyvsp[-2].d != yyvsp[0].d ;    ;
     break;}
-case 265:
-#line 2286 "Gmsh.y"
+case 260:
+#line 2124 "Gmsh.y"
 { yyval.d = yyvsp[-2].d && yyvsp[0].d ;    ;
     break;}
-case 266:
-#line 2287 "Gmsh.y"
+case 261:
+#line 2125 "Gmsh.y"
 { yyval.d = yyvsp[-2].d || yyvsp[0].d ;    ;
     break;}
-case 267:
-#line 2288 "Gmsh.y"
+case 262:
+#line 2126 "Gmsh.y"
 { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
     break;}
-case 268:
-#line 2289 "Gmsh.y"
+case 263:
+#line 2127 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
-case 269:
-#line 2290 "Gmsh.y"
+case 264:
+#line 2128 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
-case 270:
-#line 2291 "Gmsh.y"
+case 265:
+#line 2129 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
-case 271:
-#line 2292 "Gmsh.y"
+case 266:
+#line 2130 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
-case 272:
-#line 2293 "Gmsh.y"
+case 267:
+#line 2131 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
-case 273:
-#line 2294 "Gmsh.y"
+case 268:
+#line 2132 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
-case 274:
-#line 2295 "Gmsh.y"
+case 269:
+#line 2133 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
-case 275:
-#line 2296 "Gmsh.y"
+case 270:
+#line 2134 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
-case 276:
-#line 2297 "Gmsh.y"
+case 271:
+#line 2135 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
-case 277:
-#line 2298 "Gmsh.y"
+case 272:
+#line 2136 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
-case 278:
-#line 2299 "Gmsh.y"
+case 273:
+#line 2137 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
     break;}
-case 279:
-#line 2300 "Gmsh.y"
+case 274:
+#line 2138 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
-case 280:
-#line 2301 "Gmsh.y"
+case 275:
+#line 2139 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
-case 281:
-#line 2302 "Gmsh.y"
+case 276:
+#line 2140 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
-case 282:
-#line 2303 "Gmsh.y"
+case 277:
+#line 2141 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
-case 283:
-#line 2304 "Gmsh.y"
+case 278:
+#line 2142 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
-case 284:
-#line 2305 "Gmsh.y"
+case 279:
+#line 2143 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
-case 285:
-#line 2306 "Gmsh.y"
+case 280:
+#line 2144 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
     break;}
-case 286:
-#line 2307 "Gmsh.y"
+case 281:
+#line 2145 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
     break;}
-case 287:
-#line 2308 "Gmsh.y"
+case 282:
+#line 2146 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
     break;}
-case 288:
-#line 2309 "Gmsh.y"
+case 283:
+#line 2147 "Gmsh.y"
 { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
     break;}
-case 289:
-#line 2318 "Gmsh.y"
+case 284:
+#line 2156 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
-case 290:
-#line 2319 "Gmsh.y"
+case 285:
+#line 2157 "Gmsh.y"
 { yyval.d = 3.141592653589793; ;
     break;}
-case 291:
-#line 2324 "Gmsh.y"
+case 286:
+#line 2162 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[0].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -5578,8 +5314,8 @@ case 291:
       Free(yyvsp[0].c);
     ;
     break;}
-case 292:
-#line 2336 "Gmsh.y"
+case 287:
+#line 2174 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-3].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -5597,8 +5333,8 @@ case 292:
       Free(yyvsp[-3].c);
     ;
     break;}
-case 293:
-#line 2354 "Gmsh.y"
+case 288:
+#line 2192 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-1].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -5611,8 +5347,8 @@ case 293:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 294:
-#line 2366 "Gmsh.y"
+case 289:
+#line 2204 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-4].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -5630,8 +5366,8 @@ case 294:
       Free(yyvsp[-4].c);
     ;
     break;}
-case 295:
-#line 2384 "Gmsh.y"
+case 290:
+#line 2222 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-1].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -5644,8 +5380,8 @@ case 295:
       Free(yyvsp[-1].c);
     ;
     break;}
-case 296:
-#line 2396 "Gmsh.y"
+case 291:
+#line 2234 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-4].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -5663,8 +5399,8 @@ case 296:
       Free(yyvsp[-4].c);
     ;
     break;}
-case 297:
-#line 2416 "Gmsh.y"
+case 292:
+#line 2254 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-2].c);
@@ -5686,8 +5422,8 @@ case 297:
       }
     ;
     break;}
-case 298:
-#line 2437 "Gmsh.y"
+case 293:
+#line 2275 "Gmsh.y"
 {
       if(strcmp(yyvsp[-7].c, "PostProcessing")){
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-7].c);
@@ -5711,8 +5447,8 @@ case 298:
       }
     ;
     break;}
-case 299:
-#line 2461 "Gmsh.y"
+case 294:
+#line 2299 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c);
@@ -5734,8 +5470,8 @@ case 299:
       }
     ;
     break;}
-case 300:
-#line 2482 "Gmsh.y"
+case 295:
+#line 2320 "Gmsh.y"
 {
       if(strcmp(yyvsp[-8].c, "PostProcessing")){
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-8].c);
@@ -5759,8 +5495,8 @@ case 300:
       }
     ;
     break;}
-case 301:
-#line 2506 "Gmsh.y"
+case 296:
+#line 2344 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c);
@@ -5782,8 +5518,8 @@ case 301:
       }
     ;
     break;}
-case 302:
-#line 2527 "Gmsh.y"
+case 297:
+#line 2365 "Gmsh.y"
 {
       if(strcmp(yyvsp[-8].c, "PostProcessing")){
 	vyyerror("Unknown View Option Class '%s'", yyvsp[-8].c);
@@ -5807,16 +5543,16 @@ case 302:
       }
     ;
     break;}
-case 303:
-#line 2553 "Gmsh.y"
+case 298:
+#line 2391 "Gmsh.y"
 { 
       ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; 
       for(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(ListOfDouble2_L, &d) ;
     ;
     break;}
-case 304:
-#line 2559 "Gmsh.y"
+case 299:
+#line 2397 "Gmsh.y"
 {
       ListOfDouble2_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)){
@@ -5828,198 +5564,127 @@ case 304:
 	  List_Add(ListOfDouble2_L, &d) ;
    ;
     break;}
-case 305:
-#line 2573 "Gmsh.y"
+case 300:
+#line 2411 "Gmsh.y"
 {
       memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ;
       //??? Avec ce qui suit, bison se plante sur DEC
       //for(i=0 ; i<5 ; i++) $$[i] = $1[i];
     ;
     break;}
-case 306:
-#line 2579 "Gmsh.y"
+case 301:
+#line 2417 "Gmsh.y"
 {
       for(i=0 ; i<5 ; i++) yyval.v[i] = -yyvsp[0].v[i] ;
     ;
     break;}
-case 307:
-#line 2583 "Gmsh.y"
+case 302:
+#line 2421 "Gmsh.y"
 { 
       for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[0].v[i];
     ;
     break;}
-case 308:
-#line 2587 "Gmsh.y"
+case 303:
+#line 2425 "Gmsh.y"
 { 
       for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ;
     ;
     break;}
-case 309:
-#line 2591 "Gmsh.y"
+case 304:
+#line 2429 "Gmsh.y"
 {
       for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ;
     ;
     break;}
-case 310:
-#line 2597 "Gmsh.y"
+case 305:
+#line 2435 "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 311:
-#line 2601 "Gmsh.y"
+case 306:
+#line 2439 "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 312:
-#line 2605 "Gmsh.y"
+case 307:
+#line 2443 "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 313:
-#line 2609 "Gmsh.y"
+case 308:
+#line 2447 "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 314:
-#line 2613 "Gmsh.y"
-{
-      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-2].c))){
-	vyyerror("Unknown Array Option Class '%s'", yyvsp[-2].c);
-	yyval.v[0]=yyval.v[1]=yyval.v[2]=yyval.v[3]= 0.0 ;
-	yyval.v[4]= 1.0 ;
-      }
-      else{
-	if(!(pArrOpt = Get_ArrayOption(yyvsp[0].c, pArrCat, &i))){
-	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-2].c, yyvsp[0].c);
-	  yyval.v[0]=yyval.v[1]=yyval.v[2]=yyval.v[3]= 0.0 ;
-	  yyval.v[4]= 1.0 ;
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4 ; j++) yyval.v[j] = ((double*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4 ; j++) yyval.v[j] = (double)((float*)pArrOpt)[j] ;
-	    break ;
-	  case GMSH_LONG : 
-	    for(j=0 ; j<4 ; j++) yyval.v[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4 ; j++) yyval.v[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  }
-	  yyval.v[4] = 1. ;
-	}
-      }
-    ;
-    break;}
-case 315:
-#line 2645 "Gmsh.y"
-{
-      if(strcmp(yyvsp[-7].c, "PostProcessing")){
-	vyyerror("Unknown View Option Class '%s'", yyvsp[-7].c);
-	yyval.v[0]=yyval.v[1]=yyval.v[2]=yyval.v[3]= 0.0 ;
-	yyval.v[4]= 1.0 ;
-      }
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-3].d, yyvsp[0].c, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-3].d);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     yyvsp[-7].c, (int)yyvsp[-3].d, yyvsp[0].c);
-	  yyval.v[0]=yyval.v[1]=yyval.v[2]=yyval.v[3]= 0.0 ;
-	  yyval.v[4]= 1.0 ;
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3 ; j++) yyval.v[j] = ((double*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3 ; j++) yyval.v[j] = (double)((float*)pArrOpt)[j] ;
-	    break ;
-	  case GMSH_LONG : 
-	    for(j=0 ; j<3 ; j++) yyval.v[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3 ; j++) yyval.v[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  }
-	  yyval.v[3] = 0. ;
-	  yyval.v[4] = 1. ;
-	}
-      }
-    ;
-    break;}
-case 316:
-#line 2683 "Gmsh.y"
+case 309:
+#line 2454 "Gmsh.y"
 {
     ;
     break;}
-case 317:
-#line 2686 "Gmsh.y"
+case 310:
+#line 2457 "Gmsh.y"
 {
     ;
     break;}
-case 318:
-#line 2692 "Gmsh.y"
+case 311:
+#line 2463 "Gmsh.y"
 {
     ;
     break;}
-case 319:
-#line 2695 "Gmsh.y"
+case 312:
+#line 2466 "Gmsh.y"
 {
     ;
     break;}
-case 320:
-#line 2701 "Gmsh.y"
+case 313:
+#line 2472 "Gmsh.y"
 {
     ;
     break;}
-case 321:
-#line 2704 "Gmsh.y"
+case 314:
+#line 2475 "Gmsh.y"
 {
        yyval.l=ListOfListOfDouble_L;
     ;
     break;}
-case 322:
-#line 2708 "Gmsh.y"
+case 315:
+#line 2479 "Gmsh.y"
 {
        yyval.l=ListOfListOfDouble_L;
     ;
     break;}
-case 323:
-#line 2715 "Gmsh.y"
+case 316:
+#line 2486 "Gmsh.y"
 {
       ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ;
       List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
     ;
     break;}
-case 324:
-#line 2720 "Gmsh.y"
+case 317:
+#line 2491 "Gmsh.y"
 {
       List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
     ;
     break;}
-case 325:
-#line 2727 "Gmsh.y"
+case 318:
+#line 2498 "Gmsh.y"
 {
     ;
     break;}
-case 326:
-#line 2730 "Gmsh.y"
+case 319:
+#line 2501 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 327:
-#line 2736 "Gmsh.y"
+case 320:
+#line 2507 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       TheSymbol.Name = yyvsp[-2].c ;
@@ -6035,21 +5700,21 @@ case 327:
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 328:
-#line 2751 "Gmsh.y"
+case 321:
+#line 2522 "Gmsh.y"
 {
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 329:
-#line 2759 "Gmsh.y"
+case 322:
+#line 2530 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
     ;
     break;}
-case 330:
-#line 2764 "Gmsh.y"
+case 323:
+#line 2535 "Gmsh.y"
 { 
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
@@ -6059,8 +5724,8 @@ case 330:
       List_Delete(ListOfDouble2_L);
     ;
     break;}
-case 331:
-#line 2773 "Gmsh.y"
+case 324:
+#line 2544 "Gmsh.y"
 { 
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       TheSymbol.Name = yyvsp[-2].c ;
@@ -6073,14 +5738,14 @@ case 331:
       }
     ;
     break;}
-case 332:
-#line 2785 "Gmsh.y"
+case 325:
+#line 2556 "Gmsh.y"
 {
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
     ;
     break;}
-case 333:
-#line 2789 "Gmsh.y"
+case 326:
+#line 2560 "Gmsh.y"
 {
       for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
 	List_Read(ListOfDouble2_L, i, &d) ;
@@ -6089,8 +5754,8 @@ case 333:
       List_Delete(ListOfDouble2_L);
     ;
     break;}
-case 334:
-#line 2797 "Gmsh.y"
+case 327:
+#line 2568 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-2].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -6102,34 +5767,34 @@ case 334:
       }
     ;
     break;}
-case 335:
-#line 2811 "Gmsh.y"
+case 328:
+#line 2582 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
     ;
     break;}
-case 336:
-#line 2815 "Gmsh.y"
+case 329:
+#line 2586 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
     ;
     break;}
-case 337:
-#line 2819 "Gmsh.y"
+case 330:
+#line 2590 "Gmsh.y"
 {
       yyval.u = Get_ColorForString(ColorString, (int)yyvsp[-1].d, yyvsp[-3].c, &flag);
       if(flag) vyyerror("Unknown Color '%s'", yyvsp[-3].c);
     ;
     break;}
-case 338:
-#line 2824 "Gmsh.y"
+case 331:
+#line 2595 "Gmsh.y"
 {
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
       if(flag) vyyerror("Unknown Color '%s'", yyvsp[0].c);
     ;
     break;}
-case 339:
-#line 2829 "Gmsh.y"
+case 332:
+#line 2600 "Gmsh.y"
 {
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){
 	vyyerror("Unknown Color Option Class '%s'", yyvsp[-4].c);
@@ -6146,14 +5811,14 @@ case 339:
       }
     ;
     break;}
-case 340:
-#line 2849 "Gmsh.y"
+case 333:
+#line 2620 "Gmsh.y"
 {
       yyval.l = ListOfColor_L;
     ;
     break;}
-case 341:
-#line 2853 "Gmsh.y"
+case 334:
+#line 2624 "Gmsh.y"
 {
       if(!ListOfColor_L)
 	ListOfColor_L = List_Create(256,10,sizeof(unsigned int)) ;
@@ -6173,8 +5838,8 @@ case 341:
       yyval.l = ListOfColor_L;
     ;
     break;}
-case 342:
-#line 2875 "Gmsh.y"
+case 335:
+#line 2646 "Gmsh.y"
 {
       if(!ListOfColor_L)
 	ListOfColor_L = List_Create(256,10,sizeof(unsigned int)) ;
@@ -6183,26 +5848,26 @@ case 342:
       List_Add(ListOfColor_L, &(yyvsp[0].u)) ;
     ;
     break;}
-case 343:
-#line 2883 "Gmsh.y"
+case 336:
+#line 2654 "Gmsh.y"
 {
       List_Add(ListOfColor_L, &(yyvsp[0].u)) ;
     ;
     break;}
-case 344:
-#line 2890 "Gmsh.y"
+case 337:
+#line 2661 "Gmsh.y"
 {
       yyval.c = yyvsp[0].c;
     ;
     break;}
-case 345:
-#line 2894 "Gmsh.y"
+case 338:
+#line 2665 "Gmsh.y"
 {
       yyval.c = yyvsp[-1].c;
     ;
     break;}
-case 346:
-#line 2898 "Gmsh.y"
+case 339:
+#line 2669 "Gmsh.y"
 {
       for(i = 0 ; i<List_Nbr(ListOfDouble_L) ; i++){
 	if(!i){
@@ -6448,7 +6113,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 2922 "Gmsh.y"
+#line 2693 "Gmsh.y"
 
 
 void InitSymbols(void){
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 7699232529bbffdfce408fede54e998046b6bad6..3a9c7381af51786939ff70c5847749213e0de6e3 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,4 +1,4 @@
-%{ /* $Id: Gmsh.y,v 1.41 2000-12-11 19:39:15 geuzaine Exp $ */
+%{ /* $Id: Gmsh.y,v 1.42 2000-12-11 22:09:43 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -48,12 +48,11 @@ static ExtrudeParams  extr;
 static List_T         *ListOfDouble_L,*ListOfDouble2_L;
 static List_T         *ListOfListOfDouble_L, *ListOfColor_L=NULL;
 static char           *str;
-static void           *pNumOpt, *pArrOpt;
+static void           *pNumOpt;
 static char          **pStrOpt, *pStrViewOpt;
 static unsigned int   *pColOpt;
 static StringXString  *pStrCat;
 static StringXNumber  *pNumCat;
-static StringXArray   *pArrCat;
 static StringXColor   *pColCat;
 
 void yyerror (char *s);
@@ -108,7 +107,7 @@ void skip_until (char *until);
 
 %token tSolid tEndSolid tVertex tFacet tNormal tOuter tLoopSTL tEndLoop tEndFacet
 
-%type <d> FExpr FExpr_Single
+%type <d> FExpr FExpr_Single SignedDouble
 %type <v> VExpr VExpr_Single
 %type <i> BoolExpr
 %type <u> ColorExpr
@@ -145,6 +144,7 @@ All :
     StepFormatItems
   | STLFormatItem
   | GeomFormatList
+  | error tEND { yyerrok ; return 1; }
 ;
 
 /*  ----------------------------------------------------------------------
@@ -160,11 +160,11 @@ STLFormatItem :
       return 1;
     }
   | tFacet
-    tNormal FExpr FExpr FExpr
+    tNormal SignedDouble SignedDouble SignedDouble
     tOuter tLoopSTL
-      tVertex FExpr FExpr FExpr
-      tVertex FExpr FExpr FExpr
-      tVertex FExpr FExpr FExpr
+      tVertex SignedDouble SignedDouble SignedDouble
+      tVertex SignedDouble SignedDouble SignedDouble
+      tVertex SignedDouble SignedDouble SignedDouble
     tEndLoop
     tEndFacet
     {
@@ -194,7 +194,6 @@ StepFormatItem :
     StepSpecial { return 1; }
   | StepDataItem { return 1; }
   | StepHeaderItem { return 1; }
-  | error tEND { yyerrok ; return 1; }
 ;
 
 StepSpecial :
@@ -383,7 +382,6 @@ GeomFormat :
   | Coherence   { return 1; }
   | Loop        { return 1; }
   | Command     { return 1; }
-  | error tEND  { yyerrok; return 1;}
 ;
 
 Printf :
@@ -1195,170 +1193,6 @@ Affectation :
       }
     }
 
-  /* -------- Option Arrays -------- */ 
-
-  | tSTRING '.' tSTRING tAFFECT VExpr tEND 
-    {
-      if(!(pArrCat = Get_ArrayOptionCategory($1)))
-	vyyerror("Unknown Array Option Class '%s'", $1);
-      else{
-	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i)))
-	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] = $5[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] = (float)$5[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] = (long)$5[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] = (int)$5[j] ;
-	    break ;
-	  }
-	}
-      }
-    }
-  | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT VExpr tEND 
-    {
-      if(strcmp($1, "PostProcessing"))
-	vyyerror("Unknown View Option Class '%s'", $1);
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     $1, (int)$5, $8);
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] = $10[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] = (float)$10[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] = (long)$10[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] = (int)$10[j] ;
-	    break ;
-	  }
-	}
-      }
-    }
-
-  | tSTRING '.' tSTRING tAFFECTPLUS VExpr tEND 
-    {
-      if(!(pArrCat = Get_ArrayOptionCategory($1)))
-	vyyerror("Unknown Array Option Class '%s'", $1);
-      else{
-	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i)))
-	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] += $5[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] += (float)$5[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] += (long)$5[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] += (int)$5[j] ;
-	    break ;
-	  }
-	}
-      }
-    }
-  | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTPLUS VExpr tEND 
-    {
-      if(strcmp($1, "PostProcessing"))
-	vyyerror("Unknown View Option Class '%s'", $1);
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     $1, (int)$5, $8);
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] += $10[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] += (float)$10[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] += (long)$10[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] += (int)$10[j] ;
-	    break ;
-	  }
-	}
-      }
-    }
-
-  | tSTRING '.' tSTRING tAFFECTMINUS VExpr tEND 
-    {
-      if(!(pArrCat = Get_ArrayOptionCategory($1)))
-	vyyerror("Unknown Array Option Class '%s'", $1);
-      else{
-	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i)))
-	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] -= $5[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] -= (float)$5[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] -= (long)$5[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] -= (int)$5[j] ;
-	    break ;
-	  }
-	}
-      }
-    }
-  | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTMINUS VExpr tEND 
-    {
-      if(strcmp($1, "PostProcessing"))
-	vyyerror("Unknown View Option Class '%s'", $1);
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     $1, (int)$5, $8);
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] -= $10[j] ;
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] -= (float)$10[j] ;
-	    break ;
-	  case GMSH_LONG :
-	    for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] -= (long)$10[j] ;
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] -= (int)$10[j] ;
-	    break ;
-	  }
-	}
-      }
-    }
-
   /* -------- Option Colors -------- */ 
 
   | tSTRING '.' tColor '.' tSTRING tAFFECT ColorExpr tEND 
@@ -1575,14 +1409,14 @@ Shape :
       $$.Type = MSH_SURF_PLAN;
       $$.Num  = (int)$4;
     }
-  | tTrimmed tSurface '(' FExpr ')' tAFFECT FExpr ListOfDouble tEND
+  | tTrimmed tSurface '(' FExpr ')' tAFFECT '{' FExpr ',' ListOfDouble '}' tEND
     {
       Surface *s,*support;
-      support = FindSurface((int)$7,THEM);
+      support = FindSurface((int)$8,THEM);
       if(!support)
-	vyyerror("Unkown Surface %d", (int)$7);
+	vyyerror("Unkown Surface %d", (int)$8);
       else{
-	Cdbz101((int)$4,MSH_SURF_PLAN,0,0,0,0,0,NULL,$8,NULL);
+	Cdbz101((int)$4,MSH_SURF_PLAN,0,0,0,0,0,NULL,$10,NULL);
 	s = FindSurface((int)$4,THEM);
 	if(!s)
 	  vyyerror("Unkown Surface %d", (int)$4);
@@ -2250,6 +2084,10 @@ Coherence :
     G E N E R A L
     --------------- */
 
+SignedDouble :
+    tDOUBLE     { $$ = $1; }
+  | '-' tDOUBLE { $$ = -$2; }
+;
 
 BoolExpr :
     tTRUE {$$ = 1;}
@@ -2609,73 +2447,6 @@ VExpr_Single :
     {
       $$[0]=$2;  $$[1]=$4;  $$[2]=$6;  $$[3]=0.0; $$[4]=1.0;
     }
-  | tSTRING '.' tSTRING
-    {
-      if(!(pArrCat = Get_ArrayOptionCategory($1))){
-	vyyerror("Unknown Array Option Class '%s'", $1);
-	$$[0]=$$[1]=$$[2]=$$[3]= 0.0 ;
-	$$[4]= 1.0 ;
-      }
-      else{
-	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))){
-	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
-	  $$[0]=$$[1]=$$[2]=$$[3]= 0.0 ;
-	  $$[4]= 1.0 ;
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<4 ; j++) $$[j] = ((double*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<4 ; j++) $$[j] = (double)((float*)pArrOpt)[j] ;
-	    break ;
-	  case GMSH_LONG : 
-	    for(j=0 ; j<4 ; j++) $$[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<4 ; j++) $$[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  }
-	  $$[4] = 1. ;
-	}
-      }
-    }
-  | tSTRING '.' tView '[' FExpr ']' '.' tSTRING
-    {
-      if(strcmp($1, "PostProcessing")){
-	vyyerror("Unknown View Option Class '%s'", $1);
-	$$[0]=$$[1]=$$[2]=$$[3]= 0.0 ;
-	$$[4]= 1.0 ;
-      }
-      else{
-	if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){
-	  if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5);
-	  else	    vyyerror("Unknown Array Option '%s.View[%d].%s'", 
-			     $1, (int)$5, $8);
-	  $$[0]=$$[1]=$$[2]=$$[3]= 0.0 ;
-	  $$[4]= 1.0 ;
-	}
-	else{
-	  switch(i){
-	  case GMSH_DOUBLE :
-	    for(j=0 ; j<3 ; j++) $$[j] = ((double*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_FLOAT :
-	    for(j=0 ; j<3 ; j++) $$[j] = (double)((float*)pArrOpt)[j] ;
-	    break ;
-	  case GMSH_LONG : 
-	    for(j=0 ; j<3 ; j++) $$[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  case GMSH_INT :
-	    for(j=0 ; j<3 ; j++) $$[j] = (double)((int*)pArrOpt)[j] ; 
-	    break ;
-	  }
-	  $$[3] = 0. ;
-	  $$[4] = 1. ;
-	}
-      }
-    }
 ;
 
 ListOfStrings :
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index b9edc72fa249b28c6548cf33ffdf5be292fc4941..f68abd8d71f0c8f6492a5959a8b0f4b79ca1011d 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.45 2000-12-11 19:39:15 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.46 2000-12-11 22:09:43 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
diff --git a/doc/FORMATS b/doc/FORMATS
index 4a28a9a3c531c82f28d9d408f9eafdbeebaa75ff..f1511672c3ef3f7f1d320f308dcdc0636918edf7 100644
--- a/doc/FORMATS
+++ b/doc/FORMATS
@@ -1,7 +1,7 @@
-$Id: FORMATS,v 1.4 2000-12-09 22:26:13 geuzaine Exp $
+$Id: FORMATS,v 1.5 2000-12-11 22:09:43 geuzaine Exp $
 
 This document describes the mesh and post-processing file formats for
-Gmsh, version 0.995. 
+Gmsh, version >= 0.995. 
 
 (This document deals only with the import/export interfaces for
 Gmsh. The language driving Gmsh's behaviour for defining geometries,
diff --git a/doc/gmsh.1 b/doc/gmsh.1
index 52196b1e3b524059a142454ea12bcee53ce078c3..e51df374457280637737196ec5a836de3e176f26 100644
--- a/doc/gmsh.1
+++ b/doc/gmsh.1
@@ -5,7 +5,7 @@
 .\" Copyright (c) 2000 J.-F. Remacle, C. Geuzaine
 .\" 
 .\" ======================================================================
-.TH Gmsh 0.995 "08 December 2000"
+.TH Gmsh 0.996 "12 December 2000"
 .UC 4
 .\" ======================================================================
 .SH NAME
@@ -209,7 +209,7 @@ Remacle (Remacle@scorec.rpi.edu).
 .SH SEE ALSO
 Gmsh homepage at \fIhttp://www.geuz.org/gmsh/\fR
 .PP
-Gmsh example files in \fI/usr/doc/gmsh-0.995/\fR
+Gmsh example files in \fI/usr/doc/gmsh-0.996/\fR
 .PP
 GetDP (a scientific computation software for the numerical solution of
 integro-differential equations, using finite element and integral type
diff --git a/doc/gmsh.texi b/doc/gmsh.texi
index 7af29aebc7e6a63fdf96f5687107871ce55b07a1..e4636e9730cc6fe27bbe1d63e2d214de468e7d6a 100644
--- a/doc/gmsh.texi
+++ b/doc/gmsh.texi
@@ -1,5 +1,5 @@
 \input texinfo.tex    @c -*-texinfo-*-
-@c $Id: gmsh.texi,v 1.2 2000-12-09 22:26:13 geuzaine Exp $
+@c $Id: gmsh.texi,v 1.3 2000-12-11 22:09:43 geuzaine Exp $
 @c =========================================================================
 @c
 @c This is the Gmsh documentation texinfo source file
@@ -21,8 +21,8 @@
 @c %**start of header
 @setfilename   gmsh.info
 @set EDITION   1.
-@set VERSION   0.995
-@set DAY       09
+@set VERSION   0.996
+@set DAY       12
 @set MONTH     December 2000
 @set COPYRIGHT @copyright{} 1997-2000 Christophe Geuzaine, Jean-Francois Remacle
 @set WEB-GMSH  @uref{http://www.geuz.org/gmsh/}
diff --git a/examples/animation.geo b/examples/animation.geo
index 5e63801fb9fff8e38795c0ed6e663e2658e8b804..caf89086ef811cb81c8e384d86d492a49d61b194 100644
--- a/examples/animation.geo
+++ b/examples/animation.geo
@@ -6,7 +6,7 @@ General.Color.Background = White ;
 General.Color.ForeGround = Red ;
 
 Post.View[0].IntervalsType = 2 ;
-Post.View[0].Raise = {0,0,0.1} ;
+Post.View[0].Raise2 = 0.1 ;
 
 For(1:300)
 
@@ -16,7 +16,7 @@ For(1:300)
   Post.View[0].TimeStep += 
     (Post.View[0].TimeStep < Post.View[0].NbTimeStep-1) ? 1 : 0 ;
 
-  Post.View[0].Raise -= {0,0,0.01} ;
+  Post.View[0].Raise2 -= .01 ;
 
   Sleep 0.1;
   Draw;
diff --git a/tutorial/t8.geo b/tutorial/t8.geo
index d145f8357e101326d9e3ddbaf7a61441994874f6..5ca546fb8f31322da8ac3f618c454dbac77a9f50 100644
--- a/tutorial/t8.geo
+++ b/tutorial/t8.geo
@@ -31,8 +31,8 @@ General.Axes = 0 ;
 
 PostProcessing.View[0].Name = "This is a very stupid demonstration..." ;
 PostProcessing.View[0].IntervalsType = 2 ;
-PostProcessing.View[0].Offset = {0,0,0.05} ;
-PostProcessing.View[0].Raise = {0,0,0} ;
+PostProcessing.View[0].Offset2 = 0.05 ;
+PostProcessing.View[0].Raise2 = 0 ;
 PostProcessing.View[0].Light = 1 ;
 
 PostProcessing.View[1].Name = "...of Gmsh's scripting capabilities" ;
@@ -54,7 +54,7 @@ For num In {1:255}
 
   t = (PostProcessing.View[0].TimeStep < PostProcessing.View[0].NbTimeStep-1) ? t+1 : 0 ;
   
-  PostProcessing.View[0].Raise += {0,0,0.001*t} ;
+  PostProcessing.View[0].Raise2 += 0.001*t ;
 
 // It is possible to nest loops:
 
diff --git a/utils/build_machines b/utils/build_machines
index b42871ea38e3a058bab20cce555fc7e7aa589088..aaa56f1c1754face948ebb6fee7c42c7b7d58fd8 100644
--- a/utils/build_machines
+++ b/utils/build_machines
@@ -10,4 +10,5 @@ Where to change the version number?
 1) Makfile
 2) utils/gmsh.spec (2 occurrences)
 3) doc/gmsh.1 (2 occurrences)
+4) www/gmsh.html (several occurrences)
 
diff --git a/utils/gmsh.spec b/utils/gmsh.spec
index 1705085459076751fc5ecd5aa158b202bfd77065..f6bdcbe5fdd02bca45c42f344408191bd287bc59 100644
--- a/utils/gmsh.spec
+++ b/utils/gmsh.spec
@@ -1,7 +1,7 @@
 Summary: A 3D mesh generator with pre- and post-processing facilities
 Name: gmsh
-Version: 0.995
-Source: gmsh-0.995.tar.gz
+Version: 0.996
+Source: gmsh-0.996.tar.gz
 Release: 1
 Copyright: distributable
 Group: Applications/Engineering
diff --git a/www/gmsh.html b/www/gmsh.html
index 464fb120284f93458801c4a5a612a7ba13e1b6d3..b8fc11e98179b8178dca01801fc7ea94c9b4ece7 100644
--- a/www/gmsh.html
+++ b/www/gmsh.html
@@ -263,11 +263,11 @@ files.
     under Linux) or modify the LD_LIBRARY_PATH (or SHLIB_PATH on HP)
     in order for Gmsh to find these libraries.
     <p>
-    Version 0.995 (10 December 2000):
+    Version 0.996 (12 December 2000):
     <ul>
     <li>Red Hat package with man page and examples
       <ul>
-        <li><A href="/gmsh/latest/gmsh-0.995-1.i386.rpm">Linux (i386, glibc 2.1) RPM</A> 
+        <li><A href="/gmsh/latest/gmsh-0.996-1.i386.rpm">Linux (i386, glibc 2.1) RPM</A> 
       </ul>
     <li>Tarballs
       <ul>
@@ -301,6 +301,9 @@ files.
 
   <td><font face="Helvetica, Arial" size=-1> 
 
+New in 0.996: Arrays of variables; Enhanced Printf and Sprintf;
+Simplified options (suppression of option arrays).
+<p>
 New in 0.995:
 <ul>
 <li>
@@ -338,39 +341,38 @@ algorithm in real time on complex geometries: that's exciting ;-)
 <li>
 And many, many bug fixes and cleanings...
 </ul>
-
-    <p>
-    New in 0.992: corrected recombined extrusion; corrected ellipses; added
-    simple automatic animation of post-processing maps; fixed various bugs.
-    <p>
-    New in 0.991: fixed a serious allocation bug in 2D algorithm, which
-    caused random crashes. All users should upgrade to 0.991.
-    <p>
-    New in 0.990: bug fix in non-recombined 3D transfinite meshes.
-    <p>
-    New in 0.989: added ability to reload previously saved meshes; some
-    new command line options; reorganization of the scale menu; GIF
-    output.
-    <p>
-    New in 0.987: fixed bug with smoothing (leading to the possible
-    generation of erroneous 3d meshes); corrected bug for mixed 3D meshes;
-    moved the 'toggle view link' option to Opt->Postprocessing_Options.
-    <p>
-    New in 0.986: fixed overlay problems; SGI version should now also run
-    on 32 bits machines; fixed small 3d mesh bug.
-    <p>
-    New in 0.985: corrected colormap bug on HP, SUN, SGI and IBM versions;
-    corrected small initialization bug in postscript output.
-    <p>
-    New in 0.984: corrected bug in display lists; added some options in
-    Opt->General.
-    <p>
-    New in 0.983: corrected some seg faults in interactive mode; corrected
-    bug in rotations; changed default window sizes for better match with
-    1024x768 screens (default X resources can be changed: see ex03.geo).
-    <p>
-    New in 0.982: lighting for mesh and post-processing; corrected 2nd
-    order mesh on non plane surfaces; added example 13.
+<p>
+New in 0.992: corrected recombined extrusion; corrected ellipses; added
+simple automatic animation of post-processing maps; fixed various bugs.
+<p>
+New in 0.991: fixed a serious allocation bug in 2D algorithm, which
+caused random crashes. All users should upgrade to 0.991.
+<p>
+New in 0.990: bug fix in non-recombined 3D transfinite meshes.
+<p>
+New in 0.989: added ability to reload previously saved meshes; some
+new command line options; reorganization of the scale menu; GIF
+output.
+<p>
+New in 0.987: fixed bug with smoothing (leading to the possible
+generation of erroneous 3d meshes); corrected bug for mixed 3D meshes;
+moved the 'toggle view link' option to Opt->Postprocessing_Options.
+<p>
+New in 0.986: fixed overlay problems; SGI version should now also run
+on 32 bits machines; fixed small 3d mesh bug.
+<p>
+New in 0.985: corrected colormap bug on HP, SUN, SGI and IBM versions;
+corrected small initialization bug in postscript output.
+<p>
+New in 0.984: corrected bug in display lists; added some options in
+Opt->General.
+<p>
+New in 0.983: corrected some seg faults in interactive mode; corrected
+bug in rotations; changed default window sizes for better match with
+1024x768 screens (default X resources can be changed: see ex03.geo).
+<p>
+New in 0.982: lighting for mesh and post-processing; corrected 2nd
+order mesh on non plane surfaces; added example 13.
   </td>
 
 </tr>