diff --git a/Makefile b/Makefile
index 971e86e023012f87add9d2253b26ced9f0f28145..67e56fdffe64453436e4f514170eca993871b02a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.12 2000-12-06 18:28:30 remacle Exp $
+# $Id: Makefile,v 1.13 2000-12-06 22:25:24 geuzaine Exp $
 # ----------------------------------------------------------------------
 #  Makefile for Gmsh  
 # ----------------------------------------------------------------------
@@ -21,8 +21,8 @@
  MESA_STATIC_LIB = $(HOME)/SOURCES/Mesa-3.0-static/lib/libGLw.a\
                    $(HOME)/SOURCES/Mesa-3.0-static/lib/libGLU.a\
                    $(HOME)/SOURCES/Mesa-3.0-static/lib/libGL.a
-       MOTIF_LIB = /usr/local/lib/libXm.so.2
-//       MOTIF_LIB = -L/usr/local/lib -L/usr/X11R6/LessTif/Motif1.2/lib -lXm 
+//       MOTIF_LIB = /usr/local/lib/libXm.so.2
+       MOTIF_LIB = -L/usr/local/lib -L/usr/X11R6/LessTif/Motif1.2/lib -lXm 
            X_LIB = -L/usr/X11R6/lib -lXt -lX11 -lXext
       THREAD_LIB = -L/usr/lib -lpthread
 
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 2e1e869e33bf5f6456b5a65fd9734ae22c3d0e79..3a24cbf82ad7ccb3035809b4b033034f03a0fb0e 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -31,129 +31,137 @@
 #define	tFmod	281
 #define	tModulo	282
 #define	tHypot	283
-#define	tPoint	284
-#define	tCircle	285
-#define	tEllipsis	286
-#define	tLine	287
-#define	tSurface	288
-#define	tSpline	289
-#define	tVolume	290
-#define	tCharacteristic	291
-#define	tLength	292
-#define	tParametric	293
-#define	tElliptic	294
-#define	tPlane	295
-#define	tRuled	296
-#define	tTransfinite	297
-#define	tComplex	298
-#define	tPhysical	299
-#define	tUsing	300
-#define	tPower	301
+#define	tPrintf	284
+#define	tPoint	285
+#define	tCircle	286
+#define	tEllipsis	287
+#define	tLine	288
+#define	tSurface	289
+#define	tSpline	290
+#define	tVolume	291
+#define	tCharacteristic	292
+#define	tLength	293
+#define	tParametric	294
+#define	tElliptic	295
+#define	tPlane	296
+#define	tRuled	297
+#define	tTransfinite	298
+#define	tComplex	299
+#define	tPhysical	300
+#define	tUsing	301
 #define	tBump	302
 #define	tProgression	303
-#define	tAssociation	304
-#define	tRotate	305
-#define	tTranslate	306
-#define	tSymmetry	307
-#define	tDilate	308
-#define	tExtrude	309
-#define	tDuplicata	310
-#define	tLoop	311
-#define	tInclude	312
-#define	tRecombine	313
-#define	tDelete	314
-#define	tCoherence	315
-#define	tView	316
-#define	tOffset	317
-#define	tAttractor	318
-#define	tLayers	319
-#define	tScalarTetrahedron	320
-#define	tVectorTetrahedron	321
-#define	tTensorTetrahedron	322
-#define	tScalarTriangle	323
-#define	tVectorTriangle	324
-#define	tTensorTriangle	325
-#define	tScalarLine	326
-#define	tVectorLine	327
-#define	tTensorLine	328
-#define	tScalarPoint	329
-#define	tVectorPoint	330
-#define	tTensorPoint	331
-#define	tBSpline	332
-#define	tNurbs	333
-#define	tOrder	334
-#define	tWith	335
-#define	tBounds	336
-#define	tKnots	337
-#define	tColor	338
-#define	tOptions	339
-#define	tFor	340
-#define	tEndFor	341
-#define	tScript	342
-#define	tExit	343
-#define	tMerge	344
-#define	tGeneral	345
-#define	tGeometry	346
-#define	tMesh	347
-#define	tPostProcessing	348
-#define	tPrint	349
-#define	tB_SPLINE_SURFACE_WITH_KNOTS	350
-#define	tB_SPLINE_CURVE_WITH_KNOTS	351
-#define	tCARTESIAN_POINT	352
-#define	tTRUE	353
-#define	tFALSE	354
-#define	tUNSPECIFIED	355
-#define	tU	356
-#define	tV	357
-#define	tEDGE_CURVE	358
-#define	tVERTEX_POINT	359
-#define	tORIENTED_EDGE	360
-#define	tPLANE	361
-#define	tFACE_OUTER_BOUND	362
-#define	tEDGE_LOOP	363
-#define	tADVANCED_FACE	364
-#define	tVECTOR	365
-#define	tDIRECTION	366
-#define	tAXIS2_PLACEMENT_3D	367
-#define	tISO	368
-#define	tENDISO	369
-#define	tENDSEC	370
-#define	tDATA	371
-#define	tHEADER	372
-#define	tFILE_DESCRIPTION	373
-#define	tFILE_SCHEMA	374
-#define	tFILE_NAME	375
-#define	tMANIFOLD_SOLID_BREP	376
-#define	tCLOSED_SHELL	377
-#define	tADVANCED_BREP_SHAPE_REPRESENTATION	378
-#define	tFACE_BOUND	379
-#define	tCYLINDRICAL_SURFACE	380
-#define	tCONICAL_SURFACE	381
-#define	tCIRCLE	382
-#define	tTRIMMED_CURVE	383
-#define	tGEOMETRIC_SET	384
-#define	tCOMPOSITE_CURVE_SEGMENT	385
-#define	tCONTINUOUS	386
-#define	tCOMPOSITE_CURVE	387
-#define	tTOROIDAL_SURFACE	388
-#define	tPRODUCT_DEFINITION	389
-#define	tPRODUCT_DEFINITION_SHAPE	390
-#define	tSHAPE_DEFINITION_REPRESENTATION	391
-#define	tELLIPSE	392
-#define	tTrimmed	393
-#define	tSolid	394
-#define	tEndSolid	395
-#define	tVertex	396
-#define	tFacet	397
-#define	tNormal	398
-#define	tOuter	399
-#define	tLoopSTL	400
-#define	tEndLoop	401
-#define	tEndFacet	402
-#define	UMINUS	403
+#define	tRotate	304
+#define	tTranslate	305
+#define	tSymmetry	306
+#define	tDilate	307
+#define	tExtrude	308
+#define	tDuplicata	309
+#define	tLoop	310
+#define	tInclude	311
+#define	tRecombine	312
+#define	tDelete	313
+#define	tCoherence	314
+#define	tView	315
+#define	tOffset	316
+#define	tAttractor	317
+#define	tLayers	318
+#define	tScalarTetrahedron	319
+#define	tVectorTetrahedron	320
+#define	tTensorTetrahedron	321
+#define	tScalarTriangle	322
+#define	tVectorTriangle	323
+#define	tTensorTriangle	324
+#define	tScalarLine	325
+#define	tVectorLine	326
+#define	tTensorLine	327
+#define	tScalarPoint	328
+#define	tVectorPoint	329
+#define	tTensorPoint	330
+#define	tBSpline	331
+#define	tNurbs	332
+#define	tOrder	333
+#define	tWith	334
+#define	tBounds	335
+#define	tKnots	336
+#define	tColor	337
+#define	tOptions	338
+#define	tFor	339
+#define	tEndFor	340
+#define	tScript	341
+#define	tExit	342
+#define	tMerge	343
+#define	tB_SPLINE_SURFACE_WITH_KNOTS	344
+#define	tB_SPLINE_CURVE_WITH_KNOTS	345
+#define	tCARTESIAN_POINT	346
+#define	tTRUE	347
+#define	tFALSE	348
+#define	tUNSPECIFIED	349
+#define	tU	350
+#define	tV	351
+#define	tEDGE_CURVE	352
+#define	tVERTEX_POINT	353
+#define	tORIENTED_EDGE	354
+#define	tPLANE	355
+#define	tFACE_OUTER_BOUND	356
+#define	tEDGE_LOOP	357
+#define	tADVANCED_FACE	358
+#define	tVECTOR	359
+#define	tDIRECTION	360
+#define	tAXIS2_PLACEMENT_3D	361
+#define	tISO	362
+#define	tENDISO	363
+#define	tENDSEC	364
+#define	tDATA	365
+#define	tHEADER	366
+#define	tFILE_DESCRIPTION	367
+#define	tFILE_SCHEMA	368
+#define	tFILE_NAME	369
+#define	tMANIFOLD_SOLID_BREP	370
+#define	tCLOSED_SHELL	371
+#define	tADVANCED_BREP_SHAPE_REPRESENTATION	372
+#define	tFACE_BOUND	373
+#define	tCYLINDRICAL_SURFACE	374
+#define	tCONICAL_SURFACE	375
+#define	tCIRCLE	376
+#define	tTRIMMED_CURVE	377
+#define	tGEOMETRIC_SET	378
+#define	tCOMPOSITE_CURVE_SEGMENT	379
+#define	tCONTINUOUS	380
+#define	tCOMPOSITE_CURVE	381
+#define	tTOROIDAL_SURFACE	382
+#define	tPRODUCT_DEFINITION	383
+#define	tPRODUCT_DEFINITION_SHAPE	384
+#define	tSHAPE_DEFINITION_REPRESENTATION	385
+#define	tELLIPSE	386
+#define	tTrimmed	387
+#define	tSolid	388
+#define	tEndSolid	389
+#define	tVertex	390
+#define	tFacet	391
+#define	tNormal	392
+#define	tOuter	393
+#define	tLoopSTL	394
+#define	tEndLoop	395
+#define	tEndFacet	396
+#define	tAFFECTPLUS	397
+#define	tAFFECTMINUS	398
+#define	tAFFECTTIMES	399
+#define	tAFFECTDIVIDE	400
+#define	tAND	401
+#define	tOR	402
+#define	tNOTEQUAL	403
+#define	tEQUAL	404
+#define	tAPPROXEQUAL	405
+#define	tLESSOREQUAL	406
+#define	tGREATEROREQUAL	407
+#define	tCROSSPRODUCT	408
+#define	UNARYPREC	409
+#define	tPLUSPLUS	410
+#define	tMINUSMINUS	411
 
 #line 1 "Gmsh.y"
- /* $Id: Gmsh.tab.cpp,v 1.17 2000-12-06 18:28:30 remacle Exp $ */
+ /* $Id: Gmsh.tab.cpp,v 1.18 2000-12-06 22:25:24 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -195,17 +203,26 @@ static Shape          TheShape;
 static int            i,j,k,flag,RecursionLevel=0,ImbricatedLoop = 0;
 static double         d;
 static ExtrudeParams  extr;
-static StringXColor   *ColorField ;
 static List_T         *ListOfDouble_L,*ListOfDouble2_L;
 static List_T         *ListOfListOfDouble_L;
 
+static void           *pNumOpt, *pArrOpt;
+static char          **pStrOpt;
+static unsigned int   *pColOpt;
+static StringXString  *pStrCat;
+static StringXNumber  *pNumCat;
+static StringXArray   *pArrCat;
+static StringXColor   *pColCat;
+
 void  yyerror (char *s);
 void  vyyerror (char *fmt, ...);
 
-#line 51 "Gmsh.y"
+
+#line 59 "Gmsh.y"
 typedef union {
   char    *c;
   int      i;
+  unsigned int u;
   double   d;
   double   v[5];
   Shape    s;
@@ -221,26 +238,26 @@ typedef union {
 
 
 
-#define	YYFINAL		1422
+#define	YYFINAL		1414
 #define	YYFLAG		-32768
-#define	YYNTBASE	166
+#define	YYNTBASE	177
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 403 ? yytranslate[x] : 259)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 411 ? yytranslate[x] : 257)
 
 static const short yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,   155,     2,     2,   158,
-   160,   153,   151,   159,   152,     2,   154,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,   163,     2,   149,
-     2,   150,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,   164,     2,     2,     2,   161,     2,     2,   168,
+   170,   159,   157,   169,   158,   174,   160,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,   173,     2,   153,
+     2,   154,   147,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-   164,     2,   165,   157,     2,     2,     2,     2,     2,     2,
+   175,     2,   176,   165,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,   161,     2,   162,     2,     2,     2,     2,     2,
+     2,     2,   171,     2,   172,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -268,7 +285,8 @@ static const short yytranslate[] = {     0,
    117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
    137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-   147,   148,   156
+   148,   149,   150,   151,   152,   155,   156,   162,   163,   166,
+   167
 };
 
 #if YYDEBUG != 0
@@ -279,266 +297,264 @@ static const short yyprhs[] = {     0,
    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,   525,   528,   535,   544,   545,
-   548,   551,   554,   557,   560,   563,   566,   569,   572,   575,
-   578,   581,   583,   587,   588,   602,   604,   608,   609,   623,
-   625,   629,   630,   644,   646,   650,   651,   671,   673,   677,
-   678,   698,   700,   704,   705,   725,   727,   731,   732,   758,
-   760,   764,   765,   791,   793,   797,   798,   824,   826,   830,
-   831,   863,   865,   869,   870,   902,   904,   908,   909,   941,
-   946,   954,   963,   976,   983,   989,   997,  1005,  1018,  1026,
-  1036,  1054,  1062,  1071,  1080,  1088,  1100,  1106,  1115,  1125,
-  1134,  1157,  1178,  1187,  1196,  1202,  1211,  1219,  1228,  1234,
-  1246,  1252,  1262,  1264,  1266,  1268,  1269,  1272,  1277,  1282,
-  1286,  1290,  1293,  1297,  1304,  1313,  1315,  1324,  1337,  1346,
-  1359,  1368,  1381,  1393,  1409,  1411,  1414,  1424,  1427,  1434,
-  1444,  1454,  1463,  1472,  1481,  1488,  1493,  1496,  1497,  1500,
-  1505,  1510,  1515,  1520,  1525,  1526,  1529,  1534,  1539,  1544,
-  1545,  1551,  1552,  1555,  1560,  1565,  1570,  1571,  1577,  1578,
-  1581,  1586,  1591,  1596,  1597,  1603,  1604,  1607,  1612,  1617,
-  1622,  1623,  1629,  1630,  1633,  1638,  1643,  1648,  1649,  1655,
-  1656,  1659,  1664,  1673,  1678,  1688,  1696,  1698,  1700,  1702,
-  1704,  1706,  1708,  1712,  1716,  1720,  1724,  1728,  1732,  1735,
-  1738,  1743,  1748,  1753,  1758,  1763,  1768,  1773,  1778,  1783,
-  1788,  1795,  1800,  1805,  1810,  1815,  1820,  1825,  1832,  1839,
-  1846,  1848,  1850,  1852,  1856,  1863,  1875,  1885,  1893,  1901,
-  1902,  1906,  1908,  1912,  1913,  1917,  1921,  1923,  1927,  1928,
-  1930,  1934,  1936,  1938,  1942
+   512,   514,   516,   518,   520,   522,   527,   532,   535,   543,
+   550,   559,   560,   563,   566,   569,   572,   575,   578,   581,
+   584,   587,   590,   593,   596,   598,   602,   603,   617,   619,
+   623,   624,   638,   640,   644,   645,   659,   661,   665,   666,
+   686,   688,   692,   693,   713,   715,   719,   720,   740,   742,
+   746,   747,   773,   775,   779,   780,   806,   808,   812,   813,
+   839,   841,   845,   846,   878,   880,   884,   885,   917,   919,
+   923,   924,   956,   961,   969,   978,   991,   998,  1004,  1012,
+  1020,  1033,  1041,  1051,  1069,  1077,  1086,  1095,  1103,  1115,
+  1121,  1130,  1140,  1149,  1172,  1193,  1202,  1211,  1217,  1226,
+  1234,  1243,  1249,  1261,  1267,  1277,  1279,  1281,  1283,  1284,
+  1287,  1292,  1297,  1301,  1305,  1308,  1312,  1319,  1328,  1330,
+  1339,  1352,  1361,  1374,  1383,  1396,  1408,  1424,  1426,  1429,
+  1439,  1442,  1449,  1459,  1469,  1478,  1487,  1496,  1503,  1508,
+  1511,  1512,  1515,  1517,  1524,  1531,  1538,  1545,  1552,  1559,
+  1565,  1571,  1578,  1587,  1588,  1591,  1593,  1595,  1597,  1599,
+  1601,  1603,  1605,  1609,  1612,  1615,  1618,  1622,  1626,  1630,
+  1634,  1638,  1642,  1646,  1650,  1654,  1658,  1662,  1666,  1670,
+  1674,  1680,  1685,  1690,  1695,  1700,  1705,  1710,  1715,  1720,
+  1725,  1730,  1737,  1742,  1747,  1752,  1757,  1762,  1767,  1774,
+  1781,  1788,  1790,  1792,  1794,  1798,  1803,  1808,  1812,  1819,
+  1821,  1824,  1827,  1831,  1835,  1847,  1857,  1865,  1873,  1874,
+  1878,  1880,  1884,  1885,  1889,  1893,  1895,  1899,  1900,  1902,
+  1906,  1908,  1910,  1914,  1918,  1928,  1936,  1942,  1944
 };
 
-static const short yyrhs[] = {   168,
-     0,   167,     0,   173,     0,   140,     0,   143,   144,   249,
-   249,   249,   145,   146,   142,   249,   249,   249,   142,   249,
-   249,   249,   142,   249,   249,   249,   147,   148,     0,   141,
-     0,     0,   168,   169,     0,   170,     0,   172,     0,   171,
-     0,     1,     6,     0,   114,     6,     0,   115,     6,     0,
-   117,     6,     0,   116,     6,     0,   118,     6,     0,   119,
-   158,   253,   159,     5,   160,     6,     0,   120,   158,   253,
-   160,     6,     0,   121,   158,     5,   159,     5,   159,   253,
-   159,   253,   159,     5,   159,     5,   159,     5,   160,     6,
-     0,     3,     7,    98,   158,     5,   159,   252,   160,     6,
-     0,     3,     7,    97,   158,     5,   159,   249,   159,   257,
-   159,   248,   159,   248,   159,   248,   159,   257,   159,   257,
-   159,   248,   160,     6,     0,     3,     7,    96,   158,     5,
-   159,   249,   159,   249,   159,   255,   159,   248,   159,   248,
-   159,   248,   159,   248,   159,   257,   159,   257,   159,   257,
-   159,   257,   159,   248,   160,     6,     0,     3,     7,   104,
-   158,     5,   159,     3,   159,     3,   159,     3,   159,   248,
-   160,     6,     0,     3,     7,   108,   158,     5,   159,     3,
-   159,   248,   160,     6,     0,     3,     7,   125,   158,     5,
-   159,     3,   159,   248,   160,     6,     0,     3,     7,   106,
-   158,     5,   159,   153,   159,   153,   159,   249,   159,   248,
-   160,     6,     0,     3,     7,   109,   158,     5,   159,   257,
-   160,     6,     0,     3,     7,   110,   158,     5,   159,   257,
-   159,     3,   159,   248,   160,     6,     0,     3,     7,   105,
-   158,     5,   159,     3,   160,     6,     0,     3,     7,   111,
-   158,     5,   159,     3,   159,   249,   160,     6,     0,     3,
-     7,   113,   158,     5,   159,     3,   159,     3,   159,     3,
-   160,     6,     0,     3,     7,   112,   158,     5,   159,   252,
-   160,     6,     0,     3,     7,   107,   158,     5,   159,     3,
-   160,     6,     0,     3,     7,    33,   158,     5,   159,     3,
-   159,     3,   160,     6,     0,     3,     7,   123,   158,     5,
-   159,   257,   160,     6,     0,     3,     7,   124,   158,     5,
-   159,   257,   159,     3,   160,     6,     0,     3,     7,   122,
-   158,     5,   159,     3,   160,     6,     0,     3,     7,   126,
-   158,     5,   159,     3,   159,   249,   160,     6,     0,     3,
-     7,   127,   158,     5,   159,     3,   159,   249,   159,   249,
-   160,     6,     0,     3,     7,   134,   158,     5,   159,     3,
-   159,   249,   159,   249,   160,     6,     0,     3,     7,   128,
-   158,     5,   159,     3,   159,   249,   160,     6,     0,     3,
-     7,   138,   158,     5,   159,     3,   159,   249,   159,   249,
-   160,     6,     0,     3,     7,   129,   158,     5,   159,     3,
-   159,   257,   159,   257,   159,   248,   159,   248,   160,     6,
-     0,     3,     7,   130,   158,     5,   159,   257,   160,     6,
-     0,     3,     7,   131,   158,   132,   159,   248,   159,     3,
-   160,     6,     0,     3,     7,   133,   158,     5,   159,   257,
-   159,   248,   160,     6,     0,     3,     7,   135,   158,     5,
-   159,     5,   159,     3,   159,     3,   160,     6,     0,     3,
-     7,   136,   158,     5,   159,     5,   159,     3,   160,     6,
-     0,     3,     7,   137,   158,     3,   159,     3,   160,     6,
-     0,     0,   173,   174,     0,   175,     0,   213,     0,   214,
-     0,   215,     0,   218,     0,   219,     0,   223,     0,   226,
-     0,   227,     0,   220,     0,   222,     0,   221,     0,    85,
-   161,   228,   162,     0,     1,     6,     0,    62,     5,   161,
-   176,   162,     6,     0,    62,     5,    63,   252,   161,   176,
-   162,     6,     0,     0,   176,   178,     0,   176,   181,     0,
-   176,   184,     0,   176,   187,     0,   176,   190,     0,   176,
-   193,     0,   176,   196,     0,   176,   199,     0,   176,   202,
-     0,   176,   205,     0,   176,   208,     0,   176,   211,     0,
-   249,     0,   177,   159,   249,     0,     0,    75,   158,   249,
-   159,   249,   159,   249,   160,   179,   161,   177,   162,     6,
-     0,   249,     0,   180,   159,   249,     0,     0,    76,   158,
-   249,   159,   249,   159,   249,   160,   182,   161,   180,   162,
-     6,     0,   249,     0,   183,   159,   249,     0,     0,    77,
-   158,   249,   159,   249,   159,   249,   160,   185,   161,   183,
-   162,     6,     0,   249,     0,   186,   159,   249,     0,     0,
-    72,   158,   249,   159,   249,   159,   249,   159,   249,   159,
-   249,   159,   249,   160,   188,   161,   186,   162,     6,     0,
-   249,     0,   189,   159,   249,     0,     0,    73,   158,   249,
-   159,   249,   159,   249,   159,   249,   159,   249,   159,   249,
-   160,   191,   161,   189,   162,     6,     0,   249,     0,   192,
-   159,   249,     0,     0,    74,   158,   249,   159,   249,   159,
-   249,   159,   249,   159,   249,   159,   249,   160,   194,   161,
-   192,   162,     6,     0,   249,     0,   195,   159,   249,     0,
-     0,    69,   158,   249,   159,   249,   159,   249,   159,   249,
-   159,   249,   159,   249,   159,   249,   159,   249,   159,   249,
-   160,   197,   161,   195,   162,     6,     0,   249,     0,   198,
-   159,   249,     0,     0,    70,   158,   249,   159,   249,   159,
-   249,   159,   249,   159,   249,   159,   249,   159,   249,   159,
-   249,   159,   249,   160,   200,   161,   198,   162,     6,     0,
-   249,     0,   201,   159,   249,     0,     0,    71,   158,   249,
-   159,   249,   159,   249,   159,   249,   159,   249,   159,   249,
-   159,   249,   159,   249,   159,   249,   160,   203,   161,   201,
-   162,     6,     0,   249,     0,   204,   159,   249,     0,     0,
-    66,   158,   249,   159,   249,   159,   249,   159,   249,   159,
-   249,   159,   249,   159,   249,   159,   249,   159,   249,   159,
-   249,   159,   249,   159,   249,   160,   206,   161,   204,   162,
-     6,     0,   249,     0,   207,   159,   249,     0,     0,    67,
-   158,   249,   159,   249,   159,   249,   159,   249,   159,   249,
-   159,   249,   159,   249,   159,   249,   159,   249,   159,   249,
-   159,   249,   159,   249,   160,   209,   161,   207,   162,     6,
-     0,   249,     0,   210,   159,   249,     0,     0,    68,   158,
-   249,   159,   249,   159,   249,   159,   249,   159,   249,   159,
-   249,   159,   249,   159,   249,   159,   249,   159,   249,   159,
-   249,   159,   249,   160,   212,   161,   210,   162,     6,     0,
-     4,     7,   249,     6,     0,    30,   158,   249,   160,     7,
-   252,     6,     0,    45,    30,   158,   249,   160,     7,   257,
-     6,     0,    64,    30,   257,     7,   161,   249,   159,   249,
-   159,   249,   162,     6,     0,    37,    38,   257,     7,   249,
-     6,     0,    30,   161,   249,   162,     6,     0,    33,   158,
-   249,   160,     7,   257,     6,     0,    35,   158,   249,   160,
-     7,   257,     6,     0,    64,    33,   257,     7,   161,   249,
-   159,   249,   159,   249,   162,     6,     0,    31,   158,   249,
-   160,     7,   257,     6,     0,    31,   158,   249,   160,     7,
-   257,    41,   252,     6,     0,    39,   158,   249,   160,     7,
-   161,   249,   159,   249,   159,     5,   159,     5,   159,     5,
-   162,     6,     0,    32,   158,   249,   160,     7,   257,     6,
-     0,    45,    33,   158,   249,   160,     7,   257,     6,     0,
-    33,    57,   158,   249,   160,     7,   257,     6,     0,    78,
-   158,   249,   160,     7,   257,     6,     0,    79,   158,   249,
-   160,     7,   257,    83,   257,    80,   249,     6,     0,    33,
-   161,   249,   162,     6,     0,    41,    34,   158,   249,   160,
-     7,   257,     6,     0,   139,    34,   158,   249,   160,     7,
-   249,   257,     6,     0,    42,    34,   158,   249,   160,     7,
-   257,     6,     0,    79,    34,    81,    82,   158,   249,   160,
-     7,   255,    83,   161,   257,   159,   257,   162,    80,   161,
-   249,   159,   249,   162,     6,     0,    79,    34,   158,   249,
-   160,     7,   255,    83,   161,   257,   159,   257,   162,    80,
-   161,   249,   159,   249,   162,     6,     0,    45,    34,   158,
-   249,   160,     7,   257,     6,     0,    34,    57,   158,   249,
-   160,     7,   257,     6,     0,    34,   161,   249,   162,     6,
-     0,    44,    36,   158,   249,   160,     7,   257,     6,     0,
-    36,   158,   249,   160,     7,   257,     6,     0,    45,    36,
-   158,   249,   160,     7,   257,     6,     0,    52,   252,   161,
-   216,   162,     0,    51,   161,   252,   159,   252,   159,   249,
-   162,   161,   216,   162,     0,    53,   252,   161,   216,   162,
-     0,    54,   161,   252,   159,   249,   162,   161,   216,   162,
-     0,   218,     0,   217,     0,   215,     0,     0,   217,   214,
-     0,    56,   161,   217,   162,     0,    60,   161,   217,   162,
-     0,    58,     5,     6,     0,    95,     5,     6,     0,    89,
-     6,     0,    90,     5,     6,     0,    86,   158,   249,   163,
-   249,   160,     0,    86,   158,   249,   163,   249,   163,   249,
-   160,     0,    87,     0,    55,    30,   161,   249,   159,   252,
-   162,     6,     0,    55,    30,   161,   249,   159,   252,   159,
-   252,   159,   249,   162,     6,     0,    55,    33,   161,   249,
-   159,   252,   162,     6,     0,    55,    33,   161,   249,   159,
-   252,   159,   252,   159,   249,   162,     6,     0,    55,    34,
-   161,   249,   159,   252,   162,     6,     0,    55,    34,   161,
-   249,   159,   252,   159,   252,   159,   249,   162,     6,     0,
-    55,    34,   161,   249,   159,   252,   162,   161,   224,   162,
-     6,     0,    55,    34,   161,   249,   159,   252,   159,   252,
-   159,   249,   162,   161,   224,   162,     6,     0,   225,     0,
-   224,   225,     0,    65,   161,   257,   159,   257,   159,   257,
-   162,     6,     0,    59,     6,     0,    43,    33,   257,     7,
-   249,     6,     0,    43,    33,   257,     7,   249,    46,    49,
-   249,     6,     0,    43,    33,   257,     7,   249,    46,    48,
-   249,     6,     0,    43,    34,   161,   249,   162,     7,   257,
-     6,     0,    40,    34,   161,   249,   162,     7,   257,     6,
-     0,    43,    36,   161,   249,   162,     7,   257,     6,     0,
-    59,    34,   257,     7,   249,     6,     0,    59,    34,   257,
-     6,     0,    61,     6,     0,     0,   228,   229,     0,    91,
-   161,   230,   162,     0,    92,   161,   233,   162,     0,    93,
-   161,   236,   162,     0,    94,   161,   239,   162,     0,    95,
-   161,   242,   162,     0,     0,   230,   231,     0,     4,     7,
-     5,     6,     0,     4,     7,   249,     6,     0,     4,     7,
-   252,     6,     0,     0,    84,   232,   161,   245,   162,     0,
-     0,   233,   234,     0,     4,     7,     5,     6,     0,     4,
-     7,   249,     6,     0,     4,     7,   252,     6,     0,     0,
-    84,   235,   161,   245,   162,     0,     0,   236,   237,     0,
-     4,     7,     5,     6,     0,     4,     7,   249,     6,     0,
-     4,     7,   252,     6,     0,     0,    84,   238,   161,   245,
-   162,     0,     0,   239,   240,     0,     4,     7,     5,     6,
-     0,     4,     7,   249,     6,     0,     4,     7,   252,     6,
-     0,     0,    84,   241,   161,   245,   162,     0,     0,   242,
-   243,     0,     4,     7,     5,     6,     0,     4,     7,   249,
-     6,     0,     4,     7,   252,     6,     0,     0,    84,   244,
-   161,   245,   162,     0,     0,   246,   245,     0,     4,     7,
-     4,     6,     0,     4,     7,   161,     4,   159,   249,   162,
-     6,     0,     4,     7,   247,     6,     0,   161,   249,   159,
-   249,   159,   249,   159,   249,   162,     0,   161,   249,   159,
-   249,   159,   249,   162,     0,    99,     0,   100,     0,   101,
-     0,   102,     0,   103,     0,   250,     0,   158,   249,   160,
-     0,   249,   152,   249,     0,   249,   151,   249,     0,   249,
-   153,   249,     0,   249,   154,   249,     0,   249,   157,   249,
-     0,   152,   249,     0,   151,   249,     0,    10,   158,   249,
-   160,     0,    11,   158,   249,   160,     0,    12,   158,   249,
-   160,     0,    13,   158,   249,   160,     0,    14,   158,   249,
-   160,     0,    15,   158,   249,   160,     0,    16,   158,   249,
-   160,     0,    17,   158,   249,   160,     0,    18,   158,   249,
-   160,     0,    19,   158,   249,   160,     0,    20,   158,   249,
-   159,   249,   160,     0,    21,   158,   249,   160,     0,    22,
-   158,   249,   160,     0,    23,   158,   249,   160,     0,    24,
-   158,   249,   160,     0,    25,   158,   249,   160,     0,    26,
-   158,   249,   160,     0,    27,   158,   249,   159,   249,   160,
-     0,    28,   158,   249,   159,   249,   160,     0,    29,   158,
-   249,   159,   249,   160,     0,     3,     0,     9,     0,     4,
-     0,   249,     8,   249,     0,   249,     8,   164,   249,   165,
-   249,     0,   161,   249,   159,   249,   159,   249,   159,   249,
-   159,   249,   162,     0,   161,   249,   159,   249,   159,   249,
-   159,   249,   162,     0,   161,   249,   159,   249,   159,   249,
-   162,     0,   158,   249,   159,   249,   159,   249,   160,     0,
-     0,   158,   254,   160,     0,     5,     0,   254,   159,     5,
-     0,     0,   161,   256,   162,     0,   158,   256,   160,     0,
-   257,     0,   256,   159,   257,     0,     0,   249,     0,   161,
-   258,   162,     0,   249,     0,   251,     0,   258,   159,   249,
-     0,   258,   159,   251,     0
+static const short yyrhs[] = {   179,
+     0,   178,     0,   184,     0,   134,     0,   137,   138,   245,
+   245,   245,   139,   140,   136,   245,   245,   245,   136,   245,
+   245,   245,   136,   245,   245,   245,   141,   142,     0,   135,
+     0,     0,   179,   180,     0,   181,     0,   183,     0,   182,
+     0,     1,     6,     0,   108,     6,     0,   109,     6,     0,
+   111,     6,     0,   110,     6,     0,   112,     6,     0,   113,
+   168,   250,   169,     5,   170,     6,     0,   114,   168,   250,
+   170,     6,     0,   115,   168,     5,   169,     5,   169,   250,
+   169,   250,   169,     5,   169,     5,   169,     5,   170,     6,
+     0,     3,     7,    92,   168,     5,   169,   248,   170,     6,
+     0,     3,     7,    91,   168,     5,   169,   245,   169,   254,
+   169,   244,   169,   244,   169,   244,   169,   254,   169,   254,
+   169,   244,   170,     6,     0,     3,     7,    90,   168,     5,
+   169,   245,   169,   245,   169,   252,   169,   244,   169,   244,
+   169,   244,   169,   244,   169,   254,   169,   254,   169,   254,
+   169,   254,   169,   244,   170,     6,     0,     3,     7,    98,
+   168,     5,   169,     3,   169,     3,   169,     3,   169,   244,
+   170,     6,     0,     3,     7,   102,   168,     5,   169,     3,
+   169,   244,   170,     6,     0,     3,     7,   119,   168,     5,
+   169,     3,   169,   244,   170,     6,     0,     3,     7,   100,
+   168,     5,   169,   159,   169,   159,   169,   245,   169,   244,
+   170,     6,     0,     3,     7,   103,   168,     5,   169,   254,
+   170,     6,     0,     3,     7,   104,   168,     5,   169,   254,
+   169,     3,   169,   244,   170,     6,     0,     3,     7,    99,
+   168,     5,   169,     3,   170,     6,     0,     3,     7,   105,
+   168,     5,   169,     3,   169,   245,   170,     6,     0,     3,
+     7,   107,   168,     5,   169,     3,   169,     3,   169,     3,
+   170,     6,     0,     3,     7,   106,   168,     5,   169,   248,
+   170,     6,     0,     3,     7,   101,   168,     5,   169,     3,
+   170,     6,     0,     3,     7,    34,   168,     5,   169,     3,
+   169,     3,   170,     6,     0,     3,     7,   117,   168,     5,
+   169,   254,   170,     6,     0,     3,     7,   118,   168,     5,
+   169,   254,   169,     3,   170,     6,     0,     3,     7,   116,
+   168,     5,   169,     3,   170,     6,     0,     3,     7,   120,
+   168,     5,   169,     3,   169,   245,   170,     6,     0,     3,
+     7,   121,   168,     5,   169,     3,   169,   245,   169,   245,
+   170,     6,     0,     3,     7,   128,   168,     5,   169,     3,
+   169,   245,   169,   245,   170,     6,     0,     3,     7,   122,
+   168,     5,   169,     3,   169,   245,   170,     6,     0,     3,
+     7,   132,   168,     5,   169,     3,   169,   245,   169,   245,
+   170,     6,     0,     3,     7,   123,   168,     5,   169,     3,
+   169,   254,   169,   254,   169,   244,   169,   244,   170,     6,
+     0,     3,     7,   124,   168,     5,   169,   254,   170,     6,
+     0,     3,     7,   125,   168,   126,   169,   244,   169,     3,
+   170,     6,     0,     3,     7,   127,   168,     5,   169,   254,
+   169,   244,   170,     6,     0,     3,     7,   129,   168,     5,
+   169,     5,   169,     3,   169,     3,   170,     6,     0,     3,
+     7,   130,   168,     5,   169,     5,   169,     3,   170,     6,
+     0,     3,     7,   131,   168,     3,   169,     3,   170,     6,
+     0,     0,   184,   185,     0,   187,     0,   186,     0,   225,
+     0,   226,     0,   227,     0,   230,     0,   231,     0,   235,
+     0,   238,     0,   239,     0,   232,     0,   234,     0,   233,
+     0,    84,   171,   240,   172,     0,    87,   171,   242,   172,
+     0,     1,     6,     0,    30,   168,     5,   169,   245,   170,
+     6,     0,    61,     5,   171,   188,   172,     6,     0,    61,
+     5,    62,   248,   171,   188,   172,     6,     0,     0,   188,
+   190,     0,   188,   193,     0,   188,   196,     0,   188,   199,
+     0,   188,   202,     0,   188,   205,     0,   188,   208,     0,
+   188,   211,     0,   188,   214,     0,   188,   217,     0,   188,
+   220,     0,   188,   223,     0,   245,     0,   189,   169,   245,
+     0,     0,    74,   168,   245,   169,   245,   169,   245,   170,
+   191,   171,   189,   172,     6,     0,   245,     0,   192,   169,
+   245,     0,     0,    75,   168,   245,   169,   245,   169,   245,
+   170,   194,   171,   192,   172,     6,     0,   245,     0,   195,
+   169,   245,     0,     0,    76,   168,   245,   169,   245,   169,
+   245,   170,   197,   171,   195,   172,     6,     0,   245,     0,
+   198,   169,   245,     0,     0,    71,   168,   245,   169,   245,
+   169,   245,   169,   245,   169,   245,   169,   245,   170,   200,
+   171,   198,   172,     6,     0,   245,     0,   201,   169,   245,
+     0,     0,    72,   168,   245,   169,   245,   169,   245,   169,
+   245,   169,   245,   169,   245,   170,   203,   171,   201,   172,
+     6,     0,   245,     0,   204,   169,   245,     0,     0,    73,
+   168,   245,   169,   245,   169,   245,   169,   245,   169,   245,
+   169,   245,   170,   206,   171,   204,   172,     6,     0,   245,
+     0,   207,   169,   245,     0,     0,    68,   168,   245,   169,
+   245,   169,   245,   169,   245,   169,   245,   169,   245,   169,
+   245,   169,   245,   169,   245,   170,   209,   171,   207,   172,
+     6,     0,   245,     0,   210,   169,   245,     0,     0,    69,
+   168,   245,   169,   245,   169,   245,   169,   245,   169,   245,
+   169,   245,   169,   245,   169,   245,   169,   245,   170,   212,
+   171,   210,   172,     6,     0,   245,     0,   213,   169,   245,
+     0,     0,    70,   168,   245,   169,   245,   169,   245,   169,
+   245,   169,   245,   169,   245,   169,   245,   169,   245,   169,
+   245,   170,   215,   171,   213,   172,     6,     0,   245,     0,
+   216,   169,   245,     0,     0,    65,   168,   245,   169,   245,
+   169,   245,   169,   245,   169,   245,   169,   245,   169,   245,
+   169,   245,   169,   245,   169,   245,   169,   245,   169,   245,
+   170,   218,   171,   216,   172,     6,     0,   245,     0,   219,
+   169,   245,     0,     0,    66,   168,   245,   169,   245,   169,
+   245,   169,   245,   169,   245,   169,   245,   169,   245,   169,
+   245,   169,   245,   169,   245,   169,   245,   169,   245,   170,
+   221,   171,   219,   172,     6,     0,   245,     0,   222,   169,
+   245,     0,     0,    67,   168,   245,   169,   245,   169,   245,
+   169,   245,   169,   245,   169,   245,   169,   245,   169,   245,
+   169,   245,   169,   245,   169,   245,   169,   245,   170,   224,
+   171,   222,   172,     6,     0,     4,     7,   245,     6,     0,
+    31,   168,   245,   170,     7,   248,     6,     0,    46,    31,
+   168,   245,   170,     7,   254,     6,     0,    63,    31,   254,
+     7,   171,   245,   169,   245,   169,   245,   172,     6,     0,
+    38,    39,   254,     7,   245,     6,     0,    31,   171,   245,
+   172,     6,     0,    34,   168,   245,   170,     7,   254,     6,
+     0,    36,   168,   245,   170,     7,   254,     6,     0,    63,
+    34,   254,     7,   171,   245,   169,   245,   169,   245,   172,
+     6,     0,    32,   168,   245,   170,     7,   254,     6,     0,
+    32,   168,   245,   170,     7,   254,    42,   248,     6,     0,
+    40,   168,   245,   170,     7,   171,   245,   169,   245,   169,
+     5,   169,     5,   169,     5,   172,     6,     0,    33,   168,
+   245,   170,     7,   254,     6,     0,    46,    34,   168,   245,
+   170,     7,   254,     6,     0,    34,    56,   168,   245,   170,
+     7,   254,     6,     0,    77,   168,   245,   170,     7,   254,
+     6,     0,    78,   168,   245,   170,     7,   254,    82,   254,
+    79,   245,     6,     0,    34,   171,   245,   172,     6,     0,
+    42,    35,   168,   245,   170,     7,   254,     6,     0,   133,
+    35,   168,   245,   170,     7,   245,   254,     6,     0,    43,
+    35,   168,   245,   170,     7,   254,     6,     0,    78,    35,
+    80,    81,   168,   245,   170,     7,   252,    82,   171,   254,
+   169,   254,   172,    79,   171,   245,   169,   245,   172,     6,
+     0,    78,    35,   168,   245,   170,     7,   252,    82,   171,
+   254,   169,   254,   172,    79,   171,   245,   169,   245,   172,
+     6,     0,    46,    35,   168,   245,   170,     7,   254,     6,
+     0,    35,    56,   168,   245,   170,     7,   254,     6,     0,
+    35,   171,   245,   172,     6,     0,    45,    37,   168,   245,
+   170,     7,   254,     6,     0,    37,   168,   245,   170,     7,
+   254,     6,     0,    46,    37,   168,   245,   170,     7,   254,
+     6,     0,    51,   248,   171,   228,   172,     0,    50,   171,
+   248,   169,   248,   169,   245,   172,   171,   228,   172,     0,
+    52,   248,   171,   228,   172,     0,    53,   171,   248,   169,
+   245,   172,   171,   228,   172,     0,   230,     0,   229,     0,
+   227,     0,     0,   229,   226,     0,    55,   171,   229,   172,
+     0,    59,   171,   229,   172,     0,    57,     5,     6,     0,
+    30,     5,     6,     0,    88,     6,     0,    89,     5,     6,
+     0,    85,   168,   245,   173,   245,   170,     0,    85,   168,
+   245,   173,   245,   173,   245,   170,     0,    86,     0,    54,
+    31,   171,   245,   169,   248,   172,     6,     0,    54,    31,
+   171,   245,   169,   248,   169,   248,   169,   245,   172,     6,
+     0,    54,    34,   171,   245,   169,   248,   172,     6,     0,
+    54,    34,   171,   245,   169,   248,   169,   248,   169,   245,
+   172,     6,     0,    54,    35,   171,   245,   169,   248,   172,
+     6,     0,    54,    35,   171,   245,   169,   248,   169,   248,
+   169,   245,   172,     6,     0,    54,    35,   171,   245,   169,
+   248,   172,   171,   236,   172,     6,     0,    54,    35,   171,
+   245,   169,   248,   169,   248,   169,   245,   172,   171,   236,
+   172,     6,     0,   237,     0,   236,   237,     0,    64,   171,
+   254,   169,   254,   169,   254,   172,     6,     0,    58,     6,
+     0,    44,    34,   254,     7,   245,     6,     0,    44,    34,
+   254,     7,   245,    47,    49,   245,     6,     0,    44,    34,
+   254,     7,   245,    47,    48,   245,     6,     0,    44,    35,
+   171,   245,   172,     7,   254,     6,     0,    41,    35,   171,
+   245,   172,     7,   254,     6,     0,    44,    37,   171,   245,
+   172,     7,   254,     6,     0,    58,    35,   254,     7,   245,
+     6,     0,    58,    35,   254,     6,     0,    60,     6,     0,
+     0,   240,   241,     0,   186,     0,     4,   174,     4,     7,
+     5,     6,     0,     4,   174,     4,     7,   245,     6,     0,
+     4,   174,     4,   143,   245,     6,     0,     4,   174,     4,
+   144,   245,     6,     0,     4,   174,     4,   145,   245,     6,
+     0,     4,   174,     4,   146,   245,     6,     0,     4,   174,
+     4,   166,     6,     0,     4,   174,     4,   167,     6,     0,
+     4,   174,     4,     7,   248,     6,     0,     4,   174,    83,
+   174,     4,     7,   256,     6,     0,     0,   242,   243,     0,
+   241,     0,    93,     0,    94,     0,    95,     0,    96,     0,
+    97,     0,   246,     0,   168,   245,   170,     0,   158,   245,
+     0,   157,   245,     0,   164,   245,     0,   245,   158,   245,
+     0,   245,   157,   245,     0,   245,   159,   245,     0,   245,
+   160,   245,     0,   245,   161,   245,     0,   245,   165,   245,
+     0,   245,   153,   245,     0,   245,   154,   245,     0,   245,
+   155,   245,     0,   245,   156,   245,     0,   245,   151,   245,
+     0,   245,   150,   245,     0,   245,   148,   245,     0,   245,
+   149,   245,     0,   245,   147,   245,     8,   245,     0,    10,
+   168,   245,   170,     0,    11,   168,   245,   170,     0,    12,
+   168,   245,   170,     0,    13,   168,   245,   170,     0,    14,
+   168,   245,   170,     0,    15,   168,   245,   170,     0,    16,
+   168,   245,   170,     0,    17,   168,   245,   170,     0,    18,
+   168,   245,   170,     0,    19,   168,   245,   170,     0,    20,
+   168,   245,   169,   245,   170,     0,    21,   168,   245,   170,
+     0,    22,   168,   245,   170,     0,    23,   168,   245,   170,
+     0,    24,   168,   245,   170,     0,    25,   168,   245,   170,
+     0,    26,   168,   245,   170,     0,    27,   168,   245,   169,
+   245,   170,     0,    28,   168,   245,   169,   245,   170,     0,
+    29,   168,   245,   169,   245,   170,     0,     3,     0,     9,
+     0,     4,     0,     4,   174,     4,     0,     4,   174,     4,
+   166,     0,     4,   174,     4,   167,     0,   245,     8,   245,
+     0,   245,     8,   175,   245,   176,   245,     0,   249,     0,
+   158,   248,     0,   157,   248,     0,   248,   158,   248,     0,
+   248,   157,   248,     0,   171,   245,   169,   245,   169,   245,
+   169,   245,   169,   245,   172,     0,   171,   245,   169,   245,
+   169,   245,   169,   245,   172,     0,   171,   245,   169,   245,
+   169,   245,   172,     0,   168,   245,   169,   245,   169,   245,
+   170,     0,     0,   168,   251,   170,     0,     5,     0,   251,
+   169,     5,     0,     0,   171,   253,   172,     0,   168,   253,
+   170,     0,   254,     0,   253,   169,   254,     0,     0,   245,
+     0,   171,   255,   172,     0,   245,     0,   247,     0,   255,
+   169,   245,     0,   255,   169,   247,     0,   171,   245,   169,
+   245,   169,   245,   169,   245,   172,     0,   171,   245,   169,
+   245,   169,   245,   172,     0,   171,     4,   169,   245,   172,
+     0,     4,     0,     4,   174,    83,   174,     4,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   113,   115,   116,   123,   131,   145,   157,   159,   162,   164,
-   165,   166,   169,   175,   180,   181,   182,   185,   189,   192,
-   198,   203,   209,   217,   222,   226,   232,   237,   241,   246,
-   250,   253,   258,   262,   266,   270,   275,   279,   282,   286,
-   290,   294,   298,   302,   306,   309,   313,   316,   320,   323,
-   332,   336,   342,   344,   345,   346,   347,   348,   349,   350,
-   351,   352,   353,   355,   356,   357,   364,   369,   375,   380,
-   381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
-   391,   394,   397,   401,   407,   413,   416,   420,   426,   432,
-   435,   439,   445,   451,   454,   458,   466,   472,   475,   479,
-   487,   493,   496,   500,   508,   514,   517,   521,   533,   539,
-   542,   546,   558,   564,   567,   571,   583,   589,   592,   596,
-   609,   615,   618,   622,   635,   641,   644,   648,   661,   673,
-   687,   698,   704,   723,   734,   742,   748,   754,   773,   779,
-   795,   802,   808,   814,   820,   826,   845,   857,   863,   882,
-   903,   911,   917,   923,   929,   941,   947,   953,   965,   971,
-   976,   981,   988,   990,   991,   994,   999,  1010,  1028,  1043,
-  1071,  1102,  1106,  1118,  1133,  1146,  1184,  1190,  1196,  1200,
-  1204,  1208,  1212,  1217,  1224,  1228,  1233,  1251,  1261,  1279,
-  1296,  1313,  1334,  1354,  1374,  1391,  1415,  1426,  1428,  1431,
-  1433,  1434,  1435,  1436,  1439,  1441,  1444,  1450,  1455,  1459,
-  1461,  1464,  1466,  1469,  1475,  1480,  1485,  1487,  1490,  1492,
-  1495,  1501,  1506,  1511,  1513,  1516,  1518,  1521,  1527,  1532,
-  1537,  1539,  1542,  1544,  1547,  1553,  1558,  1563,  1565,  1568,
-  1570,  1573,  1581,  1588,  1596,  1604,  1618,  1620,  1621,  1622,
-  1623,  1626,  1628,  1629,  1630,  1631,  1632,  1633,  1634,  1635,
-  1636,  1637,  1638,  1639,  1640,  1641,  1642,  1643,  1644,  1645,
-  1646,  1647,  1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,
-  1658,  1660,  1661,  1672,  1679,  1692,  1701,  1709,  1717,  1727,
-  1731,  1736,  1740,  1745,  1749,  1753,  1759,  1765,  1771,  1775,
-  1781,  1794,  1800,  1809,  1813
+   135,   137,   138,   145,   153,   167,   179,   181,   184,   186,
+   187,   188,   191,   197,   202,   203,   204,   207,   211,   214,
+   220,   225,   231,   239,   244,   248,   254,   259,   263,   268,
+   272,   275,   280,   284,   288,   292,   297,   301,   304,   308,
+   312,   316,   320,   324,   328,   331,   335,   338,   342,   345,
+   354,   358,   364,   366,   367,   368,   369,   370,   371,   372,
+   373,   374,   375,   376,   378,   379,   380,   381,   384,   395,
+   400,   406,   411,   412,   413,   414,   415,   416,   417,   418,
+   419,   420,   421,   422,   425,   428,   432,   438,   444,   447,
+   451,   457,   463,   466,   470,   476,   482,   485,   489,   497,
+   503,   506,   510,   518,   524,   527,   531,   539,   545,   548,
+   552,   564,   570,   573,   577,   589,   595,   598,   602,   614,
+   620,   623,   627,   640,   646,   649,   653,   666,   672,   675,
+   679,   692,   704,   718,   729,   735,   754,   765,   773,   779,
+   785,   804,   810,   826,   833,   839,   845,   851,   857,   876,
+   888,   894,   913,   934,   942,   948,   954,   960,   972,   978,
+   984,   996,  1002,  1007,  1012,  1019,  1021,  1022,  1025,  1030,
+  1041,  1059,  1074,  1102,  1133,  1137,  1149,  1164,  1177,  1215,
+  1221,  1227,  1231,  1235,  1239,  1243,  1248,  1255,  1259,  1264,
+  1282,  1292,  1310,  1327,  1344,  1365,  1385,  1405,  1422,  1446,
+  1457,  1459,  1462,  1466,  1478,  1495,  1512,  1529,  1546,  1563,
+  1580,  1597,  1634,  1652,  1654,  1657,  1672,  1674,  1675,  1676,
+  1677,  1680,  1682,  1683,  1684,  1685,  1686,  1687,  1688,  1689,
+  1690,  1691,  1692,  1693,  1694,  1695,  1696,  1697,  1698,  1699,
+  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1707,  1708,  1709,
+  1710,  1711,  1712,  1713,  1714,  1715,  1716,  1717,  1718,  1719,
+  1720,  1723,  1725,  1726,  1735,  1752,  1769,  1788,  1795,  1808,
+  1813,  1817,  1821,  1825,  1830,  1835,  1839,  1843,  1849,  1853,
+  1858,  1862,  1867,  1871,  1875,  1881,  1887,  1893,  1897,  1903,
+  1910,  1916,  1925,  1929,  1939,  1944,  1948,  1953,  1958
 };
 #endif
 
@@ -548,29 +564,31 @@ static const short yyrline[] = { 0,
 static const char * const yytname[] = {   "$","error","$undefined.","tDOUBLE",
 "tSTRING","tBIGSTR","tEND","tAFFECT","tDOTS","tPi","tExp","tLog","tLog10","tSqrt",
 "tSin","tAsin","tCos","tAcos","tTan","tAtan","tAtan2","tSinh","tCosh","tTanh",
-"tFabs","tFloor","tCeil","tFmod","tModulo","tHypot","tPoint","tCircle","tEllipsis",
-"tLine","tSurface","tSpline","tVolume","tCharacteristic","tLength","tParametric",
-"tElliptic","tPlane","tRuled","tTransfinite","tComplex","tPhysical","tUsing",
-"tPower","tBump","tProgression","tAssociation","tRotate","tTranslate","tSymmetry",
-"tDilate","tExtrude","tDuplicata","tLoop","tInclude","tRecombine","tDelete",
-"tCoherence","tView","tOffset","tAttractor","tLayers","tScalarTetrahedron","tVectorTetrahedron",
+"tFabs","tFloor","tCeil","tFmod","tModulo","tHypot","tPrintf","tPoint","tCircle",
+"tEllipsis","tLine","tSurface","tSpline","tVolume","tCharacteristic","tLength",
+"tParametric","tElliptic","tPlane","tRuled","tTransfinite","tComplex","tPhysical",
+"tUsing","tBump","tProgression","tRotate","tTranslate","tSymmetry","tDilate",
+"tExtrude","tDuplicata","tLoop","tInclude","tRecombine","tDelete","tCoherence",
+"tView","tOffset","tAttractor","tLayers","tScalarTetrahedron","tVectorTetrahedron",
 "tTensorTetrahedron","tScalarTriangle","tVectorTriangle","tTensorTriangle","tScalarLine",
 "tVectorLine","tTensorLine","tScalarPoint","tVectorPoint","tTensorPoint","tBSpline",
 "tNurbs","tOrder","tWith","tBounds","tKnots","tColor","tOptions","tFor","tEndFor",
-"tScript","tExit","tMerge","tGeneral","tGeometry","tMesh","tPostProcessing",
-"tPrint","tB_SPLINE_SURFACE_WITH_KNOTS","tB_SPLINE_CURVE_WITH_KNOTS","tCARTESIAN_POINT",
-"tTRUE","tFALSE","tUNSPECIFIED","tU","tV","tEDGE_CURVE","tVERTEX_POINT","tORIENTED_EDGE",
-"tPLANE","tFACE_OUTER_BOUND","tEDGE_LOOP","tADVANCED_FACE","tVECTOR","tDIRECTION",
-"tAXIS2_PLACEMENT_3D","tISO","tENDISO","tENDSEC","tDATA","tHEADER","tFILE_DESCRIPTION",
-"tFILE_SCHEMA","tFILE_NAME","tMANIFOLD_SOLID_BREP","tCLOSED_SHELL","tADVANCED_BREP_SHAPE_REPRESENTATION",
-"tFACE_BOUND","tCYLINDRICAL_SURFACE","tCONICAL_SURFACE","tCIRCLE","tTRIMMED_CURVE",
-"tGEOMETRIC_SET","tCOMPOSITE_CURVE_SEGMENT","tCONTINUOUS","tCOMPOSITE_CURVE",
-"tTOROIDAL_SURFACE","tPRODUCT_DEFINITION","tPRODUCT_DEFINITION_SHAPE","tSHAPE_DEFINITION_REPRESENTATION",
-"tELLIPSE","tTrimmed","tSolid","tEndSolid","tVertex","tFacet","tNormal","tOuter",
-"tLoopSTL","tEndLoop","tEndFacet","'<'","'>'","'+'","'-'","'*'","'/'","'%'",
-"UMINUS","'^'","'('","','","')'","'{'","'}'","':'","'['","']'","All","STLFormatItem",
+"tScript","tExit","tMerge","tB_SPLINE_SURFACE_WITH_KNOTS","tB_SPLINE_CURVE_WITH_KNOTS",
+"tCARTESIAN_POINT","tTRUE","tFALSE","tUNSPECIFIED","tU","tV","tEDGE_CURVE","tVERTEX_POINT",
+"tORIENTED_EDGE","tPLANE","tFACE_OUTER_BOUND","tEDGE_LOOP","tADVANCED_FACE",
+"tVECTOR","tDIRECTION","tAXIS2_PLACEMENT_3D","tISO","tENDISO","tENDSEC","tDATA",
+"tHEADER","tFILE_DESCRIPTION","tFILE_SCHEMA","tFILE_NAME","tMANIFOLD_SOLID_BREP",
+"tCLOSED_SHELL","tADVANCED_BREP_SHAPE_REPRESENTATION","tFACE_BOUND","tCYLINDRICAL_SURFACE",
+"tCONICAL_SURFACE","tCIRCLE","tTRIMMED_CURVE","tGEOMETRIC_SET","tCOMPOSITE_CURVE_SEGMENT",
+"tCONTINUOUS","tCOMPOSITE_CURVE","tTOROIDAL_SURFACE","tPRODUCT_DEFINITION","tPRODUCT_DEFINITION_SHAPE",
+"tSHAPE_DEFINITION_REPRESENTATION","tELLIPSE","tTrimmed","tSolid","tEndSolid",
+"tVertex","tFacet","tNormal","tOuter","tLoopSTL","tEndLoop","tEndFacet","tAFFECTPLUS",
+"tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE","'?'","tAND","tOR","tNOTEQUAL",
+"tEQUAL","tAPPROXEQUAL","'<'","'>'","tLESSOREQUAL","tGREATEROREQUAL","'+'","'-'",
+"'*'","'/'","'%'","tCROSSPRODUCT","UNARYPREC","'!'","'^'","tPLUSPLUS","tMINUSMINUS",
+"'('","','","')'","'{'","'}'","':'","'.'","'['","']'","All","STLFormatItem",
 "StepFormatItems","StepFormatItem","StepSpecial","StepHeaderItem","StepDataItem",
-"GeomFormatList","GeomFormat","View","Views","ScalarPointValues","ScalarPoint",
+"GeomFormatList","GeomFormat","Printf","View","Views","ScalarPointValues","ScalarPoint",
 "@1","VectorPointValues","VectorPoint","@2","TensorPointValues","TensorPoint",
 "@3","ScalarLineValues","ScalarLine","@4","VectorLineValues","VectorLine","@5",
 "TensorLineValues","TensorLine","@6","ScalarTriangleValues","ScalarTriangle",
@@ -579,47 +597,44 @@ static const char * const yytname[] = {   "$","error","$undefined.","tDOUBLE",
 "VectorTetrahedron","@11","TensorTetrahedronValues","TensorTetrahedron","@12",
 "Affectation","Shape","Transform","MultipleShape","ListOfShapes","Duplicata",
 "Delete","Macro","Command","Loop","Extrude","ExtrudeParameters","ExtrudeParameter",
-"Transfini","Coherence","Options","Option","GeneralOptions","GeneralOption",
-"@13","GeometryOptions","GeometryOption","@14","MeshOptions","MeshOption","@15",
-"PostProcessingOptions","PostProcessingOption","@16","PrintOptions","PrintOption",
-"@17","ColorAffects","ColorAffect","RGBAExpr","BoolExpr","FExpr","FExpr_Single",
-"FExpr_Range","VExpr","ListOfStrings","RecursiveListOfStrings","ListOfListOfDouble",
-"RecursiveListOfListOfDouble","ListOfDouble","RecursiveListOfDouble", NULL
+"Transfini","Coherence","Options","Option","Scripts","Script","BoolExpr","FExpr",
+"FExpr_Single","FExpr_Range","VExpr","VExpr_Single","ListOfStrings","RecursiveListOfStrings",
+"ListOfListOfDouble","RecursiveListOfListOfDouble","ListOfDouble","RecursiveListOfDouble",
+"Color", NULL
 };
 #endif
 
 static const short yyr1[] = {     0,
-   166,   166,   166,   167,   167,   167,   168,   168,   169,   169,
-   169,   169,   170,   170,   170,   170,   170,   171,   171,   171,
-   172,   172,   172,   172,   172,   172,   172,   172,   172,   172,
-   172,   172,   172,   172,   172,   172,   172,   172,   172,   172,
-   172,   172,   172,   172,   172,   172,   172,   172,   172,   172,
-   173,   173,   174,   174,   174,   174,   174,   174,   174,   174,
-   174,   174,   174,   174,   174,   174,   175,   175,   176,   176,
-   176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
-   176,   177,   177,   179,   178,   180,   180,   182,   181,   183,
-   183,   185,   184,   186,   186,   188,   187,   189,   189,   191,
-   190,   192,   192,   194,   193,   195,   195,   197,   196,   198,
-   198,   200,   199,   201,   201,   203,   202,   204,   204,   206,
-   205,   207,   207,   209,   208,   210,   210,   212,   211,   213,
-   214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
-   214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
-   214,   214,   214,   214,   214,   214,   214,   214,   215,   215,
-   215,   215,   216,   216,   216,   217,   217,   218,   219,   220,
-   221,   221,   221,   222,   222,   222,   223,   223,   223,   223,
-   223,   223,   223,   223,   224,   224,   225,   225,   226,   226,
-   226,   226,   226,   226,   226,   226,   227,   228,   228,   229,
-   229,   229,   229,   229,   230,   230,   231,   231,   231,   232,
-   231,   233,   233,   234,   234,   234,   235,   234,   236,   236,
-   237,   237,   237,   238,   237,   239,   239,   240,   240,   240,
-   241,   240,   242,   242,   243,   243,   243,   244,   243,   245,
-   245,   246,   246,   246,   247,   247,   248,   248,   248,   248,
-   248,   249,   249,   249,   249,   249,   249,   249,   249,   249,
-   249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
-   249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
-   250,   250,   250,   251,   251,   252,   252,   252,   252,   253,
-   253,   254,   254,   255,   255,   255,   256,   256,   257,   257,
-   257,   258,   258,   258,   258
+   177,   177,   177,   178,   178,   178,   179,   179,   180,   180,
+   180,   180,   181,   181,   181,   181,   181,   182,   182,   182,
+   183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
+   183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
+   183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
+   184,   184,   185,   185,   185,   185,   185,   185,   185,   185,
+   185,   185,   185,   185,   185,   185,   185,   185,   186,   187,
+   187,   188,   188,   188,   188,   188,   188,   188,   188,   188,
+   188,   188,   188,   188,   189,   189,   191,   190,   192,   192,
+   194,   193,   195,   195,   197,   196,   198,   198,   200,   199,
+   201,   201,   203,   202,   204,   204,   206,   205,   207,   207,
+   209,   208,   210,   210,   212,   211,   213,   213,   215,   214,
+   216,   216,   218,   217,   219,   219,   221,   220,   222,   222,
+   224,   223,   225,   226,   226,   226,   226,   226,   226,   226,
+   226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
+   226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
+   226,   227,   227,   227,   227,   228,   228,   228,   229,   229,
+   230,   231,   232,   233,   233,   233,   234,   234,   234,   235,
+   235,   235,   235,   235,   235,   235,   235,   236,   236,   237,
+   237,   238,   238,   238,   238,   238,   238,   238,   238,   239,
+   240,   240,   241,   241,   241,   241,   241,   241,   241,   241,
+   241,   241,   241,   242,   242,   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,   245,   245,   245,   245,   245,   245,   245,   245,   245,
+   245,   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,
+   255,   255,   255,   255,   256,   256,   256,   256,   256
 };
 
 static const short yyr2[] = {     0,
@@ -629,31 +644,30 @@ static const short yyr2[] = {     0,
     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,     4,     2,     6,     8,     0,     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,     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,     3,     6,     8,     1,     8,    12,     8,    12,
-     8,    12,    11,    15,     1,     2,     9,     2,     6,     9,
-     9,     8,     8,     8,     6,     4,     2,     0,     2,     4,
-     4,     4,     4,     4,     0,     2,     4,     4,     4,     0,
-     5,     0,     2,     4,     4,     4,     0,     5,     0,     2,
-     4,     4,     4,     0,     5,     0,     2,     4,     4,     4,
-     0,     5,     0,     2,     4,     4,     4,     0,     5,     0,
-     2,     4,     8,     4,     9,     7,     1,     1,     1,     1,
-     1,     1,     3,     3,     3,     3,     3,     3,     2,     2,
-     4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     6,     4,     4,     4,     4,     4,     4,     6,     6,     6,
-     1,     1,     1,     3,     6,    11,     9,     7,     7,     0,
-     3,     1,     3,     0,     3,     3,     1,     3,     0,     1,
-     3,     1,     1,     3,     3
+     1,     1,     1,     1,     1,     4,     4,     2,     7,     6,
+     8,     0,     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,     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,     3,     6,     8,     1,     8,
+    12,     8,    12,     8,    12,    11,    15,     1,     2,     9,
+     2,     6,     9,     9,     8,     8,     8,     6,     4,     2,
+     0,     2,     1,     6,     6,     6,     6,     6,     6,     5,
+     5,     6,     8,     0,     2,     1,     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,     1,     1,     1,     3,     4,     4,     3,     6,     1,
+     2,     2,     3,     3,    11,     9,     7,     7,     0,     3,
+     1,     3,     0,     3,     3,     1,     3,     0,     1,     3,
+     1,     1,     3,     3,     9,     7,     5,     1,     5
 };
 
 static const short yydefact[] = {    51,
@@ -662,956 +676,1612 @@ static const short yydefact[] = {    51,
     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   176,     0,     0,     0,     0,    52,
-    53,    54,    55,    56,    57,    58,    62,    64,    63,    59,
-    60,    61,   281,   283,   282,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   252,
-    12,     0,    13,    14,    16,    15,    17,   290,   290,     0,
-    66,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   299,     0,     0,     0,     0,   299,     0,
+     0,     0,     0,     0,     0,   179,     0,     0,     0,     0,
+    52,    54,    53,    55,    56,    57,    58,    59,    63,    65,
+    64,    60,    61,    62,   262,   264,   263,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   166,     0,   299,   166,   197,
-     0,   299,   299,     0,     0,     0,   198,     0,   172,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   222,    12,     0,    13,    14,    16,    15,    17,
+   279,   279,     0,    68,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   288,     0,
+     0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   270,     0,     0,
+     0,     0,     0,   169,     0,   288,   169,   200,     0,   288,
+   288,     0,     0,     0,   201,     0,   214,   175,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   260,   259,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   225,   224,   226,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   300,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   166,   166,     0,     0,     0,
-     0,     0,   170,     0,     0,     0,    69,     0,     0,     0,
-     0,     0,     0,     0,     0,   173,   171,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   174,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   272,   271,     0,     0,     0,
+     0,   169,   169,     0,     0,     0,     0,     0,   173,     0,
+     0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   176,     0,   265,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   253,   255,   254,   256,   257,   258,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   223,     0,   239,
+   240,   238,   237,   233,   234,   235,   236,   225,   224,   229,
+   230,   231,   232,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   292,     0,     0,
-     0,     0,   130,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   302,   303,     0,     0,     0,     0,
+     0,     0,     0,     0,   281,     0,     0,     0,     0,   133,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   165,     0,   164,   163,     0,     0,     0,
-     0,     0,   168,   167,   196,     0,   169,     0,     0,     0,
+     0,     0,   291,   292,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    65,   199,     0,     0,   261,   262,   263,   264,   265,   266,
-   267,   268,   269,   270,     0,   272,   273,   274,   275,   276,
-   277,     0,     0,     0,   255,   254,     0,     0,     0,     0,
+     0,   274,   273,   168,     0,   167,   166,     0,     0,     0,
+     0,     0,   171,   170,   199,     0,   172,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    66,   203,   202,
+     0,    67,   216,   215,     0,   266,   267,   242,   243,   244,
+   245,   246,   247,   248,   249,   250,   251,     0,   253,   254,
+   255,   256,   257,   258,     0,     0,     0,   228,   227,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   291,     0,
-    19,     0,     0,   135,   299,   299,     0,   299,   147,     0,
-   155,   299,   299,     0,     0,   301,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   159,   161,     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,   299,     0,     0,
-   299,   205,   212,   219,   226,   233,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   299,   299,     0,     0,     0,     0,   299,   299,
-     0,     0,     0,     0,     0,   299,     0,   299,     0,     0,
-     0,     0,     0,   293,     0,   290,     0,     0,     0,   299,
-     0,   299,     0,     0,     0,   284,   304,   305,   134,     0,
-   299,   299,   299,   189,     0,   299,   299,   299,   299,   299,
-   299,   299,     0,     0,     0,     0,     0,     0,     0,   195,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    67,     0,     0,     0,     0,   294,     0,
-     0,     0,     0,     0,     0,   174,     0,     0,   271,   278,
-   279,   280,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   280,     0,    19,     0,     0,     0,   138,   288,
+   288,     0,   288,   150,     0,   158,   288,   288,     0,     0,
+   290,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   162,   164,     0,
+     0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    73,    74,
+    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+     0,     0,   288,     0,     0,   288,     0,     0,     0,     0,
+     0,     0,     0,   241,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   288,   288,     0,     0,     0,     0,
+   288,   288,     0,     0,     0,     0,     0,   288,     0,   288,
+     0,     0,     0,     0,     0,   282,     0,   279,     0,     0,
+     0,     0,   288,     0,   288,     0,     0,     0,   268,   293,
+   294,   137,     0,   288,   288,   288,   192,     0,   288,   288,
+   288,   288,   288,   288,   288,     0,     0,     0,     0,     0,
+     0,     0,   198,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    70,     0,     0,     0,
+     0,   283,     0,     0,     0,   177,     0,     0,   252,   259,
+   260,   261,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   247,   248,   249,   250,
-   251,     0,     0,     0,     0,     0,     0,     0,    18,     0,
-   131,   139,     0,   142,     0,   136,     0,   137,   157,     0,
+     0,     0,     0,     0,     0,     0,   217,   218,   219,   220,
+   221,     0,     0,     0,     0,     0,     0,     0,    18,     0,
+    69,   134,   142,     0,   145,     0,   139,     0,   140,   160,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   166,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   169,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   145,     0,
-   299,   299,     0,   299,     0,   210,   200,   206,     0,   217,
-   201,   213,     0,   224,   202,   220,     0,   231,   203,   227,
-     0,   238,   204,   234,     0,   299,     0,     0,     0,   299,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   148,
+     0,   288,   288,     0,   288,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   288,     0,     0,     0,   288,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   299,     0,
-     0,     0,     0,     0,     0,     0,     0,   290,     0,   144,
-   154,     0,     0,   193,   148,   150,     0,     0,   192,   194,
-   156,   132,   143,   153,   158,     0,   289,     0,   288,     0,
-     0,   177,     0,   179,     0,   181,     0,    68,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   288,     0,     0,
+     0,     0,     0,     0,     0,     0,   279,     0,   147,   157,
+     0,     0,   196,   151,   153,     0,     0,   195,   197,   159,
+   135,   146,   156,   161,     0,   278,     0,   277,     0,     0,
+   180,     0,   182,     0,   184,     0,    71,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   294,     0,   297,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   175,     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,   140,   285,     0,   191,   190,   166,     0,   162,
-     0,     0,     0,     0,     0,     0,   185,     0,     0,     0,
+     0,   283,     0,   286,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   210,   211,     0,
+   178,     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,   143,   269,     0,   194,   193,   169,
+     0,   165,     0,     0,     0,     0,     0,     0,   188,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   299,   296,   295,   299,     0,     0,     0,     0,
-     0,   240,     0,     0,     0,   240,     0,     0,     0,   240,
-     0,     0,     0,   240,     0,     0,     0,   240,   149,     0,
-     0,   294,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   299,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   287,     0,     0,     0,   188,
-   299,     0,   186,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   298,     0,
-     0,   207,     0,   208,   209,     0,     0,   240,   214,   215,
-   216,     0,   221,   222,   223,     0,   228,   229,   230,     0,
-   235,   236,   237,     0,     0,    35,     0,     0,     0,     0,
+     0,     0,     0,     0,   288,   285,   284,   288,     0,   204,
+     0,   205,   212,   206,   207,   208,   209,     0,   152,     0,
+     0,   283,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   276,     0,     0,     0,   191,
+   288,     0,   189,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   287,     0,
+     0,   298,     0,     0,     0,    35,     0,     0,     0,     0,
     25,     0,    31,     0,    37,    26,    39,     0,    42,     0,
-    46,    47,     0,     0,    49,     0,     0,     0,   160,     0,
-     0,     0,     0,     0,   183,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   299,
-   299,   146,     0,   211,   241,   218,   225,   232,   239,     0,
+    46,    47,     0,     0,    49,     0,     0,     0,   163,     0,
+     0,     0,     0,     0,   186,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   288,
+   288,   149,     0,   264,     0,   213,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   286,   178,   180,   182,     0,   299,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    84,    88,
-    92,   133,   138,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    29,    32,    40,     0,    41,    48,    43,
+   275,   181,   183,   185,     0,   288,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    87,    91,    95,   136,   141,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   299,     0,   242,   283,
-     0,   244,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   299,     0,     0,     0,     0,     0,     0,     0,     0,
+    29,    32,    40,     0,    41,    48,    43,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    24,    27,     0,     0,     0,   184,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    82,     0,
-    86,     0,    90,     0,     0,     0,     0,     0,     0,   299,
+     0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   288,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   299,   297,     0,     0,     0,     0,    24,    27,
+     0,     0,     0,   187,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    85,     0,    89,     0,    93,
+     0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    44,    20,   141,   187,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
-    85,    87,    89,    91,    93,     0,     0,   243,     0,     0,
-     0,   299,     0,     0,     0,     0,     0,     0,    96,   100,
-   104,     0,     0,     0,   246,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   296,     0,
+     0,     0,    44,    20,   144,   190,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    86,    88,    90,    92,    94,
+    96,     0,     0,     0,     0,     0,   288,     0,     0,     0,
+     0,     0,     0,    99,   103,   107,     0,     0,   295,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     5,   299,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   152,   245,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    94,     0,    98,     0,   102,     0,
-   299,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   151,     0,    22,     0,     0,     0,
-     0,     0,     0,    95,    97,    99,   101,   103,   105,   299,
-     0,     0,     0,   108,   112,   116,     0,     0,     0,     0,
-     0,     0,     0,   299,     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
+     0,     0,     0,     5,   288,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   155,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    97,     0,   101,     0,
+   105,     0,   288,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   154,     0,    22,     0,
+     0,     0,     0,     0,     0,    98,   100,   102,   104,   106,
+   108,   288,     0,     0,     0,   111,   115,   119,     0,     0,
+     0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   109,     0,   113,
+     0,   117,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   110,   112,   114,   116,
+   118,   120,     0,   123,   127,   131,    23,     0,     0,     0,
+     0,     0,     0,     0,   121,     0,   125,     0,   129,     0,
+     0,     0,     0,     0,     0,   122,   124,   126,   128,   130,
+   132,     0,     0,     0
 };
 
-static const short yydefgoto[] = {  1420,
-     4,     5,    18,    19,    20,    21,     6,    60,    61,   389,
-  1188,   514,  1134,  1190,   515,  1135,  1192,   516,  1136,  1304,
-   517,  1275,  1306,   518,  1276,  1308,   519,  1277,  1365,   520,
-  1351,  1367,   521,  1352,  1369,   522,  1353,  1402,   523,  1396,
-  1404,   524,  1397,  1406,   525,  1398,    62,   384,   374,   375,
-   376,   377,    66,    67,    68,    69,    70,   896,   897,    71,
-    72,   274,   402,   631,   738,   840,   632,   742,   842,   633,
-   746,   844,   634,   750,   846,   635,   754,   848,   997,   998,
-  1108,   672,   239,   100,   356,   140,   223,   339,   733,   834,
-   835,   357
+static const short yydefgoto[] = {  1412,
+     4,     5,    18,    19,    20,    21,     6,    61,   439,    63,
+   429,  1185,   559,  1131,  1187,   560,  1132,  1189,   561,  1133,
+  1296,   562,  1269,  1298,   563,  1270,  1300,   564,  1271,  1357,
+   565,  1343,  1359,   566,  1344,  1361,   567,  1345,  1394,   568,
+  1388,  1396,   569,  1389,  1398,   570,  1390,    64,   424,   414,
+   415,   416,   417,    68,    69,    70,    71,    72,   928,   929,
+    73,    74,   300,   440,   302,   444,   712,   261,   103,   394,
+   276,   148,   243,   376,   774,   863,   864,   395,  1014
 };
 
-static const short yypact[] = {   447,
--32768,-32768,  -135,-32768,   455,   959,  1490,    28,    65,    30,
-    71,    75,    90,    96,   -38,   -34,   -22,-32768,-32768,-32768,
--32768,   140,   141,   -57,    -5,    -4,   -35,   -42,    70,    92,
-   238,   112,   228,   243,   257,    46,   286,   -20,   160,   -36,
-   -36,   162,    41,   173,   281,   306,   186,   342,   349,   100,
-   205,   -30,   206,   229,-32768,   376,   383,   387,   359,-32768,
+static const short yypact[] = {   499,
+-32768,-32768,   -86,-32768,    33,  1650,  1152,     1,    78,   118,
+   120,   127,   129,   131,   -12,    46,    73,-32768,-32768,-32768,
+-32768,   152,   248,    40,  -143,    92,   100,   -46,   -44,   113,
+   124,   246,   128,   252,   283,   290,   208,   279,   181,   188,
+  -110,  -110,   200,   259,   202,   347,   342,   209,   372,   374,
+    68,   234,   -32,   213,   243,-32768,   220,   390,   408,   394,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,   257,-32768,   273,   288,   294,
+   317,   319,   323,   324,   326,   327,   328,   329,   333,   335,
+   336,   337,   338,   340,   341,   343,   346,  1152,  1152,  1152,
+  1152,  1418,-32768,-32768,  1686,-32768,-32768,-32768,-32768,-32768,
+   348,   348,   444,-32768,  1152,   449,   475,  1152,  1152,  1152,
+  1152,   349,  1152,  1152,   351,  1152,  1152,  1152,   868,  1152,
+   339,   352,   353,   868,   344,   354,   355,   356,   358,   359,
+   387,  -110,  -110,  -110,  1152,  1152,   -74,-32768,   -71,  -110,
+   385,   386,   388,-32768,   516,   868,-32768,-32768,   -56,   868,
+   868,  1152,   -72,  1152,-32768,  1152,-32768,-32768,   552,   392,
+   557,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,
+  1152,   397,   397,   397,  2336,  1152,  1152,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,
+  1418,   395,   398,   401,   430,   431,   432,   434,   435,   438,
+   447,   448,   450,   451,   452,   454,   455,   456,   457,   459,
+   460,   461,   462,   463,   464,   467,   469,   470,   476,   477,
+   478,   612,   474,   490,   492,   267,-32768,   493,  2360,  1440,
+  2384,  2408,  1152,  2432,  1930,  1152,  1967,  2456,  2480,  1152,
+  6286,   640,  2504,  1152,  1152,  1152,   656,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,    62,-32768,-32768,  3848,  3871,  -110,
+  -110,   298,   298,   119,  1152,  1152,  1152,  1507,-32768,   103,
+  1583,  -110,-32768,   657,   658,  2528,   585,  1152,  2552,    13,
+  1797,    14,-32768,  1152,  -107,  2576,  2600,  2624,  2648,  2672,
+  2696,  2720,  2744,  2768,  2792,  3894,  2816,  2840,  2864,  2888,
+  2912,  2936,  3917,  3940,  3963,  1152,  1152,-32768,  1347,    79,
+    79,   417,   417,   287,   287,   287,   287,  -141,  -136,   397,
+   397,   397,   397,  1824,   662,   663,   664,   667,   668,   669,
+   670,   672,   673,   674,   675,   676,   679,   680,   681,   682,
+   683,   685,   686,   687,   689,   690,   692,   572,   694,   695,
+   696,   697,   700,   699,-32768,   -20,   702,   718,   703,-32768,
+  1152,   698,   719,   721,   724,  2960,   725,   720,  2984,   727,
+   728,   729,  1368,-32768,   -41,  1152,   730,  1987,  3008,  3032,
+  1152,  2007,  2027,  3056,  3080,  3104,  3128,  3152,  -110,  1152,
+  1152,-32768,-32768,-32768,   566,  1599,-32768,   568,  1152,  3986,
+  4009,  4032,-32768,-32768,-32768,  1152,-32768,   -68,   233,   563,
+   571,   737,   582,  3176,   753,   590,   597,-32768,-32768,-32768,
+  1152,-32768,-32768,-32768,  3200,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1152,-32768,-32768,
+-32768,-32768,-32768,-32768,  1152,  1152,  1152,    91,    91,  1152,
+   627,   599,   605,   606,   607,   608,   609,   611,   613,   614,
+   615,   616,   617,   618,   619,   620,   621,   623,   624,   625,
+   626,   628,   632,   633,   634,   635,   637,   638,   639,   641,
+   642,   807,-32768,   643,-32768,   659,  3224,  -110,-32768,   868,
+   868,   822,   868,-32768,   824,-32768,   868,   868,    53,  1152,
+-32768,   436,   661,   826,   827,   828,   207,   829,   830,   831,
+   832,   833,   846,   847,   126,  4055,  4078,-32768,-32768,  2047,
+  -110,  -110,  -110,   562,-32768,   688,   691,   693,   701,   705,
+   706,   707,   732,   733,   735,   736,   738,   849,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,   245,   255,   262,   264,   267,
-   268,   269,   274,   275,   284,   291,   295,   296,   299,   301,
-   315,   316,   317,   343,   348,  1490,  1490,  1490,  1463,-32768,
--32768,  1574,-32768,-32768,-32768,-32768,-32768,   355,   355,   392,
--32768,  1490,  1490,  1490,  1490,  1490,   356,  1490,  1490,   360,
-  1490,  1490,  1490,  1415,  1490,   303,   363,   365,  1415,   346,
-   371,   366,   378,   379,   382,   385,   -36,  1490,  1490,   373,
-   386,   -36,   389,   390,   391,-32768,   429,  1415,-32768,-32768,
-   -58,  1415,  1415,  1490,   -75,  1490,-32768,  1490,-32768,   510,
-   511,   399,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,   403,   403,   469,  1490,  1490,  1490,  1490,  1490,
-  1463,   419,   426,   431,   434,   435,   436,   437,   441,   442,
-   443,   444,   445,   446,   466,   479,   480,   506,   507,   518,
-   520,   526,   528,   529,   532,   537,   538,   543,   546,   551,
-   555,   541,   427,   558,   468,   121,   828,   621,  1204,  1308,
-  1490,  1397,   641,  1490,   703,  1408,  1418,  1490,   509,   660,
-  1449,  1490,  1490,  1490,   691,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,   556,   907,   942,   195,   195,   560,  1490,  1490,
-  1490,   638,-32768,    18,  1259,   -36,-32768,   719,   720,  1477,
-   647,  1490,  1492,   -25,   428,-32768,-32768,  1490,  1502,  1562,
-  1572,  1582,  1592,  1602,  1612,  1622,  1632,  1642,  1188,  1652,
-  1662,  1672,  1682,  1692,  1702,  2072,  2081,  2090,  1490,  1490,
--32768,   -69,   388,   403,   403,   403,   554,   726,   727,   729,
-   730,   733,   735,   736,   737,   744,   749,   750,   756,   759,
-   761,   762,   774,   779,   782,   784,   785,   791,   792,   799,
-   416,   800,   801,   802,   803,   806,   805,-32768,   -73,   822,
-   820,   823,-32768,   804,   827,   835,   839,  1712,   841,   829,
-  1722,   844,   845,   851,   224,-32768,   -24,  1490,   852,   783,
-  1732,  1742,  1490,   790,   980,  1752,  1762,  1772,  1782,  1792,
-   -36,  1490,  1490,-32768,   667,  1554,-32768,   699,  1490,  2099,
-  2108,  2117,-32768,-32768,-32768,  1490,-32768,   705,   821,   717,
-   718,   874,   741,  1802,   893,   740,   745,   778,   787,   788,
--32768,-32768,  1490,  1812,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  1490,-32768,-32768,-32768,-32768,-32768,
--32768,  1490,  1490,  1490,   -60,   -60,   765,   743,   746,   794,
-   796,   797,   798,   807,   825,   838,   847,   848,   850,   857,
-   863,   865,   866,   867,   869,   871,   873,   881,   883,   884,
-   888,   892,   894,   898,   920,   921,   922,   945,-32768,   826,
--32768,   923,   -36,-32768,  1415,  1415,   954,  1415,-32768,   955,
--32768,  1415,  1415,    36,  1490,-32768,   128,   880,   957,   958,
-  1045,   104,  1085,  1090,  1096,  1100,  1102,  1128,  1129,   949,
-  2126,  2135,-32768,-32768,  1013,   -36,   -36,   -36,   184,-32768,
-   981,   982,   983,   985,   986,   987,  1000,  1010,  1011,  1018,
-  1021,  1022,  1132,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,  1490,  1490,  1415,  1490,  1152,
-  1415,-32768,-32768,-32768,-32768,-32768,   540,  1171,  1822,  1832,
-  1842,  1852,  1039,   984,  1490,  1490,   -36,  1180,  1182,  1033,
-  1186,  1187,  1415,  1415,  1189,   -36,  1190,  1191,  1415,  1415,
-  1192,  1193,  1194,  1205,  1207,  1415,   259,  1415,  1221,  1223,
-  1224,  1228,  1233,-32768,  1231,   355,  1235,     1,  1238,  1415,
-  1239,  1415,  1248,  1249,  1490,   509,   224,-32768,-32768,  1490,
-  1415,  1415,  1415,-32768,   149,  1415,  1415,  1415,  1415,  1415,
-  1415,  1415,  1490,  1490,  1490,  1066,   -19,   -17,    63,-32768,
-  1001,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,  1490,-32768,  2144,  2153,  1250,  1862,    -6,  1175,
-    14,    15,    16,    29,    37,-32768,  1490,  1490,-32768,-32768,
--32768,-32768,  1490,  1108,  2162,  2171,  1110,  1109,  1113,  1116,
-  1126,  1117,  1127,  1138,  1140,  1142,  1146,  1153,  1155,  1158,
-  1163,  1166,  1168,  1169,  1174,  1170,-32768,-32768,-32768,-32768,
--32768,  1184,  1185,  1195,  1200,  1203,  1209,  1212,-32768,  1218,
--32768,-32768,   -36,-32768,  1254,-32768,  1255,-32768,-32768,   287,
-  2180,  1266,  1282,  1320,  1490,  1490,  1340,  1357,  1372,  1379,
-  1381,  1382,  1383,  1020,  1872,   571,   195,   -36,  1384,   -36,
-  1389,   -36,    24,  1390,  2189,  2198,  2207,  2216,  2225,  2234,
-  2243,  2252,  2261,  2270,  2279,  2288,  1490,  1490,-32768,  1392,
-  1415,  1415,  1314,  1415,  1393,-32768,-32768,-32768,  1395,-32768,
--32768,-32768,  1399,-32768,-32768,-32768,  1400,-32768,-32768,-32768,
-  1406,-32768,-32768,-32768,  1882,   192,  1463,  1401,  1490,  1415,
-  1410,  1411,  1416,  1264,  1443,   259,  1444,  1454,  1490,  1458,
-  1466,  1464,  1489,  1493,   259,  1490,  1490,  1490,  1415,  1491,
-  1495,   259,  1490,  1519,  1521,  1541,  1490,   355,  1546,-32768,
--32768,  1490,  1490,-32768,-32768,-32768,   217,   232,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,  1364,-32768,  1490,-32768,  1394,
-  1396,-32768,  1404,-32768,  1405,-32768,   -48,-32768,  1490,  1490,
-  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  2297,  2306,    -6,    74,-32768,    67,  1413,  1478,   285,  1419,
-   467,  1420,   630,  1422,   904,  1431,  1101,  1433,-32768,  1571,
-  1463,  1437,  2315,  1445,-32768,  1446,-32768,  1451,-32768,  1448,
--32768,  1453,  1892,-32768,  1460,-32768,-32768,  1462,  1467,  1902,
-  2324,  1912,  1465,-32768,  1475,  1476,  2333,  1479,  1480,-32768,
-  2342,  1488,-32768,   509,  2351,-32768,-32768,   195,   594,-32768,
-  1490,  1490,  1490,  1573,  1452,   -33,-32768,  2360,  2369,  2378,
-  2387,  2396,  2405,  2414,  2423,  2432,  2441,  2450,  2459,  1490,
-  1490,  1540,  1415,-32768,-32768,  1415,  1490,  1620,  1490,   253,
-  1633,  1646,  1645,   277,  1651,  1646,  1654,   309,  1655,  1646,
-  1657,   351,  1658,  1646,  1659,   358,  1660,  1646,-32768,   174,
-  1661,    -6,   259,  1670,  1490,  1668,   259,  1671,  1673,  1683,
-  1684,  1685,  1490,  1686,  1415,  1688,  1689,  1490,  1703,  1711,
-  1490,  1653,  1713,  1526,  1490,-32768,  1061,  1068,  1081,-32768,
-  1415,  1714,-32768,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,  1490,  1490,  1490,  1112,  1167,  1560,-32768,  1568,
-   374,-32768,   723,-32768,-32768,  1721,  1569,  1646,-32768,-32768,
--32768,  1575,-32768,-32768,-32768,  1576,-32768,-32768,-32768,  1578,
--32768,-32768,-32768,  1579,  1490,-32768,  1588,  1589,  1591,  2468,
--32768,  1570,-32768,  1597,-32768,-32768,-32768,  1922,-32768,  1599,
--32768,-32768,  1932,  1600,-32768,  1942,  1608,  1609,-32768,  1222,
-  1745,  1755,    31,  1611,-32768,  2477,  2486,  2495,  2504,  2513,
-  2522,  2531,  2540,  2549,  1952,  1962,  1972,  1765,  1771,  1415,
-  1415,-32768,    25,-32768,-32768,-32768,-32768,-32768,-32768,  1463,
-   259,   259,   259,   259,  1774,  1775,  1781,   259,  1784,  1785,
-  1791,  1773,  1783,-32768,-32768,-32768,-32768,   -48,  1415,  1490,
-  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,-32768,-32768,
--32768,-32768,-32768,  1639,  1638,  1795,  1517,  1801,  1463,  1649,
-  1669,  1650,  1667,-32768,-32768,-32768,  1678,-32768,-32768,-32768,
-  1679,  1681,   -21,  1691,  2558,  2567,  2576,  2585,  2594,  2603,
-  2612,  2621,  2630,  1656,  1680,  1687,  1415,  1731,-32768,  1698,
-  2639,-32768,   402,   259,   259,  1814,  1815,   259,  1813,  1825,
-  1841,  1415,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,  1490,  1490,  1696,  1690,  1490,  1490,  1490,  1701,
-  1708,-32768,-32768,  1710,  1717,  1699,-32768,  1706,  2648,  2657,
-  2666,  2675,  2684,  2693,  2702,  2711,  2720,   101,   509,   105,
-   509,   107,   509,  1751,  1490,  1229,  2729,  1463,   259,  1415,
-  1865,  1874,  1875,  1881,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,  1490,  1490,  1884,  1490,  1885,  1490,  1891,  1727,
-  2738,  1894,  1490,  1463,  1719,  1739,-32768,-32768,-32768,-32768,
-  2747,  2756,  2765,  2774,  2783,  2792,  1982,  1992,  2002,   509,
--32768,   509,-32768,   509,-32768,  1490,  1490,-32768,   606,   882,
-   259,  1415,  1490,  1490,  1490,  1490,  1490,  1490,-32768,-32768,
--32768,  2801,  1258,  1490,-32768,  1753,  1748,  1749,  2810,  2819,
-  2828,  2837,  2846,  2855,  1750,  1756,  1757,  1490,  1904,  1294,
--32768,  1415,   259,  1490,  1490,  1490,  1490,  1490,  1490,  1490,
-  1490,  1490,  1301,-32768,-32768,  1761,  1767,  2864,  2873,  2882,
-  2891,  2900,  2909,   125,   509,   170,   509,   171,   509,  1915,
-  1415,  1924,  1490,  1490,  1490,  1490,  1490,  1490,  1490,  1925,
-  1490,  1931,  1490,  1934,-32768,  1769,-32768,  2918,  2927,  2936,
-  2012,  2022,  2032,   509,-32768,   509,-32768,   509,-32768,  1415,
-  1490,  1490,  1490,-32768,-32768,-32768,  1779,  2945,  2954,  2963,
-  1780,  1786,  1787,  1415,  1490,  1490,  1490,  1490,  1490,  1490,
-  1798,  2972,  2981,  2990,   180,   509,   193,   509,   239,   509,
-   259,  1490,  1490,  1490,  1490,  1944,  1490,  1945,  1490,  1954,
-  1807,  2042,  2052,  2062,   509,-32768,   509,-32768,   509,-32768,
-  1955,-32768,-32768,-32768,-32768,  1797,  1809,  1810,  1490,  1490,
-  1490,   240,   509,   250,   509,   252,   509,  1490,  1971,  1490,
-  1974,  1490,  1975,   509,-32768,   509,-32768,   509,-32768,  1968,
-  1978,-32768
+  1152,  1152,   868,  1152,   850,   868,    15,  1769,   851,  3248,
+  3272,  3296,  3320,  6286,   731,   863,  1152,  1152,  -110,   867,
+   895,   746,   905,   906,   868,   868,   907,  -110,   908,   909,
+   868,   868,   910,   911,   912,   916,   918,   868,   313,   868,
+   919,   860,   920,   921,   923,-32768,   922,   348,   924,    -4,
+     7,   925,   868,   926,   868,   946,   947,  1152,  6286,  1368,
+-32768,-32768,  1152,   868,   868,   868,-32768,   174,   868,   868,
+   868,   868,   868,   868,   868,  1152,  1152,  1152,   756,  -131,
+  -118,   117,-32768,   751,  1152,  1152,  1152,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  1152,-32768,  4101,  4124,   948,
+  3344,   101,   874,    81,   783,-32768,  1152,  1152,-32768,-32768,
+-32768,-32768,  1152,   791,  4147,  4170,   -52,   792,   789,   793,
+   794,   796,   797,   799,   800,    -6,   801,   802,   803,   806,
+   808,   810,   812,   813,   814,   815,-32768,-32768,-32768,-32768,
+-32768,   817,   834,   835,   836,   838,   844,   855,-32768,   859,
+-32768,-32768,-32768,  -110,-32768,   957,-32768,   970,-32768,-32768,
+  1688,  4193,   978,   993,   994,  1152,  1152,   995,   996,  1023,
+  1024,  1025,  1027,  1028,  2067,  3368,  1843,   298,  -110,  1029,
+  -110,  1031,  -110,    17,  1032,  4216,  4239,  4262,  4285,  4308,
+  4331,  4354,  4377,  4400,  4423,  4446,  4469,  1152,  1152,-32768,
+  1038,   868,   868,   973,   868,   525,  1152,  1152,  1152,  1152,
+  1050,  1051,  1055,  3392,   318,  1418,  1063,  1152,   868,  1070,
+  1074,  1083,   931,  1085,   313,  1086,  1090,  1152,  1120,  1093,
+  1130,  1131,  1135,   313,  1152,  1152,  1152,   868,  1134,  1138,
+   313,  1152,  1151,  1154,  1176,  1152,   348,     3,-32768,-32768,
+  1152,  1152,-32768,-32768,-32768,   598,   790,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   989,-32768,  1152,-32768,  1011,   157,
+-32768,   212,-32768,   218,-32768,    43,-32768,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  4492,
+  4515,   101,   154,-32768,   216,  1013,  1107,  1182,  1091,  1091,
+  1152,   862,     5,   893,   914,   974,  1072,-32768,-32768,  1183,
+-32768,  1185,  1418,  1019,  4538,  1035,-32768,  1037,-32768,  1039,
+-32768,  1022,-32768,  1040,  3416,-32768,  1041,-32768,-32768,  1042,
+  1044,  3440,  4561,  3464,  1046,-32768,  1047,  1048,  4584,  1065,
+  1054,-32768,  4607,  1069,-32768,  6286,  4630,-32768,-32768,   298,
+  1874,-32768,  1152,  1152,  1152,  1187,  1045,   -43,-32768,  4653,
+  4676,  4699,  4722,  4745,  4768,  4791,  4814,  4837,  4860,  4883,
+  4906,  1152,  1152,  1157,   868,-32768,-32768,   868,  1152,-32768,
+  2312,-32768,-32768,-32768,-32768,-32768,-32768,    16,-32768,  1718,
+  1234,   101,   313,  1244,  1152,  1245,   313,  1246,  1247,  1248,
+  1250,  1251,  1152,  1252,   868,  1254,  1255,  1152,  1260,  1258,
+  1152,  1261,  1262,  1081,  1152,-32768,  2087,  2107,  2127,-32768,
+   868,  1263,-32768,  1152,  1152,  1152,  1152,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  2147,  2167,  1097,-32768,  1110,
+  1328,  1106,  1445,  1275,  1152,-32768,  1113,  1116,  1118,  4929,
+-32768,  1119,-32768,  1122,-32768,-32768,-32768,  3488,-32768,  1124,
+-32768,-32768,  3512,  1125,-32768,  3536,  1127,  1128,-32768,  2187,
+  1282,  1288,    36,  1136,-32768,  4952,  4975,  4998,  5021,  5044,
+  5067,  5090,  5113,  5136,  3560,  3584,  3608,  1301,  1305,   868,
+   868,-32768,  1229,  -119,  5159,-32768,  1418,   313,   313,   313,
+   313,  1307,  1308,  1309,   313,  1311,  1312,  1313,  1316,  1317,
+-32768,-32768,-32768,-32768,    43,   868,  1152,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,-32768,-32768,-32768,-32768,-32768,
+  1155,  1153,  1149,  1152,  1152,  1418,  1160,  1161,  1162,  1163,
+-32768,-32768,-32768,  1166,-32768,-32768,-32768,  1167,  1168,   -42,
+  1169,  5182,  5205,  5228,  5251,  5274,  5297,  5320,  5343,  5366,
+  1177,  1179,  1180,   868,  1268,  1327,  2207,  5389,  1744,   313,
+   313,  1333,  1346,   313,  1348,  1349,  1350,   868,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,
+  1189,  1192,-32768,-32768,  1152,  1152,  1196,  1197,-32768,-32768,
+  1200,  1201,  1195,-32768,  1205,  5412,  5435,  5458,  5481,  5504,
+  5527,  5550,  5573,  5596,   221,  6286,   223,  6286,   228,  6286,
+  1293,  1152,  1902,  1418,   313,   868,  1367,  1372,  1373,  1374,
+  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,  1152,
+  1376,  1152,  1381,  1152,  1382,  1218,  5619,  1152,-32768,  1418,
+  1221,  1222,-32768,-32768,-32768,-32768,  5642,  5665,  5688,  5711,
+  5734,  5757,  3632,  3656,  3680,  6286,-32768,  6286,-32768,  6286,
+-32768,  1152,  1152,  2227,  2293,   313,   868,  1152,  1152,  1152,
+  1152,  1152,  1152,-32768,-32768,-32768,  5780,  2247,-32768,  1257,
+  1223,  1225,  5803,  5826,  5849,  5872,  5895,  5918,  1230,  1231,
+  1232,  1152,  1394,-32768,   868,   313,  1152,  1152,  1152,  1152,
+  1152,  1152,  1152,  1152,  1152,  2267,-32768,  1235,  1236,  5941,
+  5964,  5987,  6010,  6033,  6056,   229,  6286,   261,  6286,   266,
+  6286,  1399,   868,  1404,  1152,  1152,  1152,  1152,  1152,  1152,
+  1152,  1405,  1152,  1413,  1152,  1414,-32768,  1256,-32768,  6079,
+  6102,  6125,  3704,  3728,  3752,  6286,-32768,  6286,-32768,  6286,
+-32768,   868,  1152,  1152,  1152,-32768,-32768,-32768,  1281,  6148,
+  6171,  6194,  1253,  1280,  1319,   868,  1152,  1152,  1152,  1152,
+  1152,  1152,  1283,  6217,  6240,  6263,   271,  6286,   281,  6286,
+   285,  6286,   313,  1152,  1152,  1152,  1152,  1417,  1152,  1420,
+  1152,  1447,  1310,  3776,  3800,  3824,  6286,-32768,  6286,-32768,
+  6286,-32768,  1485,-32768,-32768,-32768,-32768,  1321,  1338,  1339,
+  1152,  1152,  1152,   292,  6286,   312,  6286,   321,  6286,  1152,
+  1493,  1152,  1505,  1152,  1508,  6286,-32768,  6286,-32768,  6286,
+-32768,  1513,  1520,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1487,
--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,  1524,-32768,
+   986,-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,  1984,  1985,  -256,
-   272,  1991,-32768,-32768,-32768,-32768,-32768,   900,  -893,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -903,-32768,
--32768,  -754,    -7,-32768,  1523,     2,  -107,-32768,  -825,  1268,
-   271,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1526,  1528,
+  -278,   282,  1529,-32768,-32768,-32768,-32768,-32768,   466,  -914,
+-32768,-32768,-32768,  1259,-32768,-32768,  -758,    -7,-32768,  1016,
+   -10,-32768,  -111,-32768,  -858,   764,   773,-32768,-32768
 };
 
 
-#define	YYLAST		3149
+#define	YYLAST		6451
 
 
-static const short yytable[] = {    99,
-   378,   224,   973,   155,   266,   271,   682,   912,     7,   133,
-   894,   860,   134,   135,   120,   136,   895,   735,   739,   743,
-   869,   117,  1002,   385,   386,   894,  1006,   876,  1106,   816,
-  1010,   895,   747,   101,  1014,   103,  1087,   894,    73,    74,
-   751,   683,   141,   895,    75,    76,    77,    78,    79,    80,
-    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-    91,    92,    93,    94,    95,   396,   397,   398,   399,   400,
-   143,   102,  -260,   144,   145,  -260,   104,  -260,   129,   130,
-   105,   131,   272,  -260,  -260,   458,   459,   190,   183,   184,
-   185,   191,   188,   189,  1065,   106,   190,   736,   740,   744,
-   113,   107,   267,   114,   226,   227,   228,   229,   230,   594,
-   232,   233,   748,   235,   236,   237,  1017,   241,   121,   108,
-   752,   138,   118,   109,   139,   119,   343,   156,   972,   152,
-   254,   255,   153,   589,   475,   110,   401,   476,   253,   708,
-  1151,   710,   709,   258,   711,   111,   270,   112,   273,   595,
-   275,   731,   115,   116,   732,   279,   280,   281,   282,   283,
-   284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
-   294,   295,   296,   297,   298,   737,   741,   745,   302,   303,
-   304,   305,   306,   307,   817,  1107,    96,    97,  1018,   610,
-   749,  1088,  1022,    98,    73,    74,   695,   696,   753,   585,
-    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-    95,   712,   886,   348,   713,   913,   351,   122,   915,   973,
-   355,   474,   913,   914,   360,   361,   362,   887,   364,   365,
-   366,   367,   368,   369,   370,    39,    40,    41,    42,   123,
-    44,   380,   381,   382,   299,   300,   188,   189,   994,  1214,
-   190,   126,  1215,  1216,   394,  1218,  1217,   388,  1219,   125,
-   404,   299,   300,   188,   189,   124,   127,   190,   299,   300,
-   188,   189,  1000,  1319,   190,   147,  1320,    73,    74,   918,
-   128,   425,   426,    75,    76,    77,    78,    79,    80,    81,
-    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-    92,    93,    94,    95,  1004,  1015,  1110,  1111,  1112,  1113,
-   137,   132,   142,  1117,   299,   300,   188,   189,  1321,  1323,
-   190,  1322,  1324,   146,   299,   300,   188,   189,  1375,   148,
-   190,  1376,   186,   187,   188,   189,   149,   150,   190,    98,
-   477,  1377,   238,   151,  1378,   482,  1008,   667,   668,   669,
-   670,   671,   154,  1012,   491,   492,   157,   299,   300,   188,
-   189,   495,   490,   190,   299,   300,   188,   189,   499,  1062,
-   190,   159,   299,   300,   188,   189,   158,   160,   190,  1170,
-  1171,   161,   162,  1174,   240,   537,   225,  1379,  1408,   245,
-  1380,  1409,   163,   299,   300,   188,   189,   539,  1410,   190,
-  1412,  1411,   164,  1413,   540,   541,   542,   262,   264,   165,
-   265,   166,   268,   269,   167,   168,   169,   299,   300,   188,
-   189,   170,   171,   190,   263,    96,    97,   299,   300,   188,
-   189,   172,   919,   190,  1225,   139,    -7,    -7,   173,    -7,
-   810,   792,   174,   175,    -1,     8,   176,     9,   177,   299,
-   300,   188,   189,   242,   577,   190,   586,   587,   680,    73,
-    74,   923,   178,   179,   180,    75,    76,    77,    78,    79,
-    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-    90,    91,    92,    93,    94,    95,  1267,   607,   608,   609,
-   181,   299,   300,   188,   189,   182,   246,   190,   299,   300,
-   188,   189,   222,   231,   190,   276,   277,   234,   625,   626,
-   243,   628,   244,   248,   299,   300,   188,   189,  1297,  -259,
-   190,   247,  -259,   256,  -259,   249,   250,   645,   646,   251,
-  -259,  -259,   252,  1169,   190,   338,   257,   451,   647,   259,
-   260,   261,   299,   300,   188,   189,   278,   656,   190,   190,
-    -7,    -7,    -7,    -7,    -7,    -7,    -7,    -7,    10,    11,
-    12,    13,    14,    15,    16,    17,   308,   690,   299,   300,
-   188,   189,   691,   309,   190,   340,     1,     2,   310,     3,
-   403,   311,   312,   313,   314,   704,   705,   706,   315,   316,
-   317,   318,   319,   320,   715,   716,   717,   718,   719,   720,
-   721,   722,   723,   724,   725,   726,  1381,    96,    97,   299,
-   300,   188,   189,   321,   919,   190,   342,   139,   301,   755,
-   756,   964,    73,    74,   927,   757,   322,   323,    75,    76,
-    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-    87,    88,    89,    90,    91,    92,    93,    94,    95,   299,
-   300,   188,   189,   324,   325,   190,   358,    24,    25,    26,
-    27,    28,    29,    30,    31,   326,    32,   327,    34,    35,
-   882,    37,    38,   328,   789,   329,   330,   797,   798,   331,
-   299,   300,   188,   189,   332,   333,   190,   363,   427,   636,
-   334,    50,   637,   335,   299,   300,   188,   189,   336,   811,
-   190,   813,   337,   815,   371,    51,    52,   341,   379,   831,
-   832,   299,   300,   188,   189,   390,   391,   190,   393,   808,
-   428,   429,   809,   430,   431,   578,   579,   432,   581,   433,
-   434,   435,   583,   584,   299,   300,   188,   189,   436,   851,
-   190,   853,   965,   437,   438,   966,   299,   300,   188,   189,
-   439,   863,   190,   440,  1264,   441,   442,  1265,   870,   871,
-   872,   299,   300,   188,   189,   877,    59,   190,   443,   881,
-    96,    97,   345,   444,   884,   885,   445,   919,   446,   447,
-   139,   299,   300,   188,   189,   448,   449,   190,   627,   383,
-   889,   630,   350,   450,   452,   453,   454,   455,   456,   457,
-   463,   898,   899,   900,   901,   902,   903,   904,   905,   906,
-   907,   908,   909,   653,   654,   461,   460,   462,   493,   659,
-   660,   920,   464,   924,   469,   928,   666,   932,   673,   936,
-   921,   465,   925,   940,   929,   466,   933,   468,   937,   471,
-   685,   472,   687,   299,   300,   188,   189,   473,   478,   190,
-   494,   692,   693,   694,   352,   500,   697,   698,   699,   700,
-   701,   702,   703,   299,   300,   188,   189,   526,   527,   190,
-   528,   372,   301,   967,   968,   969,   501,   502,   503,   504,
-   505,   506,   507,   508,   509,   510,   511,   512,   529,   531,
-   532,   544,   986,   987,   545,   533,    73,    74,   931,   991,
-   543,   993,    75,    76,    77,    78,    79,    80,    81,    82,
-    83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-    93,    94,    95,   299,   300,   188,   189,  1020,   534,   190,
-   299,   300,   188,   189,   479,  1028,   190,   535,   536,   574,
-  1033,   483,   546,  1036,   547,   548,   549,  1040,    -3,    22,
-   580,   582,    23,   591,   592,   550,  1046,  1047,  1048,  1049,
-  1050,  1051,  1052,  1053,  1054,  1055,  1056,  1057,   299,   300,
-   188,   189,   513,   551,   190,   575,   644,   344,    24,    25,
-    26,    27,    28,    29,    30,    31,   552,    32,    33,    34,
-    35,    36,    37,    38,   838,   553,   554,  1070,   555,    39,
-    40,    41,    42,    43,    44,   556,    45,    46,    47,    48,
-    49,   557,    50,   558,   559,   560,   850,   561,  1266,   562,
-   854,   563,   299,   300,   188,   189,    51,    52,   190,   564,
-   590,   565,   566,    53,    54,    55,   567,    56,    57,   873,
-   568,   593,   569,    58,    96,    97,   570,   299,   300,   188,
-   189,   919,  1109,   190,   139,   372,   501,   502,   503,   504,
-   505,   506,   507,   508,   509,   510,   511,   512,   571,   572,
-   573,   576,  1125,  1126,  1127,  1128,  1129,  1130,  1131,  1132,
-  1133,   596,   299,   300,   188,   189,   597,    59,   190,  1141,
-   373,  1143,   598,    73,    74,   935,   599,   603,   600,    75,
-    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+static const short yytable[] = {   102,
+   244,   722,   163,   944,   418,   292,   104,   297,   915,   122,
+   953,   125,   723,   993,   926,   926,   436,   436,   674,  1012,
+   927,   927,   845,   210,   118,   280,   281,   119,   210,  -228,
+   147,   149,    -1,     8,  -227,     9,   892,   749,   280,   281,
+   750,  1084,   437,   437,   116,   901,   143,   144,   724,  1104,
+   751,     7,   908,   752,   171,    75,    76,   145,   446,   447,
+   146,    77,    78,    79,    80,    81,    82,    83,    84,    85,
     86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-   299,   300,   188,   189,   601,   602,   190,   624,   612,   613,
-   614,   484,   615,   616,   617,  1179,  1180,  1181,  1182,  1183,
-  1184,  1185,  1186,  1187,  1189,  1191,  1193,   618,   629,  1196,
-  1197,  1198,   714,   299,   300,   188,   189,   619,   620,   190,
-   299,   300,   188,   189,   606,   621,   190,   638,   622,   623,
-   643,   806,   648,   989,   649,   650,   990,  1221,   651,   652,
-  1224,   655,   657,   658,   661,   662,   663,  1231,  1232,  1233,
-  1234,  1235,  1236,  1237,  1238,  1239,  1240,   664,  1242,   665,
-  1244,   299,   300,   188,   189,  1249,  1250,   190,   299,   300,
-   188,   189,  1041,   674,   190,  1030,   707,   675,   676,  1042,
-   677,   299,   300,   188,   189,   678,   679,   190,  1262,  1263,
-   681,  1044,  1043,   684,   686,  1269,  1270,  1271,  1272,  1273,
-  1274,    96,    97,   688,   689,   729,  1280,   734,   919,   790,
-   791,   139,   299,   300,   188,   189,   758,   762,   190,   761,
-  1293,   794,   763,  1058,   764,   766,  1298,  1299,  1300,  1301,
-  1302,  1303,  1305,  1307,  1309,   765,   767,   795,    24,    25,
-    26,    27,    28,    29,    30,    31,   768,    32,   769,    34,
-    35,   770,    37,    38,   771,  1328,  1329,  1330,  1331,  1332,
-  1333,  1334,   772,  1336,   773,  1338,   774,   299,   300,   188,
-   189,   775,    50,   190,   776,   796,   777,   778,  1059,   780,
-  1104,  1105,   779,  1348,  1349,  1350,    51,    52,   299,   300,
-   188,   189,   781,   782,   190,   799,   415,  1362,  1363,  1364,
-  1366,  1368,  1370,   783,   299,   300,   188,   189,   784,  1124,
-   190,   785,   800,   346,  1382,  1383,  1384,  1385,   786,  1387,
-   787,  1389,   299,   300,   188,   189,   788,   801,   190,   299,
-   300,   188,   189,  1084,   802,   190,   803,   804,   805,   812,
-  1222,  1403,  1405,  1407,   814,   818,   837,    59,   833,   839,
-  1414,   841,  1416,   852,  1418,   843,   845,  1165,   299,   300,
-   188,   189,   847,   856,   190,   855,   858,    73,    74,  1279,
-   387,   857,  1178,    75,    76,    77,    78,    79,    80,    81,
-    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-    92,    93,    94,    95,   299,   300,   188,   189,   859,   861,
-   190,   299,   300,   188,   189,  1295,   862,   190,   299,   300,
-   188,   189,  1310,   864,   190,    73,    74,   347,   865,   866,
-  1226,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+    96,    97,   280,   281,   105,   280,   281,   776,   280,   281,
+   192,   193,   194,   195,   211,   298,   282,   675,   160,   283,
+   926,   161,   545,  1017,   280,   281,   927,   246,   425,   426,
+   249,   250,   251,   252,   293,   254,   255,   790,   257,   258,
+   259,   123,   263,   106,   124,   107,   126,   520,   992,  1147,
+   521,   275,   108,   277,   109,   164,   110,   278,   279,   284,
+    10,    11,    12,    13,    14,    15,    16,    17,   502,   503,
+   280,   281,   280,   281,   296,   111,   299,   114,   301,   280,
+   281,   280,   281,   799,   306,   307,   308,   309,   310,   311,
+   312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
+   322,   323,   324,   325,   438,   442,  1013,   846,   329,   330,
+   331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+   341,   342,   343,   344,  1018,   993,  1085,   117,  1022,    98,
+    99,   138,   637,   112,   139,   140,   100,   141,   280,   281,
+   101,   736,   737,   777,   778,   779,   780,   628,   199,   200,
+   409,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+   113,   134,   135,   210,   136,   386,   781,   782,   389,   207,
+   208,   209,   393,   638,   115,   210,   398,   399,   400,   120,
+   402,   403,   404,   405,   406,   407,   408,   121,   772,   412,
+   413,   773,   380,   280,   281,   280,   281,   420,   421,   422,
+   127,   428,   280,   281,   129,   753,   131,   419,   754,   151,
+   434,   128,   152,   153,   646,   130,   445,   546,   547,   548,
+   549,   550,   551,   552,   553,   554,   555,   556,   557,  1107,
+  1108,  1109,  1110,   280,   281,   137,  1114,   132,   468,   469,
+    75,    76,   945,   946,   133,   923,    77,    78,    79,    80,
+    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+    91,    92,    93,    94,    95,    96,    97,    40,    41,    42,
+    43,   155,    45,   196,   197,   198,   199,   200,   142,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,   280,   281,
+   150,   210,   154,   507,   280,   281,   156,   158,   159,   157,
+   924,  1167,  1168,   165,   945,  1171,   925,   947,   522,  1210,
+   167,  1212,  1211,   527,  1213,   168,  1214,  1311,   535,  1215,
+  1312,   162,   536,   537,   558,   707,   708,   709,   710,   711,
+   166,   540,   169,   196,   197,   198,   199,   200,   544,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,   170,  1313,
+   171,   210,  1314,   578,  1315,   288,  1221,  1316,   291,  1367,
+   172,   632,  1368,   326,   327,   207,   208,   209,   245,  1369,
+   580,   210,  1370,  1371,   247,   173,  1372,   581,   582,   583,
+  1400,   174,   584,  1401,   196,   197,   198,   199,   200,   839,
+   201,   202,   203,   204,   205,   206,   207,   208,   209,   248,
+  1402,   100,   210,  1403,   175,   101,   176,  1261,   260,  1404,
+   177,   178,  1405,   179,   180,   181,   182,   620,    -7,    -7,
+   183,    -7,   184,   185,   186,   187,   720,   188,   189,   264,
+   190,   629,   630,   191,   268,   242,   253,  1289,   256,   265,
+   266,   289,   270,   271,   269,   272,   273,    75,    76,   868,
+   650,   651,   652,    77,    78,    79,    80,    81,    82,    83,
     84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-    94,    95,    73,    74,   867,   868,   874,   875,    75,    76,
+    94,    95,    96,    97,   274,   285,   286,   303,   287,   304,
+   305,   210,   345,   668,   669,   346,   671,   653,   347,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,   687,   685,
+   686,   210,   196,   197,   198,   199,   200,   696,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,   348,   349,   350,
+   210,   351,   352,   918,  1373,   353,    -7,    -7,    -7,    -7,
+    -7,    -7,    -7,    -7,   354,   355,   375,   356,   357,   358,
+   731,   359,   360,   361,   362,   732,   363,   364,   365,   366,
+   367,   368,     1,     2,   369,     3,   370,   371,   745,   746,
+   747,   984,   377,   372,   373,   374,   396,   756,   757,   758,
+   759,   760,   761,   762,   763,   764,   765,   766,   767,   378,
+   379,   381,   401,   430,   431,   433,   472,   473,   474,   784,
+   785,   475,   476,   477,   478,   786,   479,   480,   481,   482,
+   483,   869,   870,   484,   485,   486,   487,   488,   100,   489,
+   490,   491,   871,   492,   493,   146,   494,   495,   496,   497,
+   498,   499,   500,   501,   508,   914,   504,   506,   196,   197,
+   198,   199,   200,   818,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,   505,   509,   514,   210,   510,   826,   827,
+   511,   513,   516,   571,   517,   518,   523,   538,   840,   539,
+   842,   572,   844,   573,   196,   197,   198,   199,   200,   574,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,   576,
+   860,   861,   210,   577,   117,   873,   585,   586,   872,   874,
+   875,   876,   877,   587,   588,   589,   590,   591,   883,   592,
+   885,   593,   594,   595,   596,   597,   598,   599,   600,   601,
+   895,   602,   603,   604,   605,   919,   606,   902,   903,   904,
+   607,   608,   609,   610,   909,   611,   612,   613,   913,   614,
+   615,   616,   617,   916,   917,   546,   547,   548,   549,   550,
+   551,   552,   553,   554,   555,   556,   557,   618,   623,   921,
+   625,   633,   634,   635,   636,   639,   640,   641,   642,   643,
+   930,   931,   932,   933,   934,   935,   936,   937,   938,   939,
+   940,   941,   644,   645,   667,   655,   672,   678,   656,   277,
+   657,   192,   193,   951,   715,   684,   683,   952,   658,   688,
+    75,    76,   659,   660,   661,   960,    77,    78,    79,    80,
+    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+    91,    92,    93,    94,    95,    96,    97,   689,   954,   662,
+   663,   262,   664,   665,   690,   666,   267,   691,   692,   695,
+   697,   698,   701,   702,   703,   987,   988,   989,   704,   955,
+   705,   714,   755,   717,   716,   718,   748,   719,   290,   721,
+   725,   727,   294,   295,  1006,  1007,   196,   197,   198,   199,
+   200,  1011,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,   729,   730,   770,   210,   775,   783,  1020,   792,   787,
+   791,   793,   819,   794,   795,  1028,   796,   797,   798,   800,
+  1033,   801,   802,  1036,   803,   820,   804,  1040,   805,   956,
+   806,   807,   808,   823,   809,   810,  1046,  1047,  1048,  1049,
+  1050,  1051,  1052,  1053,  1054,  1055,  1056,  1057,   824,   825,
+   828,   829,   811,   812,   813,  1065,   814,  1067,   196,   197,
+   198,   199,   200,   815,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,   816,    98,    99,   210,   817,   830,   831,
+   832,   100,   833,   834,   841,   101,   843,   847,   260,   196,
+   197,   198,   199,   200,   862,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,   866,   878,   879,   210,   880,  1106,
+   196,   197,   198,   199,   200,   884,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,   887,   888,   957,   210,  1122,
+  1123,  1124,  1125,  1126,  1127,  1128,  1129,  1130,   889,   890,
+   891,   893,   894,    75,    76,   897,  1137,  1138,  1139,    77,
+    78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+    88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+   196,   197,   198,   199,   200,   896,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,   898,   899,   900,   210,   906,
+   907,  1176,  1177,  1178,  1179,  1180,  1181,  1182,  1183,  1184,
+  1186,  1188,  1190,   910,    75,    76,   911,  1193,  1194,   920,
     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-    87,    88,    89,    90,    91,    92,    93,    94,    95,    73,
-  1140,   878,  1268,   879,   888,    75,    76,    77,    78,    79,
-    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-    90,    91,    92,    93,    94,    95,   880,   299,   300,   188,
-   189,   883,  1296,   190,   891,   890,   349,   917,   299,   300,
-   188,   189,   892,   893,   190,    96,    97,   353,   299,   300,
-   188,   189,    98,   916,   190,   238,   939,   354,   970,   922,
-   926,  1326,   930,    24,    25,    26,    27,    28,    29,    30,
-    31,   934,    32,   938,    34,    35,   941,    37,    38,   299,
-   300,   188,   189,   943,   944,   190,   192,   946,   359,   945,
-  1347,   947,   971,   186,   187,   188,   189,    50,   949,   190,
-    98,   950,   988,   955,  1361,   992,   951,   299,   300,   188,
-   189,    51,    52,   190,   956,   957,   392,   959,   995,   960,
-    96,    97,   299,   300,   188,   189,   962,    98,   190,   996,
-   999,   395,   299,   300,   188,   189,  1001,  1037,   190,  1003,
-  1005,   405,  1007,  1009,  1011,  1013,  1016,    96,    97,   193,
-   194,   195,  1019,  1021,    98,  1024,  1023,   196,   197,   198,
-   199,   200,   201,   202,   203,   204,   205,  1039,  1025,  1026,
-  1027,  1029,    59,  1031,  1032,   206,   207,   208,   209,   210,
-   211,   212,   213,   214,   215,  1034,   216,   217,   218,   219,
-   220,   221,   299,   300,   188,   189,  1035,  1038,   190,  1045,
-  1060,   406,   299,   300,   188,   189,  1061,  1063,   190,  1075,
-  1064,   407,   299,   300,   188,   189,  1066,  1067,   190,  1068,
-  1069,   408,   299,   300,   188,   189,  1071,  1072,   190,  1073,
-  1085,   409,   299,   300,   188,   189,  1076,  1078,   190,  1080,
-  1086,   410,   299,   300,   188,   189,  1082,  1083,   190,  1089,
-  1102,   411,   299,   300,   188,   189,  1103,  1121,   190,  1114,
-  1115,   412,   299,   300,   188,   189,  1116,  1122,   190,  1118,
-  1119,   413,   299,   300,   188,   189,  1120,  1137,   190,  1138,
-  1139,   414,   299,   300,   188,   189,  1142,  1144,   190,  1146,
-  1166,   416,   299,   300,   188,   189,  1162,  1175,   190,  1172,
-  1173,   417,   299,   300,   188,   189,  1147,  1145,   190,  1176,
-  1220,   418,   299,   300,   188,   189,  1148,  1149,   190,  1150,
-  1163,   419,   299,   300,   188,   189,  1177,  1164,   190,  1152,
-  1195,   420,   299,   300,   188,   189,  1167,  1194,   190,  1199,
-  1203,   421,   299,   300,   188,   189,  1200,  1204,   190,  1201,
-  1227,   467,   299,   300,   188,   189,  1202,  1251,   190,  1228,
-  1229,   470,   299,   300,   188,   189,  1230,  1246,   190,  1241,
-  1243,   480,   299,   300,   188,   189,  1245,  1252,   190,  1248,
-  1281,   481,   299,   300,   188,   189,  1282,  1283,   190,  1294,
-  1290,   485,   299,   300,   188,   189,  1291,  1292,   190,  1311,
-  1325,   486,   299,   300,   188,   189,  1312,  1340,   190,  1327,
-  1335,   487,   299,   300,   188,   189,  1337,  1354,   190,  1339,
-  1358,   488,   299,   300,   188,   189,  1359,  1360,   190,  1386,
-  1388,   489,   299,   300,   188,   189,  1371,  1399,   190,  1390,
-  1395,   530,   299,   300,   188,   189,  1391,  1421,   190,  1400,
-  1401,   538,   299,   300,   188,   189,  1415,  1422,   190,  1417,
-  1419,   639,   299,   300,   188,   189,   611,  1123,   190,    63,
-    64,   640,   299,   300,   188,   189,    65,   588,   190,   836,
-     0,   641,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   642,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   730,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   807,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   849,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   948,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   952,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,   954,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1077,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1079,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1081,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1099,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1100,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1101,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1259,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1260,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1261,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1344,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1345,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1346,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1392,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1393,   299,   300,   188,   189,     0,     0,   190,     0,
-     0,  1394,   299,   300,   188,   189,     0,     0,   190,     0,
-   422,   299,   300,   188,   189,     0,     0,   190,     0,   423,
-   299,   300,   188,   189,     0,     0,   190,     0,   424,   299,
-   300,   188,   189,     0,     0,   190,     0,   496,   299,   300,
-   188,   189,     0,     0,   190,     0,   497,   299,   300,   188,
-   189,     0,     0,   190,     0,   498,   299,   300,   188,   189,
-     0,     0,   190,     0,   604,   299,   300,   188,   189,     0,
-     0,   190,     0,   605,   299,   300,   188,   189,     0,     0,
-   190,     0,   727,   299,   300,   188,   189,     0,     0,   190,
-     0,   728,   299,   300,   188,   189,     0,     0,   190,     0,
-   759,   299,   300,   188,   189,     0,     0,   190,     0,   760,
-   299,   300,   188,   189,     0,     0,   190,     0,   793,   299,
-   300,   188,   189,     0,     0,   190,     0,   819,   299,   300,
-   188,   189,     0,     0,   190,     0,   820,   299,   300,   188,
-   189,     0,     0,   190,     0,   821,   299,   300,   188,   189,
-     0,     0,   190,     0,   822,   299,   300,   188,   189,     0,
-     0,   190,     0,   823,   299,   300,   188,   189,     0,     0,
-   190,     0,   824,   299,   300,   188,   189,     0,     0,   190,
-     0,   825,   299,   300,   188,   189,     0,     0,   190,     0,
-   826,   299,   300,   188,   189,     0,     0,   190,     0,   827,
-   299,   300,   188,   189,     0,     0,   190,     0,   828,   299,
-   300,   188,   189,     0,     0,   190,     0,   829,   299,   300,
-   188,   189,     0,     0,   190,     0,   830,   299,   300,   188,
-   189,     0,     0,   190,     0,   910,   299,   300,   188,   189,
-     0,     0,   190,     0,   911,   299,   300,   188,   189,     0,
-     0,   190,     0,   942,   299,   300,   188,   189,     0,     0,
-   190,     0,   953,   299,   300,   188,   189,     0,     0,   190,
-     0,   958,   299,   300,   188,   189,     0,     0,   190,     0,
-   961,   299,   300,   188,   189,     0,     0,   190,     0,   963,
-   299,   300,   188,   189,     0,     0,   190,     0,   974,   299,
-   300,   188,   189,     0,     0,   190,     0,   975,   299,   300,
-   188,   189,     0,     0,   190,     0,   976,   299,   300,   188,
-   189,     0,     0,   190,     0,   977,   299,   300,   188,   189,
-     0,     0,   190,     0,   978,   299,   300,   188,   189,     0,
-     0,   190,     0,   979,   299,   300,   188,   189,     0,     0,
-   190,     0,   980,   299,   300,   188,   189,     0,     0,   190,
-     0,   981,   299,   300,   188,   189,     0,     0,   190,     0,
-   982,   299,   300,   188,   189,     0,     0,   190,     0,   983,
-   299,   300,   188,   189,     0,     0,   190,     0,   984,   299,
-   300,   188,   189,     0,     0,   190,     0,   985,   299,   300,
-   188,   189,     0,     0,   190,     0,  1074,   299,   300,   188,
-   189,     0,     0,   190,     0,  1090,   299,   300,   188,   189,
-     0,     0,   190,     0,  1091,   299,   300,   188,   189,     0,
-     0,   190,     0,  1092,   299,   300,   188,   189,     0,     0,
-   190,     0,  1093,   299,   300,   188,   189,     0,     0,   190,
-     0,  1094,   299,   300,   188,   189,     0,     0,   190,     0,
-  1095,   299,   300,   188,   189,     0,     0,   190,     0,  1096,
-   299,   300,   188,   189,     0,     0,   190,     0,  1097,   299,
-   300,   188,   189,     0,     0,   190,     0,  1098,   299,   300,
-   188,   189,     0,     0,   190,     0,  1153,   299,   300,   188,
-   189,     0,     0,   190,     0,  1154,   299,   300,   188,   189,
-     0,     0,   190,     0,  1155,   299,   300,   188,   189,     0,
-     0,   190,     0,  1156,   299,   300,   188,   189,     0,     0,
-   190,     0,  1157,   299,   300,   188,   189,     0,     0,   190,
-     0,  1158,   299,   300,   188,   189,     0,     0,   190,     0,
-  1159,   299,   300,   188,   189,     0,     0,   190,     0,  1160,
-   299,   300,   188,   189,     0,     0,   190,     0,  1161,   299,
-   300,   188,   189,     0,     0,   190,     0,  1168,   299,   300,
-   188,   189,     0,     0,   190,     0,  1205,   299,   300,   188,
-   189,     0,     0,   190,     0,  1206,   299,   300,   188,   189,
-     0,     0,   190,     0,  1207,   299,   300,   188,   189,     0,
-     0,   190,     0,  1208,   299,   300,   188,   189,     0,     0,
-   190,     0,  1209,   299,   300,   188,   189,     0,     0,   190,
-     0,  1210,   299,   300,   188,   189,     0,     0,   190,     0,
-  1211,   299,   300,   188,   189,     0,     0,   190,     0,  1212,
-   299,   300,   188,   189,     0,     0,   190,     0,  1213,   299,
-   300,   188,   189,     0,     0,   190,     0,  1223,   299,   300,
-   188,   189,     0,     0,   190,     0,  1247,   299,   300,   188,
-   189,     0,     0,   190,     0,  1253,   299,   300,   188,   189,
-     0,     0,   190,     0,  1254,   299,   300,   188,   189,     0,
-     0,   190,     0,  1255,   299,   300,   188,   189,     0,     0,
-   190,     0,  1256,   299,   300,   188,   189,     0,     0,   190,
-     0,  1257,   299,   300,   188,   189,     0,     0,   190,     0,
-  1258,   299,   300,   188,   189,     0,     0,   190,     0,  1278,
-   299,   300,   188,   189,     0,     0,   190,     0,  1284,   299,
-   300,   188,   189,     0,     0,   190,     0,  1285,   299,   300,
-   188,   189,     0,     0,   190,     0,  1286,   299,   300,   188,
-   189,     0,     0,   190,     0,  1287,   299,   300,   188,   189,
-     0,     0,   190,     0,  1288,   299,   300,   188,   189,     0,
-     0,   190,     0,  1289,   299,   300,   188,   189,     0,     0,
-   190,     0,  1313,   299,   300,   188,   189,     0,     0,   190,
-     0,  1314,   299,   300,   188,   189,     0,     0,   190,     0,
-  1315,   299,   300,   188,   189,     0,     0,   190,     0,  1316,
-   299,   300,   188,   189,     0,     0,   190,     0,  1317,   299,
-   300,   188,   189,     0,     0,   190,     0,  1318,   299,   300,
-   188,   189,     0,     0,   190,     0,  1341,   299,   300,   188,
-   189,     0,     0,   190,     0,  1342,   299,   300,   188,   189,
-     0,     0,   190,     0,  1343,   299,   300,   188,   189,     0,
-     0,   190,     0,  1355,   299,   300,   188,   189,     0,     0,
-   190,     0,  1356,   299,   300,   188,   189,     0,     0,   190,
-     0,  1357,   299,   300,   188,   189,     0,     0,   190,     0,
-  1372,   299,   300,   188,   189,     0,     0,   190,     0,  1373,
-   299,   300,   188,   189,     0,     0,   190,     0,  1374
+    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+    97,   912,   922,   948,  1217,   949,  1220,   950,   961,   958,
+   959,   966,   990,  1227,  1228,  1229,  1230,  1231,  1232,  1233,
+  1234,  1235,  1236,   963,  1238,   964,  1240,   965,   967,   969,
+  1244,   970,  1245,   971,   975,   991,   976,   977,   196,   197,
+   198,   199,   200,   980,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,   979,  1257,  1258,   210,   982,  1008,  1016,
+  1263,  1264,  1265,  1266,  1267,  1268,  1019,   869,   870,  1024,
+  1021,  1023,  1039,  1025,   100,  1026,  1027,  1029,   871,  1031,
+  1032,   146,  1034,  1035,  1286,  1037,  1038,  1060,  1045,  1290,
+  1291,  1292,  1293,  1294,  1295,  1297,  1299,  1301,  1061,  1063,
+  1066,  1068,   621,   622,  1069,   624,  1070,  1082,  1072,   626,
+   627,  1073,  1075,  1083,  1077,  1079,  1080,  1320,  1321,  1322,
+  1323,  1324,  1325,  1326,  1086,  1328,  1099,  1330,    98,    99,
+  1100,  1103,  1111,  1112,  1113,   100,  1115,  1116,  1117,   101,
+  1118,  1119,  1136,  1134,  1135,  1340,  1341,  1342,  1140,  1141,
+  1163,  1142,  1143,  1062,  1144,  1145,  1146,  1148,  1169,  1354,
+  1355,  1356,  1358,  1360,  1362,   670,  1162,  1158,   673,  1159,
+  1160,  1170,  1172,  1173,   470,  1174,  1374,  1375,  1376,  1377,
+  1191,  1379,  1192,  1381,  1195,  1196,  1199,   693,   694,  1197,
+  1198,  1216,  1223,   699,   700,   519,  1200,  1224,  1225,  1226,
+   706,  1237,   713,  1395,  1397,  1399,  1239,  1241,  1242,  1246,
+  1247,  1275,  1406,  1276,  1408,   726,  1410,   728,  1274,  1287,
+  1283,  1284,  1285,  1303,  1317,  1304,   733,   734,   735,  1319,
+  1327,   738,   739,   740,   741,   742,   743,   744,  1329,  1331,
+    75,    76,  1378,  1350,  1332,  1380,    77,    78,    79,    80,
+    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+    91,    92,    93,    94,    95,    96,    97,    75,  1064,  1346,
+  1351,  1363,  1382,    77,    78,    79,    80,    81,    82,    83,
+    84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+    94,    95,    96,    97,   196,   197,   198,   199,   200,  1383,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,  1352,
+  1387,  1391,   210,   196,   197,   198,   199,   200,  1407,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,  1392,  1393,
+  1409,   210,  1413,  1411,   196,   197,   198,   199,   200,  1414,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,    62,
+   654,    65,   210,    66,    67,   631,   865,    25,    26,    27,
+    28,    29,    30,    31,    32,     0,    33,   867,    35,    36,
+  1120,    38,    39,     0,     0,     0,     0,   882,     0,     0,
+   443,   886,     0,     0,   196,   197,   198,   199,   200,    51,
+   201,   202,   203,   204,   205,   206,   207,   208,   209,     0,
+   905,   100,   210,    52,    53,   101,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,    98,    99,     0,   210,     0,     0,     0,   100,     0,
+     0,   383,   101,    25,    26,    27,    28,    29,    30,    31,
+    32,     0,    33,     0,    35,    36,     0,    38,    39,    25,
+    26,    27,    28,    29,    30,    31,    32,     0,    33,    60,
+    35,    36,     0,    38,    39,    51,     0,     0,     0,    -3,
+    22,     0,     0,    23,     0,     0,     0,     0,     0,    52,
+    53,    51,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    52,    53,     0,   423,    24,
+    25,    26,    27,    28,    29,    30,    31,    32,     0,    33,
+    34,    35,    36,    37,    38,    39,     0,     0,     0,    40,
+    41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
+    50,     0,    51,     0,     0,    60,     0,  1009,     0,   212,
+  1010,     0,     0,     0,     0,     0,    52,    53,     0,     0,
+     0,    60,     0,    54,    55,    56,    57,    58,    59,     0,
+     0,     0,     0,     0,     0,     0,     0,  1030,     0,     0,
+     0,     0,     0,     0,   427,     0,     0,     0,     0,     0,
+     0,     0,     0,  1044,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   213,   214,   215,     0,     0,
+     0,     0,    60,   216,   217,   218,   219,   220,   221,   222,
+   223,   224,   225,     0,     0,     0,     0,     0,     0,     0,
+     0,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+   235,     0,   236,   237,   238,   239,   240,   241,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,  1101,  1102,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,  1015,     0,     0,     0,     0,  1121,     0,
+     0,     0,     0,   821,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,  1166,
+     0,     0,   210,     0,     0,     0,     0,     0,     0,     0,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,  1161,     0,   210,     0,
+     0,     0,     0,     0,     0,   196,   197,   198,   199,   200,
+  1175,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,     0,   676,     0,
+     0,   677,     0,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,   471,     0,     0,     0,     0,     0,  1222,   441,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,   837,     0,     0,   838,     0,     0,     0,     0,  1262,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,   985,     0,     0,   986,     0,  1288,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1218,     0,     0,  1219,     0,  1318,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,     0,
+     0,   388,     0,     0,  1339,     0,     0,     0,     0,     0,
+     0,     0,     0,   196,   197,   198,   199,   200,  1353,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,   390,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,   524,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,   528,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,   529,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,   649,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,   835,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1041,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1042,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1043,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1058,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1059,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1081,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1164,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1259,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,   196,   197,   198,   199,   200,  1273,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,  1260,     0,     0,     0,     0,  1302,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+   410,   328,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   328,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   382,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   384,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   385,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   387,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   391,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   392,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   397,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   432,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   435,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   448,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   449,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   450,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   451,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   452,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   453,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   454,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   455,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   456,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   457,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   459,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   460,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   461,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   462,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   463,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   464,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   512,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   515,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   525,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   526,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   530,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   531,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   532,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   533,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   534,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   575,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   579,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   619,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   679,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   680,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   681,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   682,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   771,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,   836,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,   881,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,   968,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,   972,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,   974,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,  1074,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,  1076,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,  1078,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,  1096,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,  1097,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,  1098,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,  1254,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,  1255,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,  1256,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,  1336,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,     0,  1337,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+     0,  1338,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,     0,  1384,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,     0,  1385,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,     0,  1386,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,   410,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,   411,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,   458,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,   465,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,   466,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,   467,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,   541,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,   542,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+   543,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,   647,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,   648,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,   768,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,   769,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,   788,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,   789,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,   822,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,   848,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,   849,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+   850,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,   851,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,   852,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,   853,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,   854,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,   855,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,   856,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,   857,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,   858,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,   859,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+   942,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,   943,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,   962,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,   973,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,   978,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,   981,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,   983,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,   994,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,   995,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,   996,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+   997,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,   998,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,   999,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1000,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1001,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1002,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1003,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1004,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,  1005,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,  1071,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1087,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,  1088,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,  1089,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1090,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1091,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1092,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1093,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1094,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,  1095,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,  1105,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1149,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,  1150,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,  1151,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1152,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1153,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1154,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1155,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1156,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,  1157,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,  1165,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1201,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,  1202,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,  1203,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1204,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1205,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1206,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1207,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1208,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,  1209,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,  1243,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1248,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,  1249,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,  1250,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1251,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1252,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1253,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1272,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1277,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,  1278,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,  1279,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1280,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,  1281,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,  1282,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1305,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1306,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1307,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1308,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1309,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210,     0,     0,     0,  1310,   196,   197,   198,   199,   200,
+     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
+     0,     0,     0,   210,     0,     0,     0,  1333,   196,   197,
+   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
+   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
+  1334,   196,   197,   198,   199,   200,     0,   201,   202,   203,
+   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
+     0,     0,     0,  1335,   196,   197,   198,   199,   200,     0,
+   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
+     0,     0,   210,     0,     0,     0,  1347,   196,   197,   198,
+   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
+   208,   209,     0,     0,     0,   210,     0,     0,     0,  1348,
+   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
+   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
+     0,     0,  1349,   196,   197,   198,   199,   200,     0,   201,
+   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
+     0,   210,     0,     0,     0,  1364,   196,   197,   198,   199,
+   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
+   209,     0,     0,     0,   210,     0,     0,     0,  1365,   196,
+   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
+   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
+     0,  1366,   196,   197,   198,   199,   200,     0,   201,   202,
+   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
+   210
 };
 
 static const short yycheck[] = {     7,
-   257,   109,   896,    34,    63,    81,     6,   833,   144,    30,
-    59,   766,    33,    34,    57,    36,    65,     4,     4,     4,
-   775,    57,   926,     6,     7,    59,   930,   782,     4,     6,
-   934,    65,     4,     6,   938,     6,     6,    59,     3,     4,
-     4,    41,    41,    65,     9,    10,    11,    12,    13,    14,
-    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    91,    92,    93,    94,    95,
-    30,     7,   142,    33,    34,   145,     6,   147,    33,    34,
-     6,    36,   158,   153,   154,   159,   160,   157,    96,    97,
-    98,    99,   153,   154,   998,     6,   157,    84,    84,    84,
-   158,     6,   161,   161,   112,   113,   114,   115,   116,     6,
-   118,   119,    84,   121,   122,   123,   942,   125,   161,   158,
-    84,   158,   158,   158,   161,   161,     6,   158,   162,    30,
-   138,   139,    33,     6,   159,   158,   162,   162,   137,   159,
-   162,   159,   162,   142,   162,     6,   154,     7,   156,    46,
-   158,   158,   158,   158,   161,   163,   164,   165,   166,   167,
-   168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
-   178,   179,   180,   181,   182,   162,   162,   162,   186,   187,
-   188,   189,   190,   191,   161,   161,   151,   152,   943,     6,
-   162,   161,   947,   158,     3,     4,    48,    49,   162,   164,
-     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,   159,     6,   231,   162,   159,   234,   158,   162,  1123,
-   238,     8,   159,   160,   242,   243,   244,     6,   246,   247,
-   248,   249,   250,   251,   252,    51,    52,    53,    54,   158,
-    56,   259,   260,   261,   151,   152,   153,   154,     6,   159,
-   157,    34,   162,   159,   272,   159,   162,   266,   162,   158,
-   278,   151,   152,   153,   154,    38,    34,   157,   151,   152,
-   153,   154,     6,   159,   157,     5,   162,     3,     4,     5,
-    34,   299,   300,     9,    10,    11,    12,    13,    14,    15,
+   112,     6,    35,   862,   283,    62,     6,    80,     6,    56,
+     6,    56,     6,   928,    58,    58,     4,     4,     4,     4,
+    64,    64,     6,   165,   168,   157,   158,   171,   165,   171,
+    41,    42,     0,     1,   171,     3,   795,   169,   157,   158,
+   172,     6,    30,    30,     5,   804,   157,   158,    42,   169,
+   169,   138,   811,   172,   174,     3,     4,   168,   166,   167,
+   171,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,   157,   158,     7,   157,   158,     7,   157,   158,
+    98,    99,   100,   101,   102,   168,   171,    83,    31,   171,
+    58,    34,   171,   962,   157,   158,    64,   115,     6,     7,
+   118,   119,   120,   121,   171,   123,   124,   170,   126,   127,
+   128,   168,   130,     6,   171,     6,   171,   169,   172,   172,
+   172,   142,     6,   144,     6,   168,     6,   145,   146,   150,
+   108,   109,   110,   111,   112,   113,   114,   115,   169,   170,
+   157,   158,   157,   158,   162,   168,   164,     6,   166,   157,
+   158,   157,   158,   170,   172,   173,   174,   175,   176,   177,
+   178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+   188,   189,   190,   191,   172,   172,   171,   171,   196,   197,
+   198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+   208,   209,   210,   211,   963,  1120,   171,   168,   967,   157,
+   158,    31,     6,   168,    34,    35,   164,    37,   157,   158,
+   168,    48,    49,   143,   144,   145,   146,   175,   150,   151,
+   169,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+   168,    34,    35,   165,    37,   253,   166,   167,   256,   159,
+   160,   161,   260,    47,     7,   165,   264,   265,   266,   168,
+   268,   269,   270,   271,   272,   273,   274,   168,   168,   280,
+   281,   171,     6,   157,   158,   157,   158,   285,   286,   287,
+   168,   292,   157,   158,    39,   169,    35,   169,   172,    31,
+   298,   168,    34,    35,   169,   168,   304,    65,    66,    67,
+    68,    69,    70,    71,    72,    73,    74,    75,    76,  1068,
+  1069,  1070,  1071,   157,   158,    37,  1075,    35,   326,   327,
+     3,     4,   169,   170,    35,   169,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,    50,    51,    52,
+    53,     5,    55,   147,   148,   149,   150,   151,   171,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,   157,   158,
+   171,   165,   171,   381,   157,   158,    35,     6,     5,   171,
+   169,  1140,  1141,   171,   169,  1144,   169,   172,   396,   169,
+   171,   169,   172,   401,   172,     6,   169,   169,   409,   172,
+   172,   168,   410,   411,   172,    93,    94,    95,    96,    97,
+   168,   419,     5,   147,   148,   149,   150,   151,   426,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    35,   169,
+   174,   165,   172,   441,   169,   154,  1195,   172,   157,   169,
+   168,     6,   172,   157,   158,   159,   160,   161,     5,   169,
+   458,   165,   172,   169,     6,   168,   172,   465,   466,   467,
+   169,   168,   470,   172,   147,   148,   149,   150,   151,   748,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,     5,
+   169,   164,   165,   172,   168,   168,   168,  1246,   171,   169,
+   168,   168,   172,   168,   168,   168,   168,   508,     0,     1,
+   168,     3,   168,   168,   168,   168,   618,   168,   168,   171,
+   168,   519,   520,   168,   171,   168,   168,  1276,   168,   168,
+   168,     6,   168,   168,   171,   168,   168,     3,     4,     5,
+   541,   542,   543,     9,    10,    11,    12,    13,    14,    15,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,     6,   142,  1071,  1072,  1073,  1074,
-   161,    36,   161,  1078,   151,   152,   153,   154,   159,   159,
-   157,   162,   162,   161,   151,   152,   153,   154,   159,    34,
-   157,   162,   151,   152,   153,   154,   161,     6,   157,   158,
-   358,   159,   161,     5,   162,   363,     6,    99,   100,   101,
-   102,   103,   158,     6,   372,   373,   161,   151,   152,   153,
-   154,   379,   371,   157,   151,   152,   153,   154,   386,     6,
-   157,     6,   151,   152,   153,   154,   158,     5,   157,  1144,
-  1145,     5,    34,  1148,   124,   403,     5,   159,   159,   129,
-   162,   162,   158,   151,   152,   153,   154,   415,   159,   157,
-   159,   162,   158,   162,   422,   423,   424,   146,   148,   158,
-   149,   158,   152,   153,   158,   158,   158,   151,   152,   153,
-   154,   158,   158,   157,     6,   151,   152,   151,   152,   153,
-   154,   158,   158,   157,  1199,   161,     0,     1,   158,     3,
-   707,   165,   158,   158,     0,     1,   158,     3,   158,   151,
-   152,   153,   154,   161,   463,   157,   474,   475,   576,     3,
-     4,     5,   158,   158,   158,     9,    10,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,  1251,   496,   497,   498,
-   158,   151,   152,   153,   154,   158,   161,   157,   151,   152,
-   153,   154,   158,   158,   157,     6,     6,   158,   526,   527,
-   158,   529,   158,   158,   151,   152,   153,   154,  1283,   142,
-   157,   161,   145,   161,   147,   158,   158,   545,   546,   158,
-   153,   154,   158,   142,   157,     5,   161,   132,   547,   161,
-   161,   161,   151,   152,   153,   154,   158,   556,   157,   157,
-   114,   115,   116,   117,   118,   119,   120,   121,   114,   115,
-   116,   117,   118,   119,   120,   121,   158,   585,   151,   152,
-   153,   154,   590,   158,   157,   159,   140,   141,   158,   143,
-   163,   158,   158,   158,   158,   603,   604,   605,   158,   158,
-   158,   158,   158,   158,   612,   613,   614,   615,   616,   617,
-   618,   619,   620,   621,   622,   623,  1371,   151,   152,   151,
-   152,   153,   154,   158,   158,   157,   159,   161,   160,   637,
-   638,   888,     3,     4,     5,   643,   158,   158,     9,    10,
-    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,   151,
-   152,   153,   154,   158,   158,   157,     7,    30,    31,    32,
-    33,    34,    35,    36,    37,   158,    39,   158,    41,    42,
-   788,    44,    45,   158,   683,   158,   158,   695,   696,   158,
-   151,   152,   153,   154,   158,   158,   157,     7,   145,   160,
-   158,    64,   163,   158,   151,   152,   153,   154,   158,   708,
-   157,   710,   158,   712,   159,    78,    79,   160,   159,   727,
-   728,   151,   152,   153,   154,     7,     7,   157,    82,   159,
-     5,     5,   162,     5,     5,   465,   466,     5,   468,     5,
-     5,     5,   472,   473,   151,   152,   153,   154,     5,   757,
-   157,   759,   159,     5,     5,   162,   151,   152,   153,   154,
-     5,   769,   157,     5,   159,     5,     5,   162,   776,   777,
-   778,   151,   152,   153,   154,   783,   139,   157,     5,   787,
-   151,   152,   162,     5,   792,   793,     5,   158,     5,     5,
-   161,   151,   152,   153,   154,     5,     5,   157,   528,   162,
-   808,   531,   162,     5,     5,     5,     5,     5,     3,     5,
-     7,   819,   820,   821,   822,   823,   824,   825,   826,   827,
-   828,   829,   830,   553,   554,     6,     5,     5,   162,   559,
-   560,   839,     6,   841,     6,   843,   566,   845,   568,   847,
-   839,     7,   841,   851,   843,     7,   845,     7,   847,     6,
-   580,     7,   582,   151,   152,   153,   154,     7,     7,   157,
-   162,   591,   592,   593,   162,   161,   596,   597,   598,   599,
-   600,   601,   602,   151,   152,   153,   154,   161,   161,   157,
-     7,   159,   160,   891,   892,   893,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75,    76,    77,   158,     7,
-   161,   159,   910,   911,   159,   161,     3,     4,     5,   917,
-   146,   919,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,   151,   152,   153,   154,   945,   161,   157,
-   151,   152,   153,   154,   162,   953,   157,   161,   161,     5,
-   958,   162,   159,   961,   159,   159,   159,   965,     0,     1,
-     7,     7,     4,     7,     7,   159,   974,   975,   976,   977,
-   978,   979,   980,   981,   982,   983,   984,   985,   151,   152,
-   153,   154,   162,   159,   157,   160,     3,   160,    30,    31,
-    32,    33,    34,    35,    36,    37,   159,    39,    40,    41,
-    42,    43,    44,    45,   734,   159,   159,  1015,   159,    51,
-    52,    53,    54,    55,    56,   159,    58,    59,    60,    61,
-    62,   159,    64,   159,   159,   159,   756,   159,   147,   159,
-   760,   159,   151,   152,   153,   154,    78,    79,   157,   159,
-   161,   159,   159,    85,    86,    87,   159,    89,    90,   779,
-   159,     7,   159,    95,   151,   152,   159,   151,   152,   153,
-   154,   158,  1070,   157,   161,   159,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75,    76,    77,   159,   159,
-   159,   159,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,
-  1098,     7,   151,   152,   153,   154,     7,   139,   157,  1107,
-   159,  1109,     7,     3,     4,     5,     7,   159,     7,     9,
+    26,    27,    28,    29,   168,   171,   171,     6,   171,   168,
+     4,   165,   168,   571,   572,   168,   574,     6,   168,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,   589,   587,
+   588,   165,   147,   148,   149,   150,   151,   598,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,   168,   168,   168,
+   165,   168,   168,     6,  1363,   168,   108,   109,   110,   111,
+   112,   113,   114,   115,   168,   168,     5,   168,   168,   168,
+   628,   168,   168,   168,   168,   633,   168,   168,   168,   168,
+   168,   168,   134,   135,   168,   137,   168,   168,   646,   647,
+   648,   920,   169,   168,   168,   168,     7,   655,   656,   657,
+   658,   659,   660,   661,   662,   663,   664,   665,   666,   170,
+   169,   169,     7,     7,     7,    81,     5,     5,     5,   677,
+   678,     5,     5,     5,     5,   683,     5,     5,     5,     5,
+     5,   157,   158,     5,     5,     5,     5,     5,   164,     5,
+     5,     5,   168,     5,     5,   171,     5,   126,     5,     5,
+     5,     5,     3,     5,     7,   817,     5,     5,   147,   148,
+   149,   150,   151,   724,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,     6,     6,     6,   165,     7,   736,   737,
+     7,     7,     6,   171,     7,     7,     7,   172,   749,   172,
+   751,   171,   753,     7,   147,   148,   149,   150,   151,   168,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,     7,
+   768,   769,   165,   174,   168,   776,   140,   169,   776,   777,
+   778,   779,   780,   169,   169,   169,   169,   169,   786,   169,
+   788,   169,   169,   169,   169,   169,   169,   169,   169,   169,
+   798,   169,   169,   169,   169,     6,   169,   805,   806,   807,
+   169,   169,   169,   169,   812,   169,   169,   169,   816,   169,
+   169,     5,   170,   821,   822,    65,    66,    67,    68,    69,
+    70,    71,    72,    73,    74,    75,    76,   169,     7,   837,
+     7,   171,     7,     7,     7,     7,     7,     7,     7,     7,
+   848,   849,   850,   851,   852,   853,   854,   855,   856,   857,
+   858,   859,     7,     7,     6,   168,     7,     7,   168,   870,
+   168,   869,   870,   871,     5,     3,   136,     6,   168,     3,
+     3,     4,   168,   168,   168,   883,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,     3,     6,   168,
+   168,   129,   168,   168,   159,   168,   134,     3,     3,     3,
+     3,     3,     3,     3,     3,   923,   924,   925,     3,     6,
+     3,     3,   172,     3,     5,     3,   171,     6,   156,     6,
+     6,     6,   160,   161,   942,   943,   147,   148,   149,   150,
+   151,   949,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,     6,     6,     6,   165,    82,   174,   965,   170,   169,
+   169,   169,     6,   170,   169,   973,   170,   169,   169,   169,
+   978,   170,   170,   981,   169,     6,   169,   985,   169,     6,
+   169,   169,   169,     6,   170,   169,   994,   995,   996,   997,
+   998,   999,  1000,  1001,  1002,  1003,  1004,  1005,     6,     6,
+     6,     6,   169,   169,   169,  1013,   169,  1015,   147,   148,
+   149,   150,   151,   170,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,   169,   157,   158,   165,   169,     6,     6,
+     6,   164,     6,     6,     6,   168,     6,     6,   171,   147,
+   148,   149,   150,   151,     7,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    82,     6,     6,   165,     4,  1067,
+   147,   148,   149,   150,   151,     3,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,     6,     3,     6,   165,  1087,
+  1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,     6,   159,
+     6,     6,     3,     3,     4,     3,  1104,  1105,  1106,     9,
     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-   151,   152,   153,   154,     7,     7,   157,     6,   158,   158,
-   158,   162,   158,   158,   158,  1153,  1154,  1155,  1156,  1157,
-  1158,  1159,  1160,  1161,  1162,  1163,  1164,   158,     7,  1167,
-  1168,  1169,   162,   151,   152,   153,   154,   158,   158,   157,
-   151,   152,   153,   154,   162,   158,   157,     7,   158,   158,
-   142,   162,     3,   913,     3,   153,   916,  1195,     3,     3,
-  1198,     3,     3,     3,     3,     3,     3,  1205,  1206,  1207,
-  1208,  1209,  1210,  1211,  1212,  1213,  1214,     3,  1216,     3,
-  1218,   151,   152,   153,   154,  1223,  1224,   157,   151,   152,
-   153,   154,   162,     3,   157,   955,   161,     5,     5,   162,
-     3,   151,   152,   153,   154,     3,     6,   157,  1246,  1247,
-     6,   971,   162,     6,     6,  1253,  1254,  1255,  1256,  1257,
-  1258,   151,   152,     6,     6,     6,  1264,    83,   158,     6,
-     6,   161,   151,   152,   153,   154,   159,   159,   157,   160,
-  1278,     6,   160,   162,   159,   159,  1284,  1285,  1286,  1287,
-  1288,  1289,  1290,  1291,  1292,   160,   160,     6,    30,    31,
-    32,    33,    34,    35,    36,    37,   159,    39,   159,    41,
-    42,   160,    44,    45,   159,  1313,  1314,  1315,  1316,  1317,
-  1318,  1319,   160,  1321,   160,  1323,   159,   151,   152,   153,
-   154,   159,    64,   157,   159,     6,   159,   159,   162,   160,
-  1060,  1061,   159,  1341,  1342,  1343,    78,    79,   151,   152,
-   153,   154,   159,   159,   157,     6,   159,  1355,  1356,  1357,
-  1358,  1359,  1360,   159,   151,   152,   153,   154,   159,  1089,
-   157,   159,     6,   160,  1372,  1373,  1374,  1375,   160,  1377,
-   159,  1379,   151,   152,   153,   154,   159,     6,   157,   151,
-   152,   153,   154,   162,     6,   157,     6,     6,     6,     6,
-   162,  1399,  1400,  1401,     6,     6,    83,   139,     7,     7,
-  1408,     7,  1410,     3,  1412,     7,     7,  1137,   151,   152,
-   153,   154,     7,     3,   157,     6,   153,     3,     4,   162,
-   162,     6,  1152,     9,    10,    11,    12,    13,    14,    15,
+   147,   148,   149,   150,   151,     6,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,     6,     6,     3,   165,     6,
+     3,  1149,  1150,  1151,  1152,  1153,  1154,  1155,  1156,  1157,
+  1158,  1159,  1160,     3,     3,     4,     3,  1165,  1166,   171,
+     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,     6,   172,   171,  1192,    79,  1194,     6,   170,     7,
+     6,   170,     6,  1201,  1202,  1203,  1204,  1205,  1206,  1207,
+  1208,  1209,  1210,   169,  1212,   169,  1214,   169,   169,   169,
+  1218,   170,  1220,   170,   169,   171,   170,   170,   147,   148,
+   149,   150,   151,   170,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,   169,  1242,  1243,   165,   169,    82,     6,
+  1248,  1249,  1250,  1251,  1252,  1253,     3,   157,   158,     3,
+     6,     6,   172,     6,   164,     6,     6,     6,   168,     6,
+     6,   171,     3,     6,  1272,     5,     5,   171,     6,  1277,
+  1278,  1279,  1280,  1281,  1282,  1283,  1284,  1285,   169,   174,
+     6,   169,   510,   511,   169,   513,   169,     6,   170,   517,
+   518,   170,   169,     6,   170,   169,   169,  1305,  1306,  1307,
+  1308,  1309,  1310,  1311,   169,  1313,     6,  1315,   157,   158,
+     6,    83,     6,     6,     6,   164,     6,     6,     6,   168,
+     5,     5,   174,   169,   172,  1333,  1334,  1335,   169,   169,
+     4,   170,   170,     6,   169,   169,   169,   169,     6,  1347,
+  1348,  1349,  1350,  1351,  1352,   573,    79,   171,   576,   171,
+   171,     6,     5,     5,     8,     6,  1364,  1365,  1366,  1367,
+   172,  1369,   171,  1371,   169,   169,   172,   595,   596,   170,
+   170,    79,     6,   601,   602,     8,   172,     6,     6,     6,
+   608,     6,   610,  1391,  1392,  1393,     6,     6,   171,   169,
+   169,   169,  1400,   169,  1402,   623,  1404,   625,   142,     6,
+   171,   171,   171,   169,     6,   170,   634,   635,   636,     6,
+     6,   639,   640,   641,   642,   643,   644,   645,     6,     6,
+     3,     4,     6,   171,   169,     6,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,     3,     4,   169,
+   171,   169,     6,     9,    10,    11,    12,    13,    14,    15,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,   151,   152,   153,   154,     6,     6,
-   157,   151,   152,   153,   154,   162,     3,   157,   151,   152,
-   153,   154,   162,     6,   157,     3,     4,   160,     3,     6,
-  1200,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,     3,     4,     6,     3,     6,     3,     9,    10,
-    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,     3,
-     4,     3,  1252,     3,   161,     9,    10,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,     6,   151,   152,   153,
-   154,     6,  1282,   157,   159,   162,   160,    80,   151,   152,
-   153,   154,   159,   159,   157,   151,   152,   160,   151,   152,
-   153,   154,   158,   161,   157,   161,     6,   160,     6,   161,
-   161,  1311,   161,    30,    31,    32,    33,    34,    35,    36,
-    37,   161,    39,   161,    41,    42,   160,    44,    45,   151,
-   152,   153,   154,   159,   159,   157,    33,   160,   160,   159,
-  1340,   159,   161,   151,   152,   153,   154,    64,   159,   157,
-   158,   160,    83,   159,  1354,     6,   160,   151,   152,   153,
-   154,    78,    79,   157,   160,   160,   160,   159,     6,   160,
-   151,   152,   151,   152,   153,   154,   159,   158,   157,     4,
-     6,   160,   151,   152,   153,   154,     6,     5,   157,     6,
-     6,   160,     6,     6,     6,     6,     6,   151,   152,    96,
-    97,    98,     3,     6,   158,     3,     6,   104,   105,   106,
-   107,   108,   109,   110,   111,   112,   113,   162,     6,     6,
-     6,     6,   139,     6,     6,   122,   123,   124,   125,   126,
-   127,   128,   129,   130,   131,     3,   133,   134,   135,   136,
-   137,   138,   151,   152,   153,   154,     6,     5,   157,     6,
-   161,   160,   151,   152,   153,   154,   159,     7,   157,   160,
-   162,   160,   151,   152,   153,   154,   162,   162,   157,   162,
-   162,   160,   151,   152,   153,   154,   159,   159,   157,   159,
-     6,   160,   151,   152,   153,   154,   160,   159,   157,   160,
-     6,   160,   151,   152,   153,   154,   159,   159,   157,   159,
-     6,   160,   151,   152,   153,   154,     6,     5,   157,     6,
-     6,   160,   151,   152,   153,   154,     6,     5,   157,     6,
-     6,   160,   151,   152,   153,   154,     6,   159,   157,   162,
-     6,   160,   151,   152,   153,   154,     6,   159,   157,   160,
-    80,   160,   151,   152,   153,   154,   161,     5,   157,     6,
-     6,   160,   151,   152,   153,   154,   160,   159,   157,     5,
-    80,   160,   151,   152,   153,   154,   159,   159,   157,   159,
-   161,   160,   151,   152,   153,   154,     6,   161,   157,   159,
-   161,   160,   151,   152,   153,   154,   159,   162,   157,   159,
-   162,   160,   151,   152,   153,   154,   159,   162,   157,   160,
-     6,   160,   151,   152,   153,   154,   160,   159,   157,     6,
-     6,   160,   151,   152,   153,   154,     6,   161,   157,     6,
-     6,   160,   151,   152,   153,   154,     6,   159,   157,     6,
-   148,   160,   151,   152,   153,   154,   159,   159,   157,     6,
-   161,   160,   151,   152,   153,   154,   161,   161,   157,   159,
-     6,   160,   151,   152,   153,   154,   160,   159,   157,     6,
-     6,   160,   151,   152,   153,   154,     6,   159,   157,     6,
-   161,   160,   151,   152,   153,   154,   161,   161,   157,     6,
-     6,   160,   151,   152,   153,   154,   159,   161,   157,     6,
-     6,   160,   151,   152,   153,   154,   160,     0,   157,   161,
-   161,   160,   151,   152,   153,   154,     6,     0,   157,     6,
-     6,   160,   151,   152,   153,   154,   500,  1088,   157,     6,
-     6,   160,   151,   152,   153,   154,     6,   475,   157,   732,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-    -1,   160,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,
-   152,   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,
-   153,   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,
-   154,    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,
-    -1,    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,
-    -1,   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,
-   157,    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,
-    -1,   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,
-   159,   151,   152,   153,   154,    -1,    -1,   157,    -1,   159,
-   151,   152,   153,   154,    -1,    -1,   157,    -1,   159
+    26,    27,    28,    29,   147,   148,   149,   150,   151,   170,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,   171,
+     6,   171,   165,   147,   148,   149,   150,   151,     6,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,   171,   171,
+     6,   165,     0,     6,   147,   148,   149,   150,   151,     0,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,     6,
+   545,     6,   165,     6,     6,   520,   773,    31,    32,    33,
+    34,    35,    36,    37,    38,    -1,    40,   775,    42,    43,
+  1085,    45,    46,    -1,    -1,    -1,    -1,   785,    -1,    -1,
+   302,   789,    -1,    -1,   147,   148,   149,   150,   151,    63,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+   808,   164,   165,    77,    78,   168,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,   157,   158,    -1,   165,    -1,    -1,    -1,   164,    -1,
+    -1,   172,   168,    31,    32,    33,    34,    35,    36,    37,
+    38,    -1,    40,    -1,    42,    43,    -1,    45,    46,    31,
+    32,    33,    34,    35,    36,    37,    38,    -1,    40,   133,
+    42,    43,    -1,    45,    46,    63,    -1,    -1,    -1,     0,
+     1,    -1,    -1,     4,    -1,    -1,    -1,    -1,    -1,    77,
+    78,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,   172,    30,
+    31,    32,    33,    34,    35,    36,    37,    38,    -1,    40,
+    41,    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,
+    51,    52,    53,    54,    55,    -1,    57,    58,    59,    60,
+    61,    -1,    63,    -1,    -1,   133,    -1,   945,    -1,    34,
+   948,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,    -1,
+    -1,   133,    -1,    84,    85,    86,    87,    88,    89,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   975,    -1,    -1,
+    -1,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   991,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    90,    91,    92,    -1,    -1,
+    -1,    -1,   133,    98,    99,   100,   101,   102,   103,   104,
+   105,   106,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+   125,    -1,   127,   128,   129,   130,   131,   132,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,  1060,  1061,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,   136,    -1,    -1,    -1,    -1,  1086,    -1,
+    -1,    -1,    -1,   176,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,   136,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,  1134,    -1,   165,    -1,
+    -1,    -1,    -1,    -1,    -1,   147,   148,   149,   150,   151,
+  1148,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,    -1,
+    -1,   173,    -1,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,   139,    -1,    -1,    -1,    -1,    -1,  1196,   173,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,    -1,    -1,   172,    -1,    -1,    -1,    -1,  1247,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,    -1,    -1,   172,    -1,  1275,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,    -1,    -1,   172,    -1,  1303,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,
+    -1,   172,    -1,    -1,  1332,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,   147,   148,   149,   150,   151,  1346,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   141,    -1,    -1,    -1,    -1,   172,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
+    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
+   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
@@ -2157,7 +2827,7 @@ yyreduce:
   switch (yyn) {
 
 case 4:
-#line 125 "Gmsh.y"
+#line 147 "Gmsh.y"
 {
       Msg(PARSER_INFO,"STL File Format");
       STL_Surf = Create_Surface(1,MSH_SURF_STL,1);
@@ -2166,7 +2836,7 @@ case 4:
     ;
     break;}
 case 5:
-#line 139 "Gmsh.y"
+#line 161 "Gmsh.y"
 {
       STL_Surf->STL->Add_Facet( yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d,
 				yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d,
@@ -2175,7 +2845,7 @@ case 5:
     ;
     break;}
 case 6:
-#line 146 "Gmsh.y"
+#line 168 "Gmsh.y"
 {
       Msg(PARSER_INFO,"STL File Format Read");
       Tree_Add(THEM->Surfaces, &STL_Surf);
@@ -2183,83 +2853,83 @@ case 6:
     ;
     break;}
 case 9:
-#line 163 "Gmsh.y"
+#line 185 "Gmsh.y"
 { return 1; ;
     break;}
 case 10:
-#line 164 "Gmsh.y"
+#line 186 "Gmsh.y"
 { return 1; ;
     break;}
 case 11:
-#line 165 "Gmsh.y"
+#line 187 "Gmsh.y"
 { return 1; ;
     break;}
 case 12:
-#line 166 "Gmsh.y"
+#line 188 "Gmsh.y"
 { yyerrok ; return 1; ;
     break;}
 case 13:
-#line 171 "Gmsh.y"
+#line 193 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Step Iso-10303-21 File Format");
       Create_Step_Solid_BRep();
     ;
     break;}
 case 14:
-#line 176 "Gmsh.y"
+#line 198 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Step Iso-10303-21 File Format Read");
       Resolve_BREP ();
     ;
     break;}
 case 18:
-#line 187 "Gmsh.y"
+#line 209 "Gmsh.y"
 {
     ;
     break;}
 case 19:
-#line 190 "Gmsh.y"
+#line 212 "Gmsh.y"
 {
     ;
     break;}
 case 20:
-#line 194 "Gmsh.y"
+#line 216 "Gmsh.y"
 {
    ;
     break;}
 case 21:
-#line 200 "Gmsh.y"
+#line 222 "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 206 "Gmsh.y"
+#line 228 "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 213 "Gmsh.y"
+#line 235 "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 219 "Gmsh.y"
+#line 241 "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 223 "Gmsh.y"
+#line 245 "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 227 "Gmsh.y"
+#line 249 "Gmsh.y"
 {
       /* La je dois voir la norme ! Face_Bound : trou externe a la surface ! */
       Msg(PARSER_INFO,"Found a Face Bound");
@@ -2267,364 +2937,378 @@ case 26:
     ;
     break;}
 case 27:
-#line 234 "Gmsh.y"
+#line 256 "Gmsh.y"
 {
       Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i);
     ;
     break;}
 case 28:
-#line 238 "Gmsh.y"
+#line 260 "Gmsh.y"
 {
       Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l);
     ;
     break;}
 case 29:
-#line 243 "Gmsh.y"
+#line 265 "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 247 "Gmsh.y"
+#line 269 "Gmsh.y"
 {
       Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
     ;
     break;}
 case 31:
-#line 251 "Gmsh.y"
+#line 273 "Gmsh.y"
 {
     ;
     break;}
 case 32:
-#line 255 "Gmsh.y"
+#line 277 "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 259 "Gmsh.y"
+#line 281 "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 263 "Gmsh.y"
+#line 285 "Gmsh.y"
 {
       Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
     ;
     break;}
 case 35:
-#line 267 "Gmsh.y"
+#line 289 "Gmsh.y"
 {
       Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
     ;
     break;}
 case 36:
-#line 271 "Gmsh.y"
+#line 293 "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 277 "Gmsh.y"
+#line 299 "Gmsh.y"
 {
     ;
     break;}
 case 38:
-#line 280 "Gmsh.y"
+#line 302 "Gmsh.y"
 {
     ;
     break;}
 case 39:
-#line 283 "Gmsh.y"
+#line 305 "Gmsh.y"
 {
       Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 40:
-#line 287 "Gmsh.y"
+#line 309 "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 291 "Gmsh.y"
+#line 313 "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 295 "Gmsh.y"
+#line 317 "Gmsh.y"
 {
       Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
     ;
     break;}
 case 43:
-#line 299 "Gmsh.y"
+#line 321 "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 304 "Gmsh.y"
+#line 326 "Gmsh.y"
 {
     ;
     break;}
 case 45:
-#line 307 "Gmsh.y"
+#line 329 "Gmsh.y"
 {
     ;
     break;}
 case 46:
-#line 311 "Gmsh.y"
+#line 333 "Gmsh.y"
 {
     ;
     break;}
 case 47:
-#line 314 "Gmsh.y"
+#line 336 "Gmsh.y"
 {
     ;
     break;}
 case 48:
-#line 318 "Gmsh.y"
+#line 340 "Gmsh.y"
 {
     ;
     break;}
 case 49:
-#line 321 "Gmsh.y"
+#line 343 "Gmsh.y"
 {
     ;
     break;}
 case 50:
-#line 324 "Gmsh.y"
+#line 346 "Gmsh.y"
 {
     ;
     break;}
 case 51:
-#line 334 "Gmsh.y"
+#line 356 "Gmsh.y"
 {
   ;
     break;}
 case 52:
-#line 337 "Gmsh.y"
+#line 359 "Gmsh.y"
 {
       Msg(PARSER_INFO,"Gmsh File Format Read");
     ;
     break;}
 case 53:
-#line 343 "Gmsh.y"
+#line 365 "Gmsh.y"
 { return 1; ;
     break;}
 case 54:
-#line 344 "Gmsh.y"
+#line 366 "Gmsh.y"
 { return 1; ;
     break;}
 case 55:
-#line 345 "Gmsh.y"
+#line 367 "Gmsh.y"
 { return 1; ;
     break;}
 case 56:
-#line 346 "Gmsh.y"
+#line 368 "Gmsh.y"
 { return 1; ;
     break;}
 case 57:
-#line 347 "Gmsh.y"
+#line 369 "Gmsh.y"
 { return 1; ;
     break;}
 case 58:
-#line 348 "Gmsh.y"
+#line 370 "Gmsh.y"
 { return 1; ;
     break;}
 case 59:
-#line 349 "Gmsh.y"
+#line 371 "Gmsh.y"
 { return 1; ;
     break;}
 case 60:
-#line 350 "Gmsh.y"
+#line 372 "Gmsh.y"
 { return 1; ;
     break;}
 case 61:
-#line 351 "Gmsh.y"
+#line 373 "Gmsh.y"
 { return 1; ;
     break;}
 case 62:
-#line 352 "Gmsh.y"
+#line 374 "Gmsh.y"
 { return 1; ;
     break;}
 case 63:
-#line 353 "Gmsh.y"
-{return 1;;
+#line 375 "Gmsh.y"
+{ return 1; ;
     break;}
 case 64:
-#line 355 "Gmsh.y"
-{ return 1; ;
+#line 376 "Gmsh.y"
+{return 1;;
     break;}
 case 65:
-#line 356 "Gmsh.y"
+#line 378 "Gmsh.y"
 { return 1; ;
     break;}
 case 66:
-#line 357 "Gmsh.y"
-{ yyerrok; return 1;;
+#line 379 "Gmsh.y"
+{ return 1; ;
     break;}
 case 67:
-#line 366 "Gmsh.y"
+#line 380 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 68:
+#line 381 "Gmsh.y"
+{ yyerrok; return 1;;
+    break;}
+case 69:
+#line 386 "Gmsh.y"
+{
+      Msg(PARSER_INFO, yyvsp[-4].c, yyvsp[-2].d); 
+    ;
+    break;}
+case 70:
+#line 397 "Gmsh.y"
 { 
       EndView(1, Force_ViewNumber,yyname,yyvsp[-4].c,0.,0.,0.); 
     ;
     break;}
-case 68:
-#line 370 "Gmsh.y"
+case 71:
+#line 401 "Gmsh.y"
 {
       EndView(1, Force_ViewNumber,yyname,yyvsp[-6].c,yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2]);
     ;
     break;}
-case 69:
-#line 377 "Gmsh.y"
+case 72:
+#line 408 "Gmsh.y"
 {
       BeginView(1); 
     ;
     break;}
-case 82:
-#line 396 "Gmsh.y"
+case 85:
+#line 427 "Gmsh.y"
 { List_Add(ActualView->SP, &yyvsp[0].d) ; ;
     break;}
-case 83:
-#line 398 "Gmsh.y"
+case 86:
+#line 429 "Gmsh.y"
 { List_Add(ActualView->SP, &yyvsp[0].d) ; ;
     break;}
-case 84:
-#line 403 "Gmsh.y"
+case 87:
+#line 434 "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 85:
-#line 408 "Gmsh.y"
+case 88:
+#line 439 "Gmsh.y"
 {
       ActualView->NbSP++ ;
     ;
     break;}
-case 86:
-#line 415 "Gmsh.y"
+case 89:
+#line 446 "Gmsh.y"
 { List_Add(ActualView->VP, &yyvsp[0].d) ; ;
     break;}
-case 87:
-#line 417 "Gmsh.y"
+case 90:
+#line 448 "Gmsh.y"
 { List_Add(ActualView->VP, &yyvsp[0].d) ; ;
     break;}
-case 88:
-#line 422 "Gmsh.y"
+case 91:
+#line 453 "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 89:
-#line 427 "Gmsh.y"
+case 92:
+#line 458 "Gmsh.y"
 {
       ActualView->NbVP++ ;
     ;
     break;}
-case 90:
-#line 434 "Gmsh.y"
+case 93:
+#line 465 "Gmsh.y"
 { List_Add(ActualView->TP, &yyvsp[0].d) ; ;
     break;}
-case 91:
-#line 436 "Gmsh.y"
+case 94:
+#line 467 "Gmsh.y"
 { List_Add(ActualView->TP, &yyvsp[0].d) ; ;
     break;}
-case 92:
-#line 441 "Gmsh.y"
+case 95:
+#line 472 "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 93:
-#line 446 "Gmsh.y"
+case 96:
+#line 477 "Gmsh.y"
 {
       ActualView->NbTP++ ;
     ;
     break;}
-case 94:
-#line 453 "Gmsh.y"
+case 97:
+#line 484 "Gmsh.y"
 { List_Add(ActualView->SL, &yyvsp[0].d) ; ;
     break;}
-case 95:
-#line 455 "Gmsh.y"
+case 98:
+#line 486 "Gmsh.y"
 { List_Add(ActualView->SL, &yyvsp[0].d) ; ;
     break;}
-case 96:
-#line 461 "Gmsh.y"
+case 99:
+#line 492 "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 97:
-#line 467 "Gmsh.y"
+case 100:
+#line 498 "Gmsh.y"
 {
       ActualView->NbSL++ ;
     ;
     break;}
-case 98:
-#line 474 "Gmsh.y"
+case 101:
+#line 505 "Gmsh.y"
 { List_Add(ActualView->VL, &yyvsp[0].d) ; ;
     break;}
-case 99:
-#line 476 "Gmsh.y"
+case 102:
+#line 507 "Gmsh.y"
 { List_Add(ActualView->VL, &yyvsp[0].d) ; ;
     break;}
-case 100:
-#line 482 "Gmsh.y"
+case 103:
+#line 513 "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 101:
-#line 488 "Gmsh.y"
+case 104:
+#line 519 "Gmsh.y"
 {
       ActualView->NbVL++ ;
     ;
     break;}
-case 102:
-#line 495 "Gmsh.y"
+case 105:
+#line 526 "Gmsh.y"
 { List_Add(ActualView->TL, &yyvsp[0].d) ; ;
     break;}
-case 103:
-#line 497 "Gmsh.y"
+case 106:
+#line 528 "Gmsh.y"
 { List_Add(ActualView->TL, &yyvsp[0].d) ; ;
     break;}
-case 104:
-#line 503 "Gmsh.y"
+case 107:
+#line 534 "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 105:
-#line 509 "Gmsh.y"
+case 108:
+#line 540 "Gmsh.y"
 {
       ActualView->NbTL++ ;
     ;
     break;}
-case 106:
-#line 516 "Gmsh.y"
+case 109:
+#line 547 "Gmsh.y"
 { List_Add(ActualView->ST, &yyvsp[0].d) ; ;
     break;}
-case 107:
-#line 518 "Gmsh.y"
+case 110:
+#line 549 "Gmsh.y"
 { List_Add(ActualView->ST, &yyvsp[0].d) ; ;
     break;}
-case 108:
-#line 525 "Gmsh.y"
+case 111:
+#line 556 "Gmsh.y"
 { 
       List_Add(ActualView->ST, &yyvsp[-17].d); List_Add(ActualView->ST, &yyvsp[-11].d);
       List_Add(ActualView->ST, &yyvsp[-5].d);
@@ -2634,22 +3318,22 @@ case 108:
       List_Add(ActualView->ST, &yyvsp[-1].d);
     ;
     break;}
-case 109:
-#line 534 "Gmsh.y"
+case 112:
+#line 565 "Gmsh.y"
 {
       ActualView->NbST++ ;
     ;
     break;}
-case 110:
-#line 541 "Gmsh.y"
+case 113:
+#line 572 "Gmsh.y"
 { List_Add(ActualView->VT, &yyvsp[0].d) ; ;
     break;}
-case 111:
-#line 543 "Gmsh.y"
+case 114:
+#line 574 "Gmsh.y"
 { List_Add(ActualView->VT, &yyvsp[0].d) ; ;
     break;}
-case 112:
-#line 550 "Gmsh.y"
+case 115:
+#line 581 "Gmsh.y"
 { 
       List_Add(ActualView->VT, &yyvsp[-17].d); List_Add(ActualView->VT, &yyvsp[-11].d);
       List_Add(ActualView->VT, &yyvsp[-5].d);
@@ -2659,22 +3343,22 @@ case 112:
       List_Add(ActualView->VT, &yyvsp[-1].d);
     ;
     break;}
-case 113:
-#line 559 "Gmsh.y"
+case 116:
+#line 590 "Gmsh.y"
 {
       ActualView->NbVT++ ;
     ;
     break;}
-case 114:
-#line 566 "Gmsh.y"
+case 117:
+#line 597 "Gmsh.y"
 { List_Add(ActualView->TT, &yyvsp[0].d) ; ;
     break;}
-case 115:
-#line 568 "Gmsh.y"
+case 118:
+#line 599 "Gmsh.y"
 { List_Add(ActualView->TT, &yyvsp[0].d) ; ;
     break;}
-case 116:
-#line 575 "Gmsh.y"
+case 119:
+#line 606 "Gmsh.y"
 { 
       List_Add(ActualView->TT, &yyvsp[-17].d); List_Add(ActualView->TT, &yyvsp[-11].d);
       List_Add(ActualView->TT, &yyvsp[-5].d);
@@ -2684,22 +3368,22 @@ case 116:
       List_Add(ActualView->TT, &yyvsp[-1].d);
     ;
     break;}
-case 117:
-#line 584 "Gmsh.y"
+case 120:
+#line 615 "Gmsh.y"
 {
       ActualView->NbTT++ ;
     ;
     break;}
-case 118:
-#line 591 "Gmsh.y"
+case 121:
+#line 622 "Gmsh.y"
 { List_Add(ActualView->SS, &yyvsp[0].d) ; ;
     break;}
-case 119:
-#line 593 "Gmsh.y"
+case 122:
+#line 624 "Gmsh.y"
 { List_Add(ActualView->SS, &yyvsp[0].d) ; ;
     break;}
-case 120:
-#line 601 "Gmsh.y"
+case 123:
+#line 632 "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);
@@ -2709,22 +3393,22 @@ case 120:
       List_Add(ActualView->SS, &yyvsp[-7].d); List_Add(ActualView->SS, &yyvsp[-1].d);
     ;
     break;}
-case 121:
-#line 610 "Gmsh.y"
+case 124:
+#line 641 "Gmsh.y"
 {
       ActualView->NbSS++ ;
     ;
     break;}
-case 122:
-#line 617 "Gmsh.y"
+case 125:
+#line 648 "Gmsh.y"
 { List_Add(ActualView->VS, &yyvsp[0].d) ; ;
     break;}
-case 123:
-#line 619 "Gmsh.y"
+case 126:
+#line 650 "Gmsh.y"
 { List_Add(ActualView->VS, &yyvsp[0].d) ; ;
     break;}
-case 124:
-#line 627 "Gmsh.y"
+case 127:
+#line 658 "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);
@@ -2734,22 +3418,22 @@ case 124:
       List_Add(ActualView->VS, &yyvsp[-7].d); List_Add(ActualView->VS, &yyvsp[-1].d);
     ;
     break;}
-case 125:
-#line 636 "Gmsh.y"
+case 128:
+#line 667 "Gmsh.y"
 {
       ActualView->NbVS++ ;
     ;
     break;}
-case 126:
-#line 643 "Gmsh.y"
+case 129:
+#line 674 "Gmsh.y"
 { List_Add(ActualView->TS, &yyvsp[0].d) ; ;
     break;}
-case 127:
-#line 645 "Gmsh.y"
+case 130:
+#line 676 "Gmsh.y"
 { List_Add(ActualView->TS, &yyvsp[0].d) ; ;
     break;}
-case 128:
-#line 653 "Gmsh.y"
+case 131:
+#line 684 "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);
@@ -2759,38 +3443,38 @@ case 128:
       List_Add(ActualView->TS, &yyvsp[-7].d); List_Add(ActualView->TS, &yyvsp[-1].d);
     ;
     break;}
-case 129:
-#line 662 "Gmsh.y"
+case 132:
+#line 693 "Gmsh.y"
 {
       ActualView->NbTS++ ;
     ;
     break;}
-case 130:
-#line 675 "Gmsh.y"
+case 133:
+#line 706 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[-3].c;
       TheSymbol.val  = yyvsp[-1].d;
       List_Replace(Symbol_L,&TheSymbol,CompareSymbols);
     ;
     break;}
-case 131:
-#line 692 "Gmsh.y"
+case 134:
+#line 723 "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 132:
-#line 699 "Gmsh.y"
+case 135:
+#line 730 "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 133:
-#line 705 "Gmsh.y"
+case 136:
+#line 736 "Gmsh.y"
 {
       Vertex *v;
       Attractor *a;
@@ -2810,8 +3494,8 @@ case 133:
       }
     ;
     break;}
-case 134:
-#line 724 "Gmsh.y"
+case 137:
+#line 755 "Gmsh.y"
 {
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
 	List_Read(yyvsp[-3].l,i,&d);
@@ -2823,31 +3507,31 @@ case 134:
       }
     ;
     break;}
-case 135:
-#line 735 "Gmsh.y"
+case 138:
+#line 766 "Gmsh.y"
 {
       yyval.s.Type = MSH_POINT;
       yyval.s.Num  = (int)yyvsp[-2].d;
     ;
     break;}
-case 136:
-#line 743 "Gmsh.y"
+case 139:
+#line 774 "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 137:
-#line 749 "Gmsh.y"
+case 140:
+#line 780 "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 138:
-#line 755 "Gmsh.y"
+case 141:
+#line 786 "Gmsh.y"
 {
       Curve *c;
       Attractor *a;
@@ -2867,16 +3551,16 @@ case 138:
       }
     ;
     break;}
-case 139:
-#line 774 "Gmsh.y"
+case 142:
+#line 805 "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 140:
-#line 780 "Gmsh.y"
+case 143:
+#line 811 "Gmsh.y"
 {
       List_T *temp;
       int i,j;
@@ -2893,48 +3577,48 @@ case 140:
       yyval.s.Num  = (int)yyvsp[-6].d;
     ;
     break;}
-case 141:
-#line 797 "Gmsh.y"
+case 144:
+#line 828 "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 142:
-#line 803 "Gmsh.y"
+case 145:
+#line 834 "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 143:
-#line 809 "Gmsh.y"
+case 146:
+#line 840 "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 144:
-#line 815 "Gmsh.y"
+case 147:
+#line 846 "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 145:
-#line 821 "Gmsh.y"
+case 148:
+#line 852 "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 146:
-#line 827 "Gmsh.y"
+case 149:
+#line 858 "Gmsh.y"
 {
       List_T *Temp;
       int i;
@@ -2954,8 +3638,8 @@ case 146:
       List_Delete(Temp);
     ;
     break;}
-case 147:
-#line 846 "Gmsh.y"
+case 150:
+#line 877 "Gmsh.y"
 {
       yyval.s.Num = (int)yyvsp[-2].d;
       Curve *c = FindCurve(yyval.s.Num,THEM);
@@ -2965,16 +3649,16 @@ case 147:
 	yyval.s.Type = c->Typ;
     ;
     break;}
-case 148:
-#line 858 "Gmsh.y"
+case 151:
+#line 889 "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 149:
-#line 864 "Gmsh.y"
+case 152:
+#line 895 "Gmsh.y"
 {
       Surface *s,*support;
       support = FindSurface((int)yyvsp[-2].d,THEM);
@@ -2994,8 +3678,8 @@ case 149:
       }
     ;
     break;}
-case 150:
-#line 883 "Gmsh.y"
+case 153:
+#line 914 "Gmsh.y"
 {
       List_Read(yyvsp[-1].l,0,&d);
       i = (int)d;
@@ -3017,38 +3701,38 @@ case 150:
       }
     ;
     break;}
-case 151:
-#line 906 "Gmsh.y"
+case 154:
+#line 937 "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 152:
-#line 914 "Gmsh.y"
+case 155:
+#line 945 "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 153:
-#line 918 "Gmsh.y"
+case 156:
+#line 949 "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 154:
-#line 924 "Gmsh.y"
+case 157:
+#line 955 "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 155:
-#line 930 "Gmsh.y"
+case 158:
+#line 961 "Gmsh.y"
 {
       yyval.s.Num = (int)yyvsp[-2].d;
       Surface *s = FindSurface(yyval.s.Num,THEM);
@@ -3058,85 +3742,85 @@ case 155:
 	yyval.s.Type = s->Typ;
      ;
     break;}
-case 156:
-#line 942 "Gmsh.y"
+case 159:
+#line 973 "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 157:
-#line 948 "Gmsh.y"
+case 160:
+#line 979 "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 158:
-#line 954 "Gmsh.y"
+case 161:
+#line 985 "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 159:
-#line 967 "Gmsh.y"
+case 162:
+#line 998 "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 160:
-#line 972 "Gmsh.y"
+case 163:
+#line 1003 "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 161:
-#line 977 "Gmsh.y"
+case 164:
+#line 1008 "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 162:
-#line 982 "Gmsh.y"
+case 165:
+#line 1013 "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 163:
-#line 989 "Gmsh.y"
+case 166:
+#line 1020 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 164:
-#line 990 "Gmsh.y"
+case 167:
+#line 1021 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 165:
-#line 991 "Gmsh.y"
+case 168:
+#line 1022 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 166:
-#line 996 "Gmsh.y"
+case 169:
+#line 1027 "Gmsh.y"
 {
       yyval.l = List_Create(3,3,sizeof(Shape));
     ;
     break;}
-case 167:
-#line 1000 "Gmsh.y"
+case 170:
+#line 1031 "Gmsh.y"
 {
       List_Add(yyval.l,&yyvsp[0].s);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 168:
-#line 1012 "Gmsh.y"
+case 171:
+#line 1043 "Gmsh.y"
 {
       yyval.l = List_Create(3,3,sizeof(Shape));
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
@@ -3147,8 +3831,8 @@ case 168:
       }
     ;
     break;}
-case 169:
-#line 1030 "Gmsh.y"
+case 172:
+#line 1061 "Gmsh.y"
 {
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read (yyvsp[-1].l,i,&TheShape);
@@ -3156,8 +3840,8 @@ case 169:
       }
     ;
     break;}
-case 170:
-#line 1045 "Gmsh.y"
+case 173:
+#line 1076 "Gmsh.y"
 {
       yyinTab[RecursionLevel++] = yyin;
       strcpy(tmpstring, ThePathForIncludes);
@@ -3180,8 +3864,8 @@ case 170:
       }
     ;
     break;}
-case 171:
-#line 1073 "Gmsh.y"
+case 174:
+#line 1104 "Gmsh.y"
 {
      char ext[6];
      strcpy(ext,yyvsp[-1].c+(strlen(yyvsp[-1].c)-4));
@@ -3212,22 +3896,22 @@ case 171:
        }
    ;
     break;}
-case 172:
-#line 1103 "Gmsh.y"
+case 175:
+#line 1134 "Gmsh.y"
 {
      exit(0);
    ;
     break;}
-case 173:
-#line 1107 "Gmsh.y"
+case 176:
+#line 1138 "Gmsh.y"
 {
      FILE *ff = yyin;
      MergeProblem(yyvsp[-1].c);
      yyin = ff;
    ;
     break;}
-case 174:
-#line 1121 "Gmsh.y"
+case 177:
+#line 1152 "Gmsh.y"
 {
     FILE* ff;
     if(RecursionLevel)
@@ -3241,8 +3925,8 @@ case 174:
     fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
   ;
     break;}
-case 175:
-#line 1134 "Gmsh.y"
+case 178:
+#line 1165 "Gmsh.y"
 {
     FILE* ff;
     if(RecursionLevel)
@@ -3256,8 +3940,8 @@ case 175:
     fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
   ;
     break;}
-case 176:
-#line 1147 "Gmsh.y"
+case 179:
+#line 1178 "Gmsh.y"
 {
     if(LoopControlVariablesTab[ImbricatedLoop-1][1] >  
        LoopControlVariablesTab[ImbricatedLoop-1][0])
@@ -3277,71 +3961,71 @@ case 176:
       }
   ;
     break;}
-case 177:
-#line 1186 "Gmsh.y"
+case 180:
+#line 1217 "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 178:
-#line 1191 "Gmsh.y"
+case 181:
+#line 1222 "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 179:
-#line 1197 "Gmsh.y"
+case 182:
+#line 1228 "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 180:
-#line 1201 "Gmsh.y"
+case 183:
+#line 1232 "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 181:
-#line 1205 "Gmsh.y"
+case 184:
+#line 1236 "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 182:
-#line 1209 "Gmsh.y"
+case 185:
+#line 1240 "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 183:
-#line 1213 "Gmsh.y"
+case 186:
+#line 1244 "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 184:
-#line 1218 "Gmsh.y"
+case 187:
+#line 1249 "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 185:
-#line 1226 "Gmsh.y"
+case 188:
+#line 1257 "Gmsh.y"
 {
     ;
     break;}
-case 186:
-#line 1229 "Gmsh.y"
+case 189:
+#line 1260 "Gmsh.y"
 {
     ;
     break;}
-case 187:
-#line 1235 "Gmsh.y"
+case 190:
+#line 1266 "Gmsh.y"
 {
       double d;
       int j;
@@ -3359,14 +4043,14 @@ case 187:
       }
     ;
     break;}
-case 188:
-#line 1252 "Gmsh.y"
+case 191:
+#line 1283 "Gmsh.y"
 {
       extr.mesh.Recombine = true;
     ;
     break;}
-case 189:
-#line 1263 "Gmsh.y"
+case 192:
+#line 1294 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
@@ -3384,8 +4068,8 @@ case 189:
       }
     ;
     break;}
-case 190:
-#line 1280 "Gmsh.y"
+case 193:
+#line 1311 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
@@ -3403,8 +4087,8 @@ case 190:
       }
     ;
     break;}
-case 191:
-#line 1297 "Gmsh.y"
+case 194:
+#line 1328 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
@@ -3422,8 +4106,8 @@ case 191:
       }
     ;
     break;}
-case 192:
-#line 1314 "Gmsh.y"
+case 195:
+#line 1345 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
@@ -3445,8 +4129,8 @@ case 192:
       }
     ;
     break;}
-case 193:
-#line 1335 "Gmsh.y"
+case 196:
+#line 1366 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
@@ -3467,8 +4151,8 @@ case 193:
       }
     ;
     break;}
-case 194:
-#line 1355 "Gmsh.y"
+case 197:
+#line 1386 "Gmsh.y"
 {
       Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
       if(!v)
@@ -3489,8 +4173,8 @@ case 194:
       }
     ;
     break;}
-case 195:
-#line 1375 "Gmsh.y"
+case 198:
+#line 1406 "Gmsh.y"
 {
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
@@ -3508,8 +4192,8 @@ case 195:
       }
     ;
     break;}
-case 196:
-#line 1392 "Gmsh.y"
+case 199:
+#line 1423 "Gmsh.y"
 {
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
@@ -3527,326 +4211,407 @@ case 196:
       }
     ;
     break;}
-case 197:
-#line 1417 "Gmsh.y"
+case 200:
+#line 1448 "Gmsh.y"
 { 
       Coherence_PS();
     ;
     break;}
-case 207:
-#line 1446 "Gmsh.y"
-{ 
-      if(!Set_StringOption(yyvsp[-3].c, GeneralOptions_String, yyvsp[-1].c))
-	vyyerror("Unknown General Option (String) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 208:
-#line 1451 "Gmsh.y"
-{ 
-      if(!Set_NumberOption(yyvsp[-3].c, GeneralOptions_Number, yyvsp[-1].d))
-	vyyerror("Unknown General Option (Number) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 209:
-#line 1456 "Gmsh.y"
-{ if(!Set_ArrayOption(yyvsp[-3].c, GeneralOptions_Array, yyvsp[-1].v)) 
-	vyyerror("Unknown General Option (Array) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 210:
-#line 1460 "Gmsh.y"
-{ ColorField = GeneralOptions_Color; ;
-    break;}
-case 214:
-#line 1471 "Gmsh.y"
-{ 
-      if(!Set_StringOption(yyvsp[-3].c, GeometryOptions_String, yyvsp[-1].c))
-	vyyerror("Unknown Geometry Option (String) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 215:
-#line 1476 "Gmsh.y"
-{ 
-      if(!Set_NumberOption(yyvsp[-3].c, GeometryOptions_Number, yyvsp[-1].d))
-	vyyerror("Unknown Geometry Option (Number) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 216:
-#line 1481 "Gmsh.y"
+case 203:
+#line 1464 "Gmsh.y"
 {
-      if(!Set_ArrayOption(yyvsp[-3].c, GeometryOptions_Array, yyvsp[-1].v))
-	vyyerror("Unknown Geometry Option (Array) '%s'", yyvsp[-3].c);
     ;
     break;}
-case 217:
-#line 1486 "Gmsh.y"
-{ ColorField = GeometryOptions_Color; ;
-    break;}
-case 221:
-#line 1497 "Gmsh.y"
+case 204:
+#line 1467 "Gmsh.y"
 { 
-      if(!Set_StringOption(yyvsp[-3].c, MeshOptions_String, yyvsp[-1].c))
-	vyyerror("Unknown Mesh Option (String) '%s'", yyvsp[-3].c);
+      if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown String Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pStrOpt = Get_StringOption(yyvsp[-3].c, pStrCat)))
+	  vyyerror("Unknown String Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  *pStrOpt = yyvsp[-1].c ;
+	}
+      }
     ;
     break;}
-case 222:
-#line 1502 "Gmsh.y"
+case 205:
+#line 1479 "Gmsh.y"
 {
-      if(!Set_NumberOption(yyvsp[-3].c, MeshOptions_Number, yyvsp[-1].d))
-	vyyerror("Unknown Mesh Option (Number) '%s'", yyvsp[-3].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt = yyvsp[-1].d ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt = (float)yyvsp[-1].d ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt = (long)yyvsp[-1].d ; break ;
+	  case GMSH_INT : *(int*)pNumOpt = (int)yyvsp[-1].d ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 223:
-#line 1507 "Gmsh.y"
+case 206:
+#line 1496 "Gmsh.y"
 {
-      if(!Set_ArrayOption(yyvsp[-3].c, MeshOptions_Array, yyvsp[-1].v))
-	vyyerror("Unknown Mesh Option (Array) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 224:
-#line 1512 "Gmsh.y"
-{ ColorField = MeshOptions_Color; ;
-    break;}
-case 228:
-#line 1523 "Gmsh.y"
-{ 
-      if(!Set_StringOption(yyvsp[-3].c, PostProcessingOptions_String, yyvsp[-1].c))
-	vyyerror("Unknown PostProcessing Option (String) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 229:
-#line 1528 "Gmsh.y"
-{ 
-      if(!Set_NumberOption(yyvsp[-3].c, PostProcessingOptions_Number, yyvsp[-1].d)) 
-	vyyerror("Unknown PostProcessing Option (Number) '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 230:
-#line 1533 "Gmsh.y"
-{ 
-      if(!Set_ArrayOption(yyvsp[-3].c, PostProcessingOptions_Array, yyvsp[-1].v))
-	vyyerror("Unknown PostProcessing (Array) Option '%s'", yyvsp[-3].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt += yyvsp[-1].d ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt += (float)yyvsp[-1].d ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt += (long)yyvsp[-1].d ; break ;
+	  case GMSH_INT : *(int*)pNumOpt += (int)yyvsp[-1].d ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 231:
-#line 1538 "Gmsh.y"
-{ ColorField = PostProcessingOptions_Color; ;
-    break;}
-case 235:
-#line 1549 "Gmsh.y"
+case 207:
+#line 1513 "Gmsh.y"
 {
-      if(!Set_StringOption(yyvsp[-3].c, PrintOptions_String, yyvsp[-1].c))
-	vyyerror("Unknown Print Option (String) '%s'", yyvsp[-3].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt -= yyvsp[-1].d ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt -= (float)yyvsp[-1].d ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt -= (long)yyvsp[-1].d ; break ;
+	  case GMSH_INT : *(int*)pNumOpt -= (int)yyvsp[-1].d ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 236:
-#line 1554 "Gmsh.y"
+case 208:
+#line 1530 "Gmsh.y"
 {
-      if(!Set_NumberOption(yyvsp[-3].c, PrintOptions_Number, yyvsp[-1].d)) 
-	vyyerror("Unknown Print Option (Number) '%s'", yyvsp[-3].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt *= yyvsp[-1].d ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt *= (float)yyvsp[-1].d ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt *= (long)yyvsp[-1].d ; break ;
+	  case GMSH_INT : *(int*)pNumOpt *= (int)yyvsp[-1].d ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 237:
-#line 1559 "Gmsh.y"
+case 209:
+#line 1547 "Gmsh.y"
 {
-      if(!Set_ArrayOption(yyvsp[-3].c, PrintOptions_Array, yyvsp[-1].v))
-	vyyerror("Unknown Print Option (Array) '%s'", yyvsp[-3].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt /= yyvsp[-1].d ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt /= (float)yyvsp[-1].d ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt /= (long)yyvsp[-1].d ; break ;
+	  case GMSH_INT : *(int*)pNumOpt /= (int)yyvsp[-1].d ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 238:
+case 210:
 #line 1564 "Gmsh.y"
-{ ColorField = PrintOptions_Color; ;
-    break;}
-case 242:
-#line 1575 "Gmsh.y"
 {
-      i = Get_ColorForString(ColorString, -1, yyvsp[-1].c, &flag);
-      if(flag) vyyerror("Unknown Color '%s'", yyvsp[-1].c);
-      if(!Set_ColorOption(yyvsp[-3].c, ColorField, i))
-	vyyerror("Unknown Color Field '%s'", yyvsp[-3].c);
-    ;
-    break;}
-case 243:
-#line 1582 "Gmsh.y"
-{
-      i = Get_ColorForString(ColorString, (int)yyvsp[-2].d, yyvsp[-4].c, &flag);
-      if(flag) vyyerror("Unknown Color '%s'", yyvsp[-4].c);
-      if(!Set_ColorOption(yyvsp[-7].c, ColorField, i))
-	 vyyerror("Unknown Color Field '%s'", yyvsp[-7].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-2].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-4].c, yyvsp[-2].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt += 1 ; break ;
+	  case GMSH_INT : *(int*)pNumOpt += 1 ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 244:
-#line 1589 "Gmsh.y"
+case 211:
+#line 1581 "Gmsh.y"
 {
-      if(!Set_ColorOption(yyvsp[-3].c, ColorField,
-			  PACK_COLOR((int)yyvsp[-1].v[0], (int)yyvsp[-1].v[1], (int)yyvsp[-1].v[2], (int)yyvsp[-1].v[3])))
-	vyyerror("Unknown Color Field '%s'", yyvsp[-3].c);
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-2].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-4].c, yyvsp[-2].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ;
+	  case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ;
+	  case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ;
+	  case GMSH_INT : *(int*)pNumOpt -= 1 ; break ;
+	  }
+	}
+      }
     ;
     break;}
-case 245:
+case 212:
 #line 1598 "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;
+      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 :
+	    ((double*)pNumOpt)[0] = yyvsp[-1].v[0] ;
+	    ((double*)pNumOpt)[1] = yyvsp[-1].v[1] ;
+	    ((double*)pNumOpt)[2] = yyvsp[-1].v[2] ;
+	    ((double*)pNumOpt)[3] = yyvsp[-1].v[3] ;
+	    break ;
+	  case GMSH_FLOAT :
+	    ((float*)pNumOpt)[0] = (float)yyvsp[-1].v[0] ;
+	    ((float*)pNumOpt)[1] = (float)yyvsp[-1].v[1] ;
+	    ((float*)pNumOpt)[2] = (float)yyvsp[-1].v[2] ;
+	    ((float*)pNumOpt)[3] = (float)yyvsp[-1].v[3] ;
+	    break ;
+	  case GMSH_LONG :
+	    ((long*)pNumOpt)[0] = (long)yyvsp[-1].v[0] ;
+	    ((long*)pNumOpt)[1] = (long)yyvsp[-1].v[1] ;
+	    ((long*)pNumOpt)[2] = (long)yyvsp[-1].v[2] ;
+	    ((long*)pNumOpt)[3] = (long)yyvsp[-1].v[3] ;
+	    break ;
+	  case GMSH_INT :
+	    ((int*)pNumOpt)[0] = (int)yyvsp[-1].v[0] ;
+	    ((int*)pNumOpt)[1] = (int)yyvsp[-1].v[1] ;
+	    ((int*)pNumOpt)[2] = (int)yyvsp[-1].v[2] ;
+	    ((int*)pNumOpt)[3] = (int)yyvsp[-1].v[3] ;
+	    break ;
+	  }
+	}
+      }
     ;
     break;}
-case 246:
-#line 1605 "Gmsh.y"
+case 213:
+#line 1635 "Gmsh.y"
 {
-      yyval.v[0]=yyvsp[-5].d;
-      yyval.v[1]=yyvsp[-3].d;
-      yyval.v[2]=yyvsp[-1].d;
-      yyval.v[3]=255.;
+      if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c)))
+	vyyerror("Unknown Color Option Class '%s'", yyvsp[-7].c);
+      else{
+	if(!(pColOpt = Get_ColorOption(yyvsp[-3].c, pColCat)))
+	  vyyerror("Unknown Color Option '%s.%s'", yyvsp[-7].c, yyvsp[-3].c);
+	else{
+	  *pColOpt = yyvsp[-1].u ;
+	}
+      }
     ;
     break;}
-case 247:
-#line 1619 "Gmsh.y"
+case 217:
+#line 1673 "Gmsh.y"
 {yyval.i = 1;;
     break;}
-case 248:
-#line 1620 "Gmsh.y"
+case 218:
+#line 1674 "Gmsh.y"
 {yyval.i = 0;;
     break;}
-case 249:
-#line 1621 "Gmsh.y"
+case 219:
+#line 1675 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 250:
-#line 1622 "Gmsh.y"
+case 220:
+#line 1676 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 251:
-#line 1623 "Gmsh.y"
+case 221:
+#line 1677 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 252:
-#line 1627 "Gmsh.y"
-{ yyval.d = yyvsp[0].d; ;
+case 222:
+#line 1681 "Gmsh.y"
+{ yyval.d = yyvsp[0].d;           ;
     break;}
-case 253:
-#line 1628 "Gmsh.y"
-{ yyval.d = yyvsp[-1].d; ;
+case 223:
+#line 1682 "Gmsh.y"
+{ yyval.d = yyvsp[-1].d ;          ;
     break;}
-case 254:
-#line 1629 "Gmsh.y"
-{ yyval.d = yyvsp[-2].d - yyvsp[0].d; ;
+case 224:
+#line 1683 "Gmsh.y"
+{ yyval.d = -yyvsp[0].d ;         ;
     break;}
-case 255:
-#line 1630 "Gmsh.y"
-{ yyval.d = yyvsp[-2].d + yyvsp[0].d; ;
+case 225:
+#line 1684 "Gmsh.y"
+{ yyval.d = yyvsp[0].d;           ;
     break;}
-case 256:
-#line 1631 "Gmsh.y"
-{ yyval.d = yyvsp[-2].d * yyvsp[0].d; ;
+case 226:
+#line 1685 "Gmsh.y"
+{ yyval.d = !yyvsp[0].d ;         ;
     break;}
-case 257:
-#line 1632 "Gmsh.y"
-{ yyval.d = yyvsp[-2].d / yyvsp[0].d; ;
+case 227:
+#line 1686 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d - yyvsp[0].d ;     ;
     break;}
-case 258:
-#line 1633 "Gmsh.y"
-{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ;
+case 228:
+#line 1687 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d + yyvsp[0].d ;     ;
     break;}
-case 259:
-#line 1634 "Gmsh.y"
-{ yyval.d = - yyvsp[0].d; ;
+case 229:
+#line 1688 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d * yyvsp[0].d ;     ;
     break;}
-case 260:
-#line 1635 "Gmsh.y"
-{ yyval.d = yyvsp[0].d; ;
+case 230:
+#line 1689 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d / yyvsp[0].d ;     ;
     break;}
-case 261:
-#line 1636 "Gmsh.y"
+case 231:
+#line 1690 "Gmsh.y"
+{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  ;
+    break;}
+case 232:
+#line 1691 "Gmsh.y"
+{ yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  ;
+    break;}
+case 233:
+#line 1692 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d < yyvsp[0].d ;     ;
+    break;}
+case 234:
+#line 1693 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d > yyvsp[0].d ;     ;
+    break;}
+case 235:
+#line 1694 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    ;
+    break;}
+case 236:
+#line 1695 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    ;
+    break;}
+case 237:
+#line 1696 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d == yyvsp[0].d ;    ;
+    break;}
+case 238:
+#line 1697 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d != yyvsp[0].d ;    ;
+    break;}
+case 239:
+#line 1698 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d && yyvsp[0].d ;    ;
+    break;}
+case 240:
+#line 1699 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d || yyvsp[0].d ;    ;
+    break;}
+case 241:
+#line 1700 "Gmsh.y"
+{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
+    break;}
+case 242:
+#line 1701 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
-case 262:
-#line 1637 "Gmsh.y"
+case 243:
+#line 1702 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
-case 263:
-#line 1638 "Gmsh.y"
+case 244:
+#line 1703 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
-case 264:
-#line 1639 "Gmsh.y"
+case 245:
+#line 1704 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
-case 265:
-#line 1640 "Gmsh.y"
+case 246:
+#line 1705 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
-case 266:
-#line 1641 "Gmsh.y"
+case 247:
+#line 1706 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
-case 267:
-#line 1642 "Gmsh.y"
+case 248:
+#line 1707 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
-case 268:
-#line 1643 "Gmsh.y"
+case 249:
+#line 1708 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
-case 269:
-#line 1644 "Gmsh.y"
+case 250:
+#line 1709 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
-case 270:
-#line 1645 "Gmsh.y"
+case 251:
+#line 1710 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
-case 271:
-#line 1646 "Gmsh.y"
+case 252:
+#line 1711 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
     break;}
-case 272:
-#line 1647 "Gmsh.y"
+case 253:
+#line 1712 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
-case 273:
-#line 1648 "Gmsh.y"
+case 254:
+#line 1713 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
-case 274:
-#line 1649 "Gmsh.y"
+case 255:
+#line 1714 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
-case 275:
-#line 1650 "Gmsh.y"
+case 256:
+#line 1715 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
-case 276:
-#line 1651 "Gmsh.y"
+case 257:
+#line 1716 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
-case 277:
-#line 1652 "Gmsh.y"
+case 258:
+#line 1717 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
-case 278:
-#line 1653 "Gmsh.y"
+case 259:
+#line 1718 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
     break;}
-case 279:
-#line 1654 "Gmsh.y"
+case 260:
+#line 1719 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
     break;}
-case 280:
-#line 1655 "Gmsh.y"
+case 261:
+#line 1720 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d);  ;
     break;}
-case 281:
-#line 1659 "Gmsh.y"
+case 262:
+#line 1724 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
-case 282:
-#line 1660 "Gmsh.y"
+case 263:
+#line 1725 "Gmsh.y"
 { yyval.d = 3.141592653589793; ;
     break;}
-case 283:
-#line 1662 "Gmsh.y"
+case 264:
+#line 1727 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[0].c ;
       if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) {
@@ -3856,16 +4621,73 @@ case 283:
       Free(yyvsp[0].c);
     ;
     break;}
-case 284:
-#line 1674 "Gmsh.y"
+case 265:
+#line 1736 "Gmsh.y"
+{
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-2].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[0].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-2].c, yyvsp[0].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : yyval.d = *(double*)pNumOpt ; break ;
+	  case GMSH_FLOAT : yyval.d = (double)(*(float*)pNumOpt) ; break ;
+	  case GMSH_LONG : yyval.d = (double)(*(long*)pNumOpt) ; break ;
+	  case GMSH_INT : yyval.d = (double)(*(int*)pNumOpt) ; break ;
+	  }
+	}
+      }
+    ;
+    break;}
+case 266:
+#line 1753 "Gmsh.y"
+{
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-1].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-3].c, yyvsp[-1].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : yyval.d = (*(double*)pNumOpt += 1.) ; break ;
+	  case GMSH_FLOAT : yyval.d = (double)(*(float*)pNumOpt += 1.) ; break ;
+	  case GMSH_LONG : yyval.d = (double)(*(long*)pNumOpt += 1) ; break ;
+	  case GMSH_INT : yyval.d = (double)(*(int*)pNumOpt += 1) ; break ;
+	  }
+	}
+      }
+    ;
+    break;}
+case 267:
+#line 1770 "Gmsh.y"
+{
+      if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c)))
+	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c);
+      else{
+	if(!(pNumOpt = Get_NumberOption(yyvsp[-1].c, pNumCat, &i)))
+	  vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-3].c, yyvsp[-1].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE : yyval.d = (*(double*)pNumOpt -= 1.) ; break ;
+	  case GMSH_FLOAT : yyval.d = (double)(*(float*)pNumOpt -= 1.) ; break ;
+	  case GMSH_LONG : yyval.d = (double)(*(long*)pNumOpt -= 1) ; break ;
+	  case GMSH_INT : yyval.d = (double)(*(int*)pNumOpt -= 1) ; break ;
+	  }
+	}
+      }
+    ;
+    break;}
+case 268:
+#line 1790 "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 285:
-#line 1680 "Gmsh.y"
+case 269:
+#line 1796 "Gmsh.y"
 {
       ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; 
       if(!yyvsp[-2].d || (yyvsp[-5].d<yyvsp[0].d && yyvsp[-2].d<0) || (yyvsp[-5].d>yyvsp[0].d && yyvsp[-2].d>0)){
@@ -3877,124 +4699,138 @@ case 285:
 	  List_Add(ListOfDouble2_L, &d) ;
    ;
     break;}
-case 286:
-#line 1694 "Gmsh.y"
+case 270:
+#line 1810 "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;
+      yyval.v = yyvsp[0].v;
     ;
     break;}
-case 287:
-#line 1702 "Gmsh.y"
+case 271:
+#line 1814 "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;
+      for(i=0 ; i<6 ; i++) yyval.v[i] = -yyvsp[0].v[i] ;
     ;
     break;}
-case 288:
-#line 1710 "Gmsh.y"
+case 272:
+#line 1818 "Gmsh.y"
+{ 
+      yyval.v = yyvsp[0].v;
+    ;
+    break;}
+case 273:
+#line 1822 "Gmsh.y"
+{ 
+      for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ;
+    ;
+    break;}
+case 274:
+#line 1826 "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;
+      for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ;
     ;
     break;}
-case 289:
-#line 1718 "Gmsh.y"
+case 275:
+#line 1832 "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 276:
+#line 1836 "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 277:
+#line 1840 "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;
+      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 290:
-#line 1729 "Gmsh.y"
+case 278:
+#line 1844 "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 291:
-#line 1732 "Gmsh.y"
+case 279:
+#line 1851 "Gmsh.y"
 {
     ;
     break;}
-case 292:
-#line 1738 "Gmsh.y"
+case 280:
+#line 1854 "Gmsh.y"
 {
     ;
     break;}
-case 293:
-#line 1741 "Gmsh.y"
+case 281:
+#line 1860 "Gmsh.y"
 {
     ;
     break;}
-case 294:
-#line 1747 "Gmsh.y"
+case 282:
+#line 1863 "Gmsh.y"
 {
     ;
     break;}
-case 295:
-#line 1750 "Gmsh.y"
+case 283:
+#line 1869 "Gmsh.y"
+{
+    ;
+    break;}
+case 284:
+#line 1872 "Gmsh.y"
 {
        yyval.l=ListOfListOfDouble_L;
     ;
     break;}
-case 296:
-#line 1754 "Gmsh.y"
+case 285:
+#line 1876 "Gmsh.y"
 {
        yyval.l=ListOfListOfDouble_L;
     ;
     break;}
-case 297:
-#line 1761 "Gmsh.y"
+case 286:
+#line 1883 "Gmsh.y"
 {
       ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ;
       List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
     ;
     break;}
-case 298:
-#line 1766 "Gmsh.y"
+case 287:
+#line 1888 "Gmsh.y"
 {
       List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
     ;
     break;}
-case 299:
-#line 1773 "Gmsh.y"
+case 288:
+#line 1895 "Gmsh.y"
 {
     ;
     break;}
-case 300:
-#line 1776 "Gmsh.y"
+case 289:
+#line 1898 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 301:
-#line 1782 "Gmsh.y"
+case 290:
+#line 1904 "Gmsh.y"
 {
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 302:
-#line 1796 "Gmsh.y"
+case 291:
+#line 1912 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
     ;
     break;}
-case 303:
-#line 1801 "Gmsh.y"
+case 292:
+#line 1917 "Gmsh.y"
 { 
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
@@ -4004,14 +4840,14 @@ case 303:
       List_Delete(ListOfDouble2_L);
     ;
     break;}
-case 304:
-#line 1810 "Gmsh.y"
+case 293:
+#line 1926 "Gmsh.y"
 {
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
     ;
     break;}
-case 305:
-#line 1814 "Gmsh.y"
+case 294:
+#line 1930 "Gmsh.y"
 {
       for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
 	List_Read(ListOfDouble2_L, i, &d) ;
@@ -4020,6 +4856,46 @@ case 305:
       List_Delete(ListOfDouble2_L);
     ;
     break;}
+case 295:
+#line 1941 "Gmsh.y"
+{
+      yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
+    ;
+    break;}
+case 296:
+#line 1945 "Gmsh.y"
+{
+      yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
+    ;
+    break;}
+case 297:
+#line 1949 "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 298:
+#line 1954 "Gmsh.y"
+{
+      yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
+      if(flag) vyyerror("Unknown Color '%s'", yyvsp[0].c);
+    ;
+    break;}
+case 299:
+#line 1959 "Gmsh.y"
+{
+      if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c)))
+	vyyerror("Unknown Color Option Class '%s'", yyvsp[-4].c);
+      else{
+	if(!(pColOpt = Get_ColorOption(yyvsp[0].c, pColCat)))
+	  vyyerror("Unknown Color Option '%s.%s'", yyvsp[-4].c, yyvsp[0].c);
+	else{
+	  yyval.u = *pColOpt ;
+	}
+      }
+    ;
+    break;}
 }
    /* the action file gets copied in in place of this dollarsign */
 #line 543 "/usr/lib/bison.simple"
@@ -4242,7 +5118,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 1824 "Gmsh.y"
+#line 1972 "Gmsh.y"
 
 
 void InitSymbols(void){
diff --git a/Parser/Gmsh.tab.cpp.h b/Parser/Gmsh.tab.cpp.h
index b604cb225cb360b6df664d4b2bcefd3bf9b70638..82978edde2cb9b05962940492ae305f9838ead2a 100644
--- a/Parser/Gmsh.tab.cpp.h
+++ b/Parser/Gmsh.tab.cpp.h
@@ -1,6 +1,7 @@
 typedef union {
   char    *c;
   int      i;
+  unsigned int u;
   double   d;
   double   v[5];
   Shape    s;
@@ -33,126 +34,134 @@ typedef union {
 #define	tFmod	281
 #define	tModulo	282
 #define	tHypot	283
-#define	tPoint	284
-#define	tCircle	285
-#define	tEllipsis	286
-#define	tLine	287
-#define	tSurface	288
-#define	tSpline	289
-#define	tVolume	290
-#define	tCharacteristic	291
-#define	tLength	292
-#define	tParametric	293
-#define	tElliptic	294
-#define	tPlane	295
-#define	tRuled	296
-#define	tTransfinite	297
-#define	tComplex	298
-#define	tPhysical	299
-#define	tUsing	300
-#define	tPower	301
+#define	tPrintf	284
+#define	tPoint	285
+#define	tCircle	286
+#define	tEllipsis	287
+#define	tLine	288
+#define	tSurface	289
+#define	tSpline	290
+#define	tVolume	291
+#define	tCharacteristic	292
+#define	tLength	293
+#define	tParametric	294
+#define	tElliptic	295
+#define	tPlane	296
+#define	tRuled	297
+#define	tTransfinite	298
+#define	tComplex	299
+#define	tPhysical	300
+#define	tUsing	301
 #define	tBump	302
 #define	tProgression	303
-#define	tAssociation	304
-#define	tRotate	305
-#define	tTranslate	306
-#define	tSymmetry	307
-#define	tDilate	308
-#define	tExtrude	309
-#define	tDuplicata	310
-#define	tLoop	311
-#define	tInclude	312
-#define	tRecombine	313
-#define	tDelete	314
-#define	tCoherence	315
-#define	tView	316
-#define	tOffset	317
-#define	tAttractor	318
-#define	tLayers	319
-#define	tScalarTetrahedron	320
-#define	tVectorTetrahedron	321
-#define	tTensorTetrahedron	322
-#define	tScalarTriangle	323
-#define	tVectorTriangle	324
-#define	tTensorTriangle	325
-#define	tScalarLine	326
-#define	tVectorLine	327
-#define	tTensorLine	328
-#define	tScalarPoint	329
-#define	tVectorPoint	330
-#define	tTensorPoint	331
-#define	tBSpline	332
-#define	tNurbs	333
-#define	tOrder	334
-#define	tWith	335
-#define	tBounds	336
-#define	tKnots	337
-#define	tColor	338
-#define	tOptions	339
-#define	tFor	340
-#define	tEndFor	341
-#define	tScript	342
-#define	tExit	343
-#define	tMerge	344
-#define	tGeneral	345
-#define	tGeometry	346
-#define	tMesh	347
-#define	tPostProcessing	348
-#define	tPrint	349
-#define	tB_SPLINE_SURFACE_WITH_KNOTS	350
-#define	tB_SPLINE_CURVE_WITH_KNOTS	351
-#define	tCARTESIAN_POINT	352
-#define	tTRUE	353
-#define	tFALSE	354
-#define	tUNSPECIFIED	355
-#define	tU	356
-#define	tV	357
-#define	tEDGE_CURVE	358
-#define	tVERTEX_POINT	359
-#define	tORIENTED_EDGE	360
-#define	tPLANE	361
-#define	tFACE_OUTER_BOUND	362
-#define	tEDGE_LOOP	363
-#define	tADVANCED_FACE	364
-#define	tVECTOR	365
-#define	tDIRECTION	366
-#define	tAXIS2_PLACEMENT_3D	367
-#define	tISO	368
-#define	tENDISO	369
-#define	tENDSEC	370
-#define	tDATA	371
-#define	tHEADER	372
-#define	tFILE_DESCRIPTION	373
-#define	tFILE_SCHEMA	374
-#define	tFILE_NAME	375
-#define	tMANIFOLD_SOLID_BREP	376
-#define	tCLOSED_SHELL	377
-#define	tADVANCED_BREP_SHAPE_REPRESENTATION	378
-#define	tFACE_BOUND	379
-#define	tCYLINDRICAL_SURFACE	380
-#define	tCONICAL_SURFACE	381
-#define	tCIRCLE	382
-#define	tTRIMMED_CURVE	383
-#define	tGEOMETRIC_SET	384
-#define	tCOMPOSITE_CURVE_SEGMENT	385
-#define	tCONTINUOUS	386
-#define	tCOMPOSITE_CURVE	387
-#define	tTOROIDAL_SURFACE	388
-#define	tPRODUCT_DEFINITION	389
-#define	tPRODUCT_DEFINITION_SHAPE	390
-#define	tSHAPE_DEFINITION_REPRESENTATION	391
-#define	tELLIPSE	392
-#define	tTrimmed	393
-#define	tSolid	394
-#define	tEndSolid	395
-#define	tVertex	396
-#define	tFacet	397
-#define	tNormal	398
-#define	tOuter	399
-#define	tLoopSTL	400
-#define	tEndLoop	401
-#define	tEndFacet	402
-#define	UMINUS	403
+#define	tRotate	304
+#define	tTranslate	305
+#define	tSymmetry	306
+#define	tDilate	307
+#define	tExtrude	308
+#define	tDuplicata	309
+#define	tLoop	310
+#define	tInclude	311
+#define	tRecombine	312
+#define	tDelete	313
+#define	tCoherence	314
+#define	tView	315
+#define	tOffset	316
+#define	tAttractor	317
+#define	tLayers	318
+#define	tScalarTetrahedron	319
+#define	tVectorTetrahedron	320
+#define	tTensorTetrahedron	321
+#define	tScalarTriangle	322
+#define	tVectorTriangle	323
+#define	tTensorTriangle	324
+#define	tScalarLine	325
+#define	tVectorLine	326
+#define	tTensorLine	327
+#define	tScalarPoint	328
+#define	tVectorPoint	329
+#define	tTensorPoint	330
+#define	tBSpline	331
+#define	tNurbs	332
+#define	tOrder	333
+#define	tWith	334
+#define	tBounds	335
+#define	tKnots	336
+#define	tColor	337
+#define	tOptions	338
+#define	tFor	339
+#define	tEndFor	340
+#define	tScript	341
+#define	tExit	342
+#define	tMerge	343
+#define	tB_SPLINE_SURFACE_WITH_KNOTS	344
+#define	tB_SPLINE_CURVE_WITH_KNOTS	345
+#define	tCARTESIAN_POINT	346
+#define	tTRUE	347
+#define	tFALSE	348
+#define	tUNSPECIFIED	349
+#define	tU	350
+#define	tV	351
+#define	tEDGE_CURVE	352
+#define	tVERTEX_POINT	353
+#define	tORIENTED_EDGE	354
+#define	tPLANE	355
+#define	tFACE_OUTER_BOUND	356
+#define	tEDGE_LOOP	357
+#define	tADVANCED_FACE	358
+#define	tVECTOR	359
+#define	tDIRECTION	360
+#define	tAXIS2_PLACEMENT_3D	361
+#define	tISO	362
+#define	tENDISO	363
+#define	tENDSEC	364
+#define	tDATA	365
+#define	tHEADER	366
+#define	tFILE_DESCRIPTION	367
+#define	tFILE_SCHEMA	368
+#define	tFILE_NAME	369
+#define	tMANIFOLD_SOLID_BREP	370
+#define	tCLOSED_SHELL	371
+#define	tADVANCED_BREP_SHAPE_REPRESENTATION	372
+#define	tFACE_BOUND	373
+#define	tCYLINDRICAL_SURFACE	374
+#define	tCONICAL_SURFACE	375
+#define	tCIRCLE	376
+#define	tTRIMMED_CURVE	377
+#define	tGEOMETRIC_SET	378
+#define	tCOMPOSITE_CURVE_SEGMENT	379
+#define	tCONTINUOUS	380
+#define	tCOMPOSITE_CURVE	381
+#define	tTOROIDAL_SURFACE	382
+#define	tPRODUCT_DEFINITION	383
+#define	tPRODUCT_DEFINITION_SHAPE	384
+#define	tSHAPE_DEFINITION_REPRESENTATION	385
+#define	tELLIPSE	386
+#define	tTrimmed	387
+#define	tSolid	388
+#define	tEndSolid	389
+#define	tVertex	390
+#define	tFacet	391
+#define	tNormal	392
+#define	tOuter	393
+#define	tLoopSTL	394
+#define	tEndLoop	395
+#define	tEndFacet	396
+#define	tAFFECTPLUS	397
+#define	tAFFECTMINUS	398
+#define	tAFFECTTIMES	399
+#define	tAFFECTDIVIDE	400
+#define	tAND	401
+#define	tOR	402
+#define	tNOTEQUAL	403
+#define	tEQUAL	404
+#define	tAPPROXEQUAL	405
+#define	tLESSOREQUAL	406
+#define	tGREATEROREQUAL	407
+#define	tCROSSPRODUCT	408
+#define	UNARYPREC	409
+#define	tPLUSPLUS	410
+#define	tMINUSMINUS	411
 
 
 extern YYSTYPE yylval;
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index a229412caede0c7879f8d8a6ead09f891ad1965b..9eef74113da3dd7e7a8c51f5e4f09f90b3e1012a 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,4 +1,4 @@
-%{ /* $Id: Gmsh.y,v 1.17 2000-12-06 22:09:53 geuzaine Exp $ */
+%{ /* $Id: Gmsh.y,v 1.18 2000-12-06 22:25:24 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -1100,7 +1100,7 @@ Macro :
    ----------------- */
 
 Command :
-   tPrint tBIGSTR tEND
+   tPrintf tBIGSTR tEND
    {
      char ext[6];
      strcpy(ext,$2+(strlen($2)-4));
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 250fc9ba6858e225d801ee51c42df7091fc924c3..5ca942efee5c6f45ee629089fcc48ada9591dddf 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.17 2000-12-06 18:28:30 remacle Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.18 2000-12-06 22:25:24 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -283,117 +283,116 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 165
-#define YY_END_OF_BUFFER 166
-static yyconst short int yy_accept[980] =
+#define YY_NUM_RULES 176
+#define YY_END_OF_BUFFER 177
+static yyconst short int yy_accept[970] =
     {   0,
-        0,    0,  166,  164,    1,    1,    5,  158,    6,  164,
-      164,  159,    2,    9,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,    0,    0,  158,    0,  161,    0,    0,
-        0,    0,    3,    4,  160,  159,    0,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,   62,  163,  163,  163,  163,  163,  163,  163,  100,
-      103,   94,   97,  163,  163,  163,  163,  163,  163,  163,
-      102,  163,  105,  163,   96,   99,  163,  163,  163,  163,
-      101,  104,   95,   98,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,    0,    0,   10,    0,  111,
-      112,  113,  114,  160,    0,    0,  162,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-
-      163,  163,  163,  163,   26,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,   36,  163,  163,  163,
-      163,  163,  163,   89,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,   52,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,   74,  163,  163,  163,  163,  163,  163,
-       83,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,    0,    0,    0,
-      161,    0,    0,  160,  163,   11,  163,  163,  163,  163,
-
-      163,  163,   13,  163,   15,  163,  163,  163,  163,   21,
-      163,  163,  163,  163,  163,  163,  163,   24,  163,  163,
-      163,  163,  163,   25,  128,  163,  163,  163,  163,  163,
-      163,    0,  163,  163,  163,   92,  163,  163,  163,   41,
-      163,   43,  163,  163,  163,  163,  163,    0,  163,  163,
-      122,  163,  163,   50,  163,   51,  163,  163,   55,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,   76,
-      163,   75,  163,   73,  163,  163,  163,  163,   82,  163,
-      163,  163,  163,  163,   86,  163,   88,  163,  163,  163,
-
-      163,  153,    8,  163,  163,  163,  163,  163,    0,    0,
-        0,  160,  163,  163,  163,  163,  163,  163,  163,  163,
-       17,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,   31,  163,  163,  163,  163,
-      163,  163,  163,    0,  163,  163,  163,  163,  163,  163,
-       42,  163,  163,  163,  163,   46,    0,  163,   48,  163,
-      163,   53,  163,   93,  163,   57,  163,  163,  163,   59,
-      126,  163,  163,  163,   63,   64,  163,   65,   69,  163,
-      163,  163,   72,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,   85,  163,  163,  163,  163,  163,  163,  150,
-
-      163,  163,  152,  157,  163,    0,    0,  163,  163,  163,
-      163,   12,   14,   16,  163,  163,  163,  163,   23,  163,
-      141,  163,  163,  163,  163,  163,  163,   28,  163,  163,
-      163,   33,   34,  163,  163,  163,  163,    0,  134,  163,
-      163,   90,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  127,    0,  163,   54,   49,  163,   56,  163,   58,
-      163,  163,  163,  163,  163,  163,  163,   71,  163,   91,
-       77,  163,  163,  163,  163,  163,  163,  163,  123,  163,
-       87,  163,  163,  163,    7,  151,  149,    0,    0,  163,
-      163,  163,  163,   18,  163,  163,   22,  163,  163,  163,
-
-      163,  163,  163,  163,  163,  163,   30,  163,  163,  163,
-      163,   40,    0,  163,  163,   38,  163,  163,  163,  163,
-      163,  163,   44,  163,    0,   47,  163,  163,   60,  163,
-      163,  163,  163,  163,  163,  163,   78,  163,  163,  163,
-      163,  163,   84,  163,  163,  154,  163,    0,    0,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,    0,   37,
-       39,  163,  163,  163,  163,  163,  163,   45,    0,  163,
-      163,  163,  163,   61,  163,  163,  163,  163,   79,  163,
-      163,  163,  163,  163,  155,  156,    0,    0,  163,  163,
-
-      163,  163,  163,   20,  163,  163,  163,  163,  163,  163,
-      163,  163,   29,  124,   35,  163,  117,    0,  163,  163,
-      163,  130,  163,  163,    0,  163,  163,  163,  163,  163,
-      163,   70,  163,  163,  163,  163,   81,  163,    0,    0,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,   32,  163,  116,    0,  120,  163,  163,
-      163,  163,    0,  163,  163,  163,   67,  163,  163,  163,
-      163,  163,  163,  163,    0,    0,  163,  163,  163,  163,
-      163,   19,  163,  163,  163,  163,  163,  163,  163,  163,
-        0,  163,  163,  129,  163,    0,  163,  163,  163,  163,
-
-       66,  163,  163,  163,   80,  163,  110,    0,  110,  163,
-      163,  163,  163,  163,  163,  163,  135,  163,  163,  163,
-      163,    0,  163,  163,  163,  132,  163,  163,  163,  163,
-      163,  163,  163,  118,  109,  163,  121,  109,  163,  163,
-      163,  163,  163,  163,  163,  163,    0,  163,  163,  143,
-      163,  115,  163,  163,  163,  163,  142,  163,  163,  163,
-      163,  163,  163,  163,  163,   27,    0,  163,  163,  163,
-      163,   68,  163,  163,  163,  163,  163,  163,  106,  145,
-      139,  163,    0,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  133,  119,  131,  163,  163,
-
-      163,  140,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  125,  163,  163,  163,  163,  163,  146,  163,
-      163,  163,  163,  163,  138,  137,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  144,
-      163,  163,  163,  163,  163,  147,  163,  163,  108,  163,
-      163,  163,  163,  163,  163,  107,  163,  163,  163,  163,
-      163,  163,  163,  163,  148,  163,  163,  136,    0
+        0,    0,  177,  175,    1,    1,  175,    5,  169,  175,
+        6,  175,  175,  175,  175,  175,  170,   15,    2,  175,
+        9,  175,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  175,  175,    0,    0,   22,  169,   18,   12,   19,
+       10,   20,   11,    0,  172,    0,    0,    0,    0,    3,
+        4,   13,   16,  171,  170,    0,   24,   21,   25,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,   73,  174,  174,  174,  174,  174,  174,  174,
+      111,  114,  105,  108,  174,  174,  174,  174,  174,  174,
+      174,  113,  174,  116,  174,  107,  110,  174,  174,  174,
+      174,  112,  115,  106,  109,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,   17,   23,    0,    0,
+       14,    0,  122,  123,  124,  125,  171,    0,    0,  173,
+
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,   40,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,   50,  174,
+      174,  174,  174,  174,  174,  100,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,   64,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,   84,  174,  174,  174,  174,  174,  174,   94,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  174,  174,  174,    0,    0,    0,  172,    0,
+        0,  171,  174,   26,  174,  174,  174,  174,  174,  174,
+       28,   30,  174,  174,  174,  174,   35,  174,  174,  174,
+      174,  174,  174,  174,   38,  174,  174,  174,  174,  174,
+       39,  139,  174,  174,  174,  174,  174,  174,    0,  174,
+      174,  174,  103,  174,  174,  174,   55,  174,   57,  174,
+      174,  174,    0,  174,  174,  133,  174,  174,   62,  174,
+       63,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,   86,  174,   85,  174,   83,  174,  174,  174,
+
+      174,   93,  174,  174,  174,  174,  174,   97,  174,   99,
+      174,  174,  174,  174,  164,    8,  174,  174,  174,  174,
+      174,    0,    0,    0,  171,  174,  174,  174,  174,  174,
+      174,  174,   32,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,   45,  174,  174,
+      174,  174,  174,  174,  174,    0,  174,  174,  174,  174,
+      174,  174,   56,  174,  174,   58,    0,  174,   60,  174,
+      174,   65,  174,  104,  174,   68,  174,  174,  174,   70,
+      137,  174,  174,  174,   74,   75,   76,  174,  174,  174,
+      174,   82,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,   96,  174,  174,  174,  174,  174,  174,  161,  174,
+      174,  163,  168,  174,    0,    0,  174,  174,  174,  174,
+       27,   29,   31,  174,  174,  174,   37,  174,  152,  174,
+      174,  174,  174,  174,  174,   42,  174,  174,  174,   47,
+       48,  174,  174,  174,  174,    0,  145,  174,  174,  101,
+      174,  174,  174,  174,  174,  174,  174,  138,    0,  174,
+       66,   61,  174,   67,  174,   69,  174,  174,  174,  174,
+       79,  174,  174,   81,  174,   90,   87,  174,  174,  174,
+      174,  174,  174,  174,  134,  174,   98,  174,  174,  174,
+        7,  162,  160,    0,    0,  174,  174,  174,  174,   33,
+
+      174,   36,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,   44,  174,  174,  174,  174,   54,    0,  174,  174,
+       52,  174,  174,  174,  174,  174,  174,    0,   59,  174,
+      174,   71,  174,  174,  174,  174,  174,  174,   88,  174,
+      174,  174,  174,  174,   95,  174,  174,  165,  174,    0,
+        0,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,    0,
+       51,   53,  174,  174,  174,  174,  174,  174,    0,  174,
+      174,  174,  174,   72,  174,  174,  174,   89,  174,  174,
+      174,  174,  174,  166,  167,    0,    0,  174,  174,  174,
+
+      174,   34,  174,  174,  174,  174,  174,  174,  174,  174,
+       43,  135,   49,  174,  128,    0,  174,  174,  174,  141,
+      174,  174,    0,  174,  174,  174,  174,  174,   80,  174,
+      174,  174,  174,   92,  174,    0,    0,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,   46,
+      174,  127,    0,  131,  174,  174,  174,  174,    0,  174,
+      174,  174,   78,  174,  174,  174,  174,  174,  174,    0,
+        0,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,    0,  174,  174,  140,  174,    0,
+      174,  174,  174,   77,  174,  174,  174,   91,  174,  121,
+
+        0,  121,  174,  174,  174,  174,  174,  174,  174,  146,
+      174,  174,  174,  174,    0,  174,  174,  174,  143,  174,
+      174,  174,  174,  174,  174,  129,  120,  174,  132,  120,
+      174,  174,  174,  174,  174,  174,  174,  174,    0,  174,
+      174,  154,  174,  126,  174,  174,  174,  153,  174,  174,
+      174,  174,  174,  174,  174,  174,   41,    0,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  117,  156,
+      150,  174,    0,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  144,  130,  142,  174,  174,
+      174,  151,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  136,  174,  174,  174,  174,  174,  157,  174,
+      174,  174,  174,  174,  149,  148,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  155,
+      174,  174,  174,  174,  174,  158,  174,  174,  119,  174,
+      174,  174,  174,  174,  174,  118,  174,  174,  174,  174,
+      174,  174,  174,  174,  159,  174,  174,  147,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -401,17 +400,17 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    4,    5,    1,    1,    1,    6,    1,
-        1,    7,    8,    1,    9,   10,   11,   12,   13,   14,
-       15,   16,   16,   16,   16,   16,   16,    1,   17,    1,
-       18,    1,    1,    1,   19,   20,   21,   22,   23,   24,
-       25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
-       28,   35,   36,   37,   38,   39,   40,   41,   42,   28,
-        1,    1,    1,    1,   43,    1,   44,   45,   46,   47,
-
-       48,   49,   50,   51,   52,   28,   28,   53,   54,   55,
-       56,   57,   58,   59,   60,   61,   62,   63,   64,   65,
-       66,   28,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    4,    5,    6,    1,    1,    7,    8,    1,
+        1,    9,   10,    1,   11,   12,   13,   14,   15,   16,
+       17,   18,   18,   18,   18,   18,   18,   19,   20,   21,
+       22,   23,    1,    1,   24,   25,   26,   27,   28,   29,
+       30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
+       33,   40,   41,   42,   43,   44,   45,   46,   47,   33,
+        1,   48,    1,    1,   49,    1,   50,   51,   52,   53,
+
+       54,   55,   56,   57,   58,   33,   33,   59,   60,   61,
+       62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
+       72,   33,    1,   73,    1,   74,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -428,386 +427,389 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[67] =
+static yyconst int yy_meta[75] =
     {   0,
         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
-        1,    3,    3,    3,    3,    3,    1,    1,    3,    3,
+        1,    1,    1,    3,    3,    3,    3,    3,    1,    1,
+        1,    1,    1,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    3,    1,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3
+        3,    3,    1,    1
     } ;
 
-static yyconst short int yy_base[985] =
+static yyconst short int yy_base[975] =
     {   0,
-        0,    0, 1207,   46,   47, 1208,   48,   58,   54,   87,
-       69,  117,   56,   57,   98,   85,  147,  124,  149,  163,
-       66,  131,  172,   60,   67,  184,  175,   72,  199,  238,
-      191,  277,  323,  123,  249,   97,  154,  129,  204,  236,
-      200,  205,  197, 1173, 1173,  251, 1194,  304, 1193, 1192,
-       81, 1191, 1208, 1208,  350,  362,  333,    0,  104, 1161,
-     1167, 1171, 1151,   57,  102, 1163, 1138, 1158, 1131, 1138,
-     1156, 1155, 1156,   51, 1158, 1126, 1134, 1141, 1125,  242,
-     1146, 1147, 1128, 1127, 1122, 1153, 1147, 1154, 1122, 1127,
-      189, 1152, 1142, 1126, 1114, 1113, 1109, 1134,   60, 1147,
-
-     1108, 1131, 1117, 1106, 1129, 1094, 1104, 1103,   92, 1125,
-      192, 1109, 1096, 1127, 1104, 1091, 1104, 1131, 1116, 1089,
-     1081,    0, 1102,  217,  219, 1099, 1083, 1090, 1123,    0,
-        0,    0,    0, 1078, 1081, 1084, 1085, 1078, 1077, 1081,
-        0, 1099,    0, 1106,    0,    0, 1077,  112, 1079,  209,
-        0,    0,    0,    0, 1082, 1076, 1067, 1080, 1080, 1069,
-     1060, 1064, 1061, 1068, 1061, 1087, 1082, 1208,  375, 1208,
-     1208, 1208, 1208,  380,  392,  399,  404, 1085, 1056, 1096,
-     1078, 1077,  288, 1057, 1055, 1055, 1050, 1055, 1073, 1051,
-     1048, 1067, 1082, 1066, 1067, 1073, 1072, 1044, 1044, 1037,
-
-     1049, 1046, 1037, 1035, 1040, 1071, 1066, 1040, 1043, 1033,
-     1062, 1057,  179, 1031, 1058, 1020,    0, 1021, 1056, 1055,
-     1017, 1020, 1028,    0, 1043, 1025, 1018, 1049, 1014, 1060,
-     1015, 1006, 1043, 1017, 1014, 1015, 1049, 1004, 1033, 1009,
-     1007,  995, 1011, 1032,  994, 1001, 1004, 1019, 1028, 1005,
-      988,  992,  991,  984,  996,  988,  992,  985,  996,  991,
-     1004,  989,  984,  984,  982,  972,  983,  977,  997,  998,
-      977,  972,  972,  970,  987,  986,  958,  959,  969,  273,
-      971,  961,  221,  963,  968,  963,  953,  976,  978,  409,
-      417,  426,  431,  436,  974,    0,  978,  975,  994,  951,
-
-      954,  961,    0,  958,  989,  958,  949,  970,  952,    0,
-      975,  967,  973,  962,  973,  961,  930,    0,  947,  937,
-      930,  929,  934,    0,    0,  965,  924,  923,  931,  939,
-      947,  953,  956,  921,  921,    0,  914,  932,  931,    0,
-      914,    0,  949,  912,  922,  946,  907,  954,  904,  905,
-        0,  905,  902,    0,  950,    0,  937,  912,    0,  906,
-      898,  925,  908,  899,  895,  930,  914,  897,  898,  901,
-      887,  913,  887,  884,  885,  889,  881,  894,  917,    0,
-      882,    0,  883,    0,  893,  888,  908,  903,    0,  873,
-      878,  881,  897,  906,    0,  874,    0,  883,  870,  869,
-
-      863,    0,    0,  875,  878,  862,  873,  871,  891,  894,
-      441,  446,  889,  894,  891,  870,  852,  856,  855,  857,
-        0,  862,  852,  879,  845,  868,  880,  880,  865,  881,
-      877,  845,  851,  848,  847,    0,  846,  856,  844,  843,
-      844,  203,  853,  852,  866,  194,  827,  838,  279,  318,
-        0,  847,  839,  821,  846,    0,  868,  832,    0,  818,
-      826,    0,  843,    0,  819,    0,  837,  812,  817,    0,
-        0,  850,  822,  823,    0,    0,  809,    0,    0,  819,
-      821,  817,    0,  821,  802,  814,  815,  799,  837,  835,
-      251,  809,    0,  821,  814,  806,  807,  796,  798,    0,
-
-      800,  796,    0,    0,  783,  815,  825,  813,  821,  822,
-      808,    0,    0,  827,  796,  778,  790,  805,    0,  809,
-        0,  792,  807,  803,  797,  778,  769,    0,  774,  763,
-      800,    0,    0,  782,  787,  791,  800,  789,    0,  769,
-      768,    0,  771,  785,  779,  793,  796,  793,  778,  759,
-      752,    0,  795,  761,    0,    0,  778,    0,  784,    0,
-      746,  768,  743,  759,  746,  741,  748,    0,  777,    0,
-        0,  750,  738,  777,  773,  742,  749,  745,    0,  748,
-        0,  742,  732,  736,    0,    0,    0,  749,  759,  747,
-      762,  756,  752,    0,  720,  724,    0,  756,  759,  741,
-
-      739,  732,  747,  738,  724,  725,    0,  737,  708,  733,
-      734,    0,  757,  705,  718,    0,  725,  725,  725,  729,
-      733,  731,    0,  691,  744,    0,  733,  732,    0,  710,
-      693,  698,  704,  689,  693,  724,    0,  680,  715,  701,
-      688,  681,    0,  707,  679,    0,  692,  705,  713,  703,
-      692,  710,  714,  680,  672,  687,  697,  702,  704,  690,
-      704,  668,  664,  674,  689,  676,  680,  684,  704,    0,
-        0,  684,  692,  693,  690,  688,  687,    0,  690,  659,
-       69,  131,  126,    0,  152,  154,  201,  264,    0,  263,
-      287,  258,  280,  297,    0,    0,  293,  305,  298,  331,
-
-      310,  317,  312,    0,  350,  326,  347,  336,  342,  362,
-      343,  347,    0,    0,    0,  379,    0,  397,  404,  392,
-      401,    0,  406,  420,  455,  429,  443,  444,  422,  409,
-      414,    0,  444,  436,  435,  413,    0,  448,  440,  454,
-      442,  444,  461,  458,  459,  428,  446,  447,  452,  457,
-      467,  454,  460,    0,  431,    0,  477,    0,  450,  467,
-      476,  460,  483,  465,  477,  476,    0,  441,  447,  471,
-      466,  470,  458,  475,    0,  486,  508,  488,  499,  499,
-      491,    0,  488,  489,  494,  498,  491,  506,  488,  471,
-      521,  514,  501,    0,  513,  524,  508,  514,  513,  489,
-
-        0,  515,  508,  505,    0,  508, 1208,    0,    0,  512,
-      524,  547,  527,  520,  536,  534,    0,  527,  544,  530,
-      515,  553,  536,  533,  534, 1208,  545,  550,  542,  520,
-      539,  553,  555,    0, 1208,  536,    0,    0,  548,  558,
-      563,  551,  545,  564,  548,  541,  579,  551,  563,    0,
-      569,    0,  565,  543,  567,  576,    0,  560,  560,  555,
-      578,  563,  578,  579,  568,    0,  590,  573,  573,  564,
-      571,    0,  576,  589,  585,  569,  573,  591,    0,  572,
-        0,  592,  604,  596,  587,  600,  594,  590,  600,  605,
-      610,  599,  584,  592,  610, 1208,    0,    0,  595,  598,
-
-      589,    0,  599,  612,  598,  596,  614,  617,  616,  608,
-      606,  619,    0,  617,  617,  620,  623,  613,  605,  626,
-      607,  608,  615,  622,    0,    0,  618,  621,  621,  628,
-      632,  636,  634,  626,  639,  631,  621,  633,  647,  644,
-      634,  636,  641,  634,  638,  637,  639,  638,  644,    0,
-      654,  655,  656,  644,  648,    0,  650,  647,    0,  647,
-      648,  663,  651,  669,  657,    0,  653,  654,  665,  674,
-      661,  658,  664,  670,    0,  665,  667,    0, 1208,  697,
-      700,  703,  706,  709
+        0,    0, 1231,   49,   50, 1232,   55,   52,   68,   73,
+       53,   65,   78,   79,  111,   93,  130,   71,   77,   87,
+      109,  117,  123,  131,  176,  138,  178,  135,  175,  181,
+      184,   81,  125,  209,  218,  186,  222,  238,  214,  278,
+      313,  217,  273,  232,  263,  243,  248,  306,  279,  297,
+      318,  300,  336, 1192, 1192, 1232,  366, 1232, 1232, 1232,
+     1232, 1232, 1232, 1216,  371, 1215, 1214,  126, 1213, 1232,
+     1232, 1232, 1232,  376,  391,  400, 1232, 1232, 1232,    0,
+       72, 1180, 1186, 1190, 1169, 1162,  115, 1181, 1155, 1176,
+     1148, 1155, 1174, 1173, 1174,   81, 1176, 1143, 1151, 1158,
+
+     1142,  310, 1164, 1165, 1145, 1144, 1139, 1171, 1165, 1172,
+     1139, 1144,  188, 1170, 1160, 1143, 1131, 1130, 1126, 1152,
+     1165, 1125, 1149, 1134, 1123, 1147, 1111, 1121, 1120,  115,
+     1143, 1114, 1125, 1112, 1144, 1120, 1107, 1120, 1148, 1133,
+     1105, 1097,    0, 1118,  117,  121, 1115, 1099, 1106, 1140,
+        0,    0,    0,    0, 1094, 1097, 1100, 1101, 1094, 1093,
+     1097,    0, 1116,    0, 1123,    0,    0, 1093,  170, 1095,
+      191,    0,    0,    0,    0, 1098, 1092, 1083, 1096, 1096,
+     1085, 1076, 1080, 1077, 1084, 1077, 1232, 1232, 1104, 1099,
+     1232,  417, 1232, 1232, 1232, 1232,  422,  437,  406,  442,
+
+     1102, 1072, 1113, 1095, 1094,  292, 1073, 1072, 1067, 1072,
+     1091, 1068, 1065, 1085, 1100, 1084, 1085, 1091, 1090, 1061,
+     1061, 1054, 1066, 1063, 1054, 1052, 1057, 1089, 1084, 1057,
+     1060, 1050, 1080, 1075,  225, 1048, 1076, 1037,    0, 1038,
+     1074, 1073, 1034, 1037, 1045,    0, 1061, 1069, 1033, 1083,
+     1034, 1025, 1063, 1036, 1033, 1034, 1072, 1023, 1053, 1028,
+     1015, 1031, 1053, 1014, 1021, 1024, 1040, 1049, 1025, 1008,
+     1012, 1011, 1017, 1009, 1013, 1006, 1017, 1012, 1026, 1010,
+     1005, 1005, 1003,  993, 1004,  998, 1019, 1020,  998,  993,
+      993,  991, 1009, 1008,  979,  980,  990,  406,  992,  982,
+
+      229,  984,  989,  984,  974,  998, 1000,  452,  463,  472,
+      477,  482,  996,    0, 1000,  997, 1019,  972,  975,  982,
+        0, 1015,  980,  971,  993,  974,    0,  998,  990,  996,
+      985,  996,  984,  952,    0,  969,  959,  952,  951,  956,
+        0,    0,  988,  946,  945,  953,  961,  970,  976,  979,
+      943,  943,    0,  936,  954,  953,    0,  936,    0,  972,
+      971,  931,  982,  928,  929,    0,  929,  926,    0,  978,
+        0,  962,  936,  930,  922,  950,  932,  923,  919,  955,
+      939,  921,  922,  925,  911,  912,  909,  910,  914,  906,
+      919,  943,    0,  907,    0,  908,    0,  918,  913,  934,
+
+      929,    0,  898,  903,  906,  923,  932,    0,  899,    0,
+      908,  895,  894,  888,    0,    0,  900,  903,  887,  898,
+      896,  917,  920,  487,  492,  915,  920,  917,  895,  877,
+      881,  880,    0,  888,  878,  906,  871,  895,  907,  907,
+      892,  908,  904,  871,  877,  874,  873,    0,  872,  883,
+      870,  869,  870,  221,  880,  879,  893,   66,  853,  864,
+      273,  484,    0,  874,  875,    0,  900,  860,    0,  846,
+      854,    0,  872,    0,  847,    0,  866,  840,  845,    0,
+        0,  879,  850,  851,    0,    0,    0,  847,  847,  849,
+      845,    0,  849,  830,  842,  843,  827,  866,  864,  270,
+
+      837,    0,  850,  843,  834,  835,  824,  826,    0,  828,
+      824,    0,    0,  811,  844,  854,  842,  850,  851,  837,
+        0,    0,  859,  807,  819,  835,    0,  839,    0,  821,
+      837,  833,  827,  807,  798,    0,  803,  792,  830,    0,
+        0,  811,  817,  821,  830,  819,    0,  798,  797,    0,
+      800,  815,  809,  823,  826,  823,  808,    0,  830,  792,
+        0,    0,  810,    0,  816,    0,  777,  800,  774,  790,
+        0,  773,  780,    0,  810,    0,    0,  782,  770,  810,
+      806,  774,  781,  777,    0,  780,    0,  774,  764,  768,
+        0,    0,    0,  782,  792,  780,  795,  789,  785,    0,
+
+      757,    0,  790,  793,  775,  773,  765,  781,  772,  757,
+      758,    0,  771,  741,  767,  768,    0,  794,  738,  751,
+        0,  759,  759,  759,  763,  767,  765,  782,    0,  768,
+      767,    0,  744,  727,  732,  724,  728,  760,    0,  715,
+      751,  736,  723,  716,    0,  743,  714,    0,  727,  741,
+      749,  739,  727,  746,  750,  708,  723,  734,  739,  741,
+      727,  741,  704,  700,  710,  726,  712,  717,  721,  744,
+        0,    0,  721,  729,  730,  727,  726,  727,  735,  702,
+      701,  722,  690,    0,  689,  692,  716,    0,  695,  717,
+      684,  687,  702,    0,    0,  696,  706,  694,  346,  703,
+
+      706,    0,  150,  680,  698,   40,   69,  174,  156,  164,
+        0,    0,    0,  204,    0,  236,  243,  239,  244,    0,
+      266,  258,  316,  296,  310,  317,  305,  302,    0,  333,
+      325,  331,  310,    0,  363,  355,  369,  357,  360,  377,
+      374,  384,  370,  383,  390,  406,  416,  403,  409,    0,
+      380,    0,  432,    0,  413,  431,  440,  430,  457,  436,
+      448,  455,    0,  424,  475,  470,  474,  461,  479,    0,
+      490,  525,  490,  493,  493,  486,  483,  484,  490,  504,
+      497,  512,  493,  476,  535,  525,  512,    0,  524,  538,
+      519,  525,  524,    0,  525,  518,  515,    0,  518, 1232,
+
+        0,    0,  522,  534,  599,  535,  520,  536,  534,    0,
+      527,  544,  528,  512,  554,  534,  532,  533, 1232,  544,
+      549,  541,  537,  551,  553,    0, 1232,  533,    0,    0,
+      546,  556,  561,  549,  543,  562,  546,  538,  580,  549,
+      561,    0,  567,    0,  563,  564,  573,    0,  561,  571,
+      565,  589,  574,  589,  595,  584,    0,  609,  589,  589,
+      579,  587,  592,  605,  601,  584,  589,  607,    0,  587,
+        0,  608,  623,  612,  603,  616,  610,  606,  616,  621,
+      629,  616,  600,  609,  627, 1232,    0,    0,  612,  615,
+      605,    0,  616,  629,  615,  613,  631,  634,  633,  625,
+
+      623,  636,    0,  634,  634,  637,  640,  630,  621,  643,
+      625,  626,  634,  641,    0,    0,  637,  640,  640,  647,
+      651,  655,  653,  645,  658,  650,  639,  652,  666,  663,
+      653,  655,  660,  653,  657,  656,  658,  657,  663,    0,
+      673,  674,  675,  663,  667,    0,  669,  666,    0,  666,
+      667,  682,  670,  688,  676,    0,  672,  673,  684,  693,
+      680,  677,  683,  689,    0,  684,  686,    0, 1232,  721,
+      724,  727,  730,  733
     } ;
 
-static yyconst short int yy_def[985] =
+static yyconst short int yy_def[975] =
     {   0,
-      979,    1,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  979,  979,  979,
-      979,  979,  979,  979,  980,  980,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  979,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  979,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  979,  979,
-      979,  979,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  979,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  979,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  979,  979,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  979,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  979,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  979,  979,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  979,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  979,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  979,  979,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  979,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  979,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  979,  979,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  979,  980,  980,
-      980,  980,  980,  980,  979,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  979,  979,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  979,  980,  980,  980,
-      980,  980,  979,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  981,  979,  982,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      979,  980,  980,  980,  980,  979,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  979,  983,  980,  980,
-      980,  984,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  979,  980,  980,  980,  979,  980,  980,  980,  980,
-      980,  980,  980,  980,  979,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  979,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  979,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  979,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  979,  980,  980,  980,  980,
-
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
-      980,  980,  980,  980,  980,  980,  980,  980,    0,  979,
-      979,  979,  979,  979
+      969,    1,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  969,  969,  969,  969,  969,
+      969,  969,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  969,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  969,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  969,  969,  969,  969,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  969,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  969,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  969,  969,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  969,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  969,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  969,  969,  970,  970,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  969,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  969,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  969,
+      969,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  969,
+      970,  970,  970,  970,  970,  970,  970,  970,  969,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  969,  969,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  969,  970,  970,  970,  970,
+      970,  970,  969,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  969,  969,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  969,  970,  970,  970,  970,  970,  969,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  971,
+      969,  972,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  969,  970,  970,  970,  970,  969,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  969,
+
+      973,  970,  970,  970,  974,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  969,  970,  970,  970,  969,  970,
+      970,  970,  970,  970,  970,  970,  969,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  969,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  969,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  969,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  969,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
+      970,  970,  970,  970,  970,  970,  970,  970,    0,  969,
+      969,  969,  969,  969
     } ;
 
-static yyconst short int yy_nxt[1275] =
+static yyconst short int yy_nxt[1307] =
     {   0,
-        4,    5,    6,    7,    8,    9,    4,    4,    4,   10,
-       11,   12,   12,   12,   12,   12,   13,   14,   15,   16,
-       17,   18,   19,   20,   21,   22,   23,   24,   25,   26,
-       27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
-       24,   24,   24,   24,   24,   24,   24,   37,   38,   24,
-       24,   24,   39,   24,   40,   41,   24,   24,   24,   42,
-       24,   24,   43,   24,   24,   24,   44,   44,   44,   46,
-       46,   46,   46,   46,   44,   53,   44,   44,   44,   54,
-       66,  195,  196,   45,   45,   45,   66,   66,   98,   44,
-      172,   45,   66,   45,   45,   45,   47,   61,   48,   48,
-
-       48,   48,   48,   61,   61,   66,   45,   44,  184,   61,
-       49,  727,  167,   99,  226,  227,  185,   66,   59,   60,
-       67,  104,   61,   50,   51,   52,   55,   68,   56,   56,
-       56,   56,   56,  113,   61,   61,  178,   44,   62,   57,
-       69,  237,   81,   66,   66,  186,   70,  238,  157,   66,
-       82,   66,  728,  100,   45,  272,   63,   64,   65,  179,
-       61,   61,  187,  273,   57,   71,   61,   66,   61,   66,
-       86,   83,  159,   72,   66,   84,   73,  729,   87,   74,
-       88,   92,  149,   66,   61,   85,   61,  332,   75,   93,
-       76,   61,   66,  110,   77,   66,  101,   78,   79,  730,
-
-       61,   89,   80,   90,   66,  731,   94,  102,  158,   61,
-      105,   66,   61,   91,  333,   95,   96,   66,   97,   66,
-       66,   61,  111,  535,   66,   66,  103,  106,   61,  275,
-      112,  107,  536,  114,   61,  108,   61,   61,  126,  109,
-      216,   61,   61,  276,  165,  217,  127,  115,  732,  218,
-      240,  241,  128,  540,  541,  116,   66,  117,   66,  160,
-      164,  163,   46,   46,   46,   46,   46,  118,  253,   66,
-      256,  150,  119,   61,  257,   61,  254,  403,  151,  404,
-      255,  120,  152,  161,  153,  154,   61,  733,  121,  122,
-      123,  162,  202,  124,  203,  204,  125,   66,  544,  576,
-
-      155,  205,  129,  577,  156,  734,  130,  735,  300,  736,
-      131,  545,  132,  133,   61,   48,   48,   48,   48,   48,
-      134,  398,  135,  301,  302,  399,  169,  737,  136,  738,
-      739,  740,  400,  137,  138,  741,  744,  745,  139,  546,
-      176,  176,  140,   66,  177,  177,  177,  177,  177,  547,
-      742,  169,  141,  548,  743,  142,  143,  144,  145,  146,
-       61,  174,  174,  174,  174,  174,  147,  746,  749,  750,
-      747,   55,  175,   56,   56,   56,   56,   56,  751,  752,
-      753,  148,  290,  290,   57,  748,  291,  291,  291,  291,
-      291,  174,  174,  174,  174,  174,  754,  175,  755,  293,
-
-      293,  756,  292,  294,  294,  294,  294,  294,  757,   57,
-      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
-      291,  291,  291,  291,  291,  758,  759,  292,  291,  291,
-      291,  291,  291,  411,  411,  760,  761,  412,  412,  412,
-      412,  412,  294,  294,  294,  294,  294,  294,  294,  294,
-      294,  294,  412,  412,  412,  412,  412,  412,  412,  412,
-      412,  412,  762,  763,  764,  765,  766,  767,  768,  769,
-      770,  771,  772,  773,  774,  775,  776,  777,  778,  779,
-      780,  781,  782,  783,  784,  785,  786,  787,  788,  789,
-      790,  791,  792,  793,  794,  795,  796,  797,  798,  799,
-
-      800,  801,  802,  803,  804,  805,  806,  808,  807,  807,
-      810,  807,  807,  807,  807,  807,  807,  807,  807,  811,
-      812,  813,  814,  815,  807,  807,  816,  817,  818,  819,
-      820,  821,  822,  823,  824,  825,  826,  827,  828,  829,
-      830,  831,  832,  833,  834,  836,  837,  835,  835,  839,
-      835,  835,  835,  835,  835,  835,  835,  835,  840,  841,
-      842,  843,  844,  835,  835,  845,  846,  847,  848,  849,
-      850,  851,  852,  853,  854,  855,  856,  857,  858,  859,
-      860,  861,  862,  863,  864,  865,  866,  867,  868,  869,
-      870,  871,  872,  873,  874,  875,  876,  877,  878,  879,
-
-      880,  881,  882,  883,  884,  885,  886,  887,  888,  889,
-      890,  891,  892,  893,  894,  895,  896,  897,  898,  899,
-      900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
-      910,  911,  912,  913,  914,  915,  916,  917,  918,  919,
-      920,  921,  922,  923,  924,  925,  926,  927,  928,  929,
-      930,  931,  932,  933,  934,  935,  936,  937,  938,  939,
-      940,  941,  942,  943,  944,  945,  946,  947,  948,  949,
-      950,  951,  952,  953,  954,  955,  956,  957,  958,  959,
-      960,  961,  962,  963,  964,  965,  966,  967,  968,  969,
-      970,  971,  972,  973,  974,  975,  976,  977,  978,   58,
-
-      807,  726,  807,  809,  725,  809,  835,  724,  835,  838,
-      723,  838,  722,  721,  720,  719,  718,  717,  716,  715,
+        4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
+       14,   15,   16,   17,   17,   17,   17,   17,   18,   19,
+       20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
+       30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
+       40,   41,   42,   43,   44,   32,   32,    4,   32,   32,
+       32,   32,   32,   45,   46,   32,   32,   32,   47,   32,
+       48,   49,   32,   32,   32,   50,   32,   32,   51,   32,
+       32,   32,   52,   53,   54,   54,   56,   54,   54,   58,
+       54,   57,   57,   57,   57,   57,   59,   60,  747,   62,
+       54,   55,   55,   54,   55,   55,   54,   55,   54,   61,
+
+       63,   70,   54,   54,   54,   71,   88,   55,   77,  201,
+       55,  748,   54,   55,   72,   55,  217,  218,   54,   55,
+       55,   55,   64,   83,   65,   65,   65,   65,   65,   55,
+       78,  548,  549,  202,   54,   55,   54,  195,   79,   66,
+       73,   74,   54,   75,   75,   75,   75,   75,   81,   82,
+       88,   55,   67,   68,   69,   54,   88,   76,  114,   55,
+       88,  103,  190,   88,  208,   83,  115,   83,   84,  104,
+      257,   89,   55,   83,  272,  743,  258,   83,  274,   90,
+       83,  209,  275,   76,  116,  125,  273,   85,   86,   87,
+      744,  105,   91,  117,  118,  106,  119,  749,   92,   93,
+
+       88,   88,  120,   88,  108,  107,   88,   94,  121,   88,
+       95,   88,  109,   96,  110,  750,  293,   83,   83,  290,
+       83,  751,   97,   83,  123,   98,   83,  291,   83,   99,
+      294,  752,  100,  101,   88,  349,  111,  102,  112,   88,
+      126,  131,   88,   88,  124,  238,  543,   88,  113,  753,
+      239,   83,  122,  134,  240,  544,   83,   88,  127,   83,
+       83,  135,  128,   88,   83,  350,  129,  147,   88,  754,
+      130,  132,  139,   88,   83,  148,  136,  140,  755,  133,
+       83,  149,  170,  756,  137,   83,  138,  141,   88,  178,
+       83,  416,  180,  417,  142,  143,  144,  552,   88,  145,
+
+      171,  757,  146,   88,   88,   83,  758,  172,  150,  181,
+      553,  173,  151,  174,  175,   83,  152,  318,  153,  154,
+       83,   83,   88,  179,  582,   54,  759,  155,  583,  156,
+      176,   88,  319,  320,  177,  157,  760,  761,   88,   83,
+      158,  159,   55,   88,  762,  160,  184,  162,   83,  161,
+      163,  164,  165,  166,  167,   83,  763,  188,  185,  182,
+       83,   54,  168,  764,  765,  766,  224,  183,  225,  226,
+      739,  186,  187,  767,  740,  227,  768,  169,   55,   57,
+       57,   57,   57,   57,   65,   65,   65,   65,   65,  197,
+      197,  197,  197,  197,  769,  770,  771,  772,  192,  773,
+
+      774,  775,   74,  198,   75,   75,   75,   75,   75,  199,
+      199,  776,  777,  200,  200,  200,  200,  200,   76,  200,
+      200,  200,  200,  200,  192,  778,  308,  308,  779,  198,
+      309,  309,  309,  309,  309,  197,  197,  197,  197,  197,
+      780,  781,  782,  783,   76,  784,  311,  311,  785,  310,
+      312,  312,  312,  312,  312,  200,  200,  200,  200,  200,
+      411,  786,  787,  788,  412,  309,  309,  309,  309,  309,
+      789,  413,  790,  791,  792,  310,  309,  309,  309,  309,
+      309,  424,  424,  793,  794,  425,  425,  425,  425,  425,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+
+      425,  425,  425,  425,  425,  425,  425,  425,  425,  425,
+      554,  795,  796,  797,  798,  799,  801,  803,  804,  805,
+      555,  806,  807,  808,  556,  800,  800,  809,  800,  800,
+      800,  800,  800,  800,  800,  800,  800,  800,  810,  811,
+      812,  813,  814,  800,  800,  800,  800,  800,  815,  816,
+      817,  818,  819,  820,  821,  822,  823,  824,  825,  826,
+      828,  829,  831,  832,  833,  834,  835,  836,  837,  838,
+      839,  840,  800,  841,  842,  843,  844,  845,  846,  847,
+      848,  849,  850,  851,  852,  853,  854,  855,  856,  857,
+      858,  859,  860,  861,  862,  863,  864,  800,  800,  827,
+
+      827,  865,  827,  827,  827,  827,  827,  827,  827,  827,
+      827,  827,  866,  867,  868,  869,  870,  827,  827,  827,
+      827,  827,  871,  872,  873,  874,  875,  876,  877,  878,
+      879,  880,  881,  882,  883,  884,  885,  886,  887,  888,
+      889,  890,  891,  892,  893,  894,  827,  895,  896,  897,
+      898,  899,  900,  901,  902,  903,  904,  905,  906,  907,
+      908,  909,  910,  911,  912,  913,  914,  915,  916,  917,
+      918,  827,  827,  919,  920,  921,  922,  923,  924,  925,
+      926,  927,  928,  929,  930,  931,  932,  933,  934,  935,
+      936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
+
+      946,  947,  948,  949,  950,  951,  952,  953,  954,  955,
+      956,  957,  958,  959,  960,  961,  962,  963,  964,  965,
+      966,  967,  968,   80,  800,  746,  800,  802,  745,  802,
+      827,  742,  827,  830,  741,  830,  738,  737,  736,  735,
+      734,  733,  732,  731,  730,  729,  728,  727,  726,  725,
+      724,  723,  722,  721,  720,  719,  718,  717,  716,  715,
       714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
       704,  703,  702,  701,  700,  699,  698,  697,  696,  695,
       694,  693,  692,  691,  690,  689,  688,  687,  686,  685,
       684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
+
       674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
       664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
       654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
       644,  643,  642,  641,  640,  639,  638,  637,  636,  635,
-
       634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
       624,  623,  622,  621,  620,  619,  618,  617,  616,  615,
       614,  613,  612,  611,  610,  609,  608,  607,  606,  605,
       604,  603,  602,  601,  600,  599,  598,  597,  596,  595,
       594,  593,  592,  591,  590,  589,  588,  587,  586,  585,
-      584,  583,  582,  581,  580,  579,  578,  575,  574,  573,
+      584,  581,  580,  579,  578,  577,  576,  575,  574,  573,
+
       572,  571,  570,  569,  568,  567,  566,  565,  564,  563,
-      562,  561,  560,  559,  558,  557,  556,  555,  554,  553,
-      552,  551,  550,  549,  543,  542,  539,  538,  537,  534,
+      562,  561,  560,  559,  558,  557,  551,  550,  547,  546,
+      545,  542,  541,  540,  539,  538,  537,  536,  535,  534,
       533,  532,  531,  530,  529,  528,  527,  526,  525,  524,
-
       523,  522,  521,  520,  519,  518,  517,  516,  515,  514,
       513,  512,  511,  510,  509,  508,  507,  506,  505,  504,
       503,  502,  501,  500,  499,  498,  497,  496,  495,  494,
       493,  492,  491,  490,  489,  488,  487,  486,  485,  484,
       483,  482,  481,  480,  479,  478,  477,  476,  475,  474,
       473,  472,  471,  470,  469,  468,  467,  466,  465,  464,
+
       463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
       453,  452,  451,  450,  449,  448,  447,  446,  445,  444,
       443,  442,  441,  440,  439,  438,  437,  436,  435,  434,
-      433,  432,  431,  430,  429,  428,  427,  426,  425,  424,
-
-      423,  422,  421,  420,  419,  418,  417,  416,  415,  414,
-      413,  410,  409,  408,  407,  406,  405,  402,  401,  397,
+      433,  432,  431,  430,  429,  428,  427,  426,  423,  422,
+      421,  420,  419,  418,  415,  414,  410,  409,  408,  407,
+      406,  405,  404,  403,  402,  401,  400,  399,  398,  397,
       396,  395,  394,  393,  392,  391,  390,  389,  388,  387,
       386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
       376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
       366,  365,  364,  363,  362,  361,  360,  359,  358,  357,
-      356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
-      346,  345,  344,  343,  342,  341,  340,  339,  338,  337,
-      336,  335,  334,  331,  330,  329,  328,  327,  326,  325,
-      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
-
-      314,  313,  312,  311,  310,  309,  308,  307,  306,  305,
-      304,  303,  299,  298,  297,  296,  295,  289,  288,  287,
-      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
-      274,  271,  270,  269,  268,  267,  266,  265,  264,  263,
-      262,  261,  260,  259,  258,  252,  251,  250,  249,  248,
-      247,  246,  245,  244,  243,  242,  239,  236,  235,  234,
-      233,  232,  231,  230,  229,  228,  225,  224,  223,  222,
-      221,  220,  219,  215,  214,  213,  212,  211,  210,  209,
-      208,  207,  206,  201,  200,  199,  198,  197,  194,  193,
-      192,  191,  190,  189,  188,  178,  183,  182,  181,  180,
-
-      173,  171,  170,  168,  167,  166,  979,    3,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979
+
+      356,  355,  354,  353,  352,  351,  348,  347,  346,  345,
+      344,  343,  342,  341,  340,  339,  338,  337,  336,  335,
+      334,  333,  332,  331,  330,  329,  328,  327,  326,  325,
+      324,  323,  322,  321,  317,  316,  315,  314,  313,  307,
+      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
+      296,  295,  292,  289,  288,  287,  286,  285,  284,  283,
+      282,  281,  280,  279,  278,  277,  276,  271,  270,  269,
+      268,  267,  266,  265,  264,  263,  262,  261,  260,  259,
+      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
+      246,  245,  244,  243,  242,  241,  237,  236,  235,  234,
+
+      233,  232,  231,  230,  229,  228,  223,  222,  221,  220,
+      219,  216,  215,  214,  213,  212,  211,  210,  201,  207,
+      206,  205,  204,  203,  196,  194,  193,  191,  190,  189,
+      969,    3,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+
+      969,  969,  969,  969,  969,  969
     } ;
 
-static yyconst short int yy_chk[1275] =
+static yyconst short int yy_chk[1307] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -815,140 +817,144 @@ static yyconst short int yy_chk[1275] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    4,    5,    7,    8,
-        8,    8,    8,    8,    9,   11,   13,   14,    8,   11,
-       24,   74,   74,    4,    5,    7,   21,   25,   21,   11,
-       51,    9,   28,   13,   14,    8,   10,   24,   10,   10,
-
-       10,   10,   10,   21,   25,   16,   11,   10,   64,   28,
-       10,  681,   51,   21,   99,   99,   64,   36,   15,   15,
-       16,   25,   16,   10,   10,   10,   12,   16,   12,   12,
-       12,   12,   12,   28,   36,   15,   59,   12,   15,   12,
-       16,  109,   18,   34,   18,   65,   16,  109,   36,   38,
-       18,   22,  682,   22,   12,  148,   15,   15,   15,   59,
-       34,   18,   65,  148,   12,   17,   38,   17,   22,   19,
-       19,   18,   38,   17,   37,   18,   17,  683,   19,   17,
-       19,   20,   34,   20,   17,   18,   19,  213,   17,   20,
-       17,   37,   23,   27,   17,   27,   22,   17,   17,  685,
-
-       20,   19,   17,   19,   26,  686,   20,   23,   37,   23,
-       26,   31,   27,   19,  213,   20,   20,   43,   20,   29,
-       41,   26,   27,  442,   39,   42,   23,   26,   31,  150,
-       27,   26,  442,   29,   43,   26,   29,   41,   31,   26,
-       91,   39,   42,  150,   43,   91,   31,   29,  687,   91,
-      111,  111,   31,  446,  446,   29,   40,   29,   30,   39,
-       42,   41,   46,   46,   46,   46,   46,   30,  124,   35,
-      125,   35,   30,   40,  125,   30,  124,  283,   35,  283,
-      124,   30,   35,   40,   35,   35,   35,  688,   30,   30,
-       30,   40,   80,   30,   80,   80,   30,   32,  449,  491,
-
-       35,   80,   32,  491,   35,  690,   32,  691,  183,  692,
-       32,  449,   32,   32,   32,   48,   48,   48,   48,   48,
-       32,  280,   32,  183,  183,  280,   48,  693,   32,  694,
-      697,  698,  280,   32,   32,  699,  701,  702,   32,  450,
-       57,   57,   32,   33,   57,   57,   57,   57,   57,  450,
-      700,   48,   33,  450,  700,   33,   33,   33,   33,   33,
-       33,   55,   55,   55,   55,   55,   33,  703,  706,  707,
-      705,   56,   55,   56,   56,   56,   56,   56,  708,  709,
-      710,   33,  169,  169,   56,  705,  169,  169,  169,  169,
-      169,  174,  174,  174,  174,  174,  711,   55,  712,  175,
-
-      175,  716,  174,  175,  175,  175,  175,  175,  718,   56,
-      176,  176,  176,  176,  176,  177,  177,  177,  177,  177,
-      290,  290,  290,  290,  290,  719,  720,  174,  291,  291,
-      291,  291,  291,  292,  292,  721,  723,  292,  292,  292,
-      292,  292,  293,  293,  293,  293,  293,  294,  294,  294,
-      294,  294,  411,  411,  411,  411,  411,  412,  412,  412,
-      412,  412,  724,  725,  726,  727,  728,  729,  730,  731,
-      733,  734,  735,  736,  738,  739,  740,  741,  742,  743,
-      744,  745,  746,  747,  748,  749,  750,  751,  752,  753,
-      755,  757,  759,  760,  761,  762,  763,  764,  765,  766,
-
-      768,  769,  770,  771,  772,  773,  774,  776,  777,  777,
-      778,  777,  777,  777,  777,  777,  777,  777,  777,  779,
-      780,  781,  783,  784,  777,  777,  785,  786,  787,  788,
-      789,  790,  791,  792,  793,  795,  796,  797,  798,  799,
-      800,  802,  803,  804,  806,  810,  811,  812,  812,  813,
-      812,  812,  812,  812,  812,  812,  812,  812,  814,  815,
-      816,  818,  819,  812,  812,  820,  821,  822,  823,  824,
-      825,  827,  828,  829,  830,  831,  832,  833,  836,  839,
-      840,  841,  842,  843,  844,  845,  846,  847,  848,  849,
-      851,  853,  854,  855,  856,  858,  859,  860,  861,  862,
-
-      863,  864,  865,  867,  868,  869,  870,  871,  873,  874,
-      875,  876,  877,  878,  880,  882,  883,  884,  885,  886,
-      887,  888,  889,  890,  891,  892,  893,  894,  895,  899,
-      900,  901,  903,  904,  905,  906,  907,  908,  909,  910,
-      911,  912,  914,  915,  916,  917,  918,  919,  920,  921,
-      922,  923,  924,  927,  928,  929,  930,  931,  932,  933,
-      934,  935,  936,  937,  938,  939,  940,  941,  942,  943,
-      944,  945,  946,  947,  948,  949,  951,  952,  953,  954,
-      955,  957,  958,  960,  961,  962,  963,  964,  965,  967,
-      968,  969,  970,  971,  972,  973,  974,  976,  977,  980,
-
-      981,  680,  981,  982,  679,  982,  983,  677,  983,  984,
-      676,  984,  675,  674,  673,  672,  669,  668,  667,  666,
-      665,  664,  663,  662,  661,  660,  659,  658,  657,  656,
-      655,  654,  653,  652,  651,  650,  649,  648,  647,  645,
-      644,  642,  641,  640,  639,  638,  636,  635,  634,  633,
-      632,  631,  630,  628,  627,  625,  624,  622,  621,  620,
-      619,  618,  617,  615,  614,  613,  611,  610,  609,  608,
-      606,  605,  604,  603,  602,  601,  600,  599,  598,  596,
-      595,  593,  592,  591,  590,  589,  588,  584,  583,  582,
-      580,  578,  577,  576,  575,  574,  573,  572,  569,  567,
-
-      566,  565,  564,  563,  562,  561,  559,  557,  554,  553,
-      551,  550,  549,  548,  547,  546,  545,  544,  543,  541,
-      540,  538,  537,  536,  535,  534,  531,  530,  529,  527,
-      526,  525,  524,  523,  522,  520,  518,  517,  516,  515,
-      514,  511,  510,  509,  508,  507,  506,  505,  502,  501,
-      499,  498,  497,  496,  495,  494,  492,  490,  489,  488,
-      487,  486,  485,  484,  482,  481,  480,  477,  474,  473,
-      472,  469,  468,  467,  465,  463,  461,  460,  458,  457,
-      455,  454,  453,  452,  448,  447,  445,  444,  443,  441,
-      440,  439,  438,  437,  435,  434,  433,  432,  431,  430,
-
-      429,  428,  427,  426,  425,  424,  423,  422,  420,  419,
-      418,  417,  416,  415,  414,  413,  410,  409,  408,  407,
-      406,  405,  404,  401,  400,  399,  398,  396,  394,  393,
-      392,  391,  390,  388,  387,  386,  385,  383,  381,  379,
-      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
-      368,  367,  366,  365,  364,  363,  362,  361,  360,  358,
-      357,  355,  353,  352,  350,  349,  348,  347,  346,  345,
-      344,  343,  341,  339,  338,  337,  335,  334,  333,  332,
-      331,  330,  329,  328,  327,  326,  323,  322,  321,  320,
-      319,  317,  316,  315,  314,  313,  312,  311,  309,  308,
-
-      307,  306,  305,  304,  302,  301,  300,  299,  298,  297,
-      295,  289,  288,  287,  286,  285,  284,  282,  281,  279,
-      278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
-      268,  267,  266,  265,  264,  263,  262,  261,  260,  259,
-      258,  257,  256,  255,  254,  253,  252,  251,  250,  249,
-      248,  247,  246,  245,  244,  243,  242,  241,  240,  239,
-      238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
-      228,  227,  226,  225,  223,  222,  221,  220,  219,  218,
-      216,  215,  214,  212,  211,  210,  209,  208,  207,  206,
-      205,  204,  203,  202,  201,  200,  199,  198,  197,  196,
-
-      195,  194,  193,  192,  191,  190,  189,  188,  187,  186,
-      185,  184,  182,  181,  180,  179,  178,  167,  166,  165,
-      164,  163,  162,  161,  160,  159,  158,  157,  156,  155,
-      149,  147,  144,  142,  140,  139,  138,  137,  136,  135,
-      134,  129,  128,  127,  126,  123,  121,  120,  119,  118,
-      117,  116,  115,  114,  113,  112,  110,  108,  107,  106,
-      105,  104,  103,  102,  101,  100,   98,   97,   96,   95,
-       94,   93,   92,   90,   89,   88,   87,   86,   85,   84,
-       83,   82,   81,   79,   78,   77,   76,   75,   73,   72,
-       71,   70,   69,   68,   67,   66,   63,   62,   61,   60,
-
-       52,   50,   49,   47,   45,   44,    3,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979,  979,  979,  979,  979,  979,  979,
-      979,  979,  979,  979
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    4,    5,    7,    8,   11,   10,
+        7,    9,    9,    9,    9,    9,   12,   13,  706,   14,
+       12,    4,    5,    9,    8,   11,   18,    7,   10,   13,
+
+       14,   16,   19,   13,   14,   16,   32,   12,   20,   81,
+        9,  707,   20,   18,   16,   10,   96,   96,   16,   19,
+       13,   14,   15,   32,   15,   15,   15,   15,   15,   20,
+       21,  458,  458,   81,   21,   16,   15,   68,   22,   15,
+       16,   17,   22,   17,   17,   17,   17,   17,   23,   23,
+       33,   21,   15,   15,   15,   17,   24,   17,   28,   22,
+       28,   26,   68,   26,   87,   23,   28,   33,   23,   26,
+      130,   24,   17,   24,  145,  703,  130,   28,  146,   24,
+       26,   87,  146,   17,   28,   33,  145,   23,   23,   23,
+      703,   26,   24,   28,   28,   26,   28,  708,   24,   25,
+
+       29,   25,   29,   27,   27,   26,   30,   25,   30,   31,
+       25,   36,   27,   25,   27,  709,  171,   29,   25,  169,
+       27,  710,   25,   30,   31,   25,   31,  169,   36,   25,
+      171,  714,   25,   25,   34,  235,   27,   25,   27,   39,
+       34,   35,   42,   35,   31,  113,  454,   37,   27,  716,
+      113,   34,   30,   36,  113,  454,   39,   44,   34,   42,
+       35,   37,   34,   38,   37,  235,   34,   39,   46,  717,
+       34,   35,   38,   47,   44,   39,   37,   38,  718,   35,
+       38,   39,   42,  719,   37,   46,   37,   38,   45,   44,
+       47,  301,   46,  301,   38,   38,   38,  461,   43,   38,
+
+       43,  721,   38,   40,   49,   45,  722,   43,   40,   47,
+      461,   43,   40,   43,   43,   43,   40,  206,   40,   40,
+       40,   49,   50,   45,  500,   52,  723,   40,  500,   40,
+       43,   48,  206,  206,   43,   40,  724,  725,   41,   50,
+       40,   40,   52,   51,  726,   40,   49,   41,   48,   40,
+       41,   41,   41,   41,   41,   41,  727,   53,   50,   48,
+       51,   53,   41,  728,  730,  731,  102,   48,  102,  102,
+      699,   51,   52,  732,  699,  102,  733,   41,   53,   57,
+       57,   57,   57,   57,   65,   65,   65,   65,   65,   74,
+       74,   74,   74,   74,  735,  736,  737,  738,   65,  739,
+
+      740,  741,   75,   74,   75,   75,   75,   75,   75,   76,
+       76,  742,  743,   76,   76,   76,   76,   76,   75,  199,
+      199,  199,  199,  199,   65,  744,  192,  192,  745,   74,
+      192,  192,  192,  192,  192,  197,  197,  197,  197,  197,
+      746,  747,  748,  749,   75,  751,  198,  198,  753,  197,
+      198,  198,  198,  198,  198,  200,  200,  200,  200,  200,
+      298,  755,  756,  757,  298,  308,  308,  308,  308,  308,
+      758,  298,  759,  760,  761,  197,  309,  309,  309,  309,
+      309,  310,  310,  762,  764,  310,  310,  310,  310,  310,
+      311,  311,  311,  311,  311,  312,  312,  312,  312,  312,
+
+      424,  424,  424,  424,  424,  425,  425,  425,  425,  425,
+      462,  765,  766,  767,  768,  769,  771,  773,  774,  775,
+      462,  776,  777,  778,  462,  772,  772,  779,  772,  772,
+      772,  772,  772,  772,  772,  772,  772,  772,  780,  781,
+      782,  783,  784,  772,  772,  772,  772,  772,  785,  786,
+      787,  789,  790,  791,  792,  793,  795,  796,  797,  799,
+      803,  804,  806,  807,  808,  809,  811,  812,  813,  814,
+      815,  816,  772,  817,  818,  820,  821,  822,  823,  824,
+      825,  828,  831,  832,  833,  834,  835,  836,  837,  838,
+      839,  840,  841,  843,  845,  846,  847,  772,  772,  805,
+
+      805,  849,  805,  805,  805,  805,  805,  805,  805,  805,
+      805,  805,  850,  851,  852,  853,  854,  805,  805,  805,
+      805,  805,  855,  856,  858,  859,  860,  861,  862,  863,
+      864,  865,  866,  867,  868,  870,  872,  873,  874,  875,
+      876,  877,  878,  879,  880,  881,  805,  882,  883,  884,
+      885,  889,  890,  891,  893,  894,  895,  896,  897,  898,
+      899,  900,  901,  902,  904,  905,  906,  907,  908,  909,
+      910,  805,  805,  911,  912,  913,  914,  917,  918,  919,
+      920,  921,  922,  923,  924,  925,  926,  927,  928,  929,
+      930,  931,  932,  933,  934,  935,  936,  937,  938,  939,
+
+      941,  942,  943,  944,  945,  947,  948,  950,  951,  952,
+      953,  954,  955,  957,  958,  959,  960,  961,  962,  963,
+      964,  966,  967,  970,  971,  705,  971,  972,  704,  972,
+      973,  701,  973,  974,  700,  974,  698,  697,  696,  693,
+      692,  691,  690,  689,  687,  686,  685,  683,  682,  681,
+      680,  679,  678,  677,  676,  675,  674,  673,  670,  669,
+      668,  667,  666,  665,  664,  663,  662,  661,  660,  659,
+      658,  657,  656,  655,  654,  653,  652,  651,  650,  649,
+      647,  646,  644,  643,  642,  641,  640,  638,  637,  636,
+      635,  634,  633,  631,  630,  628,  627,  626,  625,  624,
+
+      623,  622,  620,  619,  618,  616,  615,  614,  613,  611,
+      610,  609,  608,  607,  606,  605,  604,  603,  601,  599,
+      598,  597,  596,  595,  594,  590,  589,  588,  586,  584,
+      583,  582,  581,  580,  579,  578,  575,  573,  572,  570,
+      569,  568,  567,  565,  563,  560,  559,  557,  556,  555,
+      554,  553,  552,  551,  549,  548,  546,  545,  544,  543,
+      542,  539,  538,  537,  535,  534,  533,  532,  531,  530,
+      528,  526,  525,  524,  523,  520,  519,  518,  517,  516,
+      515,  514,  511,  510,  508,  507,  506,  505,  504,  503,
+      501,  499,  498,  497,  496,  495,  494,  493,  491,  490,
+
+      489,  488,  484,  483,  482,  479,  478,  477,  475,  473,
+      471,  470,  468,  467,  465,  464,  460,  459,  457,  456,
+      455,  453,  452,  451,  450,  449,  447,  446,  445,  444,
+      443,  442,  441,  440,  439,  438,  437,  436,  435,  434,
+      432,  431,  430,  429,  428,  427,  426,  423,  422,  421,
+      420,  419,  418,  417,  414,  413,  412,  411,  409,  407,
+      406,  405,  404,  403,  401,  400,  399,  398,  396,  394,
+      392,  391,  390,  389,  388,  387,  386,  385,  384,  383,
+      382,  381,  380,  379,  378,  377,  376,  375,  374,  373,
+      372,  370,  368,  367,  365,  364,  363,  362,  361,  360,
+
+      358,  356,  355,  354,  352,  351,  350,  349,  348,  347,
+      346,  345,  344,  343,  340,  339,  338,  337,  336,  334,
+      333,  332,  331,  330,  329,  328,  326,  325,  324,  323,
+      322,  320,  319,  318,  317,  316,  315,  313,  307,  306,
+      305,  304,  303,  302,  300,  299,  297,  296,  295,  294,
+      293,  292,  291,  290,  289,  288,  287,  286,  285,  284,
+      283,  282,  281,  280,  279,  278,  277,  276,  275,  274,
+      273,  272,  271,  270,  269,  268,  267,  266,  265,  264,
+      263,  262,  261,  260,  259,  258,  257,  256,  255,  254,
+      253,  252,  251,  250,  249,  248,  247,  245,  244,  243,
+
+      242,  241,  240,  238,  237,  236,  234,  233,  232,  231,
+      230,  229,  228,  227,  226,  225,  224,  223,  222,  221,
+      220,  219,  218,  217,  216,  215,  214,  213,  212,  211,
+      210,  209,  208,  207,  205,  204,  203,  202,  201,  190,
+      189,  186,  185,  184,  183,  182,  181,  180,  179,  178,
+      177,  176,  170,  168,  165,  163,  161,  160,  159,  158,
+      157,  156,  155,  150,  149,  148,  147,  144,  142,  141,
+      140,  139,  138,  137,  136,  135,  134,  133,  132,  131,
+      129,  128,  127,  126,  125,  124,  123,  122,  121,  120,
+      119,  118,  117,  116,  115,  114,  112,  111,  110,  109,
+
+      108,  107,  106,  105,  104,  103,  101,  100,   99,   98,
+       97,   95,   94,   93,   92,   91,   90,   89,   88,   86,
+       85,   84,   83,   82,   69,   67,   66,   64,   55,   54,
+        3,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+      969,  969,  969,  969,  969,  969,  969,  969,  969,  969,
+
+      969,  969,  969,  969,  969,  969
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1006,7 +1012,7 @@ void   skipline(void);
 	     && ferror( yyin ) )					\
      YY_FATAL_ERROR( "input in flex scanner failed" );
 
-#line 1010 "Gmsh.yy.cpp"
+#line 1016 "Gmsh.yy.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1160,7 +1166,7 @@ YY_DECL
 #line 60 "Gmsh.l"
 
 
-#line 1164 "Gmsh.yy.cpp"
+#line 1170 "Gmsh.yy.cpp"
 
 	if ( yy_init )
 		{
@@ -1211,13 +1217,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 980 )
+				if ( yy_current_state >= 970 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 1208 );
+		while ( yy_base[yy_current_state] != 1232 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -1291,775 +1297,830 @@ return tAFFECT;
 case 10:
 YY_RULE_SETUP
 #line 72 "Gmsh.l"
-return tDOTS;
+return tAFFECTPLUS ;
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 75 "Gmsh.l"
-return tAcos ;
+#line 73 "Gmsh.l"
+return tAFFECTMINUS ;
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 76 "Gmsh.l"
-return tAcos ;
+#line 74 "Gmsh.l"
+return tAFFECTTIMES ;
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 77 "Gmsh.l"
-return tAsin;
+#line 75 "Gmsh.l"
+return tAFFECTDIVIDE ;
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 78 "Gmsh.l"
-return tAsin;
+#line 76 "Gmsh.l"
+return tDOTS;
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 79 "Gmsh.l"
-return tAtan ;
+#line 77 "Gmsh.l"
+return tDOTS ;
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 80 "Gmsh.l"
-return tAtan ;
+#line 78 "Gmsh.l"
+return tCROSSPRODUCT ;
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 81 "Gmsh.l"
-return tAtan2 ;
+#line 79 "Gmsh.l"
+return tOR ;
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 82 "Gmsh.l"
-return tAtan2 ;
+#line 80 "Gmsh.l"
+return tAND ;
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 83 "Gmsh.l"
-return tAssociation;
+#line 81 "Gmsh.l"
+return tPLUSPLUS ;
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 84 "Gmsh.l"
-return tAttractor;
+#line 82 "Gmsh.l"
+return tMINUSMINUS ;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 86 "Gmsh.l"
-return tBump;
+#line 83 "Gmsh.l"
+return tEQUAL ;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 87 "Gmsh.l"
-return tBSpline;
+#line 84 "Gmsh.l"
+return tNOTEQUAL ;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 88 "Gmsh.l"
-return tBounds;
+#line 85 "Gmsh.l"
+return tAPPROXEQUAL ;
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 90 "Gmsh.l"
-return tCeil ;
+#line 86 "Gmsh.l"
+return tLESSOREQUAL ;
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 91 "Gmsh.l"
-return tCosh ;
+#line 87 "Gmsh.l"
+return tGREATEROREQUAL ;
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 92 "Gmsh.l"
-return tCos ;
+#line 89 "Gmsh.l"
+return tAcos ;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 93 "Gmsh.l"
-return tCharacteristic;
+#line 90 "Gmsh.l"
+return tAcos ;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 94 "Gmsh.l"
-return tCircle;
+#line 91 "Gmsh.l"
+return tAsin;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 95 "Gmsh.l"
-return tCoherence;
+#line 92 "Gmsh.l"
+return tAsin;
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 96 "Gmsh.l"
-return tComplex;
+#line 93 "Gmsh.l"
+return tAtan ;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 97 "Gmsh.l"
-return tColor;
+#line 94 "Gmsh.l"
+return tAtan ;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 98 "Gmsh.l"
-return tSpline;
+#line 95 "Gmsh.l"
+return tAtan2 ;
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 100 "Gmsh.l"
-return tDelete;
+#line 96 "Gmsh.l"
+return tAtan2 ;
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 101 "Gmsh.l"
-return tDilate;
+#line 97 "Gmsh.l"
+return tAttractor;
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 102 "Gmsh.l"
-return tDuplicata;
+#line 99 "Gmsh.l"
+return tBump;
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 104 "Gmsh.l"
-return tExp ;
+#line 100 "Gmsh.l"
+return tBSpline;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 105 "Gmsh.l"
-return tEllipsis;
+#line 101 "Gmsh.l"
+return tBounds;
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 106 "Gmsh.l"
-return tExtrude;
+#line 103 "Gmsh.l"
+return tCeil ;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 107 "Gmsh.l"
-return tElliptic;
+#line 104 "Gmsh.l"
+return tCosh ;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 108 "Gmsh.l"
-return tELLIPSE;
+#line 105 "Gmsh.l"
+return tCos ;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 110 "Gmsh.l"
-return tFabs ;
+#line 106 "Gmsh.l"
+return tCharacteristic;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 111 "Gmsh.l"
-return tFloor ;
+#line 107 "Gmsh.l"
+return tCircle;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 112 "Gmsh.l"
-return tFmod ;
+#line 108 "Gmsh.l"
+return tCoherence;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 114 "Gmsh.l"
-return tGeneral;
+#line 109 "Gmsh.l"
+return tComplex;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 115 "Gmsh.l"
-return tGeometry;
+#line 110 "Gmsh.l"
+return tColor;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 117 "Gmsh.l"
-return tHypot ;
+#line 111 "Gmsh.l"
+return tSpline;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 119 "Gmsh.l"
-return tInclude;
+#line 113 "Gmsh.l"
+return tDelete;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 121 "Gmsh.l"
-return tKnots;
+#line 114 "Gmsh.l"
+return tDilate;
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 123 "Gmsh.l"
-return tLength;
+#line 115 "Gmsh.l"
+return tDuplicata;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 124 "Gmsh.l"
-return tLine;
+#line 117 "Gmsh.l"
+return tExp ;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 125 "Gmsh.l"
-return tLoop;
+#line 118 "Gmsh.l"
+return tEllipsis;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 126 "Gmsh.l"
-return tLog ;
+#line 119 "Gmsh.l"
+return tExtrude;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 127 "Gmsh.l"
-return tLog10 ;
+#line 120 "Gmsh.l"
+return tElliptic;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 128 "Gmsh.l"
-return tLayers;
+#line 121 "Gmsh.l"
+return tELLIPSE;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 130 "Gmsh.l"
-return tMesh;
+#line 123 "Gmsh.l"
+return tFabs ;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 131 "Gmsh.l"
-return tModulo ;
+#line 124 "Gmsh.l"
+return tFloor ;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 133 "Gmsh.l"
-return tNurbs;
+#line 125 "Gmsh.l"
+return tFmod ;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 135 "Gmsh.l"
-return tOffset;
+#line 127 "Gmsh.l"
+return tHypot ;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 136 "Gmsh.l"
-return tOrder;
+#line 129 "Gmsh.l"
+return tInclude;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 137 "Gmsh.l"
-return tOptions;
+#line 131 "Gmsh.l"
+return tKnots;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 139 "Gmsh.l"
-return tPhysical;
+#line 133 "Gmsh.l"
+return tLength;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 140 "Gmsh.l"
-return tPi;
+#line 134 "Gmsh.l"
+return tLine;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 141 "Gmsh.l"
-return tPlane;
+#line 135 "Gmsh.l"
+return tLoop;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 142 "Gmsh.l"
-return tPoint;
+#line 136 "Gmsh.l"
+return tLog ;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 143 "Gmsh.l"
-return tProgression;
+#line 137 "Gmsh.l"
+return tLog10 ;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 144 "Gmsh.l"
-return tProgression;
+#line 138 "Gmsh.l"
+return tLayers;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 145 "Gmsh.l"
-return tParametric;
+#line 140 "Gmsh.l"
+return tModulo ;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 146 "Gmsh.l"
-return tPostProcessing;
+#line 142 "Gmsh.l"
+return tNurbs;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 147 "Gmsh.l"
-return tPrint;
+#line 144 "Gmsh.l"
+return tOffset;
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 149 "Gmsh.l"
-return tRecombine;
+#line 145 "Gmsh.l"
+return tOrder;
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 150 "Gmsh.l"
-return tRotate;
+#line 146 "Gmsh.l"
+return tOptions;
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 151 "Gmsh.l"
-return tRuled;
+#line 148 "Gmsh.l"
+return tPhysical;
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 153 "Gmsh.l"
-return tSqrt ;
+#line 149 "Gmsh.l"
+return tPi;
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 154 "Gmsh.l"
-return tSin ;
+#line 150 "Gmsh.l"
+return tPlane;
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 155 "Gmsh.l"
-return tSinh ;
+#line 151 "Gmsh.l"
+return tPoint;
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 156 "Gmsh.l"
-return tPhysical;
+#line 152 "Gmsh.l"
+return tProgression;
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 157 "Gmsh.l"
-return tSpline;
+#line 153 "Gmsh.l"
+return tProgression;
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 158 "Gmsh.l"
-return tSurface;
+#line 154 "Gmsh.l"
+return tParametric;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 159 "Gmsh.l"
-return tSymmetry;
+#line 155 "Gmsh.l"
+return tPrintf ;
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 161 "Gmsh.l"
-return tTransfinite;
+#line 157 "Gmsh.l"
+return tRecombine;
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 162 "Gmsh.l"
-return tTranslate;
+#line 158 "Gmsh.l"
+return tRotate;
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 163 "Gmsh.l"
-return tTanh ;
+#line 159 "Gmsh.l"
+return tRuled;
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 164 "Gmsh.l"
-return tTan;
+#line 161 "Gmsh.l"
+return tSqrt ;
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 165 "Gmsh.l"
-return tTrimmed;
+#line 162 "Gmsh.l"
+return tSin ;
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 167 "Gmsh.l"
-return tUsing;
+#line 163 "Gmsh.l"
+return tSinh ;
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 169 "Gmsh.l"
-return tView;
+#line 164 "Gmsh.l"
+return tPhysical;
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 170 "Gmsh.l"
-return tVolume;
+#line 165 "Gmsh.l"
+return tSpline;
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 172 "Gmsh.l"
-return tWith;
+#line 166 "Gmsh.l"
+return tSurface;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 174 "Gmsh.l"
-return tFor;
+#line 167 "Gmsh.l"
+return tSymmetry;
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 175 "Gmsh.l"
-return tEndFor;
+#line 168 "Gmsh.l"
+return tScript;
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 176 "Gmsh.l"
-return tScript;
+#line 170 "Gmsh.l"
+return tTransfinite;
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 177 "Gmsh.l"
-return tExit;
+#line 171 "Gmsh.l"
+return tTranslate;
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 178 "Gmsh.l"
-return tMerge;
+#line 172 "Gmsh.l"
+return tTanh ;
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 180 "Gmsh.l"
-return tScalarTetrahedron;
+#line 173 "Gmsh.l"
+return tTan;
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 181 "Gmsh.l"
-return tVectorTetrahedron;
+#line 174 "Gmsh.l"
+return tTrimmed;
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 182 "Gmsh.l"
-return tTensorTetrahedron;
+#line 176 "Gmsh.l"
+return tUsing;
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 183 "Gmsh.l"
-return tScalarTriangle;
+#line 178 "Gmsh.l"
+return tView;
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 184 "Gmsh.l"
-return tVectorTriangle;
+#line 179 "Gmsh.l"
+return tVolume;
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 185 "Gmsh.l"
-return tTensorTriangle;
+#line 181 "Gmsh.l"
+return tWith;
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 186 "Gmsh.l"
-return tScalarLine;
+#line 183 "Gmsh.l"
+return tFor;
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 187 "Gmsh.l"
-return tVectorLine;
+#line 184 "Gmsh.l"
+return tEndFor;
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 188 "Gmsh.l"
-return tTensorLine;
+#line 185 "Gmsh.l"
+return tScript;
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 189 "Gmsh.l"
-return tScalarPoint;
+#line 186 "Gmsh.l"
+return tExit;
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 190 "Gmsh.l"
-return tVectorPoint;
+#line 187 "Gmsh.l"
+return tMerge;
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 191 "Gmsh.l"
-return tTensorPoint;
+#line 189 "Gmsh.l"
+return tScalarTetrahedron;
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 194 "Gmsh.l"
-return tCARTESIAN_POINT;
+#line 190 "Gmsh.l"
+return tVectorTetrahedron;
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 195 "Gmsh.l"
-return tB_SPLINE_SURFACE_WITH_KNOTS;
+#line 191 "Gmsh.l"
+return tTensorTetrahedron;
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 196 "Gmsh.l"
-return tB_SPLINE_CURVE_WITH_KNOTS;
+#line 192 "Gmsh.l"
+return tScalarTriangle;
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 197 "Gmsh.l"
-return tUNSPECIFIED;
+#line 193 "Gmsh.l"
+return tVectorTriangle;
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 198 "Gmsh.l"
-return tCONTINUOUS;
+#line 194 "Gmsh.l"
+return tTensorTriangle;
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 199 "Gmsh.l"
-return tFALSE;
+#line 195 "Gmsh.l"
+return tScalarLine;
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 200 "Gmsh.l"
-return tTRUE;
+#line 196 "Gmsh.l"
+return tVectorLine;
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 201 "Gmsh.l"
-return tU;
+#line 197 "Gmsh.l"
+return tTensorLine;
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 202 "Gmsh.l"
-return tV;
+#line 198 "Gmsh.l"
+return tScalarPoint;
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 203 "Gmsh.l"
-return tORIENTED_EDGE;
+#line 199 "Gmsh.l"
+return tVectorPoint;
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 204 "Gmsh.l"
-return tEDGE_CURVE;
+#line 200 "Gmsh.l"
+return tTensorPoint;
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 205 "Gmsh.l"
-return tEDGE_LOOP;
+#line 203 "Gmsh.l"
+return tCARTESIAN_POINT;
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 206 "Gmsh.l"
-return tVERTEX_POINT;
+#line 204 "Gmsh.l"
+return tB_SPLINE_SURFACE_WITH_KNOTS;
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 207 "Gmsh.l"
-return tFACE_OUTER_BOUND;
+#line 205 "Gmsh.l"
+return tB_SPLINE_CURVE_WITH_KNOTS;
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 208 "Gmsh.l"
-return tFACE_BOUND;
+#line 206 "Gmsh.l"
+return tUNSPECIFIED;
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 209 "Gmsh.l"
-return tADVANCED_FACE;
+#line 207 "Gmsh.l"
+return tCONTINUOUS;
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 210 "Gmsh.l"
-return tLine;
+#line 208 "Gmsh.l"
+return tFALSE;
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 211 "Gmsh.l"
-return tVECTOR;
+#line 209 "Gmsh.l"
+return tTRUE;
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 212 "Gmsh.l"
-return tDIRECTION;
+#line 210 "Gmsh.l"
+return tU;
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 213 "Gmsh.l"
-return tAXIS2_PLACEMENT_3D;
+#line 211 "Gmsh.l"
+return tV;
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 214 "Gmsh.l"
-return tPLANE;
+#line 212 "Gmsh.l"
+return tORIENTED_EDGE;
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 215 "Gmsh.l"
-return tHEADER;
+#line 213 "Gmsh.l"
+return tEDGE_CURVE;
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 216 "Gmsh.l"
-return tDATA;
+#line 214 "Gmsh.l"
+return tEDGE_LOOP;
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 217 "Gmsh.l"
-return tFILE_SCHEMA;
+#line 215 "Gmsh.l"
+return tVERTEX_POINT;
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 218 "Gmsh.l"
-return tFILE_NAME;
+#line 216 "Gmsh.l"
+return tFACE_OUTER_BOUND;
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 219 "Gmsh.l"
-return tFILE_DESCRIPTION;
+#line 217 "Gmsh.l"
+return tFACE_BOUND;
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 220 "Gmsh.l"
-return tISO;
+#line 218 "Gmsh.l"
+return tADVANCED_FACE;
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 221 "Gmsh.l"
-return tENDISO;
+#line 219 "Gmsh.l"
+return tLine;
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 222 "Gmsh.l"
-return tENDSEC;
+#line 220 "Gmsh.l"
+return tVECTOR;
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 223 "Gmsh.l"
-return tCLOSED_SHELL;
+#line 221 "Gmsh.l"
+return tDIRECTION;
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 224 "Gmsh.l"
-return  tADVANCED_BREP_SHAPE_REPRESENTATION;
+#line 222 "Gmsh.l"
+return tAXIS2_PLACEMENT_3D;
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 225 "Gmsh.l"
-return tMANIFOLD_SOLID_BREP;
+#line 223 "Gmsh.l"
+return tPLANE;
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 226 "Gmsh.l"
-return tCYLINDRICAL_SURFACE;
+#line 224 "Gmsh.l"
+return tHEADER;
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 227 "Gmsh.l"
-return tCONICAL_SURFACE;
+#line 225 "Gmsh.l"
+return tDATA;
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 228 "Gmsh.l"
-return tTOROIDAL_SURFACE;
+#line 226 "Gmsh.l"
+return tFILE_SCHEMA;
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 229 "Gmsh.l"
-return tCIRCLE;
+#line 227 "Gmsh.l"
+return tFILE_NAME;
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 230 "Gmsh.l"
-return tTRIMMED_CURVE;
+#line 228 "Gmsh.l"
+return tFILE_DESCRIPTION;
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 231 "Gmsh.l"
-return tGEOMETRIC_SET;
+#line 229 "Gmsh.l"
+return tISO;
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 232 "Gmsh.l"
-return tCOMPOSITE_CURVE_SEGMENT;
+#line 230 "Gmsh.l"
+return tENDISO;
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 233 "Gmsh.l"
-return tCOMPOSITE_CURVE;
+#line 231 "Gmsh.l"
+return tENDSEC;
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 234 "Gmsh.l"
-return tPRODUCT_DEFINITION;
+#line 232 "Gmsh.l"
+return tCLOSED_SHELL;
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 235 "Gmsh.l"
-return tPRODUCT_DEFINITION_SHAPE;
+#line 233 "Gmsh.l"
+return  tADVANCED_BREP_SHAPE_REPRESENTATION;
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 236 "Gmsh.l"
-return tSHAPE_DEFINITION_REPRESENTATION;
+#line 234 "Gmsh.l"
+return tMANIFOLD_SOLID_BREP;
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 238 "Gmsh.l"
-return tVertex;
+#line 235 "Gmsh.l"
+return tCYLINDRICAL_SURFACE;
 	YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 239 "Gmsh.l"
-return tFacet;
+#line 236 "Gmsh.l"
+return tCONICAL_SURFACE;
 	YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 240 "Gmsh.l"
-return tNormal;
+#line 237 "Gmsh.l"
+return tTOROIDAL_SURFACE;
 	YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 241 "Gmsh.l"
-return tOuter;
+#line 238 "Gmsh.l"
+return tCIRCLE;
 	YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 242 "Gmsh.l"
-return tLoopSTL;
+#line 239 "Gmsh.l"
+return tTRIMMED_CURVE;
 	YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 243 "Gmsh.l"
-return tEndLoop;
+#line 240 "Gmsh.l"
+return tGEOMETRIC_SET;
 	YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 244 "Gmsh.l"
-return tEndFacet;
+#line 241 "Gmsh.l"
+return tCOMPOSITE_CURVE_SEGMENT;
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 245 "Gmsh.l"
-{skipline();return tEndSolid;}
+#line 242 "Gmsh.l"
+return tCOMPOSITE_CURVE;
 	YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 246 "Gmsh.l"
-{skipline();return tSolid;}
+#line 243 "Gmsh.l"
+return tPRODUCT_DEFINITION;
 	YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 248 "Gmsh.l"
-{yylval.d = (double)atoi((char*)(yytext+1)); return tDOUBLE;}
+#line 244 "Gmsh.l"
+return tPRODUCT_DEFINITION_SHAPE;
 	YY_BREAK
 case 159:
-#line 251 "Gmsh.l"
+YY_RULE_SETUP
+#line 245 "Gmsh.l"
+return tSHAPE_DEFINITION_REPRESENTATION;
+	YY_BREAK
 case 160:
-#line 252 "Gmsh.l"
+YY_RULE_SETUP
+#line 247 "Gmsh.l"
+return tVertex;
+	YY_BREAK
 case 161:
-#line 253 "Gmsh.l"
+YY_RULE_SETUP
+#line 248 "Gmsh.l"
+return tFacet;
+	YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 253 "Gmsh.l"
-{yylval.d = atof((char *)yytext); return tDOUBLE;}
+#line 249 "Gmsh.l"
+return tNormal;
 	YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 255 "Gmsh.l"
-{yylval.c = strsave((char*)yytext); return tSTRING;}
+#line 250 "Gmsh.l"
+return tOuter;
 	YY_BREAK
 case 164:
 YY_RULE_SETUP
+#line 251 "Gmsh.l"
+return tLoopSTL;
+	YY_BREAK
+case 165:
+YY_RULE_SETUP
+#line 252 "Gmsh.l"
+return tEndLoop;
+	YY_BREAK
+case 166:
+YY_RULE_SETUP
+#line 253 "Gmsh.l"
+return tEndFacet;
+	YY_BREAK
+case 167:
+YY_RULE_SETUP
+#line 254 "Gmsh.l"
+{skipline();return tEndSolid;}
+	YY_BREAK
+case 168:
+YY_RULE_SETUP
+#line 255 "Gmsh.l"
+{skipline();return tSolid;}
+	YY_BREAK
+case 169:
+YY_RULE_SETUP
 #line 257 "Gmsh.l"
+{yylval.d = (double)atoi((char*)(yytext+1)); return tDOUBLE;}
+	YY_BREAK
+case 170:
+#line 260 "Gmsh.l"
+case 171:
+#line 261 "Gmsh.l"
+case 172:
+#line 262 "Gmsh.l"
+case 173:
+YY_RULE_SETUP
+#line 262 "Gmsh.l"
+{yylval.d = atof((char *)yytext); return tDOUBLE;}
+	YY_BREAK
+case 174:
+YY_RULE_SETUP
+#line 264 "Gmsh.l"
+{yylval.c = strsave((char*)yytext); return tSTRING;}
+	YY_BREAK
+case 175:
+YY_RULE_SETUP
+#line 266 "Gmsh.l"
 return yytext[0];
 	YY_BREAK
-case 165:
+case 176:
 YY_RULE_SETUP
-#line 259 "Gmsh.l"
+#line 268 "Gmsh.l"
 ECHO;
 	YY_BREAK
-#line 2063 "Gmsh.yy.cpp"
+#line 2124 "Gmsh.yy.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -2351,7 +2412,7 @@ static yy_state_type yy_get_previous_state()
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 980 )
+			if ( yy_current_state >= 970 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2386,11 +2447,11 @@ yy_state_type yy_current_state;
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 980 )
+		if ( yy_current_state >= 970 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 979);
+	yy_is_jam = (yy_current_state == 969);
 
 	return yy_is_jam ? 0 : yy_current_state;
 	}
@@ -2945,7 +3006,7 @@ int main()
 	return 0;
 	}
 #endif
-#line 259 "Gmsh.l"
+#line 268 "Gmsh.l"
 
 
 #undef yywrap