[GRASS-SVN] r32675 - in grass/trunk: db/drivers/dbf db/drivers/mysql db/drivers/odbc db/drivers/ogr db/drivers/postgres display/d.colors display/d.histogram display/d.measure display/d.profile display/d.rast display/d.rast.arrow display/d.rast.num display/d.title display/d.what.vect display/d.zoom general/g.mapsets general/g.mkfontcap general/g.proj general/manage general/manage/cmd general/manage/lib imagery/i.cca imagery/i.class imagery/i.fft imagery/i.ifft imagery/i.ortho.photo/photo.camera imagery/i.ortho.photo/photo.elev imagery/i.ortho.photo/photo.init imagery/i.zc include lib/db/sqlp lib/dspf lib/proj ps/ps.map raster/r.cost raster/r.digit raster/r.drain raster/r.fill.dir raster/r.flow raster/r.in.gridatb raster/r.le/r.le.patch raster/r.los raster/r.mfilter raster/r.out.gridatb raster/r.out.vtk raster/r.param.scale raster/r.random.cells raster/r.random.surface raster/r.recode raster/r.resamp.rst raster/r.statistics raster/r.sunmask raster/r.surf.contour raster/r.surf.fractal raster/r.surf.idw raster/r.to.vect raster/r.topidx raster/r.topmodel raster/r.univar2 raster/r.walk raster/r.water.outlet raster/r.watershed/ram raster/r.watershed/seg raster/wildfire/r.spreadpath raster3d/r3.mkdspf raster3d/r3.out.vtk raster3d/r3.showdspf vector/v.build.polylines vector/v.digit vector/v.in.dwg vector/v.in.dxf vector/v.in.ogr vector/v.out.dxf vector/v.out.vtk vector/v.to.db vector/v.transform vector/v.vol.rst vector/v.voronoi visualization/nviz/src visualization/xganim

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Aug 11 05:29:52 EDT 2008


Author: glynn
Date: 2008-08-11 05:29:51 -0400 (Mon, 11 Aug 2008)
New Revision: 32675

Added:
   grass/trunk/lib/dspf/cell_table.c
Removed:
   grass/trunk/lib/dspf/cell_table.h
   grass/trunk/raster3d/r3.showdspf/cell_table.h
Modified:
   grass/trunk/db/drivers/dbf/globals.h
   grass/trunk/db/drivers/dbf/main.c
   grass/trunk/db/drivers/dbf/main_debug.c
   grass/trunk/db/drivers/mysql/globals.h
   grass/trunk/db/drivers/mysql/main.c
   grass/trunk/db/drivers/odbc/globals.h
   grass/trunk/db/drivers/odbc/main.c
   grass/trunk/db/drivers/ogr/globals.h
   grass/trunk/db/drivers/ogr/main.c
   grass/trunk/db/drivers/postgres/globals.h
   grass/trunk/db/drivers/postgres/main.c
   grass/trunk/display/d.colors/externs.h
   grass/trunk/display/d.colors/set_sigs.c
   grass/trunk/display/d.histogram/dhist.h
   grass/trunk/display/d.histogram/main.c
   grass/trunk/display/d.histogram/options.h
   grass/trunk/display/d.measure/main.c
   grass/trunk/display/d.profile/main.c
   grass/trunk/display/d.profile/profile.h
   grass/trunk/display/d.rast.arrow/arrow.c
   grass/trunk/display/d.rast.num/number.c
   grass/trunk/display/d.rast/main.c
   grass/trunk/display/d.rast/mask.h
   grass/trunk/display/d.title/main.c
   grass/trunk/display/d.title/options.h
   grass/trunk/display/d.what.vect/main.c
   grass/trunk/display/d.what.vect/what.h
   grass/trunk/display/d.zoom/local_proto.h
   grass/trunk/display/d.zoom/main.c
   grass/trunk/general/g.mapsets/externs.h
   grass/trunk/general/g.mapsets/main_cmd.c
   grass/trunk/general/g.mapsets/main_inter.c
   grass/trunk/general/g.mkfontcap/local_proto.h
   grass/trunk/general/g.mkfontcap/main.c
   grass/trunk/general/g.proj/local_proto.h
   grass/trunk/general/g.proj/main.c
   grass/trunk/general/manage/cmd/copy.c
   grass/trunk/general/manage/cmd/list.c
   grass/trunk/general/manage/cmd/remove.c
   grass/trunk/general/manage/cmd/rename.c
   grass/trunk/general/manage/lib/read_list.c
   grass/trunk/general/manage/list.h
   grass/trunk/imagery/i.cca/main.c
   grass/trunk/imagery/i.class/globals.h
   grass/trunk/imagery/i.class/main.c
   grass/trunk/imagery/i.fft/fftmain.c
   grass/trunk/imagery/i.fft/globals.h
   grass/trunk/imagery/i.ifft/globals.h
   grass/trunk/imagery/i.ifft/ifftmain.c
   grass/trunk/imagery/i.ortho.photo/photo.camera/globals.h
   grass/trunk/imagery/i.ortho.photo/photo.camera/main.c
   grass/trunk/imagery/i.ortho.photo/photo.elev/main.c
   grass/trunk/imagery/i.ortho.photo/photo.init/globals.h
   grass/trunk/imagery/i.ortho.photo/photo.init/main.c
   grass/trunk/imagery/i.zc/main.c
   grass/trunk/include/sqlp.h
   grass/trunk/lib/db/sqlp/sql.c
   grass/trunk/lib/dspf/viz.h
   grass/trunk/lib/proj/get_proj.c
   grass/trunk/ps/ps.map/border.h
   grass/trunk/ps/ps.map/colortable.h
   grass/trunk/ps/ps.map/comment.h
   grass/trunk/ps/ps.map/decorate.h
   grass/trunk/ps/ps.map/group.h
   grass/trunk/ps/ps.map/header.h
   grass/trunk/ps/ps.map/labels.h
   grass/trunk/ps/ps.map/main.c
   grass/trunk/ps/ps.map/map_info.h
   grass/trunk/ps/ps.map/ps_info.h
   grass/trunk/ps/ps.map/vector.h
   grass/trunk/raster/r.cost/main.c
   grass/trunk/raster/r.cost/stash.h
   grass/trunk/raster/r.digit/main.c
   grass/trunk/raster/r.drain/tinf.c
   grass/trunk/raster/r.drain/tinf.h
   grass/trunk/raster/r.fill.dir/tinf.c
   grass/trunk/raster/r.fill.dir/tinf.h
   grass/trunk/raster/r.flow/calc.c
   grass/trunk/raster/r.flow/mem.h
   grass/trunk/raster/r.flow/r.flow.h
   grass/trunk/raster/r.in.gridatb/file_io.c
   grass/trunk/raster/r.in.gridatb/local_proto.h
   grass/trunk/raster/r.in.gridatb/main.c
   grass/trunk/raster/r.le/r.le.patch/main.c
   grass/trunk/raster/r.le/r.le.patch/patch.h
   grass/trunk/raster/r.los/cmd_line.h
   grass/trunk/raster/r.los/main.c
   grass/trunk/raster/r.mfilter/glob.h
   grass/trunk/raster/r.mfilter/main.c
   grass/trunk/raster/r.out.gridatb/local_proto.h
   grass/trunk/raster/r.out.gridatb/main.c
   grass/trunk/raster/r.out.vtk/globaldefs.h
   grass/trunk/raster/r.out.vtk/main.c
   grass/trunk/raster/r.out.vtk/parameters.h
   grass/trunk/raster/r.param.scale/main.c
   grass/trunk/raster/r.param.scale/param.h
   grass/trunk/raster/r.random.cells/gasdev.c
   grass/trunk/raster/r.random.cells/indep.c
   grass/trunk/raster/r.random.cells/init.c
   grass/trunk/raster/r.random.cells/main.c
   grass/trunk/raster/r.random.cells/random.c
   grass/trunk/raster/r.random.cells/ransurf.h
   grass/trunk/raster/r.random.surface/calcsd.c
   grass/trunk/raster/r.random.surface/calcsurf.c
   grass/trunk/raster/r.random.surface/cpfilter.c
   grass/trunk/raster/r.random.surface/dd.c
   grass/trunk/raster/r.random.surface/decay.c
   grass/trunk/raster/r.random.surface/digits.c
   grass/trunk/raster/r.random.surface/gasdev.c
   grass/trunk/raster/r.random.surface/gennorm.c
   grass/trunk/raster/r.random.surface/init.c
   grass/trunk/raster/r.random.surface/main.c
   grass/trunk/raster/r.random.surface/makebigf.c
   grass/trunk/raster/r.random.surface/makepp.c
   grass/trunk/raster/r.random.surface/random.c
   grass/trunk/raster/r.random.surface/ransurf.h
   grass/trunk/raster/r.random.surface/save.c
   grass/trunk/raster/r.random.surface/zero.c
   grass/trunk/raster/r.recode/global.h
   grass/trunk/raster/r.recode/main.c
   grass/trunk/raster/r.resamp.rst/main.c
   grass/trunk/raster/r.statistics/main.c
   grass/trunk/raster/r.statistics/method.h
   grass/trunk/raster/r.sunmask/global.h
   grass/trunk/raster/r.sunmask/main.c
   grass/trunk/raster/r.surf.contour/contour.h
   grass/trunk/raster/r.surf.contour/main.c
   grass/trunk/raster/r.surf.fractal/frac.h
   grass/trunk/raster/r.surf.fractal/main.c
   grass/trunk/raster/r.surf.idw/main.c
   grass/trunk/raster/r.surf.idw/main.h
   grass/trunk/raster/r.to.vect/global.h
   grass/trunk/raster/r.to.vect/main.c
   grass/trunk/raster/r.topidx/global.h
   grass/trunk/raster/r.topidx/main.c
   grass/trunk/raster/r.topmodel/file_io.c
   grass/trunk/raster/r.topmodel/global.h
   grass/trunk/raster/r.topmodel/main.c
   grass/trunk/raster/r.topmodel/misc.c
   grass/trunk/raster/r.univar2/globals.h
   grass/trunk/raster/r.univar2/r.univar_main.c
   grass/trunk/raster/r.univar2/r3.univar_main.c
   grass/trunk/raster/r.walk/main.c
   grass/trunk/raster/r.walk/stash.h
   grass/trunk/raster/r.water.outlet/basin.h
   grass/trunk/raster/r.water.outlet/main.c
   grass/trunk/raster/r.watershed/ram/Gwater.h
   grass/trunk/raster/r.watershed/ram/main.c
   grass/trunk/raster/r.watershed/seg/Gwater.h
   grass/trunk/raster/r.watershed/seg/main.c
   grass/trunk/raster/wildfire/r.spreadpath/main.c
   grass/trunk/raster/wildfire/r.spreadpath/stash.h
   grass/trunk/raster3d/r3.mkdspf/iso_surface.c
   grass/trunk/raster3d/r3.mkdspf/main.c
   grass/trunk/raster3d/r3.mkdspf/vizual.h
   grass/trunk/raster3d/r3.out.vtk/globalDefs.h
   grass/trunk/raster3d/r3.out.vtk/main.c
   grass/trunk/raster3d/r3.out.vtk/parameters.h
   grass/trunk/raster3d/r3.showdspf/kns_globals.h
   grass/trunk/raster3d/r3.showdspf/main_ogl.c
   grass/trunk/raster3d/r3.showdspf/togif.c
   grass/trunk/raster3d/r3.showdspf/vizual.h
   grass/trunk/raster3d/r3.showdspf/vizual2.h
   grass/trunk/vector/v.build.polylines/global.h
   grass/trunk/vector/v.build.polylines/main.c
   grass/trunk/vector/v.digit/global.h
   grass/trunk/vector/v.digit/main.c
   grass/trunk/vector/v.in.dwg/global.h
   grass/trunk/vector/v.in.dwg/main.c
   grass/trunk/vector/v.in.dxf/global.h
   grass/trunk/vector/v.in.dxf/main.c
   grass/trunk/vector/v.in.ogr/global.h
   grass/trunk/vector/v.in.ogr/main.c
   grass/trunk/vector/v.out.dxf/global.h
   grass/trunk/vector/v.out.dxf/main.c
   grass/trunk/vector/v.out.vtk/local_proto.h
   grass/trunk/vector/v.out.vtk/main.c
   grass/trunk/vector/v.to.db/global.h
   grass/trunk/vector/v.to.db/main.c
   grass/trunk/vector/v.transform/main.c
   grass/trunk/vector/v.transform/trans.h
   grass/trunk/vector/v.vol.rst/main.c
   grass/trunk/vector/v.vol.rst/userglobs.h
   grass/trunk/vector/v.voronoi/defs.h
   grass/trunk/vector/v.voronoi/dt_main.c
   grass/trunk/vector/v.voronoi/sw_defs.h
   grass/trunk/vector/v.voronoi/sw_main.c
   grass/trunk/vector/v.voronoi/vo_main.c
   grass/trunk/visualization/nviz/src/draw.c
   grass/trunk/visualization/nviz/src/interface.h
   grass/trunk/visualization/nviz/src/mkdspf_main.c
   grass/trunk/visualization/nviz/src/viz.h
   grass/trunk/visualization/xganim/local_proto.h
   grass/trunk/visualization/xganim/main.c
Log:
Eliminate preprocessor abuse


Modified: grass/trunk/db/drivers/dbf/globals.h
===================================================================
--- grass/trunk/db/drivers/dbf/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/dbf/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -78,10 +78,5 @@
     int *order;			/* array of row indexes (sorted by ORDER BY) */
 } cursor;
 
-#ifdef MAIN
-DATABASE db;
-dbString *errMsg = NULL;
-#else
 extern DATABASE db;
 extern dbString *errMsg;
-#endif

Modified: grass/trunk/db/drivers/dbf/main.c
===================================================================
--- grass/trunk/db/drivers/dbf/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/dbf/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,7 +15,6 @@
 *
 *****************************************************************************/
 
-#define MAIN
 #include <stdlib.h>
 #include <string.h>
 #include <grass/dbmi.h>
@@ -23,6 +22,9 @@
 #include "proto.h"
 #include "dbdriver.h"
 
+DATABASE db;
+dbString *errMsg = NULL;
+
 int main(int argc, char *argv[])
 {
     char *name;

Modified: grass/trunk/db/drivers/dbf/main_debug.c
===================================================================
--- grass/trunk/db/drivers/dbf/main_debug.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/dbf/main_debug.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 * just a test for debugging purpose, imitating dbf driver -a.sh.
 *****************************************************************************/
 
-#define MAIN
 #include <stdlib.h>
 #include <grass/dbmi.h>
 #include <grass/gis.h>

Modified: grass/trunk/db/drivers/mysql/globals.h
===================================================================
--- grass/trunk/db/drivers/mysql/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/mysql/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,10 +18,5 @@
     unsigned int port;
 } CONNPAR;
 
-#ifdef MAIN
-MYSQL *connection;		/* Database connection */
-dbString *errMsg = NULL;	/* error message */
-#else
 extern MYSQL *connection;
 extern dbString *errMsg;
-#endif

Modified: grass/trunk/db/drivers/mysql/main.c
===================================================================
--- grass/trunk/db/drivers/mysql/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/mysql/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,9 +15,11 @@
 #include <grass/dbmi.h>
 #include "dbdriver.h"
 
-#define MAIN
 #include "globals.h"
 
+MYSQL *connection;		/* Database connection */
+dbString *errMsg = NULL;	/* error message */
+
 int main(int argc, char *argv[])
 {
     init_dbdriver();

Modified: grass/trunk/db/drivers/odbc/globals.h
===================================================================
--- grass/trunk/db/drivers/odbc/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/odbc/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -11,10 +11,5 @@
     int nrows;			/* number of rows selected by SELECT statement */
 } cursor;
 
-#ifdef MAIN
-SQLHENV ODenvi;			/* Handle ODBC environment */
-SQLHDBC ODconn;			/* Handle connection  */
-#else
 extern SQLHENV ODenvi;		/* Handle ODBC environment */
 extern SQLHDBC ODconn;		/* Handle connection  */
-#endif

Modified: grass/trunk/db/drivers/odbc/main.c
===================================================================
--- grass/trunk/db/drivers/odbc/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/odbc/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,10 +1,11 @@
-#define MAIN
 #include <stdlib.h>
 #include <grass/dbmi.h>
 #include "odbc.h"
 #include "globals.h"
 #include "dbdriver.h"
 
+SQLHENV ODenvi;			/* Handle ODBC environment */
+SQLHDBC ODconn;			/* Handle connection  */
 
 int main(int argc, char **argv)
 {

Modified: grass/trunk/db/drivers/ogr/globals.h
===================================================================
--- grass/trunk/db/drivers/ogr/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/ogr/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,10 +26,5 @@
     int ncols;			/* num columns */
 } cursor;
 
-#ifdef MAIN
-OGRDataSourceH hDs;
-dbString *errMsg = NULL;	/* error message */
-#else
 extern OGRDataSourceH hDs;
 extern dbString *errMsg;
-#endif

Modified: grass/trunk/db/drivers/ogr/main.c
===================================================================
--- grass/trunk/db/drivers/ogr/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/ogr/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,13 +14,16 @@
 *   	    	for details.
 *
 *****************************************************************************/
-#define MAIN
+
 #include <stdlib.h>
 #include <grass/dbmi.h>
 #include "ogr_api.h"
 #include "globals.h"
 #include "dbdriver.h"
 
+OGRDataSourceH hDs;
+dbString *errMsg = NULL;	/* error message */
+
 int main(int argc, char *argv[])
 {
     init_dbdriver();

Modified: grass/trunk/db/drivers/postgres/globals.h
===================================================================
--- grass/trunk/db/drivers/postgres/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/postgres/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -52,14 +52,7 @@
 } PG_TYPES;
 
 
-#ifdef MAIN
-PGconn *pg_conn;		/* Database connection */
-int (*pg_types)[2] = NULL;	/* array of types, first is internal code, second PG_TYPE_* */
-int pg_ntypes = 0;
-dbString *errMsg = NULL;	/* error message */
-#else
 extern PGconn *pg_conn;
 extern dbString *errMsg;
 extern int (*pg_types)[2];
 extern int pg_ntypes;
-#endif

Modified: grass/trunk/db/drivers/postgres/main.c
===================================================================
--- grass/trunk/db/drivers/postgres/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/db/drivers/postgres/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,9 +1,13 @@
-#define MAIN
 #include <stdlib.h>
 #include <grass/dbmi.h>
 #include "globals.h"
 #include "dbdriver.h"
 
+PGconn *pg_conn;		/* Database connection */
+int (*pg_types)[2] = NULL;	/* array of types, first is internal code, second PG_TYPE_* */
+int pg_ntypes = 0;
+dbString *errMsg = NULL;	/* error message */
+
 int main(int argc, char *argv[])
 {
     init_dbdriver();

Modified: grass/trunk/display/d.colors/externs.h
===================================================================
--- grass/trunk/display/d.colors/externs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.colors/externs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,8 +3,4 @@
     int interrupt;
 };
 
-#ifdef SIG_MAIN
-struct signalflag signalflag;
-#else
 extern struct signalflag signalflag;
-#endif

Modified: grass/trunk/display/d.colors/set_sigs.c
===================================================================
--- grass/trunk/display/d.colors/set_sigs.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.colors/set_sigs.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,9 +1,12 @@
-#define SIG_MAIN
+
 #include "externs.h"
 #include <signal.h>
+#include <grass/config.h>
 
-void sigint();
+struct signalflag signalflag;
 
+extern RETSIGTYPE sigint(int);
+
 int set_signals(void)
 {
 

Modified: grass/trunk/display/d.histogram/dhist.h
===================================================================
--- grass/trunk/display/d.histogram/dhist.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.histogram/dhist.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,19 +26,9 @@
     long int every;		/* tic_mark number interval */
 };
 
-#ifdef MAIN
-
-struct stat_list dist_stats;
-struct Categories cats;
-struct FPRange fp_range;
-int is_fp;
-
-#else
 extern struct Categories cats;
 extern struct FPRange fp_range;
 
-#endif
-
 /* bar.c */
 int bar(struct stat_list *, struct Colors *);
 float rem(long int, long int);

Modified: grass/trunk/display/d.histogram/main.c
===================================================================
--- grass/trunk/display/d.histogram/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.histogram/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -37,10 +37,25 @@
 #include <grass/display.h>
 #include <grass/raster.h>
 #include <grass/glocale.h>
-#define MAIN
+
 #include "options.h"
 #include "dhist.h"
 
+struct stat_list dist_stats;
+struct Categories cats;
+struct FPRange fp_range;
+int is_fp;
+
+char *map_name;
+int color;
+float size;
+int style;
+int type;
+int is_fp;
+int nodata;
+int nsteps;
+int cat_ranges;
+
 int main(int argc, char **argv)
 {
     int text_height;

Modified: grass/trunk/display/d.histogram/options.h
===================================================================
--- grass/trunk/display/d.histogram/options.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.histogram/options.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,18 +1,13 @@
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
 
-GLOBAL char *map_name;
-GLOBAL int color;
-GLOBAL float size;
-GLOBAL int style;
-GLOBAL int type;
-GLOBAL int is_fp;
-GLOBAL int nodata;
-GLOBAL int nsteps;
-GLOBAL int cat_ranges;
+extern char *map_name;
+extern int color;
+extern float size;
+extern int style;
+extern int type;
+extern int is_fp;
+extern int nodata;
+extern int nsteps;
+extern int cat_ranges;
 
 #define PIE	1
 #define BAR	2

Modified: grass/trunk/display/d.measure/main.c
===================================================================
--- grass/trunk/display/d.measure/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.measure/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -25,7 +25,6 @@
 #include <grass/display.h>
 #include <grass/raster.h>
 #include <grass/glocale.h>
-#define MAIN
 #include "local_proto.h"
 
 int main(int argc, char **argv)

Modified: grass/trunk/display/d.profile/main.c
===================================================================
--- grass/trunk/display/d.profile/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.profile/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -20,7 +20,6 @@
 
 
 #define DEBUG
-#define MAIN
 #define USE_OLD_CODE		/* Frame set-up still needs old code ATM. */
 #include <stdio.h>
 #include <stdlib.h>
@@ -31,6 +30,20 @@
 #include <grass/glocale.h>
 #include "profile.h"
 
+struct windows windows[] = {
+    {"mou", 85, 100, 0, 50},
+    {"sta", 85, 100, 50, 100},
+    {"map", 0, 85, 0, 50},
+    {"orig", 0, 100, 0, 1009}
+};
+
+struct windows profiles[] = {
+    {"pro1", 64, 85, 50, 100},
+    {"pro2", 43, 64, 50, 100},
+    {"pro3", 22, 43, 50, 100},
+    {"pro4", 0, 22, 50, 100}
+};
+
 struct Profile profile;
 
 void myDcell(char *name, char *mapset, int overlay);

Modified: grass/trunk/display/d.profile/profile.h
===================================================================
--- grass/trunk/display/d.profile/profile.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.profile/profile.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -48,24 +48,8 @@
     UCAT MinCat, MaxCat;
 };
 
-#ifdef MAIN
-struct windows windows[] = {
-    {"mou", 85, 100, 0, 50},
-    {"sta", 85, 100, 50, 100},
-    {"map", 0, 85, 0, 50},
-    {"orig", 0, 100, 0, 1009}
-};
-
-struct windows profiles[] = {
-    {"pro1", 64, 85, 50, 100},
-    {"pro2", 43, 64, 50, 100},
-    {"pro3", 22, 43, 50, 100},
-    {"pro4", 0, 22, 50, 100}
-};
-#else
 extern struct windows windows[];
 extern struct windows profiles[];
-#endif
 
 #define MOU     windows[0]
 #define STA     windows[1]

Modified: grass/trunk/display/d.rast/main.c
===================================================================
--- grass/trunk/display/d.rast/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.rast/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <grass/gis.h>
 #include <grass/raster.h>
-#define MAIN
+
 #include "mask.h"
 #include "local_proto.h"
 #include <grass/glocale.h>
@@ -29,6 +29,9 @@
 static int parse_catlist(char **, Mask *);
 static int parse_vallist(char **, d_Mask *);
 
+d_Mask d_mask;
+Mask mask;
+
 int main(int argc, char **argv)
 {
     char *mapset;

Modified: grass/trunk/display/d.rast/mask.h
===================================================================
--- grass/trunk/display/d.rast/mask.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.rast/mask.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -22,10 +22,5 @@
     d_Interval *list;
 } d_Mask;
 
-#ifdef MAIN
-d_Mask d_mask;
-Mask mask;
-#else
 extern d_Mask d_mask;
 extern Mask mask;
-#endif

Modified: grass/trunk/display/d.rast.arrow/arrow.c
===================================================================
--- grass/trunk/display/d.rast.arrow/arrow.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.rast.arrow/arrow.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -46,7 +46,6 @@
 # define RpD ((2 * M_PI) / 360.)	/* radians/degree */
 # define D2R(d) (double)(d * RpD)	/* degrees->radians */
 
-#define MAIN
 static void arrow_mag(double, double);
 static void arrow_360(double);
 static void arrow_se(void);

Modified: grass/trunk/display/d.rast.num/number.c
===================================================================
--- grass/trunk/display/d.rast.num/number.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.rast.num/number.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -42,7 +42,6 @@
 #include <grass/colors.h>
 #include <grass/glocale.h>
 
-#define MAIN
 int draw_number(double, int, RASTER_MAP_TYPE);
 
 int D_x, D_y;

Modified: grass/trunk/display/d.title/main.c
===================================================================
--- grass/trunk/display/d.title/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.title/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -22,10 +22,15 @@
 #include <grass/raster.h>
 #include <grass/gis.h>
 #include <grass/glocale.h>
-#define MAIN
+
 #include "options.h"
 #include "local_proto.h"
 
+char map_name[GNAME_MAX];
+char color[128];
+float size;
+int type;
+
 int main(int argc, char **argv)
 {
     char *mapset;

Modified: grass/trunk/display/d.title/options.h
===================================================================
--- grass/trunk/display/d.title/options.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.title/options.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,14 +1,8 @@
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern char map_name[GNAME_MAX];
+extern char color[128];
+extern float size;
+extern int type;
 
-GLOBAL char map_name[GNAME_MAX];
-GLOBAL char color[128];
-GLOBAL float size;
-GLOBAL int type;
-
 #define NORMAL	1
 #define FANCY	2

Modified: grass/trunk/display/d.what.vect/main.c
===================================================================
--- grass/trunk/display/d.what.vect/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.what.vect/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -24,7 +24,6 @@
  *
  */
 
-#define MAIN
 #include <stdlib.h>
 #include <string.h>
 #include <grass/glocale.h>
@@ -36,6 +35,10 @@
 #include <grass/dbmi.h>
 #include <grass/glocale.h>
 
+char **vect;
+int nvects;
+struct Map_info *Map;
+
 /* Vector map grabbing taken from d.zoom */
 
 int main(int argc, char **argv)

Modified: grass/trunk/display/d.what.vect/what.h
===================================================================
--- grass/trunk/display/d.what.vect/what.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.what.vect/what.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -12,12 +12,6 @@
 /* attr.c */
 int disp_attr(char *, char *, char *, char *, int);
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL	extern
-#endif
-
-GLOBAL char **vect;
-GLOBAL int nvects;
-GLOBAL struct Map_info *Map;
+extern char **vect;
+extern int nvects;
+extern struct Map_info *Map;

Modified: grass/trunk/display/d.zoom/local_proto.h
===================================================================
--- grass/trunk/display/d.zoom/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.zoom/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -40,13 +40,7 @@
 /* quit.c */
 int quit(struct Cell_head *, struct Cell_head *);
 
-#ifdef MAIN
-#define	GLOBAL
-#else
-#define	GLOBAL	extern
-#endif
-
-GLOBAL char *cmd;
-GLOBAL char **rast, **vect, **list;
-GLOBAL int nrasts, nvects, nlists;
-GLOBAL double U_east, U_west, U_south, U_north;
+extern char *cmd;
+extern char **rast, **vect, **list;
+extern int nrasts, nvects, nlists;
+extern double U_east, U_west, U_south, U_north;

Modified: grass/trunk/display/d.zoom/main.c
===================================================================
--- grass/trunk/display/d.zoom/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/display/d.zoom/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,10 +26,15 @@
 #include <grass/display.h>
 #include <grass/raster.h>
 #include <grass/Vect.h>
-#define	MAIN
+
 #include "local_proto.h"
 #include <grass/glocale.h>
 
+char *cmd;
+char **rast, **vect, **list;
+int nrasts, nvects, nlists;
+double U_east, U_west, U_south, U_north;
+
 int main(int argc, char **argv)
 {
     int stat;

Modified: grass/trunk/general/g.mapsets/externs.h
===================================================================
--- grass/trunk/general/g.mapsets/externs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.mapsets/externs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,18 +1,10 @@
-#ifdef MAIN
-char *mapset_name[GMAPSET_MAX];
-int nmapsets;
-int choice[GMAPSET_MAX];
-int nchoices;
-int curr_mapset[GMAPSET_MAX];
-int ncurr_mapsets;
-#else
+
 extern char *mapset_name[];
 extern int nmapsets;
 extern int choice[];
 extern int nchoices;
 extern int curr_mapset[];
 extern int ncurr_mapsets;
-#endif
 
 #define	REPLACE	0
 #define ADD	1

Modified: grass/trunk/general/g.mapsets/main_cmd.c
===================================================================
--- grass/trunk/general/g.mapsets/main_cmd.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.mapsets/main_cmd.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,7 +17,6 @@
  *
  *****************************************************************************/
 
-#define MAIN
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -27,6 +26,13 @@
 #include "local_proto.h"
 #include "externs.h"
 
+char *mapset_name[GMAPSET_MAX];
+int nmapsets;
+int choice[GMAPSET_MAX];
+int nchoices;
+int curr_mapset[GMAPSET_MAX];
+int ncurr_mapsets;
+
 static char Path[GPATH_MAX];
 
 int main(int argc, char *argv[])

Modified: grass/trunk/general/g.mapsets/main_inter.c
===================================================================
--- grass/trunk/general/g.mapsets/main_inter.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.mapsets/main_inter.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,7 +15,6 @@
  *
  *****************************************************************************/
 
-#define MAIN
 #include "externs.h"
 #include "local_proto.h"
 #include <grass/gis.h>

Modified: grass/trunk/general/g.mkfontcap/local_proto.h
===================================================================
--- grass/trunk/general/g.mkfontcap/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.mkfontcap/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,16 +1,10 @@
-#ifdef G_MKFONTCAP_MAIN
-#  define G_MKFONTCAP_GLOBAL
-#else
-#  define G_MKFONTCAP_GLOBAL extern
-#endif
+extern char **searchdirs;
+extern int numsearchdirs;
 
-G_MKFONTCAP_GLOBAL char **searchdirs;
-G_MKFONTCAP_GLOBAL int numsearchdirs;
+extern struct GFONT_CAP *fontcap;
+extern int totalfonts;
+extern int maxfonts;
 
-G_MKFONTCAP_GLOBAL struct GFONT_CAP *fontcap;
-G_MKFONTCAP_GLOBAL int totalfonts;
-G_MKFONTCAP_GLOBAL int maxfonts;
-
 /* freetype_fonts.c */
 void find_freetype_fonts(void);
 

Modified: grass/trunk/general/g.mkfontcap/main.c
===================================================================
--- grass/trunk/general/g.mkfontcap/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.mkfontcap/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,8 +14,6 @@
  *
  *****************************************************************************/
 
-#define G_MKFONTCAP_MAIN 1
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -29,6 +27,13 @@
 
 #include "local_proto.h"
 
+char **searchdirs;
+int numsearchdirs;
+
+struct GFONT_CAP *fontcap;
+int totalfonts;
+int maxfonts;
+
 static const char *standarddirs[] = {
     /* These are the directories that are searched for Freetype-compatible
      * font files by default. They may contain an environment variable 

Modified: grass/trunk/general/g.proj/local_proto.h
===================================================================
--- grass/trunk/general/g.proj/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.proj/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,12 +1,6 @@
-#ifdef G_PROJ_MAIN
-#  define G_PROJ_GLOBAL
-#else
-#  define G_PROJ_GLOBAL extern
-#endif
+extern struct Key_Value *projinfo, *projunits;
+extern struct Cell_head cellhd;
 
-G_PROJ_GLOBAL struct Key_Value *projinfo, *projunits;
-G_PROJ_GLOBAL struct Cell_head cellhd;
-
 /* input.c */
 void input_currloc(void);
 int input_wkt(char *);

Modified: grass/trunk/general/g.proj/main.c
===================================================================
--- grass/trunk/general/g.proj/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/g.proj/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -19,9 +19,11 @@
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
-#define G_PROJ_MAIN
 #include "local_proto.h"
 
+struct Key_Value *projinfo, *projunits;
+struct Cell_head cellhd;
+
 int main(int argc, char *argv[])
 {
     struct Flag *printinfo,	/* Print contents of PROJ_INFO & PROJ_UNITS */

Modified: grass/trunk/general/manage/cmd/copy.c
===================================================================
--- grass/trunk/general/manage/cmd/copy.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/manage/cmd/copy.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,7 +17,7 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
+
 #include <stdlib.h>
 #include <string.h>
 #include <grass/glocale.h>

Modified: grass/trunk/general/manage/cmd/list.c
===================================================================
--- grass/trunk/general/manage/cmd/list.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/manage/cmd/list.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,7 +17,6 @@
  *
  *****************************************************************************/
 
-#define MAIN
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>

Modified: grass/trunk/general/manage/cmd/remove.c
===================================================================
--- grass/trunk/general/manage/cmd/remove.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/manage/cmd/remove.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <grass/glocale.h>
-#define MAIN
+
 #include "list.h"
 #include "local_proto.h"
 

Modified: grass/trunk/general/manage/cmd/rename.c
===================================================================
--- grass/trunk/general/manage/cmd/rename.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/manage/cmd/rename.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -16,7 +16,7 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
+
 #include <stdlib.h>
 #include <string.h>
 #include <grass/gis.h>

Modified: grass/trunk/general/manage/lib/read_list.c
===================================================================
--- grass/trunk/general/manage/lib/read_list.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/manage/lib/read_list.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,6 +17,9 @@
 	  .
 ******************************************************************/
 
+int nlist;
+struct list *list;
+
 static int format_error(char *, int, char *);
 
 int read_list(int check_if_empty)

Modified: grass/trunk/general/manage/list.h
===================================================================
--- grass/trunk/general/manage/list.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/general/manage/list.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -13,11 +13,6 @@
     char *maindesc;		/* main element description */
 };
 
-#ifdef MAIN
-int nlist;
-struct list *list;
-#endif
-
 extern int nlist;
 extern struct list *list;
 

Modified: grass/trunk/imagery/i.cca/main.c
===================================================================
--- grass/trunk/imagery/i.cca/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.cca/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -38,7 +38,6 @@
 #include <string.h>
 #include <math.h>
 
-#define MAIN
 #include <grass/imagery.h>
 #include <grass/gmath.h>
 #include <grass/glocale.h>

Modified: grass/trunk/imagery/i.class/globals.h
===================================================================
--- grass/trunk/imagery/i.class/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.class/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,31 +3,24 @@
 
 #include "defs.h"
 
-#ifndef GLOBAL
-#  define GLOBAL extern
-#  define INIT(x)
-#else
-#  define INIT(x) = x
-#endif
+extern Window *PROMPT_WINDOW;
 
-GLOBAL Window *PROMPT_WINDOW;
+extern int SCREEN_TOP;
+extern int SCREEN_BOTTOM;
+extern int SCREEN_LEFT;
+extern int SCREEN_RIGHT;
 
-GLOBAL int SCREEN_TOP;
-GLOBAL int SCREEN_BOTTOM;
-GLOBAL int SCREEN_LEFT;
-GLOBAL int SCREEN_RIGHT;
+extern View *VIEW_MAP1;
+extern View *VIEW_TITLE1;
+extern View *VIEW_MAP1_ZOOM;
+extern View *VIEW_TITLE1_ZOOM;
 
-GLOBAL View *VIEW_MAP1;
-GLOBAL View *VIEW_TITLE1;
-GLOBAL View *VIEW_MAP1_ZOOM;
-GLOBAL View *VIEW_TITLE1_ZOOM;
+extern View *VIEW_MASK1;
+extern View *VIEW_MENU;
+extern View *VIEW_HISTO;
 
-GLOBAL View *VIEW_MASK1;
-GLOBAL View *VIEW_MENU;
-GLOBAL View *VIEW_HISTO;
+extern int THE_COLORS[10];
 
-GLOBAL int THE_COLORS[10];
-
 #define BLACK	THE_COLORS[0]
 #define BLUE	THE_COLORS[1]
 #define BROWN	THE_COLORS[2]
@@ -49,6 +42,7 @@
 #define NUM_RED 	7
 #define NUM_WHITE	8
 #define NUM_YELLOW	9
+
 #define NAME_BLACK	"Black"
 #define NAME_BLUE	"Blue"
 #define NAME_BROWN	"Brown"
@@ -59,35 +53,25 @@
 #define NAME_RED 	"Red"
 #define NAME_WHITE	"White"
 #define NAME_YELLOW	"Yellow"
-#define MY_COLORS {{0,0,0},         /*black*/ \
-		     {50,50,255},     /*blue*/  \
-		     {170,200,70}, /*brown*/ \
-		     {0,255,0},     /*green*/ \
-		     {150,150,150}, /*grey*/  \
-		     {220,170,0},   /*orange*/\
-		     {200,0,200},   /*purple*/\
-		     {255,0,0},     /*red*/   \
-		     {255,255,255}, /*white*/ \
-		     {255,255,0}}	/*yellow */
-GLOBAL struct
+
+struct Color_table
 {
     int red, grn, blue;
-} Color_table[10] INIT(MY_COLORS);
+};
 
-GLOBAL struct Ref Refer;
-GLOBAL FILE *outsig_fd;
-GLOBAL struct Signature Sigs;
-GLOBAL struct Cell_head Band_cellhd;
+extern struct Color_table Color_table[10];
 
-double row_to_northing();
-double col_to_easting();
+extern struct Ref Refer;
+extern FILE *outsig_fd;
+extern struct Signature Sigs;
+extern struct Cell_head Band_cellhd;
 
-GLOBAL int *Bandfd;
-GLOBAL struct region Region;
-GLOBAL struct signalflag signalflag;
-GLOBAL CELL **Bandbuf;
+extern int *Bandfd;
+extern struct region Region;
+extern struct signalflag signalflag;
+extern CELL **Bandbuf;
 
+extern double row_to_northing(struct Cell_head *, int, double);
+extern double col_to_easting(struct Cell_head *, int, double);
 
-#undef INIT
-
 #endif /* __GLOBALS_H__ */

Modified: grass/trunk/imagery/i.class/main.c
===================================================================
--- grass/trunk/imagery/i.class/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.class/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,8 +18,6 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
-#define GLOBAL
 
 #include <stdlib.h>
 #include <string.h>
@@ -29,7 +27,47 @@
 #include "globals.h"
 #include "local_proto.h"
 
+Window *PROMPT_WINDOW;
 
+int SCREEN_TOP;
+int SCREEN_BOTTOM;
+int SCREEN_LEFT;
+int SCREEN_RIGHT;
+
+View *VIEW_MAP1;
+View *VIEW_TITLE1;
+View *VIEW_MAP1_ZOOM;
+View *VIEW_TITLE1_ZOOM;
+
+View *VIEW_MASK1;
+View *VIEW_MENU;
+View *VIEW_HISTO;
+
+int THE_COLORS[10];
+
+struct Color_table Color_table[10] = {
+    {0,0,0},		/*black*/
+    {50,50,255},	/*blue*/ 
+    {170,200,70},	/*brown*/
+    {0,255,0},		/*green*/
+    {150,150,150},	/*grey*/ 
+    {220,170,0},	/*orange*/
+    {200,0,200},	/*purple*/
+    {255,0,0},		/*red*/	 
+    {255,255,255},	/*white*/
+    {255,255,0}		/*yellow */
+};
+
+struct Ref Refer;
+FILE *outsig_fd;
+struct Signature Sigs;
+struct Cell_head Band_cellhd;
+
+int *Bandfd;
+struct region Region;
+struct signalflag signalflag;
+CELL **Bandbuf;
+
 /* function prototypes */
 static int check_files(char *, char *, char *, char *);
 

Modified: grass/trunk/imagery/i.fft/fftmain.c
===================================================================
--- grass/trunk/imagery/i.fft/fftmain.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.fft/fftmain.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -33,8 +33,6 @@
 
  */
 
-#define MAIN
-
 #include <string.h>
 #include <stdlib.h>
 #include <math.h>
@@ -44,12 +42,13 @@
 #include "globals.h"
 #include "local_proto.h"
 
+char Cellmap_real[GNAME_MAX], Cellmap_imag[GNAME_MAX];
 
 int main(int argc, char *argv[])
 {
     /* Global variable & function declarations */
     int Range;
-    char Cellmap_orig[50];
+    char Cellmap_orig[GNAME_MAX];
     int inputfd, realfd, imagfd;	/* the input and output file descriptors */
     char *inmapset;		/* the input mapset name */
     struct Cell_head window;

Modified: grass/trunk/imagery/i.fft/globals.h
===================================================================
--- grass/trunk/imagery/i.fft/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.fft/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,12 +1,6 @@
 #ifndef __L_GLOBALS_H__
 #define __L_GLOBALS_H__
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern char Cellmap_real[], Cellmap_imag[];
 
-GLOBAL char Cellmap_real[50], Cellmap_imag[50];
-
 #endif /* __L_GLOBALS_H__ */

Modified: grass/trunk/imagery/i.ifft/globals.h
===================================================================
--- grass/trunk/imagery/i.ifft/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ifft/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,12 +1,6 @@
 #ifndef __L_GLOBALS_H__
 #define __L_GLOBALS_H__
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern char Cellmap_real[], Cellmap_imag[];
 
-GLOBAL char Cellmap_real[50], Cellmap_imag[50];
-
 #endif /* __L_GLOBALS_H__ */

Modified: grass/trunk/imagery/i.ifft/ifftmain.c
===================================================================
--- grass/trunk/imagery/i.ifft/ifftmain.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ifft/ifftmain.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -12,8 +12,6 @@
 
  */
 
-#define MAIN
-
 #include <string.h>
 #include <stdlib.h>
 #include <math.h>
@@ -23,11 +21,12 @@
 #include "globals.h"
 #include "local_proto.h"
 
+char Cellmap_real[GNAME_MAX], Cellmap_imag[GNAME_MAX];
 
 int main(int argc, char *argv[])
 {
     /* Global variable & function declarations */
-    char Cellmap_orig[50];
+    char Cellmap_orig[GNAME_MAX];
     FILE *realfp, *imagfp;	/* the input and output file descriptors */
     int outputfd, maskfd;	/* the input and output file descriptors */
     char *realmapset, *imagmapset;	/* the input mapset names */

Modified: grass/trunk/imagery/i.ortho.photo/photo.camera/globals.h
===================================================================
--- grass/trunk/imagery/i.ortho.photo/photo.camera/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ortho.photo/photo.camera/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,22 +1,17 @@
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
 /* State flags  Most are Toggles */
-GLOBAL char Data_Loaded;	/* is there data in memory */
+extern char Data_Loaded;	/* is there data in memory */
 
 				/* used for abnormal exit logic */
-GLOBAL char Files_Open;		/* is there data in memory */
+extern char Files_Open;		/* is there data in memory */
 
-GLOBAL struct Ortho_Camera_File_Ref cam_info;
+extern struct Ortho_Camera_File_Ref cam_info;
 
-GLOBAL char *camera;
+extern char *camera;
 
 /* hold the names of files etc.  mostly used by main.c */
-GLOBAL char *N_path;
-GLOBAL char *N_name;
-GLOBAL char *N_camera;
+extern char *N_path;
+extern char *N_name;
+extern char *N_camera;
 
 /* mod_cam_info.c */
 int mod_cam_info(int, struct Ortho_Camera_File_Ref *);

Modified: grass/trunk/imagery/i.ortho.photo/photo.camera/main.c
===================================================================
--- grass/trunk/imagery/i.ortho.photo/photo.camera/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ortho.photo/photo.camera/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,11 +18,24 @@
 /* select_camera */
 /* select a camera reference file for a given imagery group */
 
-#define  MAIN   1
 #include <stdlib.h>
 #include "orthophoto.h"
 #include "globals.h"
 
+char Data_Loaded;	/* is there data in memory */
+
+ 			/* used for abnormal exit logic */
+char Files_Open;	/* is there data in memory */
+
+struct Ortho_Camera_File_Ref cam_info;
+
+char *camera;
+
+/* hold the names of files etc.  mostly used by main.c */
+char *N_path;
+char *N_name;
+char *N_camera;
+
 int main(int argc, char *argv[])
 {
     static int have_old;

Modified: grass/trunk/imagery/i.ortho.photo/photo.elev/main.c
===================================================================
--- grass/trunk/imagery/i.ortho.photo/photo.elev/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ortho.photo/photo.elev/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,7 +18,7 @@
 /* main.c */
 
 /* read the target for the block and cast it into the alternate GRASS env */
-#define MAIN
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>

Modified: grass/trunk/imagery/i.ortho.photo/photo.init/globals.h
===================================================================
--- grass/trunk/imagery/i.ortho.photo/photo.init/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ortho.photo/photo.init/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,23 +1,17 @@
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
 #include "orthophoto.h"
 
 /* State flags  Most are Toggles */
-GLOBAL char Data_Loaded;	/* is there data in memory */
+extern  char Data_Loaded;	/* is there data in memory */
 
 				/* used for abnormal exit logic */
-GLOBAL char Files_Open;		/* is there data in memory */
+extern  char Files_Open;		/* is there data in memory */
 
-GLOBAL struct Ortho_Image_Group group;
+extern  struct Ortho_Image_Group group;
 
 /* hold the names of files etc.  mostly used by main.c */
-GLOBAL char *N_path;
-GLOBAL char *N_name;
-GLOBAL char *N_camera;
+extern  char *N_path;
+extern  char *N_name;
+extern  char *N_camera;
 
 #define DEG_TO_RADS 0.01745329
 #define RAD_TO_DEGS 57.29578

Modified: grass/trunk/imagery/i.ortho.photo/photo.init/main.c
===================================================================
--- grass/trunk/imagery/i.ortho.photo/photo.init/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.ortho.photo/photo.init/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,12 +17,22 @@
  *
  *****************************************************************************/
 
-#define  MAIN  1
 #include <stdlib.h>
 #include <string.h>
 #include "globals.h"
 
+char Data_Loaded;	/* is there data in memory */
 
+			/* used for abnormal exit logic */
+char Files_Open;	/* is there data in memory */
+
+struct Ortho_Image_Group group;
+
+/* hold the names of files etc.  mostly used by main.c */
+char *N_path;
+char *N_name;
+char *N_camera;
+
 int main(int argc, char *argv[])
 {
     int have_old;

Modified: grass/trunk/imagery/i.zc/main.c
===================================================================
--- grass/trunk/imagery/i.zc/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/imagery/i.zc/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -19,8 +19,6 @@
  *
  *****************************************************************************/
 
-#define MAIN
-
 #include <stdlib.h>
 #include <math.h>
 #include <grass/gis.h>
@@ -45,7 +43,6 @@
     int size;			/* the length of one side */
     long totsize;		/* the Total number of data points */
     double *data[2];		/* Data structure containing real & complex values of FFT */
-    int save_args();		/* function to stash the command line arguments */
     struct GModule *module;
     struct Option *input_map, *output_map, *width, *threshold, *orientations;
     const char *me;
@@ -67,7 +64,6 @@
     input_map->multiple = NO;
     input_map->gisprompt = "old,cell,raster";
     input_map->description = _("Name of input raster map");
-#define INPUT_MAP input_map->answer
 
     output_map = G_define_option();
     output_map->key = "output";
@@ -76,7 +72,6 @@
     output_map->multiple = NO;
     output_map->gisprompt = "new,cell,raster";
     output_map->description = _("Zero crossing raster map");
-#define OUTPUT_MAP output_map->answer
 
     width = G_define_option();
     width->key = "width";
@@ -107,16 +102,16 @@
 	exit(EXIT_FAILURE);
 
     /* open input cell map */
-    if ((inmapset = G_find_cell(INPUT_MAP, "")) == NULL)
-	G_fatal_error(_("Raster map <%s> not found"), INPUT_MAP);
+    if ((inmapset = G_find_cell(input_map->answer, "")) == NULL)
+	G_fatal_error(_("Raster map <%s> not found"), input_map->answer);
 
-    inputfd = G_open_cell_old(INPUT_MAP, inmapset);
+    inputfd = G_open_cell_old(input_map->answer, inmapset);
     if (inputfd < 0)
 	exit(EXIT_FAILURE);
 
     /* check command line args for validity */
-    if (G_legal_filename(OUTPUT_MAP) < 0)
-	G_fatal_error(_("<%s> is an illegal file name"), OUTPUT_MAP);
+    if (G_legal_filename(output_map->answer) < 0)
+	G_fatal_error(_("<%s> is an illegal file name"), output_map->answer);
 
     sscanf(threshold->answer, "%1lf", &Thresh);
     if (Thresh <= 0.0)
@@ -188,7 +183,7 @@
 
     /* open the output cell maps and allocate cell row buffers */
     G_message(_("Writing transformed data to file..."));
-    if ((zcfd = G_open_cell_new(OUTPUT_MAP)) < 0)
+    if ((zcfd = G_open_cell_new(output_map->answer)) < 0)
 	exit(EXIT_FAILURE);
 
     cell_row = G_allocate_cell_buf();

Modified: grass/trunk/include/sqlp.h
===================================================================
--- grass/trunk/include/sqlp.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/include/sqlp.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -141,8 +141,4 @@
 
 void sqpFreeNode(SQLPNODE *);
 
-#ifdef SQLP_MAIN
-SQLPSTMT *sqlpStmt;
-#else
 extern SQLPSTMT *sqlpStmt;
-#endif

Modified: grass/trunk/lib/db/sqlp/sql.c
===================================================================
--- grass/trunk/lib/db/sqlp/sql.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/lib/db/sqlp/sql.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -28,8 +28,6 @@
 *
 *****************************************************************************/
 
-#define SQLP_MAIN
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -37,6 +35,8 @@
 #include <assert.h>
 #include <grass/sqlp.h>
 
+SQLPSTMT *sqlpStmt;
+
 /* save string to value */
 int sqpSaveStr(SQLPVALUE * val, char *c)
 {

Copied: grass/trunk/lib/dspf/cell_table.c (from rev 32672, grass/trunk/lib/dspf/cell_table.h)
===================================================================
--- grass/trunk/lib/dspf/cell_table.c	                        (rev 0)
+++ grass/trunk/lib/dspf/cell_table.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -0,0 +1,2309 @@
+#include "viz.h"
+
+CELL_ENTRY cell_table[256] = {
+    {0, {0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {1, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {2, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {1, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 4, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {2, 9, 10, 2, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {3, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {1, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {1, 2, 3, 4, 9, 12, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {1, 4, 9, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {3, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {10, 12, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {10, 3, 1, 10, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 2, 1, 0, 0, 0, 0, 0}
+     ,
+     5, {10, 12, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {12, 9, 10, 3, 9, 12, 3, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {4, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {1, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {11, 9, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {11, 1, 3, 11, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {2, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {2, 3, 4, 1, 10, 11, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {2, 1, 10, 4, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {2, 1, 4, 0, 0, 0, 0, 0}
+     ,
+     5, {9, 10, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {10, 11, 9, 2, 11, 10, 2, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {4, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 11, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {12, 4, 2, 12, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 4, 3, 0, 0, 0, 0, 0}
+     ,
+     5, {11, 9, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {9, 12, 11, 1, 12, 9, 1, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {4, 3, 2, 0, 0, 0, 0, 0}
+     ,
+     5, {12, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {11, 10, 12, 4, 10, 11, 4, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 3, 1, 2, 0, 0, 0, 0}
+     ,
+     4, {12, 11, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {11, 9, 10, 11, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {5, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {5, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {4, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {4, 5, 1, 4, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {5, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {5, 10, 1, 9, 8, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {5, 9, 8, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 1, 2, 0, 0, 0, 0, 0}
+     ,
+     5, {4, 8, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {8, 2, 4, 5, 2, 8, 5, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {5, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {5, 9, 12, 3, 8, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {5, 9, 8, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 1, 3, 0, 0, 0, 0, 0}
+     ,
+     7, {4, 8, 2, 12, 5, 1, 3, 0, 0, 0, 0, 0}
+     ,
+     3, {2, 12, 3, 4, 8, 5, 4, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 2, 5, 0, 0, 0, 0, 0}
+     ,
+     7, {10, 12, 9, 8, 3, 1, 5, 0, 0, 0, 0, 0}
+     ,
+     3, {9, 8, 5, 10, 12, 3, 10, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 1, 2, 5, 0, 0, 0, 0}
+     ,
+     6, {3, 12, 10, 5, 4, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {3, 10, 12, 3, 8, 10, 3, 4, 8, 10, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {5, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {9, 4, 11, 8, 5, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {9, 8, 5, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {4, 1, 5, 0, 0, 0, 0, 0}
+     ,
+     5, {1, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 5, 1, 11, 5, 3, 11, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 4, 2, 0, 0, 0, 0, 0}
+     ,
+     9, {8, 9, 4, 11, 10, 2, 5, 3, 1, 0, 0, 0}
+     ,
+     3, {10, 2, 1, 4, 3, 11, 9, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 1, 2, 5, 0, 0, 0, 0}
+     ,
+     6, {3, 11, 10, 5, 2, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {10, 2, 3, 5, 10, 3, 11, 5, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 4, 5, 0, 0, 0, 0, 0}
+     ,
+     7, {4, 2, 8, 5, 12, 11, 9, 0, 0, 0, 0, 0}
+     ,
+     3, {8, 5, 9, 4, 2, 12, 4, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 4, 1, 5, 0, 0, 0, 0}
+     ,
+     6, {2, 12, 8, 11, 1, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 11, 2, 11, 5, 2, 5, 1, 2, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 5, 2, 3, 0, 0, 0, 0}
+     ,
+     8, {4, 11, 8, 9, 12, 10, 1, 5, 0, 0, 0, 0}
+     ,
+     4, {11, 10, 12, 11, 1, 10, 4, 1, 11, 8, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {3, 2, 5, 4, 1, 0, 0, 0}
+     ,
+     5, {12, 10, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {11, 10, 12, 11, 5, 10, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {6, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {5, 6, 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}
+     ,
+     }
+    ,
+    {2, {6, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {10, 1, 9, 5, 6, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {10, 5, 6, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {2, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {6, 2, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {6, 1, 5, 6, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 2, 6, 0, 0, 0, 0, 0}
+     ,
+     5, {2, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {4, 6, 2, 9, 6, 4, 9, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {3, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {2, 10, 6, 12, 3, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {2, 12, 3, 6, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {6, 1, 3, 0, 0, 0, 0, 0}
+     ,
+     9, {5, 10, 1, 9, 12, 3, 6, 4, 2, 0, 0, 0}
+     ,
+     3, {12, 3, 2, 1, 4, 9, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {6, 2, 3, 0, 0, 0, 0, 0}
+     ,
+     5, {1, 5, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 3, 1, 6, 3, 5, 6, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 2, 3, 6, 0, 0, 0, 0}
+     ,
+     6, {4, 9, 12, 6, 3, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 3, 4, 6, 12, 4, 9, 6, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {4, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {3, 11, 10, 5, 4, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {3, 11, 4, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {4, 1, 6, 0, 0, 0, 0, 0}
+     ,
+     7, {1, 3, 5, 6, 11, 9, 10, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 6, 10, 1, 3, 11, 1, 11, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {6, 2, 4, 0, 0, 0, 0, 0}
+     ,
+     7, {1, 5, 3, 11, 6, 2, 4, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 11, 4, 1, 5, 6, 1, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 1, 2, 6, 0, 0, 0, 0}
+     ,
+     6, {3, 11, 5, 9, 2, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {11, 9, 3, 9, 6, 3, 6, 2, 3, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {4, 3, 6, 0, 0, 0, 0, 0}
+     ,
+     7, {12, 11, 10, 5, 4, 2, 6, 0, 0, 0, 0, 0}
+     ,
+     3, {10, 5, 6, 12, 11, 4, 12, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 6, 3, 4, 0, 0, 0, 0}
+     ,
+     8, {1, 9, 5, 10, 11, 12, 2, 6, 0, 0, 0, 0}
+     ,
+     4, {9, 12, 11, 9, 2, 12, 1, 2, 9, 5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 2, 3, 6, 0, 0, 0, 0}
+     ,
+     6, {4, 11, 12, 6, 1, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {4, 12, 11, 4, 5, 12, 4, 1, 5, 12, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 3, 6, 1, 2, 0, 0, 0}
+     ,
+     5, {11, 12, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {9, 12, 11, 9, 6, 12, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {5, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {10, 9, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {10, 8, 6, 10, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {6, 5, 1, 0, 0, 0, 0, 0}
+     ,
+     5, {8, 6, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {6, 4, 8, 10, 4, 6, 10, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {2, 6, 5, 0, 0, 0, 0, 0}
+     ,
+     5, {6, 2, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {2, 8, 6, 1, 8, 2, 1, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 2, 5, 6, 0, 0, 0, 0}
+     ,
+     4, {2, 4, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {4, 8, 6, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 6, 3, 0, 0, 0, 0, 0}
+     ,
+     7, {10, 9, 12, 3, 8, 6, 2, 0, 0, 0, 0, 0}
+     ,
+     3, {12, 3, 2, 10, 9, 8, 10, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {6, 3, 1, 5, 0, 0, 0, 0}
+     ,
+     8, {10, 6, 12, 2, 8, 4, 1, 3, 0, 0, 0, 0}
+     ,
+     4, {6, 4, 8, 6, 1, 4, 10, 1, 6, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 6, 2, 3, 0, 0, 0, 0}
+     ,
+     6, {9, 8, 12, 6, 1, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {8, 6, 9, 6, 3, 9, 3, 1, 9, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 1, 3, 6, 2, 0, 0, 0}
+     ,
+     5, {8, 4, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {6, 4, 8, 6, 3, 4, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {6, 5, 4, 0, 0, 0, 0, 0}
+     ,
+     7, {8, 6, 4, 3, 10, 9, 11, 0, 0, 0, 0, 0}
+     ,
+     3, {4, 3, 11, 8, 6, 10, 8, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {6, 1, 5, 4, 0, 0, 0, 0}
+     ,
+     6, {10, 6, 8, 11, 1, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {10, 8, 6, 10, 3, 8, 10, 1, 3, 8, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 4, 5, 6, 0, 0, 0, 0}
+     ,
+     8, {1, 2, 3, 4, 6, 8, 9, 11, 0, 0, 0, 0}
+     ,
+     4, {2, 8, 6, 2, 9, 8, 1, 9, 2, 3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {6, 5, 4, 2, 1, 0, 0, 0}
+     ,
+     5, {6, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {2, 8, 6, 2, 11, 8, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 4, 6, 5, 0, 0, 0, 0}
+     ,
+     8, {12, 11, 10, 9, 2, 6, 4, 8, 0, 0, 0, 0}
+     ,
+     4, {12, 11, 2, 11, 4, 2, 10, 8, 6, 10, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {6, 5, 4, 3, 1, 0, 0, 0}
+     ,
+     7, {6, 8, 2, 1, 11, 12, 10, 0, 0, 0, 0, 0}
+     ,
+     5, {1, 2, 10, 8, 6, 11, 11, 6, 12, 12, 6, 2, 2, 6, 10, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 3, 6, 5, 2, 0, 0, 0}
+     ,
+     7, {11, 12, 9, 1, 6, 8, 4, 0, 0, 0, 0, 0}
+     ,
+     5, {1, 9, 4, 12, 11, 6, 6, 11, 8, 8, 11, 9, 9, 11, 4, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {6, 5, 4, 3, 2, 1, 0, 0}
+     ,
+     4, {6, 8, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {11, 6, 12, 8, 6, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {7, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {1, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {1, 4, 6, 7, 9, 12, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {1, 4, 9, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {2, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {10, 6, 12, 2, 1, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {10, 2, 1, 12, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 2, 7, 0, 0, 0, 0, 0}
+     ,
+     7, {2, 4, 6, 7, 9, 10, 12, 0, 0, 0, 0, 0}
+     ,
+     3, {6, 7, 12, 2, 4, 9, 2, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {7, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 6, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {2, 7, 3, 2, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 3, 1, 0, 0, 0, 0, 0}
+     ,
+     7, {2, 6, 4, 9, 7, 3, 1, 0, 0, 0, 0, 0}
+     ,
+     3, {4, 9, 1, 2, 6, 7, 2, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {2, 3, 7, 0, 0, 0, 0, 0}
+     ,
+     5, {3, 1, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 7, 3, 10, 7, 1, 10, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 2, 3, 7, 0, 0, 0, 0}
+     ,
+     6, {4, 9, 6, 10, 3, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {9, 10, 4, 10, 7, 4, 7, 3, 4, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {4, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {3, 12, 7, 11, 4, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {3, 11, 4, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 4, 7, 0, 0, 0, 0, 0}
+     ,
+     7, {11, 9, 12, 6, 1, 3, 7, 0, 0, 0, 0, 0}
+     ,
+     3, {12, 6, 7, 11, 9, 1, 11, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {2, 4, 7, 0, 0, 0, 0, 0}
+     ,
+     9, {1, 2, 3, 4, 6, 7, 10, 11, 12, 0, 0, 0}
+     ,
+     3, {6, 7, 12, 3, 11, 4, 2, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 7, 4, 1, 0, 0, 0, 0}
+     ,
+     8, {2, 10, 6, 12, 9, 11, 3, 7, 0, 0, 0, 0}
+     ,
+     4, {10, 11, 9, 10, 3, 11, 2, 3, 10, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 3, 4, 0, 0, 0, 0, 0}
+     ,
+     5, {2, 6, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {6, 4, 2, 7, 4, 6, 7, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {7, 4, 3, 1, 0, 0, 0, 0}
+     ,
+     6, {7, 6, 2, 1, 11, 9, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {7, 2, 6, 7, 9, 2, 7, 11, 9, 2, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 3, 7, 2, 0, 0, 0, 0}
+     ,
+     6, {11, 4, 6, 10, 7, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {6, 7, 11, 10, 6, 11, 4, 10, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 4, 7, 2, 3, 0, 0, 0}
+     ,
+     5, {9, 11, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {10, 11, 9, 10, 7, 11, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {7, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {6, 5, 8, 7, 12, 9, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {6, 7, 12, 8, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 5, 7, 0, 0, 0, 0, 0}
+     ,
+     7, {5, 1, 7, 12, 4, 8, 6, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 12, 6, 5, 1, 4, 5, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 5, 2, 0, 0, 0, 0, 0}
+     ,
+     9, {7, 6, 5, 8, 2, 1, 12, 9, 10, 0, 0, 0}
+     ,
+     3, {2, 1, 10, 5, 9, 8, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 7, 2, 1, 0, 0, 0, 0}
+     ,
+     8, {5, 8, 7, 6, 4, 2, 10, 12, 0, 0, 0, 0}
+     ,
+     4, {8, 2, 4, 8, 10, 2, 5, 10, 8, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 7, 5, 0, 0, 0, 0, 0}
+     ,
+     7, {7, 3, 5, 9, 2, 6, 8, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 9, 8, 7, 3, 2, 7, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 1, 7, 3, 0, 0, 0, 0}
+     ,
+     8, {5, 1, 7, 3, 8, 6, 4, 2, 0, 0, 0, 0}
+     ,
+     4, {5, 1, 8, 1, 4, 8, 7, 2, 6, 7, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 5, 7, 3, 0, 0, 0, 0}
+     ,
+     8, {10, 1, 9, 5, 3, 7, 6, 8, 0, 0, 0, 0}
+     ,
+     4, {1, 7, 3, 1, 6, 7, 10, 6, 1, 9, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 1, 3, 7, 2, 0, 0, 0}
+     ,
+     7, {8, 4, 6, 10, 3, 7, 5, 0, 0, 0, 0, 0}
+     ,
+     5, {10, 6, 5, 4, 8, 3, 3, 8, 7, 7, 8, 6, 6, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {4, 5, 7, 0, 0, 0, 0, 0}
+     ,
+     9, {4, 11, 8, 9, 12, 6, 3, 5, 7, 0, 0, 0}
+     ,
+     3, {12, 6, 7, 8, 5, 9, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 7, 5, 1, 0, 0, 0, 0}
+     ,
+     8, {11, 3, 12, 7, 1, 5, 8, 6, 0, 0, 0, 0}
+     ,
+     4, {3, 5, 1, 3, 8, 5, 11, 8, 3, 12, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 7, 2, 5, 0, 0, 0, 0}
+     ,
+     12, {3, 12, 7, 11, 1, 10, 5, 9, 4, 2, 8, 6}
+     ,
+     4, {3, 11, 4, 12, 6, 7, 1, 10, 2, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 7, 1, 2, 5, 0, 0, 0}
+     ,
+     9, {3, 12, 7, 11, 10, 5, 2, 8, 6, 0, 0, 0}
+     ,
+     10, {5, 10, 6, 8, 7, 11, 3, 12, 2, 12, 3, 11, 12, 11, 7, 7, 8, 5, 7, 5,
+	  6, 12, 10, 2, 12, 6, 10, 12, 7, 6}
+     ,
+     }
+    ,
+    {4, {7, 5, 4, 3, 0, 0, 0, 0}
+     ,
+     8, {7, 6, 5, 8, 2, 4, 11, 9, 0, 0, 0, 0}
+     ,
+     4, {6, 4, 2, 6, 11, 4, 7, 11, 6, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {7, 3, 1, 5, 4, 0, 0, 0}
+     ,
+     7, {6, 2, 8, 11, 1, 5, 7, 0, 0, 0, 0, 0}
+     ,
+     5, {11, 8, 7, 2, 6, 1, 1, 6, 5, 5, 6, 8, 8, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 5, 3, 7, 2, 0, 0, 0}
+     ,
+     9, {11, 8, 9, 4, 6, 10, 7, 1, 5, 0, 0, 0}
+     ,
+     10, {10, 6, 5, 1, 9, 4, 11, 8, 7, 8, 11, 4, 8, 4, 9, 9, 1, 10, 9, 10, 5,
+	  8, 6, 7, 8, 5, 6, 8, 9, 5}
+     ,
+     }
+    ,
+    {6, {7, 5, 4, 3, 2, 1, 0, 0}
+     ,
+     6, {7, 6, 5, 8, 11, 10, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {8, 7, 11, 6, 5, 10, 6, 7, 8, 6, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {6, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 10, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {12, 5, 7, 12, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 6, 1, 0, 0, 0, 0, 0}
+     ,
+     7, {5, 7, 1, 4, 12, 10, 9, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 4, 9, 5, 7, 12, 5, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 6, 2, 0, 0, 0, 0, 0}
+     ,
+     5, {5, 7, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 1, 5, 12, 1, 7, 12, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 6, 2, 7, 0, 0, 0, 0}
+     ,
+     6, {9, 4, 2, 12, 5, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {9, 2, 4, 9, 7, 2, 9, 5, 7, 2, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 7, 6, 0, 0, 0, 0, 0}
+     ,
+     5, {7, 3, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 5, 7, 2, 5, 3, 2, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 1, 6, 7, 0, 0, 0, 0}
+     ,
+     8, {2, 3, 4, 1, 7, 5, 10, 9, 0, 0, 0, 0}
+     ,
+     4, {3, 5, 7, 3, 10, 5, 2, 10, 3, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 3, 6, 7, 0, 0, 0, 0}
+     ,
+     4, {3, 1, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {1, 5, 7, 1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {7, 6, 1, 3, 2, 0, 0, 0}
+     ,
+     5, {7, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 5, 7, 3, 9, 5, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {6, 7, 4, 0, 0, 0, 0, 0}
+     ,
+     7, {12, 10, 11, 4, 5, 7, 3, 0, 0, 0, 0, 0}
+     ,
+     3, {11, 4, 3, 12, 10, 5, 12, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 4, 6, 7, 0, 0, 0, 0}
+     ,
+     8, {1, 3, 5, 7, 9, 10, 11, 12, 0, 0, 0, 0}
+     ,
+     4, {1, 3, 9, 3, 11, 9, 5, 12, 10, 5, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {7, 4, 2, 6, 0, 0, 0, 0}
+     ,
+     8, {12, 7, 11, 3, 5, 1, 2, 4, 0, 0, 0, 0}
+     ,
+     4, {7, 1, 5, 7, 2, 1, 12, 2, 7, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {7, 6, 1, 4, 2, 0, 0, 0}
+     ,
+     7, {7, 5, 3, 2, 9, 11, 12, 0, 0, 0, 0, 0}
+     ,
+     5, {2, 3, 12, 5, 7, 9, 9, 7, 11, 11, 7, 3, 3, 7, 12, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 3, 7, 6, 0, 0, 0, 0}
+     ,
+     6, {11, 4, 10, 2, 7, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {4, 2, 11, 2, 5, 11, 5, 7, 11, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 4, 7, 6, 3, 0, 0, 0}
+     ,
+     7, {9, 11, 10, 2, 7, 5, 1, 0, 0, 0, 0, 0}
+     ,
+     5, {2, 10, 1, 11, 9, 7, 7, 9, 5, 5, 9, 10, 10, 9, 1, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {6, 2, 4, 7, 3, 0, 0, 0}
+     ,
+     5, {5, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 1, 5, 7, 4, 1, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {1, 4, 7, 6, 2, 3, 0, 0}
+     ,
+     4, {9, 11, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {7, 9, 5, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 6, 7, 0, 0, 0, 0, 0}
+     ,
+     5, {10, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {9, 12, 10, 8, 12, 9, 8, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 5, 6, 7, 0, 0, 0, 0}
+     ,
+     6, {1, 4, 7, 8, 10, 12, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {4, 8, 1, 8, 12, 1, 12, 10, 1, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 6, 2, 7, 0, 0, 0, 0}
+     ,
+     6, {9, 8, 2, 12, 1, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 1, 9, 12, 2, 9, 8, 12, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 2, 7, 5, 6, 0, 0, 0}
+     ,
+     5, {4, 2, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {8, 2, 4, 8, 12, 2, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 7, 6, 3, 0, 0, 0, 0}
+     ,
+     6, {8, 9, 10, 2, 7, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {8, 10, 9, 8, 3, 10, 8, 7, 3, 10, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {3, 7, 5, 1, 6, 0, 0, 0}
+     ,
+     7, {3, 7, 1, 10, 8, 4, 2, 0, 0, 0, 0, 0}
+     ,
+     5, {10, 1, 2, 7, 3, 8, 8, 3, 4, 4, 3, 1, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {3, 7, 5, 2, 6, 0, 0, 0}
+     ,
+     5, {3, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 7, 3, 1, 8, 7, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {5, 1, 3, 7, 6, 2, 0, 0}
+     ,
+     4, {8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {3, 8, 7, 4, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 4, 7, 6, 0, 0, 0, 0}
+     ,
+     8, {8, 9, 4, 11, 10, 12, 7, 3, 0, 0, 0, 0}
+     ,
+     4, {9, 12, 10, 9, 7, 12, 8, 7, 9, 4, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 1, 6, 7, 5, 0, 0, 0}
+     ,
+     7, {3, 1, 7, 8, 10, 12, 11, 0, 0, 0, 0, 0}
+     ,
+     5, {8, 7, 11, 1, 3, 10, 10, 3, 12, 12, 3, 7, 7, 3, 11, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 4, 6, 2, 7, 0, 0, 0}
+     ,
+     9, {9, 4, 11, 8, 2, 12, 1, 7, 3, 0, 0, 0}
+     ,
+     10, {12, 2, 3, 7, 11, 8, 9, 4, 1, 4, 9, 8, 4, 8, 11, 11, 7, 12, 11, 12,
+	  3, 4, 2, 1, 4, 3, 2, 4, 11, 3}
+     ,
+     }
+    ,
+    {6, {7, 4, 2, 6, 5, 1, 0, 0}
+     ,
+     6, {12, 7, 11, 3, 2, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {3, 12, 2, 7, 11, 8, 7, 12, 3, 7, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 6, 3, 4, 7, 0, 0, 0}
+     ,
+     7, {9, 10, 11, 7, 2, 4, 8, 0, 0, 0, 0, 0}
+     ,
+     5, {7, 11, 8, 10, 9, 2, 2, 9, 4, 4, 9, 11, 11, 9, 8, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {7, 6, 5, 4, 3, 1, 0, 0}
+     ,
+     6, {7, 8, 2, 1, 11, 10, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {8, 7, 11, 1, 2, 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}
+     ,
+     }
+    ,
+    {6, {4, 5, 2, 3, 7, 6, 0, 0}
+     ,
+     6, {4, 11, 8, 9, 1, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {9, 4, 1, 11, 8, 7, 11, 4, 9, 11, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {7, 6, 5, 4, 3, 2, 1, 0}
+     ,
+     3, {7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {8, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {1, {8, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {1, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {4, 11, 8, 9, 1, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {4, 9, 1, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {8, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {7, 8, 2, 1, 11, 10, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {7, 8, 11, 2, 1, 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}
+     ,
+     }
+    ,
+    {3, {2, 1, 8, 0, 0, 0, 0, 0}
+     ,
+     7, {9, 10, 11, 7, 2, 4, 8, 0, 0, 0, 0, 0}
+     ,
+     3, {11, 7, 8, 9, 10, 2, 9, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {3, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {12, 7, 11, 3, 2, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {12, 3, 2, 11, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 8, 3, 0, 0, 0, 0, 0}
+     ,
+     9, {9, 4, 11, 8, 2, 12, 1, 7, 3, 0, 0, 0}
+     ,
+     3, {2, 12, 3, 11, 7, 8, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {2, 3, 8, 0, 0, 0, 0, 0}
+     ,
+     7, {3, 1, 7, 8, 10, 12, 11, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 8, 11, 3, 1, 10, 3, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 8, 1, 2, 0, 0, 0, 0}
+     ,
+     8, {3, 12, 7, 11, 10, 9, 4, 8, 0, 0, 0, 0}
+     ,
+     4, {12, 9, 10, 12, 4, 9, 3, 4, 12, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {4, 8, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {8, 3, 7, 8, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {8, 4, 1, 0, 0, 0, 0, 0}
+     ,
+     5, {3, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 1, 3, 8, 1, 7, 8, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {8, 4, 2, 0, 0, 0, 0, 0}
+     ,
+     7, {3, 7, 1, 10, 8, 4, 2, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 10, 2, 3, 7, 8, 3, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 4, 1, 8, 0, 0, 0, 0}
+     ,
+     6, {2, 10, 9, 8, 3, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 9, 10, 2, 7, 9, 2, 3, 7, 9, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 4, 8, 0, 0, 0, 0, 0}
+     ,
+     5, {4, 2, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {2, 8, 4, 12, 8, 2, 12, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 4, 3, 1, 0, 0, 0, 0}
+     ,
+     6, {7, 8, 2, 1, 12, 9, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 12, 7, 1, 2, 7, 8, 1, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 4, 3, 2, 0, 0, 0, 0}
+     ,
+     6, {7, 8, 1, 4, 12, 10, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {8, 4, 7, 4, 10, 7, 10, 12, 7, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {2, 1, 8, 3, 4, 0, 0, 0}
+     ,
+     5, {10, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {12, 9, 10, 12, 8, 9, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {8, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {9, 11, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {9, 7, 5, 9, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {1, 5, 8, 0, 0, 0, 0, 0}
+     ,
+     5, {5, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 7, 5, 4, 7, 1, 4, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {8, 5, 2, 0, 0, 0, 0, 0}
+     ,
+     7, {9, 11, 10, 2, 7, 5, 1, 0, 0, 0, 0, 0}
+     ,
+     3, {10, 2, 1, 9, 11, 7, 9, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 1, 5, 8, 0, 0, 0, 0}
+     ,
+     6, {10, 2, 11, 4, 5, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 4, 10, 4, 7, 10, 7, 5, 10, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 8, 3, 0, 0, 0, 0, 0}
+     ,
+     7, {7, 5, 3, 2, 9, 11, 12, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 2, 12, 7, 5, 9, 7, 9, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 3, 8, 5, 0, 0, 0, 0}
+     ,
+     8, {4, 1, 2, 3, 5, 7, 11, 12, 0, 0, 0, 0}
+     ,
+     4, {1, 7, 5, 1, 11, 7, 4, 11, 1, 2, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 5, 3, 2, 0, 0, 0, 0}
+     ,
+     8, {7, 5, 3, 1, 11, 12, 9, 10, 0, 0, 0, 0}
+     ,
+     4, {7, 5, 11, 5, 9, 11, 3, 10, 12, 3, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {3, 2, 5, 8, 1, 0, 0, 0}
+     ,
+     7, {12, 10, 11, 4, 5, 7, 3, 0, 0, 0, 0, 0}
+     ,
+     5, {4, 11, 3, 10, 12, 5, 5, 12, 7, 7, 12, 11, 11, 12, 3, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {5, 8, 4, 0, 0, 0, 0, 0}
+     ,
+     5, {7, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 3, 7, 9, 3, 5, 9, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 8, 1, 4, 0, 0, 0, 0}
+     ,
+     4, {7, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {5, 1, 3, 5, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 2, 4, 8, 0, 0, 0, 0}
+     ,
+     8, {9, 5, 10, 1, 7, 3, 4, 2, 0, 0, 0, 0}
+     ,
+     4, {5, 3, 7, 5, 4, 3, 9, 4, 5, 10, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 4, 2, 5, 1, 0, 0, 0}
+     ,
+     5, {7, 3, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 3, 7, 5, 2, 3, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 8, 4, 5, 0, 0, 0, 0}
+     ,
+     6, {12, 2, 4, 9, 7, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 4, 2, 12, 5, 4, 12, 7, 5, 4, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 8, 3, 1, 4, 0, 0, 0}
+     ,
+     5, {5, 7, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {1, 7, 5, 1, 12, 7, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 8, 3, 2, 4, 0, 0, 0}
+     ,
+     7, {5, 7, 1, 4, 12, 10, 9, 0, 0, 0, 0, 0}
+     ,
+     5, {4, 1, 9, 7, 5, 12, 12, 5, 10, 10, 5, 1, 1, 5, 9, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {3, 2, 5, 8, 4, 1, 0, 0}
+     ,
+     4, {12, 10, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {5, 12, 7, 10, 12, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {8, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     6, {7, 6, 5, 8, 11, 10, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {7, 8, 11, 5, 6, 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}
+     ,
+     }
+    ,
+    {3, {8, 1, 6, 0, 0, 0, 0, 0}
+     ,
+     9, {11, 8, 9, 4, 6, 10, 7, 1, 5, 0, 0, 0}
+     ,
+     3, {6, 10, 5, 9, 1, 4, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {2, 6, 8, 0, 0, 0, 0, 0}
+     ,
+     7, {6, 2, 8, 11, 1, 5, 7, 0, 0, 0, 0, 0}
+     ,
+     3, {8, 11, 7, 6, 2, 1, 6, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 8, 6, 2, 0, 0, 0, 0}
+     ,
+     8, {9, 4, 11, 8, 2, 6, 5, 7, 0, 0, 0, 0}
+     ,
+     4, {4, 6, 2, 4, 5, 6, 9, 5, 4, 11, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {3, 8, 6, 0, 0, 0, 0, 0}
+     ,
+     9, {3, 12, 7, 11, 10, 5, 2, 8, 6, 0, 0, 0}
+     ,
+     3, {10, 5, 6, 7, 8, 11, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 3, 6, 8, 0, 0, 0, 0}
+     ,
+     12, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
+     ,
+     4, {1, 4, 9, 2, 12, 3, 5, 6, 10, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {6, 8, 3, 2, 0, 0, 0, 0}
+     ,
+     8, {6, 5, 8, 7, 1, 3, 12, 11, 0, 0, 0, 0}
+     ,
+     4, {5, 3, 1, 5, 12, 3, 6, 12, 5, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 8, 2, 3, 6, 0, 0, 0}
+     ,
+     9, {4, 11, 8, 9, 12, 6, 3, 5, 7, 0, 0, 0}
+     ,
+     10, {6, 12, 7, 5, 8, 9, 4, 11, 3, 11, 4, 9, 11, 9, 8, 8, 5, 6, 8, 6, 7,
+	  11, 12, 3, 11, 7, 12, 11, 8, 7}
+     ,
+     }
+    ,
+    {3, {4, 8, 6, 0, 0, 0, 0, 0}
+     ,
+     7, {8, 4, 6, 10, 3, 7, 5, 0, 0, 0, 0, 0}
+     ,
+     3, {6, 10, 5, 8, 4, 3, 8, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 6, 1, 4, 0, 0, 0, 0}
+     ,
+     8, {8, 7, 6, 5, 3, 1, 9, 10, 0, 0, 0, 0}
+     ,
+     4, {7, 1, 3, 7, 9, 1, 8, 9, 7, 6, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 8, 2, 6, 0, 0, 0, 0}
+     ,
+     8, {3, 7, 1, 5, 4, 2, 8, 6, 0, 0, 0, 0}
+     ,
+     4, {3, 7, 4, 7, 8, 4, 1, 6, 2, 1, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 4, 2, 6, 1, 0, 0, 0}
+     ,
+     7, {7, 3, 5, 9, 2, 6, 8, 0, 0, 0, 0, 0}
+     ,
+     5, {9, 5, 8, 3, 7, 2, 2, 7, 6, 6, 7, 5, 5, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {3, 6, 8, 4, 0, 0, 0, 0}
+     ,
+     8, {12, 2, 10, 6, 4, 8, 7, 5, 0, 0, 0, 0}
+     ,
+     4, {2, 8, 4, 2, 7, 8, 12, 7, 2, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 6, 4, 3, 1, 0, 0, 0}
+     ,
+     9, {7, 6, 5, 8, 2, 1, 12, 9, 10, 0, 0, 0}
+     ,
+     10, {1, 2, 10, 9, 5, 8, 7, 6, 12, 6, 7, 8, 6, 8, 5, 5, 9, 1, 5, 1, 10, 6,
+	  2, 12, 6, 10, 2, 6, 5, 10}
+     ,
+     }
+    ,
+    {5, {6, 2, 4, 8, 3, 0, 0, 0}
+     ,
+     7, {5, 1, 7, 12, 4, 8, 6, 0, 0, 0, 0, 0}
+     ,
+     5, {12, 7, 6, 1, 5, 4, 4, 5, 8, 8, 5, 7, 7, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {6, 8, 3, 2, 1, 4, 0, 0}
+     ,
+     6, {6, 5, 8, 7, 12, 9, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {7, 6, 12, 5, 8, 9, 5, 6, 7, 5, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {8, 5, 6, 0, 0, 0, 0, 0}
+     ,
+     5, {9, 11, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {11, 10, 9, 7, 10, 11, 7, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {1, 5, 6, 8, 0, 0, 0, 0}
+     ,
+     6, {1, 4, 6, 7, 10, 11, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {6, 10, 1, 7, 6, 1, 4, 7, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 5, 6, 8, 0, 0, 0, 0}
+     ,
+     6, {1, 2, 6, 7, 9, 11, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {1, 6, 2, 1, 11, 6, 1, 9, 11, 6, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {2, 6, 8, 1, 5, 0, 0, 0}
+     ,
+     5, {2, 6, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {4, 6, 2, 4, 7, 6, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 3, 6, 5, 0, 0, 0, 0}
+     ,
+     8, {7, 11, 3, 12, 9, 10, 6, 2, 0, 0, 0, 0}
+     ,
+     4, {11, 10, 9, 11, 6, 10, 7, 6, 11, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 3, 5, 6, 8, 0, 0, 0}
+     ,
+     9, {1, 2, 3, 4, 6, 7, 10, 11, 12, 0, 0, 0}
+     ,
+     10, {7, 6, 12, 11, 3, 4, 1, 2, 10, 2, 1, 4, 2, 4, 3, 3, 11, 7, 3, 7, 12,
+	  2, 6, 10, 2, 12, 6, 2, 3, 12}
+     ,
+     }
+    ,
+    {5, {8, 5, 2, 3, 6, 0, 0, 0}
+     ,
+     7, {11, 9, 12, 6, 1, 3, 7, 0, 0, 0, 0, 0}
+     ,
+     5, {6, 12, 7, 9, 11, 1, 1, 11, 3, 3, 11, 12, 12, 11, 7, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {3, 8, 1, 2, 6, 5, 0, 0}
+     ,
+     6, {3, 12, 7, 11, 4, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {11, 3, 4, 12, 7, 6, 12, 3, 11, 12, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {6, 5, 8, 4, 0, 0, 0, 0}
+     ,
+     6, {6, 10, 4, 9, 7, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {10, 9, 6, 9, 3, 6, 3, 7, 6, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 1, 6, 8, 5, 0, 0, 0}
+     ,
+     5, {3, 1, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {7, 1, 3, 7, 10, 1, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {2, 6, 8, 4, 5, 0, 0, 0}
+     ,
+     7, {2, 6, 4, 9, 7, 3, 1, 0, 0, 0, 0, 0}
+     ,
+     5, {9, 4, 1, 6, 2, 7, 7, 2, 3, 3, 2, 4, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {2, 6, 8, 4, 1, 5, 0, 0}
+     ,
+     4, {2, 6, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {7, 2, 3, 6, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {3, 4, 5, 6, 8, 0, 0, 0}
+     ,
+     7, {2, 4, 6, 7, 9, 10, 12, 0, 0, 0, 0, 0}
+     ,
+     5, {7, 6, 12, 4, 2, 9, 9, 2, 10, 10, 2, 6, 6, 2, 12, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {6, 3, 1, 5, 8, 4, 0, 0}
+     ,
+     6, {10, 6, 12, 2, 1, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {2, 10, 1, 6, 12, 7, 6, 10, 2, 6, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {2, 3, 4, 5, 6, 8, 0, 0}
+     ,
+     6, {1, 4, 6, 7, 9, 12, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {4, 1, 9, 7, 6, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {8, 4, 3, 6, 5, 1, 2, 0}
+     ,
+     3, {7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {12, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {2, {8, 7, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {6, 8, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {6, 11, 12, 6, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 8, 1, 0, 0, 0, 0, 0}
+     ,
+     7, {11, 12, 9, 1, 6, 8, 4, 0, 0, 0, 0, 0}
+     ,
+     3, {9, 1, 4, 11, 12, 6, 11, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {8, 7, 2, 0, 0, 0, 0, 0}
+     ,
+     7, {6, 8, 2, 1, 11, 12, 10, 0, 0, 0, 0, 0}
+     ,
+     3, {2, 1, 10, 6, 8, 11, 6, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {2, 1, 7, 8, 0, 0, 0, 0}
+     ,
+     8, {2, 4, 6, 8, 10, 12, 9, 11, 0, 0, 0, 0}
+     ,
+     4, {2, 4, 10, 4, 9, 10, 6, 11, 12, 6, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {8, 7, 3, 0, 0, 0, 0, 0}
+     ,
+     5, {6, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {8, 2, 6, 11, 2, 8, 11, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 1, 3, 7, 0, 0, 0, 0}
+     ,
+     8, {11, 8, 9, 4, 6, 2, 3, 1, 0, 0, 0, 0}
+     ,
+     4, {8, 2, 6, 8, 3, 2, 11, 3, 8, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 3, 7, 2, 0, 0, 0, 0}
+     ,
+     6, {11, 8, 6, 10, 3, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {11, 6, 8, 11, 1, 6, 11, 3, 1, 6, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 7, 2, 1, 3, 0, 0, 0}
+     ,
+     7, {8, 6, 4, 3, 10, 9, 11, 0, 0, 0, 0, 0}
+     ,
+     5, {3, 4, 11, 6, 8, 10, 10, 8, 9, 9, 8, 4, 4, 8, 11, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {4, 8, 7, 0, 0, 0, 0, 0}
+     ,
+     5, {8, 4, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {4, 6, 8, 3, 6, 4, 3, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {7, 8, 4, 1, 0, 0, 0, 0}
+     ,
+     6, {12, 6, 9, 8, 3, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {6, 8, 12, 8, 1, 12, 1, 3, 12, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {4, 2, 7, 8, 0, 0, 0, 0}
+     ,
+     8, {3, 4, 1, 2, 8, 6, 12, 10, 0, 0, 0, 0}
+     ,
+     4, {4, 6, 8, 4, 12, 6, 3, 12, 4, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {2, 1, 8, 7, 4, 0, 0, 0}
+     ,
+     7, {10, 9, 12, 3, 8, 6, 2, 0, 0, 0, 0, 0}
+     ,
+     5, {3, 12, 2, 9, 10, 8, 8, 10, 6, 6, 10, 12, 12, 10, 2, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 7, 4, 3, 0, 0, 0, 0}
+     ,
+     4, {6, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {8, 4, 2, 8, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {7, 3, 1, 8, 4, 0, 0, 0}
+     ,
+     5, {6, 2, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {8, 2, 6, 8, 1, 2, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 7, 2, 4, 3, 0, 0, 0}
+     ,
+     5, {8, 6, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {4, 6, 8, 4, 10, 6, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {2, 1, 8, 7, 3, 4, 0, 0}
+     ,
+     4, {10, 9, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {8, 10, 6, 9, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {3, {7, 8, 5, 0, 0, 0, 0, 0}
+     ,
+     5, {11, 12, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {12, 9, 11, 6, 9, 12, 6, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {7, 5, 8, 1, 0, 0, 0, 0}
+     ,
+     6, {6, 12, 11, 4, 5, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {6, 11, 12, 6, 1, 11, 6, 5, 1, 11, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {7, 2, 5, 8, 0, 0, 0, 0}
+     ,
+     8, {6, 12, 2, 10, 11, 9, 5, 1, 0, 0, 0, 0}
+     ,
+     4, {12, 9, 11, 12, 5, 9, 6, 5, 12, 2, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {7, 8, 1, 2, 5, 0, 0, 0}
+     ,
+     7, {12, 11, 10, 5, 4, 2, 6, 0, 0, 0, 0, 0}
+     ,
+     5, {5, 10, 6, 11, 12, 4, 4, 12, 2, 2, 12, 10, 10, 12, 6, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 8, 7, 3, 0, 0, 0, 0}
+     ,
+     6, {5, 9, 3, 11, 6, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {9, 11, 5, 11, 2, 5, 2, 6, 5, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 5, 7, 3, 8, 0, 0, 0}
+     ,
+     7, {1, 5, 3, 11, 6, 2, 4, 0, 0, 0, 0, 0}
+     ,
+     5, {11, 3, 4, 5, 1, 6, 6, 1, 2, 2, 1, 3, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {2, 3, 8, 5, 7, 0, 0, 0}
+     ,
+     7, {1, 3, 5, 6, 11, 9, 10, 0, 0, 0, 0, 0}
+     ,
+     5, {6, 5, 10, 3, 1, 11, 11, 1, 9, 9, 1, 5, 5, 1, 10, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {3, 7, 8, 1, 2, 5, 0, 0}
+     ,
+     6, {3, 11, 10, 5, 4, 6, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {11, 3, 4, 5, 10, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 8, 7, 4, 0, 0, 0, 0}
+     ,
+     6, {5, 9, 12, 3, 6, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 6, 5, 3, 12, 5, 9, 3, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 5, 7, 4, 8, 0, 0, 0}
+     ,
+     5, {1, 5, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {3, 5, 1, 3, 6, 5, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 2, 8, 7, 4, 0, 0, 0}
+     ,
+     9, {5, 10, 1, 9, 12, 3, 6, 4, 2, 0, 0, 0}
+     ,
+     10, {3, 12, 2, 4, 1, 9, 5, 10, 6, 10, 5, 9, 10, 9, 1, 1, 4, 3, 1, 3, 2,
+	  10, 12, 6, 10, 2, 12, 10, 1, 2}
+     ,
+     }
+    ,
+    {6, {2, 7, 4, 1, 5, 8, 0, 0}
+     ,
+     6, {2, 10, 6, 12, 3, 5, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {12, 2, 3, 10, 6, 5, 10, 2, 12, 10, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {3, 4, 5, 7, 8, 0, 0, 0}
+     ,
+     5, {2, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {6, 4, 2, 6, 9, 4, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {7, 3, 1, 5, 8, 4, 0, 0}
+     ,
+     4, {6, 2, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {1, 6, 5, 2, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {2, 5, 7, 3, 4, 8, 0, 0}
+     ,
+     6, {10, 1, 9, 5, 6, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {5, 10, 6, 1, 9, 4, 1, 10, 5, 1, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {5, 8, 7, 2, 1, 4, 3, 0}
+     ,
+     3, {5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {6, 5, 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}
+     ,
+     }
+    ,
+    {3, {6, 7, 8, 0, 0, 0, 0, 0}
+     ,
+     5, {12, 10, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {10, 11, 12, 5, 11, 10, 5, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {6, 1, 8, 7, 0, 0, 0, 0}
+     ,
+     8, {5, 10, 1, 9, 12, 11, 8, 4, 0, 0, 0, 0}
+     ,
+     4, {10, 11, 12, 10, 8, 11, 5, 8, 10, 1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 7, 6, 2, 0, 0, 0, 0}
+     ,
+     6, {8, 11, 2, 12, 5, 1, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {11, 12, 8, 12, 1, 8, 1, 5, 8, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {1, 2, 7, 8, 6, 0, 0, 0}
+     ,
+     7, {4, 2, 8, 5, 12, 11, 9, 0, 0, 0, 0, 0}
+     ,
+     5, {5, 8, 9, 2, 4, 12, 12, 4, 11, 11, 4, 8, 8, 4, 9, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {8, 7, 6, 3, 0, 0, 0, 0}
+     ,
+     6, {8, 11, 10, 2, 5, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {10, 5, 8, 2, 10, 8, 11, 2, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 1, 7, 6, 3, 0, 0, 0}
+     ,
+     9, {8, 9, 4, 11, 10, 2, 5, 3, 1, 0, 0, 0}
+     ,
+     10, {2, 10, 1, 3, 4, 11, 8, 9, 5, 9, 8, 11, 9, 11, 4, 4, 3, 2, 4, 2, 1,
+	  9, 10, 5, 9, 1, 10, 9, 4, 1}
+     ,
+     }
+    ,
+    {5, {2, 3, 8, 6, 7, 0, 0, 0}
+     ,
+     5, {1, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {5, 3, 1, 5, 11, 3, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {1, 8, 6, 2, 3, 7, 0, 0}
+     ,
+     6, {9, 4, 11, 8, 5, 3, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {8, 9, 5, 4, 11, 3, 4, 9, 8, 4, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {6, 8, 7, 4, 0, 0, 0, 0}
+     ,
+     6, {5, 10, 12, 3, 8, 4, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {5, 12, 10, 5, 4, 12, 5, 8, 4, 12, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {6, 7, 4, 1, 8, 0, 0, 0}
+     ,
+     7, {10, 12, 9, 8, 3, 1, 5, 0, 0, 0, 0, 0}
+     ,
+     5, {8, 9, 5, 12, 10, 3, 3, 10, 1, 1, 10, 9, 9, 10, 5, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 8, 6, 2, 7, 0, 0, 0}
+     ,
+     7, {4, 8, 2, 12, 5, 1, 3, 0, 0, 0, 0, 0}
+     ,
+     5, {12, 2, 3, 8, 4, 5, 5, 4, 1, 1, 4, 2, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {6, 2, 1, 8, 7, 4, 0, 0}
+     ,
+     6, {5, 9, 12, 3, 8, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {9, 5, 8, 3, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {4, 8, 6, 3, 7, 0, 0, 0}
+     ,
+     5, {4, 8, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {2, 8, 4, 2, 5, 8, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {6, 1, 8, 7, 3, 4, 0, 0}
+     ,
+     6, {5, 10, 1, 9, 8, 2, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {9, 5, 8, 10, 1, 2, 10, 5, 9, 10, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {4, 8, 6, 2, 3, 7, 0, 0}
+     ,
+     4, {4, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {5, 4, 1, 8, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {6, 2, 1, 8, 7, 3, 4, 0}
+     ,
+     3, {5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {9, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {4, {5, 6, 8, 7, 0, 0, 0, 0}
+     ,
+     4, {10, 9, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {9, 11, 12, 9, 12, 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}
+     ,
+     }
+    ,
+    {5, {7, 8, 1, 6, 5, 0, 0, 0}
+     ,
+     5, {12, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {10, 11, 12, 10, 4, 11, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {8, 5, 2, 7, 6, 0, 0, 0}
+     ,
+     5, {11, 9, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {12, 9, 11, 12, 1, 9, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {7, 8, 1, 2, 6, 5, 0, 0}
+     ,
+     4, {12, 11, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {4, 12, 2, 11, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {5, 6, 3, 8, 7, 0, 0, 0}
+     ,
+     5, {9, 10, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {11, 10, 9, 11, 2, 10, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {3, 1, 6, 7, 8, 5, 0, 0}
+     ,
+     6, {2, 3, 4, 1, 10, 11, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {1, 2, 10, 3, 4, 11, 3, 2, 1, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {8, 5, 2, 3, 7, 6, 0, 0}
+     ,
+     4, {11, 9, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {1, 11, 3, 9, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {3, 7, 8, 1, 2, 6, 5, 0}
+     ,
+     3, {3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {11, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {5, {6, 7, 4, 5, 8, 0, 0, 0}
+     ,
+     5, {10, 12, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     3, {9, 12, 10, 9, 3, 12, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {6, 7, 4, 1, 5, 8, 0, 0}
+     ,
+     4, {10, 12, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {3, 10, 1, 12, 10, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {2, 4, 5, 6, 7, 8, 0, 0}
+     ,
+     6, {1, 2, 3, 4, 9, 12, 0, 0, 0, 0, 0, 0}
+     ,
+     4, {4, 1, 9, 2, 3, 12, 2, 1, 4, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {4, 1, 2, 7, 8, 5, 6, 0}
+     ,
+     3, {3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {2, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {6, {3, 4, 5, 6, 7, 8, 0, 0}
+     ,
+     4, {2, 4, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     2, {9, 2, 10, 4, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {1, 5, 6, 3, 4, 8, 7, 0}
+     ,
+     3, {1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {10, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {7, {2, 3, 4, 5, 6, 7, 8, 0}
+     ,
+     3, {1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     1, {4, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+    {0, {0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+     ,
+     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	 0, 0, 0, 0, 0, 0, 0}
+     ,
+     }
+    ,
+};
+

Deleted: grass/trunk/lib/dspf/cell_table.h
===================================================================
--- grass/trunk/lib/dspf/cell_table.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/lib/dspf/cell_table.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,2310 +0,0 @@
-#ifdef MAIN
-CELL_ENTRY cell_table[256] = {
-    {0, {0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {1, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {2, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {1, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 4, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {2, 9, 10, 2, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {3, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {1, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {1, 2, 3, 4, 9, 12, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {1, 4, 9, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {3, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {10, 12, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {10, 3, 1, 10, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 2, 1, 0, 0, 0, 0, 0}
-     ,
-     5, {10, 12, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {12, 9, 10, 3, 9, 12, 3, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {4, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {1, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {11, 9, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {11, 1, 3, 11, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {2, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {2, 3, 4, 1, 10, 11, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {2, 1, 10, 4, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {2, 1, 4, 0, 0, 0, 0, 0}
-     ,
-     5, {9, 10, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {10, 11, 9, 2, 11, 10, 2, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {4, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 11, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {12, 4, 2, 12, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 4, 3, 0, 0, 0, 0, 0}
-     ,
-     5, {11, 9, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {9, 12, 11, 1, 12, 9, 1, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {4, 3, 2, 0, 0, 0, 0, 0}
-     ,
-     5, {12, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {11, 10, 12, 4, 10, 11, 4, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 3, 1, 2, 0, 0, 0, 0}
-     ,
-     4, {12, 11, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {11, 9, 10, 11, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {5, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {5, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {4, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {4, 5, 1, 4, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {5, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {5, 10, 1, 9, 8, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {5, 9, 8, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 1, 2, 0, 0, 0, 0, 0}
-     ,
-     5, {4, 8, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {8, 2, 4, 5, 2, 8, 5, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {5, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {5, 9, 12, 3, 8, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {5, 9, 8, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 1, 3, 0, 0, 0, 0, 0}
-     ,
-     7, {4, 8, 2, 12, 5, 1, 3, 0, 0, 0, 0, 0}
-     ,
-     3, {2, 12, 3, 4, 8, 5, 4, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 2, 5, 0, 0, 0, 0, 0}
-     ,
-     7, {10, 12, 9, 8, 3, 1, 5, 0, 0, 0, 0, 0}
-     ,
-     3, {9, 8, 5, 10, 12, 3, 10, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 1, 2, 5, 0, 0, 0, 0}
-     ,
-     6, {3, 12, 10, 5, 4, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {3, 10, 12, 3, 8, 10, 3, 4, 8, 10, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {5, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {9, 4, 11, 8, 5, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {9, 8, 5, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {4, 1, 5, 0, 0, 0, 0, 0}
-     ,
-     5, {1, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 5, 1, 11, 5, 3, 11, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 4, 2, 0, 0, 0, 0, 0}
-     ,
-     9, {8, 9, 4, 11, 10, 2, 5, 3, 1, 0, 0, 0}
-     ,
-     3, {10, 2, 1, 4, 3, 11, 9, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 1, 2, 5, 0, 0, 0, 0}
-     ,
-     6, {3, 11, 10, 5, 2, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {10, 2, 3, 5, 10, 3, 11, 5, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 4, 5, 0, 0, 0, 0, 0}
-     ,
-     7, {4, 2, 8, 5, 12, 11, 9, 0, 0, 0, 0, 0}
-     ,
-     3, {8, 5, 9, 4, 2, 12, 4, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 4, 1, 5, 0, 0, 0, 0}
-     ,
-     6, {2, 12, 8, 11, 1, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 11, 2, 11, 5, 2, 5, 1, 2, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 5, 2, 3, 0, 0, 0, 0}
-     ,
-     8, {4, 11, 8, 9, 12, 10, 1, 5, 0, 0, 0, 0}
-     ,
-     4, {11, 10, 12, 11, 1, 10, 4, 1, 11, 8, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {3, 2, 5, 4, 1, 0, 0, 0}
-     ,
-     5, {12, 10, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {11, 10, 12, 11, 5, 10, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {6, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {5, 6, 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}
-     ,
-     }
-    ,
-    {2, {6, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {10, 1, 9, 5, 6, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {10, 5, 6, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {2, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {6, 2, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {6, 1, 5, 6, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 2, 6, 0, 0, 0, 0, 0}
-     ,
-     5, {2, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {4, 6, 2, 9, 6, 4, 9, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {3, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {2, 10, 6, 12, 3, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {2, 12, 3, 6, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {6, 1, 3, 0, 0, 0, 0, 0}
-     ,
-     9, {5, 10, 1, 9, 12, 3, 6, 4, 2, 0, 0, 0}
-     ,
-     3, {12, 3, 2, 1, 4, 9, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {6, 2, 3, 0, 0, 0, 0, 0}
-     ,
-     5, {1, 5, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 3, 1, 6, 3, 5, 6, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 2, 3, 6, 0, 0, 0, 0}
-     ,
-     6, {4, 9, 12, 6, 3, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 3, 4, 6, 12, 4, 9, 6, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {4, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {3, 11, 10, 5, 4, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {3, 11, 4, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {4, 1, 6, 0, 0, 0, 0, 0}
-     ,
-     7, {1, 3, 5, 6, 11, 9, 10, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 6, 10, 1, 3, 11, 1, 11, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {6, 2, 4, 0, 0, 0, 0, 0}
-     ,
-     7, {1, 5, 3, 11, 6, 2, 4, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 11, 4, 1, 5, 6, 1, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 1, 2, 6, 0, 0, 0, 0}
-     ,
-     6, {3, 11, 5, 9, 2, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {11, 9, 3, 9, 6, 3, 6, 2, 3, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {4, 3, 6, 0, 0, 0, 0, 0}
-     ,
-     7, {12, 11, 10, 5, 4, 2, 6, 0, 0, 0, 0, 0}
-     ,
-     3, {10, 5, 6, 12, 11, 4, 12, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 6, 3, 4, 0, 0, 0, 0}
-     ,
-     8, {1, 9, 5, 10, 11, 12, 2, 6, 0, 0, 0, 0}
-     ,
-     4, {9, 12, 11, 9, 2, 12, 1, 2, 9, 5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 2, 3, 6, 0, 0, 0, 0}
-     ,
-     6, {4, 11, 12, 6, 1, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {4, 12, 11, 4, 5, 12, 4, 1, 5, 12, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 3, 6, 1, 2, 0, 0, 0}
-     ,
-     5, {11, 12, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {9, 12, 11, 9, 6, 12, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {5, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {10, 9, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {10, 8, 6, 10, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {6, 5, 1, 0, 0, 0, 0, 0}
-     ,
-     5, {8, 6, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {6, 4, 8, 10, 4, 6, 10, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {2, 6, 5, 0, 0, 0, 0, 0}
-     ,
-     5, {6, 2, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {2, 8, 6, 1, 8, 2, 1, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 2, 5, 6, 0, 0, 0, 0}
-     ,
-     4, {2, 4, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {4, 8, 6, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 6, 3, 0, 0, 0, 0, 0}
-     ,
-     7, {10, 9, 12, 3, 8, 6, 2, 0, 0, 0, 0, 0}
-     ,
-     3, {12, 3, 2, 10, 9, 8, 10, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {6, 3, 1, 5, 0, 0, 0, 0}
-     ,
-     8, {10, 6, 12, 2, 8, 4, 1, 3, 0, 0, 0, 0}
-     ,
-     4, {6, 4, 8, 6, 1, 4, 10, 1, 6, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 6, 2, 3, 0, 0, 0, 0}
-     ,
-     6, {9, 8, 12, 6, 1, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {8, 6, 9, 6, 3, 9, 3, 1, 9, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 1, 3, 6, 2, 0, 0, 0}
-     ,
-     5, {8, 4, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {6, 4, 8, 6, 3, 4, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {6, 5, 4, 0, 0, 0, 0, 0}
-     ,
-     7, {8, 6, 4, 3, 10, 9, 11, 0, 0, 0, 0, 0}
-     ,
-     3, {4, 3, 11, 8, 6, 10, 8, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {6, 1, 5, 4, 0, 0, 0, 0}
-     ,
-     6, {10, 6, 8, 11, 1, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {10, 8, 6, 10, 3, 8, 10, 1, 3, 8, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 4, 5, 6, 0, 0, 0, 0}
-     ,
-     8, {1, 2, 3, 4, 6, 8, 9, 11, 0, 0, 0, 0}
-     ,
-     4, {2, 8, 6, 2, 9, 8, 1, 9, 2, 3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {6, 5, 4, 2, 1, 0, 0, 0}
-     ,
-     5, {6, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {2, 8, 6, 2, 11, 8, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 4, 6, 5, 0, 0, 0, 0}
-     ,
-     8, {12, 11, 10, 9, 2, 6, 4, 8, 0, 0, 0, 0}
-     ,
-     4, {12, 11, 2, 11, 4, 2, 10, 8, 6, 10, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {6, 5, 4, 3, 1, 0, 0, 0}
-     ,
-     7, {6, 8, 2, 1, 11, 12, 10, 0, 0, 0, 0, 0}
-     ,
-     5, {1, 2, 10, 8, 6, 11, 11, 6, 12, 12, 6, 2, 2, 6, 10, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 3, 6, 5, 2, 0, 0, 0}
-     ,
-     7, {11, 12, 9, 1, 6, 8, 4, 0, 0, 0, 0, 0}
-     ,
-     5, {1, 9, 4, 12, 11, 6, 6, 11, 8, 8, 11, 9, 9, 11, 4, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {6, 5, 4, 3, 2, 1, 0, 0}
-     ,
-     4, {6, 8, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {11, 6, 12, 8, 6, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {7, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {1, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {1, 4, 6, 7, 9, 12, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {1, 4, 9, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {2, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {10, 6, 12, 2, 1, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {10, 2, 1, 12, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 2, 7, 0, 0, 0, 0, 0}
-     ,
-     7, {2, 4, 6, 7, 9, 10, 12, 0, 0, 0, 0, 0}
-     ,
-     3, {6, 7, 12, 2, 4, 9, 2, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {7, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 6, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {2, 7, 3, 2, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 3, 1, 0, 0, 0, 0, 0}
-     ,
-     7, {2, 6, 4, 9, 7, 3, 1, 0, 0, 0, 0, 0}
-     ,
-     3, {4, 9, 1, 2, 6, 7, 2, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {2, 3, 7, 0, 0, 0, 0, 0}
-     ,
-     5, {3, 1, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 7, 3, 10, 7, 1, 10, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 2, 3, 7, 0, 0, 0, 0}
-     ,
-     6, {4, 9, 6, 10, 3, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {9, 10, 4, 10, 7, 4, 7, 3, 4, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {4, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {3, 12, 7, 11, 4, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {3, 11, 4, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 4, 7, 0, 0, 0, 0, 0}
-     ,
-     7, {11, 9, 12, 6, 1, 3, 7, 0, 0, 0, 0, 0}
-     ,
-     3, {12, 6, 7, 11, 9, 1, 11, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {2, 4, 7, 0, 0, 0, 0, 0}
-     ,
-     9, {1, 2, 3, 4, 6, 7, 10, 11, 12, 0, 0, 0}
-     ,
-     3, {6, 7, 12, 3, 11, 4, 2, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 7, 4, 1, 0, 0, 0, 0}
-     ,
-     8, {2, 10, 6, 12, 9, 11, 3, 7, 0, 0, 0, 0}
-     ,
-     4, {10, 11, 9, 10, 3, 11, 2, 3, 10, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 3, 4, 0, 0, 0, 0, 0}
-     ,
-     5, {2, 6, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {6, 4, 2, 7, 4, 6, 7, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {7, 4, 3, 1, 0, 0, 0, 0}
-     ,
-     6, {7, 6, 2, 1, 11, 9, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {7, 2, 6, 7, 9, 2, 7, 11, 9, 2, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 3, 7, 2, 0, 0, 0, 0}
-     ,
-     6, {11, 4, 6, 10, 7, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {6, 7, 11, 10, 6, 11, 4, 10, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 4, 7, 2, 3, 0, 0, 0}
-     ,
-     5, {9, 11, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {10, 11, 9, 10, 7, 11, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {7, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {6, 5, 8, 7, 12, 9, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {6, 7, 12, 8, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 5, 7, 0, 0, 0, 0, 0}
-     ,
-     7, {5, 1, 7, 12, 4, 8, 6, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 12, 6, 5, 1, 4, 5, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 5, 2, 0, 0, 0, 0, 0}
-     ,
-     9, {7, 6, 5, 8, 2, 1, 12, 9, 10, 0, 0, 0}
-     ,
-     3, {2, 1, 10, 5, 9, 8, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 7, 2, 1, 0, 0, 0, 0}
-     ,
-     8, {5, 8, 7, 6, 4, 2, 10, 12, 0, 0, 0, 0}
-     ,
-     4, {8, 2, 4, 8, 10, 2, 5, 10, 8, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 7, 5, 0, 0, 0, 0, 0}
-     ,
-     7, {7, 3, 5, 9, 2, 6, 8, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 9, 8, 7, 3, 2, 7, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 1, 7, 3, 0, 0, 0, 0}
-     ,
-     8, {5, 1, 7, 3, 8, 6, 4, 2, 0, 0, 0, 0}
-     ,
-     4, {5, 1, 8, 1, 4, 8, 7, 2, 6, 7, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 5, 7, 3, 0, 0, 0, 0}
-     ,
-     8, {10, 1, 9, 5, 3, 7, 6, 8, 0, 0, 0, 0}
-     ,
-     4, {1, 7, 3, 1, 6, 7, 10, 6, 1, 9, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 1, 3, 7, 2, 0, 0, 0}
-     ,
-     7, {8, 4, 6, 10, 3, 7, 5, 0, 0, 0, 0, 0}
-     ,
-     5, {10, 6, 5, 4, 8, 3, 3, 8, 7, 7, 8, 6, 6, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {4, 5, 7, 0, 0, 0, 0, 0}
-     ,
-     9, {4, 11, 8, 9, 12, 6, 3, 5, 7, 0, 0, 0}
-     ,
-     3, {12, 6, 7, 8, 5, 9, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 7, 5, 1, 0, 0, 0, 0}
-     ,
-     8, {11, 3, 12, 7, 1, 5, 8, 6, 0, 0, 0, 0}
-     ,
-     4, {3, 5, 1, 3, 8, 5, 11, 8, 3, 12, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 7, 2, 5, 0, 0, 0, 0}
-     ,
-     12, {3, 12, 7, 11, 1, 10, 5, 9, 4, 2, 8, 6}
-     ,
-     4, {3, 11, 4, 12, 6, 7, 1, 10, 2, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 7, 1, 2, 5, 0, 0, 0}
-     ,
-     9, {3, 12, 7, 11, 10, 5, 2, 8, 6, 0, 0, 0}
-     ,
-     10, {5, 10, 6, 8, 7, 11, 3, 12, 2, 12, 3, 11, 12, 11, 7, 7, 8, 5, 7, 5,
-	  6, 12, 10, 2, 12, 6, 10, 12, 7, 6}
-     ,
-     }
-    ,
-    {4, {7, 5, 4, 3, 0, 0, 0, 0}
-     ,
-     8, {7, 6, 5, 8, 2, 4, 11, 9, 0, 0, 0, 0}
-     ,
-     4, {6, 4, 2, 6, 11, 4, 7, 11, 6, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {7, 3, 1, 5, 4, 0, 0, 0}
-     ,
-     7, {6, 2, 8, 11, 1, 5, 7, 0, 0, 0, 0, 0}
-     ,
-     5, {11, 8, 7, 2, 6, 1, 1, 6, 5, 5, 6, 8, 8, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 5, 3, 7, 2, 0, 0, 0}
-     ,
-     9, {11, 8, 9, 4, 6, 10, 7, 1, 5, 0, 0, 0}
-     ,
-     10, {10, 6, 5, 1, 9, 4, 11, 8, 7, 8, 11, 4, 8, 4, 9, 9, 1, 10, 9, 10, 5,
-	  8, 6, 7, 8, 5, 6, 8, 9, 5}
-     ,
-     }
-    ,
-    {6, {7, 5, 4, 3, 2, 1, 0, 0}
-     ,
-     6, {7, 6, 5, 8, 11, 10, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {8, 7, 11, 6, 5, 10, 6, 7, 8, 6, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {6, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 10, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {12, 5, 7, 12, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 6, 1, 0, 0, 0, 0, 0}
-     ,
-     7, {5, 7, 1, 4, 12, 10, 9, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 4, 9, 5, 7, 12, 5, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 6, 2, 0, 0, 0, 0, 0}
-     ,
-     5, {5, 7, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 1, 5, 12, 1, 7, 12, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 6, 2, 7, 0, 0, 0, 0}
-     ,
-     6, {9, 4, 2, 12, 5, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {9, 2, 4, 9, 7, 2, 9, 5, 7, 2, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 7, 6, 0, 0, 0, 0, 0}
-     ,
-     5, {7, 3, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 5, 7, 2, 5, 3, 2, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 1, 6, 7, 0, 0, 0, 0}
-     ,
-     8, {2, 3, 4, 1, 7, 5, 10, 9, 0, 0, 0, 0}
-     ,
-     4, {3, 5, 7, 3, 10, 5, 2, 10, 3, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 3, 6, 7, 0, 0, 0, 0}
-     ,
-     4, {3, 1, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {1, 5, 7, 1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {7, 6, 1, 3, 2, 0, 0, 0}
-     ,
-     5, {7, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 5, 7, 3, 9, 5, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {6, 7, 4, 0, 0, 0, 0, 0}
-     ,
-     7, {12, 10, 11, 4, 5, 7, 3, 0, 0, 0, 0, 0}
-     ,
-     3, {11, 4, 3, 12, 10, 5, 12, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 4, 6, 7, 0, 0, 0, 0}
-     ,
-     8, {1, 3, 5, 7, 9, 10, 11, 12, 0, 0, 0, 0}
-     ,
-     4, {1, 3, 9, 3, 11, 9, 5, 12, 10, 5, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {7, 4, 2, 6, 0, 0, 0, 0}
-     ,
-     8, {12, 7, 11, 3, 5, 1, 2, 4, 0, 0, 0, 0}
-     ,
-     4, {7, 1, 5, 7, 2, 1, 12, 2, 7, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {7, 6, 1, 4, 2, 0, 0, 0}
-     ,
-     7, {7, 5, 3, 2, 9, 11, 12, 0, 0, 0, 0, 0}
-     ,
-     5, {2, 3, 12, 5, 7, 9, 9, 7, 11, 11, 7, 3, 3, 7, 12, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 3, 7, 6, 0, 0, 0, 0}
-     ,
-     6, {11, 4, 10, 2, 7, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {4, 2, 11, 2, 5, 11, 5, 7, 11, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 4, 7, 6, 3, 0, 0, 0}
-     ,
-     7, {9, 11, 10, 2, 7, 5, 1, 0, 0, 0, 0, 0}
-     ,
-     5, {2, 10, 1, 11, 9, 7, 7, 9, 5, 5, 9, 10, 10, 9, 1, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {6, 2, 4, 7, 3, 0, 0, 0}
-     ,
-     5, {5, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 1, 5, 7, 4, 1, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {1, 4, 7, 6, 2, 3, 0, 0}
-     ,
-     4, {9, 11, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {7, 9, 5, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 6, 7, 0, 0, 0, 0, 0}
-     ,
-     5, {10, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {9, 12, 10, 8, 12, 9, 8, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 5, 6, 7, 0, 0, 0, 0}
-     ,
-     6, {1, 4, 7, 8, 10, 12, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {4, 8, 1, 8, 12, 1, 12, 10, 1, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 6, 2, 7, 0, 0, 0, 0}
-     ,
-     6, {9, 8, 2, 12, 1, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 1, 9, 12, 2, 9, 8, 12, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 2, 7, 5, 6, 0, 0, 0}
-     ,
-     5, {4, 2, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {8, 2, 4, 8, 12, 2, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 7, 6, 3, 0, 0, 0, 0}
-     ,
-     6, {8, 9, 10, 2, 7, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {8, 10, 9, 8, 3, 10, 8, 7, 3, 10, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {3, 7, 5, 1, 6, 0, 0, 0}
-     ,
-     7, {3, 7, 1, 10, 8, 4, 2, 0, 0, 0, 0, 0}
-     ,
-     5, {10, 1, 2, 7, 3, 8, 8, 3, 4, 4, 3, 1, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {3, 7, 5, 2, 6, 0, 0, 0}
-     ,
-     5, {3, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 7, 3, 1, 8, 7, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {5, 1, 3, 7, 6, 2, 0, 0}
-     ,
-     4, {8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {3, 8, 7, 4, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 4, 7, 6, 0, 0, 0, 0}
-     ,
-     8, {8, 9, 4, 11, 10, 12, 7, 3, 0, 0, 0, 0}
-     ,
-     4, {9, 12, 10, 9, 7, 12, 8, 7, 9, 4, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 1, 6, 7, 5, 0, 0, 0}
-     ,
-     7, {3, 1, 7, 8, 10, 12, 11, 0, 0, 0, 0, 0}
-     ,
-     5, {8, 7, 11, 1, 3, 10, 10, 3, 12, 12, 3, 7, 7, 3, 11, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 4, 6, 2, 7, 0, 0, 0}
-     ,
-     9, {9, 4, 11, 8, 2, 12, 1, 7, 3, 0, 0, 0}
-     ,
-     10, {12, 2, 3, 7, 11, 8, 9, 4, 1, 4, 9, 8, 4, 8, 11, 11, 7, 12, 11, 12,
-	  3, 4, 2, 1, 4, 3, 2, 4, 11, 3}
-     ,
-     }
-    ,
-    {6, {7, 4, 2, 6, 5, 1, 0, 0}
-     ,
-     6, {12, 7, 11, 3, 2, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {3, 12, 2, 7, 11, 8, 7, 12, 3, 7, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 6, 3, 4, 7, 0, 0, 0}
-     ,
-     7, {9, 10, 11, 7, 2, 4, 8, 0, 0, 0, 0, 0}
-     ,
-     5, {7, 11, 8, 10, 9, 2, 2, 9, 4, 4, 9, 11, 11, 9, 8, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {7, 6, 5, 4, 3, 1, 0, 0}
-     ,
-     6, {7, 8, 2, 1, 11, 10, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {8, 7, 11, 1, 2, 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}
-     ,
-     }
-    ,
-    {6, {4, 5, 2, 3, 7, 6, 0, 0}
-     ,
-     6, {4, 11, 8, 9, 1, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {9, 4, 1, 11, 8, 7, 11, 4, 9, 11, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {7, 6, 5, 4, 3, 2, 1, 0}
-     ,
-     3, {7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {8, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {1, {8, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {1, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {4, 11, 8, 9, 1, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {4, 9, 1, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {8, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {7, 8, 2, 1, 11, 10, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {7, 8, 11, 2, 1, 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}
-     ,
-     }
-    ,
-    {3, {2, 1, 8, 0, 0, 0, 0, 0}
-     ,
-     7, {9, 10, 11, 7, 2, 4, 8, 0, 0, 0, 0, 0}
-     ,
-     3, {11, 7, 8, 9, 10, 2, 9, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {3, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {12, 7, 11, 3, 2, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {12, 3, 2, 11, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 8, 3, 0, 0, 0, 0, 0}
-     ,
-     9, {9, 4, 11, 8, 2, 12, 1, 7, 3, 0, 0, 0}
-     ,
-     3, {2, 12, 3, 11, 7, 8, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {2, 3, 8, 0, 0, 0, 0, 0}
-     ,
-     7, {3, 1, 7, 8, 10, 12, 11, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 8, 11, 3, 1, 10, 3, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 8, 1, 2, 0, 0, 0, 0}
-     ,
-     8, {3, 12, 7, 11, 10, 9, 4, 8, 0, 0, 0, 0}
-     ,
-     4, {12, 9, 10, 12, 4, 9, 3, 4, 12, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {4, 8, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {8, 3, 7, 8, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {8, 4, 1, 0, 0, 0, 0, 0}
-     ,
-     5, {3, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 1, 3, 8, 1, 7, 8, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {8, 4, 2, 0, 0, 0, 0, 0}
-     ,
-     7, {3, 7, 1, 10, 8, 4, 2, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 10, 2, 3, 7, 8, 3, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 4, 1, 8, 0, 0, 0, 0}
-     ,
-     6, {2, 10, 9, 8, 3, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 9, 10, 2, 7, 9, 2, 3, 7, 9, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 4, 8, 0, 0, 0, 0, 0}
-     ,
-     5, {4, 2, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {2, 8, 4, 12, 8, 2, 12, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 4, 3, 1, 0, 0, 0, 0}
-     ,
-     6, {7, 8, 2, 1, 12, 9, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 12, 7, 1, 2, 7, 8, 1, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 4, 3, 2, 0, 0, 0, 0}
-     ,
-     6, {7, 8, 1, 4, 12, 10, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {8, 4, 7, 4, 10, 7, 10, 12, 7, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {2, 1, 8, 3, 4, 0, 0, 0}
-     ,
-     5, {10, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {12, 9, 10, 12, 8, 9, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {8, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {9, 11, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {9, 7, 5, 9, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {1, 5, 8, 0, 0, 0, 0, 0}
-     ,
-     5, {5, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 7, 5, 4, 7, 1, 4, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {8, 5, 2, 0, 0, 0, 0, 0}
-     ,
-     7, {9, 11, 10, 2, 7, 5, 1, 0, 0, 0, 0, 0}
-     ,
-     3, {10, 2, 1, 9, 11, 7, 9, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 1, 5, 8, 0, 0, 0, 0}
-     ,
-     6, {10, 2, 11, 4, 5, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 4, 10, 4, 7, 10, 7, 5, 10, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 8, 3, 0, 0, 0, 0, 0}
-     ,
-     7, {7, 5, 3, 2, 9, 11, 12, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 2, 12, 7, 5, 9, 7, 9, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 3, 8, 5, 0, 0, 0, 0}
-     ,
-     8, {4, 1, 2, 3, 5, 7, 11, 12, 0, 0, 0, 0}
-     ,
-     4, {1, 7, 5, 1, 11, 7, 4, 11, 1, 2, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 5, 3, 2, 0, 0, 0, 0}
-     ,
-     8, {7, 5, 3, 1, 11, 12, 9, 10, 0, 0, 0, 0}
-     ,
-     4, {7, 5, 11, 5, 9, 11, 3, 10, 12, 3, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {3, 2, 5, 8, 1, 0, 0, 0}
-     ,
-     7, {12, 10, 11, 4, 5, 7, 3, 0, 0, 0, 0, 0}
-     ,
-     5, {4, 11, 3, 10, 12, 5, 5, 12, 7, 7, 12, 11, 11, 12, 3, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {5, 8, 4, 0, 0, 0, 0, 0}
-     ,
-     5, {7, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 3, 7, 9, 3, 5, 9, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 8, 1, 4, 0, 0, 0, 0}
-     ,
-     4, {7, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {5, 1, 3, 5, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 2, 4, 8, 0, 0, 0, 0}
-     ,
-     8, {9, 5, 10, 1, 7, 3, 4, 2, 0, 0, 0, 0}
-     ,
-     4, {5, 3, 7, 5, 4, 3, 9, 4, 5, 10, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 4, 2, 5, 1, 0, 0, 0}
-     ,
-     5, {7, 3, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 3, 7, 5, 2, 3, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 8, 4, 5, 0, 0, 0, 0}
-     ,
-     6, {12, 2, 4, 9, 7, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 4, 2, 12, 5, 4, 12, 7, 5, 4, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 8, 3, 1, 4, 0, 0, 0}
-     ,
-     5, {5, 7, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {1, 7, 5, 1, 12, 7, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 8, 3, 2, 4, 0, 0, 0}
-     ,
-     7, {5, 7, 1, 4, 12, 10, 9, 0, 0, 0, 0, 0}
-     ,
-     5, {4, 1, 9, 7, 5, 12, 12, 5, 10, 10, 5, 1, 1, 5, 9, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {3, 2, 5, 8, 4, 1, 0, 0}
-     ,
-     4, {12, 10, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {5, 12, 7, 10, 12, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {8, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     6, {7, 6, 5, 8, 11, 10, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {7, 8, 11, 5, 6, 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}
-     ,
-     }
-    ,
-    {3, {8, 1, 6, 0, 0, 0, 0, 0}
-     ,
-     9, {11, 8, 9, 4, 6, 10, 7, 1, 5, 0, 0, 0}
-     ,
-     3, {6, 10, 5, 9, 1, 4, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {2, 6, 8, 0, 0, 0, 0, 0}
-     ,
-     7, {6, 2, 8, 11, 1, 5, 7, 0, 0, 0, 0, 0}
-     ,
-     3, {8, 11, 7, 6, 2, 1, 6, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 8, 6, 2, 0, 0, 0, 0}
-     ,
-     8, {9, 4, 11, 8, 2, 6, 5, 7, 0, 0, 0, 0}
-     ,
-     4, {4, 6, 2, 4, 5, 6, 9, 5, 4, 11, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {3, 8, 6, 0, 0, 0, 0, 0}
-     ,
-     9, {3, 12, 7, 11, 10, 5, 2, 8, 6, 0, 0, 0}
-     ,
-     3, {10, 5, 6, 7, 8, 11, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 3, 6, 8, 0, 0, 0, 0}
-     ,
-     12, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
-     ,
-     4, {1, 4, 9, 2, 12, 3, 5, 6, 10, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {6, 8, 3, 2, 0, 0, 0, 0}
-     ,
-     8, {6, 5, 8, 7, 1, 3, 12, 11, 0, 0, 0, 0}
-     ,
-     4, {5, 3, 1, 5, 12, 3, 6, 12, 5, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 8, 2, 3, 6, 0, 0, 0}
-     ,
-     9, {4, 11, 8, 9, 12, 6, 3, 5, 7, 0, 0, 0}
-     ,
-     10, {6, 12, 7, 5, 8, 9, 4, 11, 3, 11, 4, 9, 11, 9, 8, 8, 5, 6, 8, 6, 7,
-	  11, 12, 3, 11, 7, 12, 11, 8, 7}
-     ,
-     }
-    ,
-    {3, {4, 8, 6, 0, 0, 0, 0, 0}
-     ,
-     7, {8, 4, 6, 10, 3, 7, 5, 0, 0, 0, 0, 0}
-     ,
-     3, {6, 10, 5, 8, 4, 3, 8, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 6, 1, 4, 0, 0, 0, 0}
-     ,
-     8, {8, 7, 6, 5, 3, 1, 9, 10, 0, 0, 0, 0}
-     ,
-     4, {7, 1, 3, 7, 9, 1, 8, 9, 7, 6, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 8, 2, 6, 0, 0, 0, 0}
-     ,
-     8, {3, 7, 1, 5, 4, 2, 8, 6, 0, 0, 0, 0}
-     ,
-     4, {3, 7, 4, 7, 8, 4, 1, 6, 2, 1, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 4, 2, 6, 1, 0, 0, 0}
-     ,
-     7, {7, 3, 5, 9, 2, 6, 8, 0, 0, 0, 0, 0}
-     ,
-     5, {9, 5, 8, 3, 7, 2, 2, 7, 6, 6, 7, 5, 5, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {3, 6, 8, 4, 0, 0, 0, 0}
-     ,
-     8, {12, 2, 10, 6, 4, 8, 7, 5, 0, 0, 0, 0}
-     ,
-     4, {2, 8, 4, 2, 7, 8, 12, 7, 2, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 6, 4, 3, 1, 0, 0, 0}
-     ,
-     9, {7, 6, 5, 8, 2, 1, 12, 9, 10, 0, 0, 0}
-     ,
-     10, {1, 2, 10, 9, 5, 8, 7, 6, 12, 6, 7, 8, 6, 8, 5, 5, 9, 1, 5, 1, 10, 6,
-	  2, 12, 6, 10, 2, 6, 5, 10}
-     ,
-     }
-    ,
-    {5, {6, 2, 4, 8, 3, 0, 0, 0}
-     ,
-     7, {5, 1, 7, 12, 4, 8, 6, 0, 0, 0, 0, 0}
-     ,
-     5, {12, 7, 6, 1, 5, 4, 4, 5, 8, 8, 5, 7, 7, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {6, 8, 3, 2, 1, 4, 0, 0}
-     ,
-     6, {6, 5, 8, 7, 12, 9, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {7, 6, 12, 5, 8, 9, 5, 6, 7, 5, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {8, 5, 6, 0, 0, 0, 0, 0}
-     ,
-     5, {9, 11, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {11, 10, 9, 7, 10, 11, 7, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {1, 5, 6, 8, 0, 0, 0, 0}
-     ,
-     6, {1, 4, 6, 7, 10, 11, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {6, 10, 1, 7, 6, 1, 4, 7, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 5, 6, 8, 0, 0, 0, 0}
-     ,
-     6, {1, 2, 6, 7, 9, 11, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {1, 6, 2, 1, 11, 6, 1, 9, 11, 6, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {2, 6, 8, 1, 5, 0, 0, 0}
-     ,
-     5, {2, 6, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {4, 6, 2, 4, 7, 6, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 3, 6, 5, 0, 0, 0, 0}
-     ,
-     8, {7, 11, 3, 12, 9, 10, 6, 2, 0, 0, 0, 0}
-     ,
-     4, {11, 10, 9, 11, 6, 10, 7, 6, 11, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 3, 5, 6, 8, 0, 0, 0}
-     ,
-     9, {1, 2, 3, 4, 6, 7, 10, 11, 12, 0, 0, 0}
-     ,
-     10, {7, 6, 12, 11, 3, 4, 1, 2, 10, 2, 1, 4, 2, 4, 3, 3, 11, 7, 3, 7, 12,
-	  2, 6, 10, 2, 12, 6, 2, 3, 12}
-     ,
-     }
-    ,
-    {5, {8, 5, 2, 3, 6, 0, 0, 0}
-     ,
-     7, {11, 9, 12, 6, 1, 3, 7, 0, 0, 0, 0, 0}
-     ,
-     5, {6, 12, 7, 9, 11, 1, 1, 11, 3, 3, 11, 12, 12, 11, 7, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {3, 8, 1, 2, 6, 5, 0, 0}
-     ,
-     6, {3, 12, 7, 11, 4, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {11, 3, 4, 12, 7, 6, 12, 3, 11, 12, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {6, 5, 8, 4, 0, 0, 0, 0}
-     ,
-     6, {6, 10, 4, 9, 7, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {10, 9, 6, 9, 3, 6, 3, 7, 6, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 1, 6, 8, 5, 0, 0, 0}
-     ,
-     5, {3, 1, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {7, 1, 3, 7, 10, 1, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {2, 6, 8, 4, 5, 0, 0, 0}
-     ,
-     7, {2, 6, 4, 9, 7, 3, 1, 0, 0, 0, 0, 0}
-     ,
-     5, {9, 4, 1, 6, 2, 7, 7, 2, 3, 3, 2, 4, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {2, 6, 8, 4, 1, 5, 0, 0}
-     ,
-     4, {2, 6, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {7, 2, 3, 6, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {3, 4, 5, 6, 8, 0, 0, 0}
-     ,
-     7, {2, 4, 6, 7, 9, 10, 12, 0, 0, 0, 0, 0}
-     ,
-     5, {7, 6, 12, 4, 2, 9, 9, 2, 10, 10, 2, 6, 6, 2, 12, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {6, 3, 1, 5, 8, 4, 0, 0}
-     ,
-     6, {10, 6, 12, 2, 1, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {2, 10, 1, 6, 12, 7, 6, 10, 2, 6, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {2, 3, 4, 5, 6, 8, 0, 0}
-     ,
-     6, {1, 4, 6, 7, 9, 12, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {4, 1, 9, 7, 6, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {8, 4, 3, 6, 5, 1, 2, 0}
-     ,
-     3, {7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {12, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {2, {8, 7, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {6, 8, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {6, 11, 12, 6, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 8, 1, 0, 0, 0, 0, 0}
-     ,
-     7, {11, 12, 9, 1, 6, 8, 4, 0, 0, 0, 0, 0}
-     ,
-     3, {9, 1, 4, 11, 12, 6, 11, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {8, 7, 2, 0, 0, 0, 0, 0}
-     ,
-     7, {6, 8, 2, 1, 11, 12, 10, 0, 0, 0, 0, 0}
-     ,
-     3, {2, 1, 10, 6, 8, 11, 6, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {2, 1, 7, 8, 0, 0, 0, 0}
-     ,
-     8, {2, 4, 6, 8, 10, 12, 9, 11, 0, 0, 0, 0}
-     ,
-     4, {2, 4, 10, 4, 9, 10, 6, 11, 12, 6, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {8, 7, 3, 0, 0, 0, 0, 0}
-     ,
-     5, {6, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {8, 2, 6, 11, 2, 8, 11, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 1, 3, 7, 0, 0, 0, 0}
-     ,
-     8, {11, 8, 9, 4, 6, 2, 3, 1, 0, 0, 0, 0}
-     ,
-     4, {8, 2, 6, 8, 3, 2, 11, 3, 8, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 3, 7, 2, 0, 0, 0, 0}
-     ,
-     6, {11, 8, 6, 10, 3, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {11, 6, 8, 11, 1, 6, 11, 3, 1, 6, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 7, 2, 1, 3, 0, 0, 0}
-     ,
-     7, {8, 6, 4, 3, 10, 9, 11, 0, 0, 0, 0, 0}
-     ,
-     5, {3, 4, 11, 6, 8, 10, 10, 8, 9, 9, 8, 4, 4, 8, 11, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {4, 8, 7, 0, 0, 0, 0, 0}
-     ,
-     5, {8, 4, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {4, 6, 8, 3, 6, 4, 3, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {7, 8, 4, 1, 0, 0, 0, 0}
-     ,
-     6, {12, 6, 9, 8, 3, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {6, 8, 12, 8, 1, 12, 1, 3, 12, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {4, 2, 7, 8, 0, 0, 0, 0}
-     ,
-     8, {3, 4, 1, 2, 8, 6, 12, 10, 0, 0, 0, 0}
-     ,
-     4, {4, 6, 8, 4, 12, 6, 3, 12, 4, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {2, 1, 8, 7, 4, 0, 0, 0}
-     ,
-     7, {10, 9, 12, 3, 8, 6, 2, 0, 0, 0, 0, 0}
-     ,
-     5, {3, 12, 2, 9, 10, 8, 8, 10, 6, 6, 10, 12, 12, 10, 2, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 7, 4, 3, 0, 0, 0, 0}
-     ,
-     4, {6, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {8, 4, 2, 8, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {7, 3, 1, 8, 4, 0, 0, 0}
-     ,
-     5, {6, 2, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {8, 2, 6, 8, 1, 2, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 7, 2, 4, 3, 0, 0, 0}
-     ,
-     5, {8, 6, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {4, 6, 8, 4, 10, 6, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {2, 1, 8, 7, 3, 4, 0, 0}
-     ,
-     4, {10, 9, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {8, 10, 6, 9, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {3, {7, 8, 5, 0, 0, 0, 0, 0}
-     ,
-     5, {11, 12, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {12, 9, 11, 6, 9, 12, 6, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {7, 5, 8, 1, 0, 0, 0, 0}
-     ,
-     6, {6, 12, 11, 4, 5, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {6, 11, 12, 6, 1, 11, 6, 5, 1, 11, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {7, 2, 5, 8, 0, 0, 0, 0}
-     ,
-     8, {6, 12, 2, 10, 11, 9, 5, 1, 0, 0, 0, 0}
-     ,
-     4, {12, 9, 11, 12, 5, 9, 6, 5, 12, 2, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {7, 8, 1, 2, 5, 0, 0, 0}
-     ,
-     7, {12, 11, 10, 5, 4, 2, 6, 0, 0, 0, 0, 0}
-     ,
-     5, {5, 10, 6, 11, 12, 4, 4, 12, 2, 2, 12, 10, 10, 12, 6, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 8, 7, 3, 0, 0, 0, 0}
-     ,
-     6, {5, 9, 3, 11, 6, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {9, 11, 5, 11, 2, 5, 2, 6, 5, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 5, 7, 3, 8, 0, 0, 0}
-     ,
-     7, {1, 5, 3, 11, 6, 2, 4, 0, 0, 0, 0, 0}
-     ,
-     5, {11, 3, 4, 5, 1, 6, 6, 1, 2, 2, 1, 3, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {2, 3, 8, 5, 7, 0, 0, 0}
-     ,
-     7, {1, 3, 5, 6, 11, 9, 10, 0, 0, 0, 0, 0}
-     ,
-     5, {6, 5, 10, 3, 1, 11, 11, 1, 9, 9, 1, 5, 5, 1, 10, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {3, 7, 8, 1, 2, 5, 0, 0}
-     ,
-     6, {3, 11, 10, 5, 4, 6, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {11, 3, 4, 5, 10, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 8, 7, 4, 0, 0, 0, 0}
-     ,
-     6, {5, 9, 12, 3, 6, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 6, 5, 3, 12, 5, 9, 3, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 5, 7, 4, 8, 0, 0, 0}
-     ,
-     5, {1, 5, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {3, 5, 1, 3, 6, 5, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 2, 8, 7, 4, 0, 0, 0}
-     ,
-     9, {5, 10, 1, 9, 12, 3, 6, 4, 2, 0, 0, 0}
-     ,
-     10, {3, 12, 2, 4, 1, 9, 5, 10, 6, 10, 5, 9, 10, 9, 1, 1, 4, 3, 1, 3, 2,
-	  10, 12, 6, 10, 2, 12, 10, 1, 2}
-     ,
-     }
-    ,
-    {6, {2, 7, 4, 1, 5, 8, 0, 0}
-     ,
-     6, {2, 10, 6, 12, 3, 5, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {12, 2, 3, 10, 6, 5, 10, 2, 12, 10, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {3, 4, 5, 7, 8, 0, 0, 0}
-     ,
-     5, {2, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {6, 4, 2, 6, 9, 4, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {7, 3, 1, 5, 8, 4, 0, 0}
-     ,
-     4, {6, 2, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {1, 6, 5, 2, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {2, 5, 7, 3, 4, 8, 0, 0}
-     ,
-     6, {10, 1, 9, 5, 6, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {5, 10, 6, 1, 9, 4, 1, 10, 5, 1, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {5, 8, 7, 2, 1, 4, 3, 0}
-     ,
-     3, {5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {6, 5, 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}
-     ,
-     }
-    ,
-    {3, {6, 7, 8, 0, 0, 0, 0, 0}
-     ,
-     5, {12, 10, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {10, 11, 12, 5, 11, 10, 5, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {6, 1, 8, 7, 0, 0, 0, 0}
-     ,
-     8, {5, 10, 1, 9, 12, 11, 8, 4, 0, 0, 0, 0}
-     ,
-     4, {10, 11, 12, 10, 8, 11, 5, 8, 10, 1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 7, 6, 2, 0, 0, 0, 0}
-     ,
-     6, {8, 11, 2, 12, 5, 1, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {11, 12, 8, 12, 1, 8, 1, 5, 8, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {1, 2, 7, 8, 6, 0, 0, 0}
-     ,
-     7, {4, 2, 8, 5, 12, 11, 9, 0, 0, 0, 0, 0}
-     ,
-     5, {5, 8, 9, 2, 4, 12, 12, 4, 11, 11, 4, 8, 8, 4, 9, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {8, 7, 6, 3, 0, 0, 0, 0}
-     ,
-     6, {8, 11, 10, 2, 5, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {10, 5, 8, 2, 10, 8, 11, 2, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 1, 7, 6, 3, 0, 0, 0}
-     ,
-     9, {8, 9, 4, 11, 10, 2, 5, 3, 1, 0, 0, 0}
-     ,
-     10, {2, 10, 1, 3, 4, 11, 8, 9, 5, 9, 8, 11, 9, 11, 4, 4, 3, 2, 4, 2, 1,
-	  9, 10, 5, 9, 1, 10, 9, 4, 1}
-     ,
-     }
-    ,
-    {5, {2, 3, 8, 6, 7, 0, 0, 0}
-     ,
-     5, {1, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {5, 3, 1, 5, 11, 3, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {1, 8, 6, 2, 3, 7, 0, 0}
-     ,
-     6, {9, 4, 11, 8, 5, 3, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {8, 9, 5, 4, 11, 3, 4, 9, 8, 4, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {6, 8, 7, 4, 0, 0, 0, 0}
-     ,
-     6, {5, 10, 12, 3, 8, 4, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {5, 12, 10, 5, 4, 12, 5, 8, 4, 12, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {6, 7, 4, 1, 8, 0, 0, 0}
-     ,
-     7, {10, 12, 9, 8, 3, 1, 5, 0, 0, 0, 0, 0}
-     ,
-     5, {8, 9, 5, 12, 10, 3, 3, 10, 1, 1, 10, 9, 9, 10, 5, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 8, 6, 2, 7, 0, 0, 0}
-     ,
-     7, {4, 8, 2, 12, 5, 1, 3, 0, 0, 0, 0, 0}
-     ,
-     5, {12, 2, 3, 8, 4, 5, 5, 4, 1, 1, 4, 2, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {6, 2, 1, 8, 7, 4, 0, 0}
-     ,
-     6, {5, 9, 12, 3, 8, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {9, 5, 8, 3, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {4, 8, 6, 3, 7, 0, 0, 0}
-     ,
-     5, {4, 8, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {2, 8, 4, 2, 5, 8, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {6, 1, 8, 7, 3, 4, 0, 0}
-     ,
-     6, {5, 10, 1, 9, 8, 2, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {9, 5, 8, 10, 1, 2, 10, 5, 9, 10, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {4, 8, 6, 2, 3, 7, 0, 0}
-     ,
-     4, {4, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {5, 4, 1, 8, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {6, 2, 1, 8, 7, 3, 4, 0}
-     ,
-     3, {5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {9, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {4, {5, 6, 8, 7, 0, 0, 0, 0}
-     ,
-     4, {10, 9, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {9, 11, 12, 9, 12, 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}
-     ,
-     }
-    ,
-    {5, {7, 8, 1, 6, 5, 0, 0, 0}
-     ,
-     5, {12, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {10, 11, 12, 10, 4, 11, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {8, 5, 2, 7, 6, 0, 0, 0}
-     ,
-     5, {11, 9, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {12, 9, 11, 12, 1, 9, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {7, 8, 1, 2, 6, 5, 0, 0}
-     ,
-     4, {12, 11, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {4, 12, 2, 11, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {5, 6, 3, 8, 7, 0, 0, 0}
-     ,
-     5, {9, 10, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {11, 10, 9, 11, 2, 10, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {3, 1, 6, 7, 8, 5, 0, 0}
-     ,
-     6, {2, 3, 4, 1, 10, 11, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {1, 2, 10, 3, 4, 11, 3, 2, 1, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {8, 5, 2, 3, 7, 6, 0, 0}
-     ,
-     4, {11, 9, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {1, 11, 3, 9, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {3, 7, 8, 1, 2, 6, 5, 0}
-     ,
-     3, {3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {11, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {5, {6, 7, 4, 5, 8, 0, 0, 0}
-     ,
-     5, {10, 12, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     3, {9, 12, 10, 9, 3, 12, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {6, 7, 4, 1, 5, 8, 0, 0}
-     ,
-     4, {10, 12, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {3, 10, 1, 12, 10, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {2, 4, 5, 6, 7, 8, 0, 0}
-     ,
-     6, {1, 2, 3, 4, 9, 12, 0, 0, 0, 0, 0, 0}
-     ,
-     4, {4, 1, 9, 2, 3, 12, 2, 1, 4, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {4, 1, 2, 7, 8, 5, 6, 0}
-     ,
-     3, {3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {2, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {6, {3, 4, 5, 6, 7, 8, 0, 0}
-     ,
-     4, {2, 4, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     2, {9, 2, 10, 4, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {1, 5, 6, 3, 4, 8, 7, 0}
-     ,
-     3, {1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {10, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {7, {2, 3, 4, 5, 6, 7, 8, 0}
-     ,
-     3, {1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     1, {4, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-    {0, {0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
-     ,
-     0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	 0, 0, 0, 0, 0, 0, 0}
-     ,
-     }
-    ,
-};
-#else
-extern CELL_ENTRY cell_table[256];
-#endif

Modified: grass/trunk/lib/dspf/viz.h
===================================================================
--- grass/trunk/lib/dspf/viz.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/lib/dspf/viz.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -98,10 +98,4 @@
 /* struct_copy.c */
 int struct_copy(char *, char *, int);
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
-#include "cell_table.h"
+extern CELL_ENTRY cell_table[];

Modified: grass/trunk/lib/proj/get_proj.c
===================================================================
--- grass/trunk/lib/proj/get_proj.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/lib/proj/get_proj.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -23,8 +23,6 @@
 #include <grass/gprojects.h>
 #include <grass/glocale.h>
 
-#define MAIN
-
 /* Finder function for datum conversion lookup tables */
 #define FINDERFUNC set_proj_lib
 #define PERMANENT "PERMANENT"

Modified: grass/trunk/ps/ps.map/border.h
===================================================================
--- grass/trunk/ps/ps.map/border.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/border.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,8 +14,4 @@
     double width;
 };
 
-#ifdef MAIN
-struct border brd;
-#else
 extern struct border brd;
-#endif

Modified: grass/trunk/ps/ps.map/colortable.h
===================================================================
--- grass/trunk/ps/ps.map/colortable.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/colortable.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -21,8 +21,4 @@
     int range_override;
 };
 
-#ifdef MAIN
-struct colortable ct;
-#else
 extern struct colortable ct;
-#endif

Modified: grass/trunk/ps/ps.map/comment.h
===================================================================
--- grass/trunk/ps/ps.map/comment.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/comment.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -13,8 +13,4 @@
     int color;
 };
 
-#ifdef MAIN
-struct comment cmt;
-#else
 extern struct comment cmt;
-#endif

Modified: grass/trunk/ps/ps.map/decorate.h
===================================================================
--- grass/trunk/ps/ps.map/decorate.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/decorate.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,8 +17,5 @@
     int color, bgcolor;
 };
 
-#ifdef MAIN
-struct scalebar sb;
-#else
 extern struct scalebar sb;
-#endif
+

Modified: grass/trunk/ps/ps.map/group.h
===================================================================
--- grass/trunk/ps/ps.map/group.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/group.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -11,8 +11,4 @@
     int do_group;
 };
 
-#ifdef MAIN
-struct PS_group grp;
-#else
 extern struct PS_group grp;
-#endif

Modified: grass/trunk/ps/ps.map/header.h
===================================================================
--- grass/trunk/ps/ps.map/header.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/header.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,8 +14,4 @@
     FILE *fp;
 };
 
-#ifdef MAIN
-struct header hdr;
-#else
 extern struct header hdr;
-#endif

Modified: grass/trunk/ps/ps.map/labels.h
===================================================================
--- grass/trunk/ps/ps.map/labels.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/labels.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -9,8 +9,4 @@
     char *other;
 };
 
-#ifdef MAIN
-struct labels labels;
-#else
 extern struct labels labels;
-#endif

Modified: grass/trunk/ps/ps.map/main.c
===================================================================
--- grass/trunk/ps/ps.map/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,7 +18,6 @@
  *
  *****************************************************************************/
 
-#define MAIN
 #include <string.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -39,6 +38,22 @@
 #include "group.h"
 #include "local_proto.h"
 
+struct border brd;
+struct map_info m_info;
+struct labels labels;
+struct colortable ct;
+struct PS_data PS;
+int WHITE = 0;
+int BLACK = 1;
+int GREY = 9;
+int sec_draw;
+struct vector vector;
+struct header hdr;
+struct scalebar sb;
+struct comment cmt;
+struct PS_group grp;
+
+
 #define KEY(x) (strcmp(key,x)==0)
 
 FILE *tracefd;

Modified: grass/trunk/ps/ps.map/map_info.h
===================================================================
--- grass/trunk/ps/ps.map/map_info.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/map_info.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -11,8 +11,4 @@
     int color, bgcolor, border;
 };
 
-#ifdef MAIN
-struct map_info m_info;
-#else
 extern struct map_info m_info;
-#endif

Modified: grass/trunk/ps/ps.map/ps_info.h
===================================================================
--- grass/trunk/ps/ps.map/ps_info.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/ps_info.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -80,13 +80,6 @@
 #ifdef GREY
 #undef GREY
 #endif
-#ifdef MAIN
-struct PS_data PS;
-int WHITE = 0;
-int BLACK = 1;
-int GREY = 9;
-int sec_draw;
-#else
+
 extern struct PS_data PS;
 extern int WHITE, BLACK, GREY, sec_draw;
-#endif

Modified: grass/trunk/ps/ps.map/vector.h
===================================================================
--- grass/trunk/ps/ps.map/vector.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/ps/ps.map/vector.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -99,8 +99,4 @@
     LAYER *layer;
 };
 
-#ifdef MAIN
-struct vector vector;
-#else
 extern struct vector vector;
-#endif

Modified: grass/trunk/raster/r.cost/main.c
===================================================================
--- grass/trunk/raster/r.cost/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.cost/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -48,8 +48,6 @@
  * if "output" doesn't exist, but is expected (this is bad design).
  */
 
-#define MAIN
-
 #define SEGCOLSIZE 	256
 
 #include <stdlib.h>
@@ -69,7 +67,22 @@
 
 struct Cell_head window;
 
+struct variables
+{
+    char *alias;
+    int position;
+} variables[] = {
+    {"output", CUM_COST_LAYER},
+    {"input", COST_LAYER},
+    {"coor", START_PT}
+};
 
+char cum_cost_layer[64];
+char cost_layer[64];
+struct start_pt *head_start_pt = NULL;
+struct start_pt *head_end_pt = NULL;
+
+
 int main(int argc, char *argv[])
 {
     void *cell, *cell2;

Modified: grass/trunk/raster/r.cost/stash.h
===================================================================
--- grass/trunk/raster/r.cost/stash.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.cost/stash.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -37,35 +37,11 @@
     struct start_pt *next;
 };
 
-#ifdef MAIN
-
-struct variables
-{
-    char *alias;
-    int position;
-}
-
-variables[] = {
-    {
-    "output", CUM_COST_LAYER}, {
-    "input", COST_LAYER}, {
-    "coor", START_PT}
-};
-
-char cum_cost_layer[64];
-char cost_layer[64];
-struct start_pt *head_start_pt = NULL;
-struct start_pt *head_end_pt = NULL;
-
-#else
-
 extern char cum_cost_layer[];
 extern char cost_layer[];
 extern struct start_pt *head_start_pt;
 extern struct start_pt *head_end_pt;
 
-#endif
-
 int process_answers(char **, struct start_pt **, struct start_pt **);
 int time_to_stop(int, int);
 

Modified: grass/trunk/raster/r.digit/main.c
===================================================================
--- grass/trunk/raster/r.digit/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.digit/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,7 +17,6 @@
  *
  ***************************************************************************/
 
-#define MAIN
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>

Modified: grass/trunk/raster/r.drain/tinf.c
===================================================================
--- grass/trunk/raster/r.drain/tinf.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.drain/tinf.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -2,9 +2,24 @@
 #include <float.h>
 #include <math.h>
 #include <grass/gis.h>
-#define TINF_MAIN
 #include "tinf.h"
 
+int (*is_null) (void *);
+void (*set_null_value) (void *, int);
+int (*bpe) ();
+void *(*get_max) (void *, void *);
+void *(*get_min) (void *, void *);
+int (*get_row) (int, void *, int);
+void *(*get_buf) ();
+int (*put_row) (int, void *);
+double (*slope) (void *, void *, double);
+void (*set_min) (void *);
+void (*set_max) (void *);
+void (*diff) (void *, void *);
+void (*sum) (void *, void *);
+void (*quot) (void *, void *);
+void (*prod) (void *, void *);
+
 /* To add a new multitype function, use the function below to initialize
  * the function pointer to each of the three typed functions.  The function
  * pointers and the function prototypes are defined in a header file.   

Modified: grass/trunk/raster/r.drain/tinf.h
===================================================================
--- grass/trunk/raster/r.drain/tinf.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.drain/tinf.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -68,23 +68,7 @@
 
 /* to add a new multitype function, add a pointer for the function and
  * its argument list to the list below */
-#ifdef TINF_MAIN
-int (*is_null) (void *);
-void (*set_null_value) (void *, int);
-int (*bpe) ();
-void *(*get_max) (void *, void *);
-void *(*get_min) (void *, void *);
-int (*get_row) (int, void *, int);
-void *(*get_buf) ();
-int (*put_row) (int, void *);
-double (*slope) (void *, void *, double);
-void (*set_min) (void *);
-void (*set_max) (void *);
-void (*diff) (void *, void *);
-void (*sum) (void *, void *);
-void (*quot) (void *, void *);
-void (*prod) (void *, void *);
-#else
+
 extern int (*is_null) (void *);
 extern void (*set_null_value) (void *, int);
 extern int (*bpe) ();
@@ -100,7 +84,7 @@
 extern void (*sum) (void *, void *);
 extern void (*quot) (void *, void *);
 extern void (*prod) (void *, void *);
-#endif
+
 /* probably not something of general interest */
 
 double slope_c(void *, void *, double);

Modified: grass/trunk/raster/r.fill.dir/tinf.c
===================================================================
--- grass/trunk/raster/r.fill.dir/tinf.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.fill.dir/tinf.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -2,7 +2,6 @@
 #include <float.h>
 #include <math.h>
 #include <grass/gis.h>
-#define TINF_MAIN
 #include "tinf.h"
 
 /* To add a new multitype function, use the function below to initialize
@@ -10,6 +9,21 @@
  * pointers and the function prototypes are defined in a header file.   
  * The actual functions follow. */
 
+int (*is_null) (void *);
+int (*bpe) ();
+void *(*get_max) (void *, void *);
+void *(*get_min) (void *, void *);
+int (*get_row) (int, void *, int);
+void *(*get_buf) ();
+int (*put_row) (int, void *);
+double (*slope) (void *, void *, double);
+void (*set_min) (void *);
+void (*set_max) (void *);
+void (*diff) (void *, void *);
+void (*sum) (void *, void *);
+void (*quot) (void *, void *);
+void (*prod) (void *, void *);
+
 void set_func_pointers(int in_type)
 {
     switch (in_type) {

Modified: grass/trunk/raster/r.fill.dir/tinf.h
===================================================================
--- grass/trunk/raster/r.fill.dir/tinf.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.fill.dir/tinf.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -65,22 +65,6 @@
 /* to add a new multitype function, add a pointer for the function and
  * its argument list to the list below */
 
-#ifdef TINF_MAIN
-int (*is_null) (void *);
-int (*bpe) ();
-void *(*get_max) (void *, void *);
-void *(*get_min) (void *, void *);
-int (*get_row) (int, void *, int);
-void *(*get_buf) ();
-int (*put_row) (int, void *);
-double (*slope) (void *, void *, double);
-void (*set_min) (void *);
-void (*set_max) (void *);
-void (*diff) (void *, void *);
-void (*sum) (void *, void *);
-void (*quot) (void *, void *);
-void (*prod) (void *, void *);
-#else
 extern int (*is_null) (void *);
 extern int (*bpe) ();
 extern void *(*get_max) (void *, void *);
@@ -95,7 +79,6 @@
 extern void (*sum) (void *, void *);
 extern void (*quot) (void *, void *);
 extern void (*prod) (void *, void *);
-#endif
 
 /* probably not something of general interest */
 

Modified: grass/trunk/raster/r.flow/calc.c
===================================================================
--- grass/trunk/raster/r.flow/calc.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.flow/calc.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,8 +26,6 @@
  **  Update MN: commented line 387
  */
 
-#define MAIN
-
 #include <stdlib.h>		/* for the random number generation */
 #include <time.h>
 #include <grass/gis.h>
@@ -47,7 +45,21 @@
 #define ROW	1		/* |            */
 #define COL	0		/* /            */
 
+CELL v;				/* address for segment retrieval macros */
 
+/* heap memory */
+struct Cell_head region;	/* resolution and boundaries            */
+struct Map_info fl;		/* output vector file header            */
+struct BM *bitbar;		/* space-efficient barrier matrix       */
+int lgfd;			/* output length file descriptor        */
+char string[1024];		/* space for strings                    */
+layer el, as, ds;		/* elevation, aspect, density           */
+double *ew_dist;		/* east-west distances for rows         */
+double *epsilon[2];		/* quantization errors for rows         */
+
+/* command-line parameters */
+params parm;
+
 typedef struct
 {
     int row, col;		/* current matrix address       */

Modified: grass/trunk/raster/r.flow/mem.h
===================================================================
--- grass/trunk/raster/r.flow/mem.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.flow/mem.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -8,11 +8,7 @@
 #define SEGCOLS ((int) (region.cols/3) + 1)
 #define SEGROWS ((int)(MB/region.cols/3) <= 1 ? 1 : (int)(MB/region.cols/3))
 
-#ifdef MAIN
-CELL v;				/* address for segment retrieval macros */
-#else
 extern CELL v;
-#endif
 
 
 /*

Modified: grass/trunk/raster/r.flow/r.flow.h
===================================================================
--- grass/trunk/raster/r.flow/r.flow.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.flow/r.flow.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -80,23 +80,7 @@
 layer;
 
 /******************************* GLOBALS ********************************/
-#ifdef MAIN
 
-/* heap memory */
-struct Cell_head region;	/* resolution and boundaries            */
-struct Map_info fl;		/* output vector file header            */
-struct BM *bitbar;		/* space-efficient barrier matrix       */
-int lgfd;			/* output length file descriptor        */
-char string[1024];		/* space for strings                    */
-layer el, as, ds;		/* elevation, aspect, density           */
-double *ew_dist;		/* east-west distances for rows         */
-double *epsilon[2];		/* quantization errors for rows         */
-
-/* command-line parameters */
-params parm;
-
-#else
-
 extern struct Cell_head region;
 extern struct Map_info fl;
 extern struct BM *bitbar;
@@ -108,4 +92,3 @@
 
 extern params parm;
 
-#endif

Modified: grass/trunk/raster/r.in.gridatb/file_io.c
===================================================================
--- grass/trunk/raster/r.in.gridatb/file_io.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.in.gridatb/file_io.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -4,8 +4,9 @@
 #include "local_proto.h"
 
 
-void rdwr_gridatb()
+void rdwr_gridatb(void)
 {
+    char buf[1024];
     FILE *fp;
     int fd, i, j, retval;
     float idx;

Modified: grass/trunk/raster/r.in.gridatb/local_proto.h
===================================================================
--- grass/trunk/raster/r.in.gridatb/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.in.gridatb/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -6,14 +6,7 @@
 void rdwr_gridatb(void);
 
 
-#ifdef MAIN
-#	define	GLOBAL
-#else
-#	define	GLOBAL	extern
-#endif
-
-GLOBAL struct Cell_head cellhd;
-GLOBAL FCELL *cell;
-GLOBAL char *file;
-GLOBAL char *mapset, *oname;
-GLOBAL char buf[1024];
+extern struct Cell_head cellhd;
+extern FCELL *cell;
+extern char *file;
+extern char *mapset, *oname;

Modified: grass/trunk/raster/r.in.gridatb/main.c
===================================================================
--- grass/trunk/raster/r.in.gridatb/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.in.gridatb/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -16,13 +16,16 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#define	MAIN
 #include "local_proto.h"
-#undef	MAIN
 
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
+struct Cell_head cellhd;
+FCELL *cell;
+char *file;
+char *mapset, *oname;
+
 int main(int argc, char **argv)
 {
     struct

Modified: grass/trunk/raster/r.le/r.le.patch/main.c
===================================================================
--- grass/trunk/raster/r.le/r.le.patch/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.le/r.le.patch/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,9 +26,10 @@
 #include <grass/glocale.h>
 
 #include <grass/config.h>
-#define MAIN
+
 #include "patch.h"
 
+jmp_buf jmp;
 
 struct CHOICE *choice;
 

Modified: grass/trunk/raster/r.le/r.le.patch/patch.h
===================================================================
--- grass/trunk/raster/r.le/r.le.patch/patch.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.le/r.le.patch/patch.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -39,11 +39,7 @@
 #define  BIG   1000000000.0
 #define  PI    M_PI
 
-#ifdef MAIN
-jmp_buf jmp;
-#else
 extern jmp_buf jmp;
-#endif
 
 typedef struct __dirdesc
 {

Modified: grass/trunk/raster/r.los/cmd_line.h
===================================================================
--- grass/trunk/raster/r.los/cmd_line.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.los/cmd_line.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -8,16 +8,10 @@
 
 /****************************************************************/
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
-GLOBAL double east;
-GLOBAL double north;
-GLOBAL double obs_elev;
-GLOBAL double max_dist;
-GLOBAL char *elev_layer;
-GLOBAL char *patt_layer;
-GLOBAL char *out_layer;
+extern double east;
+extern double north;
+extern double obs_elev;
+extern double max_dist;
+extern char *elev_layer;
+extern char *patt_layer;
+extern char *out_layer;

Modified: grass/trunk/raster/r.los/main.c
===================================================================
--- grass/trunk/raster/r.los/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.los/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -34,7 +34,7 @@
 #include <math.h>
 #include <fcntl.h>
 #include <grass/gis.h>
-#define MAIN
+
 #include <grass/segment.h>
 #include <grass/gprojects.h>
 #include <grass/glocale.h>
@@ -50,6 +50,14 @@
 
 struct Cell_head window;	/*      database window         */
 
+double east;
+double north;
+double obs_elev;
+double max_dist;
+char *elev_layer;
+char *patt_layer;
+char *out_layer;
+
 int main(int argc, char *argv[])
 {
     int row_viewpt, col_viewpt, nrows, ncols, a, b, row, patt_flag;

Modified: grass/trunk/raster/r.mfilter/glob.h
===================================================================
--- grass/trunk/raster/r.mfilter/glob.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.mfilter/glob.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,11 +1,5 @@
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
-GLOBAL int nrows, ncols;
-GLOBAL int buflen;
-GLOBAL int direction;
-GLOBAL int zero_only;
-GLOBAL int preserve_edges;
+extern int nrows, ncols;
+extern int buflen;
+extern int direction;
+extern int zero_only;
+extern int preserve_edges;

Modified: grass/trunk/raster/r.mfilter/main.c
===================================================================
--- grass/trunk/raster/r.mfilter/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.mfilter/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,7 +14,7 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
+
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -23,6 +23,12 @@
 #include "filter.h"
 #include "glob.h"
 
+int nrows, ncols;
+int buflen;
+int direction;
+int zero_only;
+int preserve_edges;
+
 int main(int argc, char *argv[])
 {
     FILTER *filter;

Modified: grass/trunk/raster/r.out.gridatb/local_proto.h
===================================================================
--- grass/trunk/raster/r.out.gridatb/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.out.gridatb/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -6,14 +6,8 @@
 void rdwr_gridatb(void);
 
 
-#ifdef MAIN
-#	define	GLOBAL
-#else
-#	define	GLOBAL	extern
-#endif
-
-GLOBAL struct Cell_head cellhd;
-GLOBAL FCELL *cell;
-GLOBAL char *file;
-GLOBAL char *mapset, *iname;
-GLOBAL char overwr;
+extern struct Cell_head cellhd;
+extern FCELL *cell;
+extern char *file;
+extern char *mapset, *iname;
+extern char overwr;

Modified: grass/trunk/raster/r.out.gridatb/main.c
===================================================================
--- grass/trunk/raster/r.out.gridatb/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.out.gridatb/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -16,13 +16,17 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#define	MAIN
-#include "local_proto.h"
-#undef	MAIN
-
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
+#include "local_proto.h"
+
+struct Cell_head cellhd;
+FCELL *cell;
+char *file;
+char *mapset, *iname;
+char overwr;
+
 int main(int argc, char **argv)
 {
     struct

Modified: grass/trunk/raster/r.out.vtk/globaldefs.h
===================================================================
--- grass/trunk/raster/r.out.vtk/globaldefs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.out.vtk/globaldefs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -21,12 +21,7 @@
 #define TRIANGLE_STRIPS 1
 #define VERTICES 2
 
-#ifdef MAIN
-double x_extent;
-double y_extent;
-#else
 extern double x_extent;
 extern double y_extent;
-#endif
 
 #endif

Modified: grass/trunk/raster/r.out.vtk/main.c
===================================================================
--- grass/trunk/raster/r.out.vtk/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.out.vtk/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -23,10 +23,14 @@
 #include <grass/config.h>
 #include "writeascii.h"
 
-#define MAIN
 #include "parameters.h"
 #include "globaldefs.h"
 
+paramType param;		/*Parameters */
+
+double x_extent;
+double y_extent;
+
 /*local protos */
 static void check_input_maps(void);
 

Modified: grass/trunk/raster/r.out.vtk/parameters.h
===================================================================
--- grass/trunk/raster/r.out.vtk/parameters.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.out.vtk/parameters.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -28,13 +28,11 @@
 } paramType;
 
 /*global structs */
-#ifdef MAIN
-paramType param;		/*Parameters */
-#else
+
 extern paramType param;		/*Parameters */
-#endif
 
+
 /*prototype */
-void set_params();
+void set_params(void);
 
 #endif

Modified: grass/trunk/raster/r.param.scale/main.c
===================================================================
--- grass/trunk/raster/r.param.scale/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.param.scale/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -12,53 +12,45 @@
  *
  *****************************************************************************/
 
-#define MAIN
-
 #include <grass/glocale.h>
 #include "param.h"
 
-int main(int argc, char **argv)
-{
+char
+ *rast_in_name,			/* Name of the raster file to process.  */
+ *rast_out_name,		/* Name of the raster output file.      */
+ *mapset_in,			/* If no problems, these will be names  */
+ *mapset_out,			/* of mapsets containing the files to   */
+				/* be processed. Otherwise, error code. */
+  constrained;			/* Flag that forces quadtratic through  */
 
-    /*--------------------------------------------------------------------------*/
-    /*                                 INITIALISE                               */
+				/* the central cell of the window.      */
 
-    /*--------------------------------------------------------------------------*/
+int
+  fd_in,			/* File descriptor for input and        */
+  fd_out,			/* output raster files.                 */
+  wsize,			/* Size of local processing window.     */
+  mparam;			/* Morphometric parameter to calculate. */
 
 
+double
+  resoln,			/* Planimetric resolution.              */
+  exponent,			/* Distance weighting exponent.         */
+  zscale,			/* Vertical scaling factor.             */
+  slope_tol,			/* Vertical tolerences for surface      */
+  curve_tol;			/* feature identification.              */
 
-    /*--------------------------------------------------------------------------*/
-    /*                               GET INPUT FROM USER                        */
-
-    /*--------------------------------------------------------------------------*/
-
+int main(int argc, char **argv)
+{
     interface(argc, argv);
 
-
-    /*--------------------------------------------------------------------------*/
-    /*                        OPEN INPUT AND OUTPUT RASTER FILES                */
-
-    /*--------------------------------------------------------------------------*/
-
     /* Make sure that the current projection is not lat/long */
     if ((G_projection() == PROJECTION_LL))
 	G_fatal_error(_("Lat/Long location is not supported"));
 
     open_files();
 
-
-    /*--------------------------------------------------------------------------*/
-    /*                       PROCESS SURFACE FOR FEATURE DETECTION              */
-
-    /*--------------------------------------------------------------------------*/
-
     process();
 
-    /*--------------------------------------------------------------------------*/
-    /*                     CLOSE ALL OPENED FILES AND FREE MEMORY               */
-
-    /*--------------------------------------------------------------------------*/
-
     close_down();
 
     if (mparam == FEATURE) {

Modified: grass/trunk/raster/r.param.scale/param.h
===================================================================
--- grass/trunk/raster/r.param.scale/param.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.param.scale/param.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -81,10 +81,8 @@
 
 /* ------ Global variables ------ */
 
-#ifndef MAIN
-extern				/* Externally defined if not main()     */
-#endif
- char *rast_in_name,		/* Name of the raster file to process.  */
+extern char
+ *rast_in_name,			/* Name of the raster file to process.  */
  *rast_out_name,		/* Name of the raster output file.      */
  *mapset_in,			/* If no problems, these will be names  */
  *mapset_out,			/* of mapsets containing the files to   */
@@ -93,19 +91,15 @@
 
 				/* the central cell of the window.      */
 
-#ifndef MAIN
-extern				/* Externally defined if not main()     */
-#endif
- int fd_in,			/* File descriptor for input and        */
+extern int
+  fd_in,			/* File descriptor for input and        */
   fd_out,			/* output raster files.                 */
   wsize,			/* Size of local processing window.     */
   mparam;			/* Morphometric parameter to calculate. */
 
 
-#ifndef MAIN
-extern				/* Externally defined if not main()     */
-#endif
- double resoln,			/* Planimetric resolution.              */
+extern double
+  resoln,			/* Planimetric resolution.              */
   exponent,			/* Distance weighting exponent.         */
   zscale,			/* Vertical scaling factor.             */
   slope_tol,			/* Vertical tolerences for surface      */

Modified: grass/trunk/raster/r.random.cells/gasdev.c
===================================================================
--- grass/trunk/raster/r.random.cells/gasdev.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.cells/gasdev.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <math.h>
 #include "ransurf.h"
 #include "local_proto.h"

Modified: grass/trunk/raster/r.random.cells/indep.c
===================================================================
--- grass/trunk/raster/r.random.cells/indep.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.cells/indep.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <grass/gis.h>
 #include "ransurf.h"
 

Modified: grass/trunk/raster/r.random.cells/init.c
===================================================================
--- grass/trunk/raster/r.random.cells/init.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.cells/init.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/types.h>

Modified: grass/trunk/raster/r.random.cells/main.c
===================================================================
--- grass/trunk/raster/r.random.cells/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.cells/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -19,14 +19,23 @@
 #undef TRACE
 #undef DEBUG
 
-#define MAIN
 #include <stdlib.h>
 #include <grass/gis.h>
 #include <grass/glocale.h>
 #include "ransurf.h"
 #include "local_proto.h"
-#undef MAIN
 
+double NS, EW;
+int CellCount, Rs, Cs;
+double MaxDist, MaxDistSq;
+FLAG *Cells;
+CELLSORTER *DoNext;
+CELL **Out, *CellBuffer;
+int Seed, OutFD;
+struct Flag *Verbose;
+struct Option *Distance;
+struct Option *Output;
+
 int main(int argc, char *argv[])
 {
     struct GModule *module;

Modified: grass/trunk/raster/r.random.cells/random.c
===================================================================
--- grass/trunk/raster/r.random.cells/random.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.cells/random.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <grass/gis.h>
 #include "ransurf.h"
 

Modified: grass/trunk/raster/r.random.cells/ransurf.h
===================================================================
--- grass/trunk/raster/r.random.cells/ransurf.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.cells/ransurf.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -11,28 +11,22 @@
 #define SEED_MIN		0
 #define PI       		M_PI
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
 #define CELLSORTER struct cell_sorter_
 CELLSORTER {
     int R, C;
     double Value;
 };
 
-GLOBAL double NS, EW;
-GLOBAL int CellCount, Rs, Cs;
-GLOBAL double MaxDist, MaxDistSq;
-GLOBAL FLAG *Cells;
-GLOBAL CELLSORTER *DoNext;
-GLOBAL CELL **Out, *CellBuffer;
-GLOBAL int Seed, OutFD;
-GLOBAL struct Flag *Verbose;
-GLOBAL struct Option *Distance;
-GLOBAL struct Option *Output;
+extern double NS, EW;
+extern int CellCount, Rs, Cs;
+extern double MaxDist, MaxDistSq;
+extern FLAG *Cells;
+extern CELLSORTER *DoNext;
+extern CELL **Out, *CellBuffer;
+extern int Seed, OutFD;
+extern struct Flag *Verbose;
+extern struct Option *Distance;
+extern struct Option *Output;
 
 #ifdef DEBUG
 #define INDX(a,b) (printf("(a)[%d]:%lf ",(b),(a)[(b)]))

Modified: grass/trunk/raster/r.random.surface/calcsd.c
===================================================================
--- grass/trunk/raster/r.random.surface/calcsd.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/calcsd.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include "ransurf.h"
 #include "local_proto.h"
 

Modified: grass/trunk/raster/r.random.surface/calcsurf.c
===================================================================
--- grass/trunk/raster/r.random.surface/calcsurf.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/calcsurf.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <stdlib.h>
 #include <grass/gis.h>
 #include "ransurf.h"
@@ -99,7 +98,6 @@
 		for (Col = Cs - 1; Col >= 0; Col--) {
 		    Surface[Row][Col] =
 			MakePP(Row, Col, OutRows, OutCols, Randoms, BigF);
-		    if (!Verbose->answer)
 			G_percent(++Count, MapCount, 1);
 		}
 	    }
@@ -107,7 +105,6 @@
 		for (Col = 0; Col < Cs; Col++) {
 		    Surface[Row][Col] =
 			MakePP(Row, Col, OutRows, OutCols, Randoms, BigF);
-		    if (!Verbose->answer)
 			G_percent(++Count, MapCount, 1);
 		}
 	    }
@@ -123,8 +120,6 @@
 		    else {
 			Surface[Row][Col] =
 			    MakePP(Row, Col, OutRows, OutCols, Randoms, BigF);
-
-			if (!Verbose->answer)
 			    G_percent(++Count, MapCount, 1);
 		    }
 		}
@@ -136,8 +131,6 @@
 		    else {
 			Surface[Row][Col] =
 			    MakePP(Row, Col, OutRows, OutCols, Randoms, BigF);
-
-			if (!Verbose->answer)
 			    G_percent(++Count, MapCount, 1);
 		    }
 		}

Modified: grass/trunk/raster/r.random.surface/cpfilter.c
===================================================================
--- grass/trunk/raster/r.random.surface/cpfilter.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/cpfilter.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include "ransurf.h"
 
 

Modified: grass/trunk/raster/r.random.surface/dd.c
===================================================================
--- grass/trunk/raster/r.random.surface/dd.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/dd.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <math.h>
 #include "ransurf.h"
 

Modified: grass/trunk/raster/r.random.surface/decay.c
===================================================================
--- grass/trunk/raster/r.random.surface/decay.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/decay.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include "ransurf.h"
 
 void DistDecay(double *Effect, int R, int C)

Modified: grass/trunk/raster/r.random.surface/digits.c
===================================================================
--- grass/trunk/raster/r.random.surface/digits.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/digits.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <math.h>
 #include "ransurf.h"
 

Modified: grass/trunk/raster/r.random.surface/gasdev.c
===================================================================
--- grass/trunk/raster/r.random.surface/gasdev.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/gasdev.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <math.h>
 #include "ransurf.h"
 #include "local_proto.h"

Modified: grass/trunk/raster/r.random.surface/gennorm.c
===================================================================
--- grass/trunk/raster/r.random.surface/gennorm.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/gennorm.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <math.h>
 #include <grass/gis.h>
 #include "ransurf.h"

Modified: grass/trunk/raster/r.random.surface/init.c
===================================================================
--- grass/trunk/raster/r.random.surface/init.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/init.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -11,7 +11,6 @@
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
-#undef MAIN
 #include "ransurf.h"
 #include "local_proto.h"
 

Modified: grass/trunk/raster/r.random.surface/main.c
===================================================================
--- grass/trunk/raster/r.random.surface/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -29,12 +29,22 @@
 #undef TRACE
 #undef DEBUG
 
-#define MAIN
 #include "ransurf.h"
 #include "local_proto.h"
-#undef MAIN
 
+BIGF BigF;
+double **Surface, NS, EW, FilterSD, AllMaxDist, *Norm;
+int MapCount, FDM, Rs, Cs, Theory;
+CELL *CellBuffer;
+FILTER *AllFilters, Filter;
+CATINFO CatInfo;
+int *Seeds, Seed, NumSeeds, Low, High, NumMaps, NumFilters, OutFD;
+char Buf[240], **OutNames, *TheoryName, *Mapset;
+struct Flag *Uniform;
 
+    /* please, remove before GRASS 7 released */
+struct Option *Distance, *Exponent, *Weight;
+
 int main(int argc, char **argv)
 {
     struct GModule *module;

Modified: grass/trunk/raster/r.random.surface/makebigf.c
===================================================================
--- grass/trunk/raster/r.random.surface/makebigf.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/makebigf.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include "ransurf.h"
 #include "local_proto.h"
 

Modified: grass/trunk/raster/r.random.surface/makepp.c
===================================================================
--- grass/trunk/raster/r.random.surface/makepp.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/makepp.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include "ransurf.h"
 #include "local_proto.h"
 

Modified: grass/trunk/raster/r.random.surface/random.c
===================================================================
--- grass/trunk/raster/r.random.surface/random.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/random.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <grass/gis.h>
 #include "ransurf.h"
 

Modified: grass/trunk/raster/r.random.surface/ransurf.h
===================================================================
--- grass/trunk/raster/r.random.surface/ransurf.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/ransurf.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -20,12 +20,6 @@
 #define SIZE_OF_DISTRIBUTION 	20000
 #define PI       		M_PI
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
 #define BIGF struct _big_f_filter_
 BIGF {
     int RowPlus, ColPlus, NumR, NumC, *LowBF, *HihBF;
@@ -43,19 +37,19 @@
     double *Average, *Max, *Min;
 };
 
-GLOBAL BIGF BigF;
-GLOBAL double **Surface, NS, EW, FilterSD, AllMaxDist, *Norm;
-GLOBAL int MapCount, FDM, Rs, Cs, Theory;
-GLOBAL CELL *CellBuffer;
-GLOBAL FILTER *AllFilters, Filter;
-GLOBAL CATINFO CatInfo;
-GLOBAL int *Seeds, Seed, NumSeeds, Low, High, NumMaps, NumFilters, OutFD;
-GLOBAL char Buf[240], **OutNames, *TheoryName, *Mapset;
-GLOBAL struct Flag *Uniform;
+extern BIGF BigF;
+extern double **Surface, NS, EW, FilterSD, AllMaxDist, *Norm;
+extern int MapCount, FDM, Rs, Cs, Theory;
+extern CELL *CellBuffer;
+extern FILTER *AllFilters, Filter;
+extern CATINFO CatInfo;
+extern int *Seeds, Seed, NumSeeds, Low, High, NumMaps, NumFilters, OutFD;
+extern char Buf[240], **OutNames, *TheoryName, *Mapset;
+extern struct Flag *Uniform;
 
     /* please, remove before GRASS 7 released */
-GLOBAL struct Flag *Verbose;
-GLOBAL struct Option *Distance, *Exponent, *Weight;
+extern struct Flag *Verbose;
+extern struct Option *Distance, *Exponent, *Weight;
 
 #ifdef DEBUG
 #define INDX(a,b) (printf("(a)[%d]:%lf ",(b),(a)[(b)]))

Modified: grass/trunk/raster/r.random.surface/save.c
===================================================================
--- grass/trunk/raster/r.random.surface/save.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/save.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include <string.h>
 #include <grass/gis.h>
 #include <grass/glocale.h>
@@ -175,8 +174,7 @@
 	    CellBuffer[Col] = (CELL) Surface[Row][Col];
 	}
 	G_put_raster_row(OutFD, CellBuffer, CELL_TYPE);
-	if (!Verbose->answer)
-	    G_percent(Row + 1, Rs, 1);
+	G_percent(Row + 1, Rs, 1);
     }
 
     G_close_cell(OutFD);

Modified: grass/trunk/raster/r.random.surface/zero.c
===================================================================
--- grass/trunk/raster/r.random.surface/zero.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.random.surface/zero.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -3,7 +3,6 @@
 #undef TRACE
 #undef DEBUG
 
-#undef MAIN
 #include "ransurf.h"
 
 

Modified: grass/trunk/raster/r.recode/global.h
===================================================================
--- grass/trunk/raster/r.recode/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.recode/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,15 +1,6 @@
 #include <stdio.h>
 #include <grass/gis.h>
-#ifdef MAIN
-RASTER_MAP_TYPE in_type;
-RASTER_MAP_TYPE out_type;
-struct FPReclass rcl_struct;
-CELL old_min, old_max;
-DCELL old_dmin, old_dmax;
-int in_fd, out_fd, no_mask, align_wind, make_dcell, nrules, rule_size;
-char *name, *mapset, *result, *title;
-char **rules;
-#else
+
 extern RASTER_MAP_TYPE in_type;
 extern RASTER_MAP_TYPE out_type;
 extern struct FPReclass rcl_struct;
@@ -18,7 +9,7 @@
 extern int in_fd, out_fd, no_mask, align_wind, make_dcell, nrules, rule_size;
 extern char *name, *mapset, *result, *title;
 extern char **rules;
-#endif
+
 /* read_rules.c */
 int report_range(void);
 int read_rules(FILE *);

Modified: grass/trunk/raster/r.recode/main.c
===================================================================
--- grass/trunk/raster/r.recode/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.recode/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -13,7 +13,7 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -22,6 +22,15 @@
 #include <grass/glocale.h>
 #include "global.h"
 
+RASTER_MAP_TYPE in_type;
+RASTER_MAP_TYPE out_type;
+struct FPReclass rcl_struct;
+CELL old_min, old_max;
+DCELL old_dmin, old_dmax;
+int in_fd, out_fd, no_mask, align_wind, make_dcell, nrules, rule_size;
+char *name, *mapset, *result, *title;
+char **rules;
+
 int main(int argc, char *argv[])
 {
     char *title;

Modified: grass/trunk/raster/r.resamp.rst/main.c
===================================================================
--- grass/trunk/raster/r.resamp.rst/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.resamp.rst/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -35,8 +35,6 @@
 #include <stdlib.h>
 #include <unistd.h>
 
-#define MAIN
-
 #include <grass/dbmi.h>
 #include <grass/gis.h>
 #include <grass/linkm.h>

Modified: grass/trunk/raster/r.statistics/main.c
===================================================================
--- grass/trunk/raster/r.statistics/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.statistics/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -20,9 +20,27 @@
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
-#define MAIN
 #include "method.h"
 
+/* modify this table to add new methods */
+struct menu menu[] = {
+    {"diversity", DIV, "diversity of values in specified objects in %%"},
+    {"distribution", DISTRIB,
+     "distribution of values in specified objects in %%"},
+    {"average", AVERAGE, "average of values in specified objects"},
+    {"mode", MODE, "mode of values in specified objects"},
+    {"median", MEDIAN, "median of values in specified objects"},
+    {"avedev", ADEV, "Average deviation of values in specified objects"},
+    {"stddev", SDEV, "Standard deviation of values in specified objects"},
+    {"variance", VARIANC, "Variance of values in specified objects"},
+    {"skewness", SKEWNES, "Skewnes of values in specified objects"},
+    {"kurtosis", KURTOSI, "Kurtosis of values in specified objects"},
+    {"min", MIN, "Minimum of values in specified objects"},
+    {"max", MAX, "Maximum of values in specified objects"},
+    {"sum", SUM, "Sum of values in specified objects"},
+    {0, 0, 0}
+};
+
 /* function prototypes */
 static int is_ok(char *, char *);
 

Modified: grass/trunk/raster/r.statistics/method.h
===================================================================
--- grass/trunk/raster/r.statistics/method.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.statistics/method.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -27,34 +27,8 @@
     char *text;			/* menu display - full description */
 };
 
-
-
-#ifdef MAIN
-
-/* modify this table to add new methods */
-struct menu menu[] = {
-    {"diversity", DIV, "diversity of values in specified objects in %%"},
-    {"distribution", DISTRIB,
-     "distribution of values in specified objects in %%"},
-    {"average", AVERAGE, "average of values in specified objects"},
-    {"mode", MODE, "mode of values in specified objects"},
-    {"median", MEDIAN, "median of values in specified objects"},
-    {"avedev", ADEV, "Average deviation of values in specified objects"},
-    {"stddev", SDEV, "Standard deviation of values in specified objects"},
-    {"variance", VARIANC, "Variance of values in specified objects"},
-    {"skewness", SKEWNES, "Skewnes of values in specified objects"},
-    {"kurtosis", KURTOSI, "Kurtosis of values in specified objects"},
-    {"min", MIN, "Minimum of values in specified objects"},
-    {"max", MAX, "Maximum of values in specified objects"},
-    {"sum", SUM, "Sum of values in specified objects"},
-    {0, 0, 0}
-};
-
-#else
 extern struct menu menu[];
-#endif
 
-
 /* o_adev.c */
 int o_adev(char *, char *, char *, int, struct Categories *);
 

Modified: grass/trunk/raster/r.sunmask/global.h
===================================================================
--- grass/trunk/raster/r.sunmask/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.sunmask/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,12 +1,6 @@
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern float asol, phi0, sun_zenith, sun_azimuth;	/* from nadir, from north */
+extern int sunset;
 
-GLOBAL float asol, phi0, sun_zenith, sun_azimuth;	/* from nadir, from north */
-GLOBAL int sunset;
-
 /* proto */
 long G_calc_solar_position(double, double, double, int, int, int, int, int,
 			   int);

Modified: grass/trunk/raster/r.sunmask/main.c
===================================================================
--- grass/trunk/raster/r.sunmask/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.sunmask/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -39,8 +39,6 @@
  *                    but it's somewhat slow with non-CELL maps
  *********************************************************************/
 
-#define MAIN
-
 #include "global.h"
 #include <stdio.h>
 #include <stdlib.h>
@@ -50,6 +48,9 @@
 #include "solpos00.h"
 #include <grass/glocale.h>
 
+float asol, phi0, sun_zenith, sun_azimuth;	/* from nadir, from north */
+int sunset;
+
 /* to be displayed in r.sunmask */
 static char *SOLPOSVERSION = "11 April 2001";
 

Modified: grass/trunk/raster/r.surf.contour/contour.h
===================================================================
--- grass/trunk/raster/r.surf.contour/contour.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.surf.contour/contour.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,26 +17,20 @@
     double d;
 };
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern int nrows;
+extern int ncols;
+extern int minc;
+extern int minr;
+extern int maxc;
+extern int maxr;
+extern int array_size;
+extern double i_val_l_f;
+extern CSEG con;
+extern FLAG *seen, *mask;
+extern BSEG bseen, bmask;
+extern NODE *zero;
+extern CELL on, off;
 
-GLOBAL int nrows;
-GLOBAL int ncols;
-GLOBAL int minc;
-GLOBAL int minr;
-GLOBAL int maxc;
-GLOBAL int maxr;
-GLOBAL int array_size;
-GLOBAL double i_val_l_f;
-GLOBAL CSEG con;
-GLOBAL FLAG *seen, *mask;
-GLOBAL BSEG bseen, bmask;
-GLOBAL NODE *zero;
-GLOBAL CELL on, off;
-
 /* add_in.c */
 NODE *add_in_slow(int, int, int, int, NODE *, int *);
 NODE *add_in(int, int, int, int, NODE *, int *);

Modified: grass/trunk/raster/r.surf.contour/main.c
===================================================================
--- grass/trunk/raster/r.surf.contour/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.surf.contour/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -22,13 +22,25 @@
 
 #include <stdlib.h>
 #include <stdio.h>
-#define MAIN
 #include "contour.h"
 #include <unistd.h>
-#undef MAIN
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
+int nrows;
+int ncols;
+int minc;
+int minr;
+int maxc;
+int maxr;
+int array_size;
+double i_val_l_f;
+CSEG con;
+FLAG *seen, *mask;
+BSEG bseen, bmask;
+NODE *zero;
+CELL on, off;
+
 int main(int argc, char *argv[])
 {
     int r, c;

Modified: grass/trunk/raster/r.surf.fractal/frac.h
===================================================================
--- grass/trunk/raster/r.surf.fractal/frac.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.surf.fractal/frac.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -23,22 +23,15 @@
 
 /* ------ Global variables ------ */
 
-#ifndef MAIN
-extern				/* Externally defined if not main()     */
-#endif
- char *rast_out_name,		/* Name of the raster output file.      */
+extern char
+ *rast_out_name,		/* Name of the raster output file.      */
  *mapset_out;
 
-#ifndef MAIN
-extern
-#endif
- int fd_out,			/* File descriptor of output raster     */
+extern int
+  fd_out,			/* File descriptor of output raster     */
   Steps;			/* Number of intermediate images.       */
 
-#ifndef MAIN
-extern
-#endif
-double H;			/* Hausdorff-Besickovitch dimension.    */
+extern double H;		/* Hausdorff-Besickovitch dimension.    */
 
 /* interface.c */
 int interface(int, char *[]);

Modified: grass/trunk/raster/r.surf.fractal/main.c
===================================================================
--- grass/trunk/raster/r.surf.fractal/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.surf.fractal/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -12,26 +12,22 @@
  *
  *****************************************************************************/
 
-#define MAIN
-
 #include "frac.h"
 
-int main(int argc, char *argv[])
-{
+char
+ *rast_out_name,		/* Name of the raster output file.      */
+ *mapset_out;
 
-    /*----------------------------------------------------------------------*/
-    /*                     GET INPUT FROM USER                              */
+int
+  fd_out,			/* File descriptor of output raster     */
+  Steps;			/* Number of intermediate images.       */
 
-    /*----------------------------------------------------------------------*/
+double H;			/* Hausdorff-Besickovitch dimension.    */
 
-    interface(argc, argv);
+int main(int argc, char *argv[])
+{
 
-
-    /*----------------------------------------------------------------------*/
-    /*                    PROCESS RASTER FILES                              */
-
-    /*----------------------------------------------------------------------*/
-
+    interface(argc, argv);
     process();
 
     return EXIT_SUCCESS;

Modified: grass/trunk/raster/r.surf.idw/main.c
===================================================================
--- grass/trunk/raster/r.surf.idw/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.surf.idw/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -35,10 +35,45 @@
 #include <stdlib.h>
 #include <math.h>
 #include <grass/gis.h>
-#define MAIN
-#include "main.h"
 #include <grass/glocale.h>
 
+#include "main.h"
+
+struct Cell_head window;
+CELL *cell, *mask;
+double *rowlook, *collook, *lat_diff,	/* distances between latitudes */
+  ew2;
+
+short ll;			/* TRUE if latitude-longitude projection */
+
+/* function pointers for LL function substitutes */
+
+int first_west(EW *, SHORT);
+int first_west_LL(EW *, SHORT);
+int (*init_row_search) (EW *, SHORT);	/* function pointer */
+
+int completed_row(EW *);
+int completed_row_LL(EW *);
+
+ /* function pointer */
+int (*comp_row_search) (EW *);
+
+int find_neighbors(EW *, NEIGHBOR *, SHORT, SHORT, int, SHORT *);
+int find_neighbors_LL(EW *, NEIGHBOR *, SHORT, SHORT, int, SHORT *);
+
+ /* function pointer */
+int (*locate_neighbors) (EW *, NEIGHBOR *, SHORT, SHORT, int, SHORT *);
+
+int exhaust_search(EW *, NEIGHBOR *, SHORT, SHORT);
+int exhaust_search_LL(EW *, NEIGHBOR *, SHORT, SHORT);
+
+/* function pointer */
+int (*exhaust_row) (EW *, NEIGHBOR *, SHORT, SHORT);
+
+double offset_distance(SHORT);
+double offset_distance_LL(SHORT);
+double (*check_offset) (SHORT);	/* function pointer */
+
 static int error_flag = 0;
 static char *input;
 static char *output;

Modified: grass/trunk/raster/r.surf.idw/main.h
===================================================================
--- grass/trunk/raster/r.surf.idw/main.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.surf.idw/main.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -32,45 +32,6 @@
     EW *next;
 };
 
-#ifdef MAIN
-
-struct Cell_head window;
-CELL *cell, *mask;
-double *rowlook, *collook, *lat_diff,	/* distances between latitudes */
-  ew2;
-
-short ll;			/* TRUE if latitude-longitude projection */
-
-/* function pointers for LL function substitutes */
-
-int first_west(EW *, SHORT);
-int first_west_LL(EW *, SHORT);
-int (*init_row_search) (EW *, SHORT);	/* function pointer */
-
-int completed_row(EW *);
-int completed_row_LL(EW *);
-
- /* function pointer */
-int (*comp_row_search) (EW *);
-
-int find_neighbors(EW *, NEIGHBOR *, SHORT, SHORT, int, SHORT *);
-int find_neighbors_LL(EW *, NEIGHBOR *, SHORT, SHORT, int, SHORT *);
-
- /* function pointer */
-int (*locate_neighbors) (EW *, NEIGHBOR *, SHORT, SHORT, int, SHORT *);
-
-int exhaust_search(EW *, NEIGHBOR *, SHORT, SHORT);
-int exhaust_search_LL(EW *, NEIGHBOR *, SHORT, SHORT);
-
-/* function pointer */
-int (*exhaust_row) (EW *, NEIGHBOR *, SHORT, SHORT);
-
-double offset_distance(SHORT);
-double offset_distance_LL(SHORT);
-double (*check_offset) (SHORT);	/* function pointer */
-
-#endif
-
 /* dist.c */
 int G_begin_geodesic_distance_l(short, double, double);
 double LL_set_geodesic_distance_lat(double);

Modified: grass/trunk/raster/r.to.vect/global.h
===================================================================
--- grass/trunk/raster/r.to.vect/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.to.vect/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -20,12 +20,6 @@
 /*    write_boundary  write a line out to the digit files */
 /*    write_area    make table of area mappings and write dlg label file */
 
-#ifdef MAIN
-#define Global
-#else
-#define Global extern
-#endif
-
 #define BACKWARD 1
 #define FORWARD 2
 #define OPEN 1
@@ -38,27 +32,27 @@
 #define CATNUM 0
 #define CATLABEL 1
 
-Global int data_type;
-Global int data_size;
-Global struct Map_info Map;
-Global int input_fd;		/*    input_fd     input raster map descriptor */
-Global struct line_cats *Cats;
-Global struct Cell_head cell_head;
+extern int data_type;
+extern int data_size;
+extern struct Map_info Map;
+extern int input_fd;		/*    input_fd     input raster map descriptor */
+extern struct line_cats *Cats;
+extern struct Cell_head cell_head;
 
-Global int direction;
-Global int first_read, last_read;
-Global int input_fd;
-Global int row_length, row_count, n_rows;
-Global int total_areas;
+extern int direction;
+extern int first_read, last_read;
+extern int input_fd;
+extern int row_length, row_count, n_rows;
+extern int total_areas;
 
-Global int smooth_flag;		/* this is 0 for no smoothing, 1 for smoothing of lines */
-Global int value_flag;		/* use raster values as categories */
+extern int smooth_flag;		/* this is 0 for no smoothing, 1 for smoothing of lines */
+extern int value_flag;		/* use raster values as categories */
 
-Global struct Categories RastCats;
-Global int has_cats;		/* Category labels available */
-Global struct field_info *Fi;
-Global dbDriver *driver;
-Global dbString sql, label;
+extern struct Categories RastCats;
+extern int has_cats;		/* Category labels available */
+extern struct field_info *Fi;
+extern dbDriver *driver;
+extern dbString sql, label;
 
 struct COOR
 {

Modified: grass/trunk/raster/r.to.vect/main.c
===================================================================
--- grass/trunk/raster/r.to.vect/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.to.vect/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -16,8 +16,6 @@
  *
  *****************************************************************************/
 
-#define MAIN
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <grass/gis.h>
@@ -35,6 +33,28 @@
  * 2007/2: attributes for lines supported
  */
 
+int data_type;
+int data_size;
+struct Map_info Map;
+int input_fd;		/*    input_fd     input raster map descriptor */
+struct line_cats *Cats;
+struct Cell_head cell_head;
+
+int direction;
+int first_read, last_read;
+int input_fd;
+int row_length, row_count, n_rows;
+int total_areas;
+
+int smooth_flag;		/* this is 0 for no smoothing, 1 for smoothing of lines */
+int value_flag;		/* use raster values as categories */
+
+struct Categories RastCats;
+int has_cats;		/* Category labels available */
+struct field_info *Fi;
+dbDriver *driver;
+dbString sql, label;
+
 int main(int argc, char *argv[])
 {
     struct GModule *module;

Modified: grass/trunk/raster/r.topidx/global.h
===================================================================
--- grass/trunk/raster/r.topidx/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.topidx/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,13 +18,7 @@
 void initialize(void);
 void atanb(void);
 
-#ifdef MAIN
-#	define	GLOBAL
-#else
-#	define	GLOBAL	extern
-#endif
-
-GLOBAL char *mapset, *iname, *oname;
-GLOBAL struct Cell_head window;
-GLOBAL DCELL **cell;
-GLOBAL DCELL **atb, **a;
+extern char *mapset, *iname, *oname;
+extern struct Cell_head window;
+extern DCELL **cell;
+extern DCELL **atb, **a;

Modified: grass/trunk/raster/r.topidx/main.c
===================================================================
--- grass/trunk/raster/r.topidx/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.topidx/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,10 +18,14 @@
  *
  *****************************************************************************/
 
-#define	MAIN
 #include <grass/glocale.h>
 #include "global.h"
 
+char *mapset, *iname, *oname;
+struct Cell_head window;
+DCELL **cell;
+DCELL **atb, **a;
+
 int main(int argc, char **argv)
 {
     struct GModule *module;

Modified: grass/trunk/raster/r.topmodel/file_io.c
===================================================================
--- grass/trunk/raster/r.topmodel/file_io.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.topmodel/file_io.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -21,6 +21,7 @@
 
 void read_inputs(void)
 {
+    char buf[1024];
     FILE *fp;
     int i, j;
     double x;

Modified: grass/trunk/raster/r.topmodel/global.h
===================================================================
--- grass/trunk/raster/r.topmodel/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.topmodel/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -51,22 +51,15 @@
 double get_f(double t, double R);
 
 
-#ifdef MAIN
-#	define	GLOBAL
-#else
-#	define	GLOBAL	extern
-#endif
-
-
 /* Topographic index statistics file */
-GLOBAL struct
+struct idxstats
 {
     /* misc.nidxclass's */
     double *atb, *Aatb_r;
-} idxstats;
+};
 
 /* Parameters file */
-GLOBAL struct
+struct params
 {
     char *name;
     double A, qs0, lnTe, m, Sr0, Srmax, td, vch, vr;
@@ -78,28 +71,28 @@
 } params;
 
 /* Input file */
-GLOBAL struct
+struct input
 {
     int ntimestep;
     double dt;
     /* input.ntimestep's */
     double *R, *Ep;
-} input;
+};
 
 /* Map names */
-GLOBAL struct
+struct map
 {
     char *basin, *elev, *belev, *fill, *dir, *topidx;
-} map;
+};
 
 /* File names */
-GLOBAL struct
+struct file
 {
     char *idxstats, *params, *input, *output, *Qobs;
-} file;
+};
 
 /* Miscellaneous TOPMODEL variables */
-GLOBAL struct
+struct misc
 {
     /* Number of non-null cells */
     int ncell;
@@ -133,10 +126,9 @@
     double **ex;
     /* Miscellaneous variables */
     int timestep, idxclass;
-} misc;
+};
 
-
-GLOBAL struct
+struct flg
 {
     /* Input flag */
     char input;
@@ -144,9 +136,16 @@
     char overwr;
     /* Overwrite list */
     int overwrlist;
-} flg;
+};
 
+extern struct idxstats idxstats;
+extern struct params params;
+extern struct input input;
+extern struct map map;
+extern struct file file;
+extern struct misc misc;
+extern struct flg flg;
 
 /* Miscellaneous variables */
-GLOBAL char *gisbase, *mapset;
-GLOBAL char buf[BUFSIZE];
+extern char *gisbase, *mapset;
+extern char buf[BUFSIZE];

Modified: grass/trunk/raster/r.topmodel/main.c
===================================================================
--- grass/trunk/raster/r.topmodel/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.topmodel/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,12 +14,19 @@
  *
  */
 
-#define	MAIN
 #include <stdio.h>
 #include <stdlib.h>
 #include <grass/glocale.h>
 #include "global.h"
 
+struct idxstats idxstats;
+struct params params;
+struct input input;
+struct map map;
+struct file file;
+struct misc misc;
+struct flg flg;
+char *gisbase, *mapset;
 
 int main(int argc, char **argv)
 {

Modified: grass/trunk/raster/r.topmodel/misc.c
===================================================================
--- grass/trunk/raster/r.topmodel/misc.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.topmodel/misc.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -22,6 +22,7 @@
 
 void gregion(void)
 {
+    char buf[GPATH_MAX];
     char *hdmap;
 
 
@@ -48,6 +49,7 @@
 
 void depressionless(void)
 {
+    char buf[GPATH_MAX];
     sprintf(buf, "%s/bin/r.fill.dir "
 	    "input=%s elev=%s dir=%s type=grass > /dev/null",
 	    gisbase, map.elev, map.fill, map.dir);
@@ -66,6 +68,7 @@
 
 void basin_elevation(void)
 {
+    char buf[GPATH_MAX];
     sprintf(buf, "%s/bin/r.mapcalc "
 	    "'%s = if(%s == 0 || isnull(%s), null(), %s)' > /dev/null",
 	    gisbase, map.belev, map.basin, map.basin, map.elev);
@@ -82,6 +85,7 @@
 
 void top_index(void)
 {
+    char buf[GPATH_MAX];
     if (map.belev) {
 	sprintf(buf, "%s/bin/r.topidx "
 		"input=%s output=%s > /dev/null",

Modified: grass/trunk/raster/r.univar2/globals.h
===================================================================
--- grass/trunk/raster/r.univar2/globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.univar2/globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -47,11 +47,7 @@
     struct Flag *shell_style, *extended;
 } param_type;
 
-#ifdef MAIN
-param_type param;
-#else
 extern param_type param;
-#endif
 
 /* fn prototypes */
 void heapsort_double(double *data, int n);

Modified: grass/trunk/raster/r.univar2/r.univar_main.c
===================================================================
--- grass/trunk/raster/r.univar2/r.univar_main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.univar2/r.univar_main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -16,16 +16,14 @@
 
 #include <assert.h>
 #include <string.h>
-#define MAIN
 #include "globals.h"
 
-/* local proto */
-void set_params();
+param_type param;
 
 /* ************************************************************************* */
 /* Set up the arguments we are expecting ********************************** */
 /* ************************************************************************* */
-void set_params()
+void set_params(void)
 {
     param.inputfile = G_define_standard_option(G_OPT_R_MAPS);
 

Modified: grass/trunk/raster/r.univar2/r3.univar_main.c
===================================================================
--- grass/trunk/raster/r.univar2/r3.univar_main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.univar2/r3.univar_main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,16 +15,14 @@
  *
  */
 
-#define MAIN
 #include "globals.h"
 
-/* local proto */
-void set_params();
+param_type param;
 
 /* ************************************************************************* */
 /* Set up the arguments we are expecting ********************************** */
 /* ************************************************************************* */
-void set_params()
+void set_params(void)
 {
     param.inputfile = G_define_standard_option(G_OPT_R3_INPUT);
 

Modified: grass/trunk/raster/r.walk/main.c
===================================================================
--- grass/trunk/raster/r.walk/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.walk/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -90,8 +90,6 @@
  * Markus Neteler               CEA
  */
 
-#define MAIN
-
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
@@ -107,6 +105,21 @@
 #include "local_proto.h"
 #include <grass/glocale.h>
 
+struct variables
+{
+    char *alias;
+    int position;
+} variables[] = {
+    {"output", CUM_COST_LAYER},
+    {"input", COST_LAYER},
+    {"coor", START_PT}
+};
+
+char cum_cost_layer[64];
+char cost_layer[64], dtm_layer[64];
+struct start_pt *head_start_pt = NULL;
+struct start_pt *head_end_pt = NULL;
+
 struct Cell_head window;
 
 

Modified: grass/trunk/raster/r.walk/stash.h
===================================================================
--- grass/trunk/raster/r.walk/stash.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.walk/stash.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -25,36 +25,11 @@
     struct start_pt *next;
 };
 
-#ifdef MAIN
-
-struct variables
-{
-    char *alias;
-    int position;
-}
-
-variables[] = {
-
-    {
-    "output", CUM_COST_LAYER}, {
-    "input", COST_LAYER}, {
-    "coor", START_PT}
-};
-
-char cum_cost_layer[64];
-char cost_layer[64], dtm_layer[64];
-struct start_pt *head_start_pt = NULL;
-struct start_pt *head_end_pt = NULL;
-
-#else
-
 extern char cum_cost_layer[];
 extern char cost_layer[], dtm_layer[];
 extern struct start_pt *head_start_pt;
 extern struct start_pt *head_end_pt;
 
-#endif
-
 int process_answers(char **, struct start_pt **, struct start_pt **);
 int time_to_stop(int, int);
 

Modified: grass/trunk/raster/r.water.outlet/basin.h
===================================================================
--- grass/trunk/raster/r.water.outlet/basin.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.water.outlet/basin.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,37 +26,23 @@
     int row, col;
 };
 
-#ifdef MAIN
-#define GLOBAL
-#define DRAINVAR	= {{ 7,6,5 },{ 8,-17,4 },{ 1,2,3 }}
-#define UPDRAINVAR	= {{ 3,2,1 },{ 4,-17,8 },{ 5,6,7 }}
-#define DRVAR	={0,1,1,1,0,-1,-1,-1,0}
-#define DCVAR	={0,1,0,-1,-1,-1,0,1,1}
-#else
-#define GLOBAL extern
-#define DRAINVAR
-#define UPDRAINVAR
-#define DRVAR
-#define DCVAR
-#endif
-
-GLOBAL SHORT drain[3][3] DRAINVAR;
-GLOBAL SHORT updrain[3][3] UPDRAINVAR;
-GLOBAL char dr_mod[9] DRVAR;
-GLOBAL char dc_mod[9] DCVAR;
-GLOBAL char basin_name[GNAME_MAX], swale_name[GNAME_MAX],
+extern SHORT drain[3][3];
+extern SHORT updrain[3][3];
+extern char dr_mod[9];
+extern char dc_mod[9];
+extern char basin_name[GNAME_MAX], swale_name[GNAME_MAX],
     half_name[GNAME_MAX], elev_name[GNAME_MAX], armsed_name[GNAME_MAX];
-GLOBAL int nrows, ncols, done, total;
-GLOBAL int array_size, high_index, do_index;
-GLOBAL char *drain_ptrs, ha_f, el_f, ar_f;
-GLOBAL RAMSEG ba_seg, pt_seg, sl_seg;
-GLOBAL int ncols_less_one, nrows_less_one;
-GLOBAL NODE *to_do;
-GLOBAL FILE *arm_fd, *fp;
-GLOBAL FLAG *doner, *swale, *left;
-GLOBAL CELL *bas;
-GLOBAL double half_res, diag, max_length, dep_slope;
-GLOBAL struct Cell_head window;
+extern int nrows, ncols, done, total;
+extern int array_size, high_index, do_index;
+extern char *drain_ptrs, ha_f, el_f, ar_f;
+extern RAMSEG ba_seg, pt_seg, sl_seg;
+extern int ncols_less_one, nrows_less_one;
+extern NODE *to_do;
+extern FILE *arm_fd, *fp;
+extern FLAG *doner, *swale, *left;
+extern CELL *bas;
+extern double half_res, diag, max_length, dep_slope;
+extern struct Cell_head window;
 
 /*
    GLOBAL CELL     *dis, *alt, *wat, *asp, *bas, *haf, *r_h, *dep, *ril_buf;

Modified: grass/trunk/raster/r.water.outlet/main.c
===================================================================
--- grass/trunk/raster/r.water.outlet/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.water.outlet/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -24,13 +24,30 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#define MAIN
-#include "basin.h"
-#include "outletP.h"
-#undef MAIN
 #include <grass/gis.h>
 #include <grass/glocale.h>
 
+#include "basin.h"
+#include "outletP.h"
+
+SHORT drain[3][3]	= {{ 7,6,5 },{ 8,-17,4 },{ 1,2,3 }};
+SHORT updrain[3][3]	= {{ 3,2,1 },{ 4,-17,8 },{ 5,6,7 }};
+char dr_mod[9]	= {0,1,1,1,0,-1,-1,-1,0};
+char dc_mod[9]	= {0,1,0,-1,-1,-1,0,1,1};
+char basin_name[GNAME_MAX], swale_name[GNAME_MAX],
+  half_name[GNAME_MAX], elev_name[GNAME_MAX], armsed_name[GNAME_MAX];
+int nrows, ncols, done, total;
+int array_size, high_index, do_index;
+char *drain_ptrs, ha_f, el_f, ar_f;
+RAMSEG ba_seg, pt_seg, sl_seg;
+int ncols_less_one, nrows_less_one;
+NODE *to_do;
+FILE *arm_fd, *fp;
+FLAG *doner, *swale, *left;
+CELL *bas;
+double half_res, diag, max_length, dep_slope;
+struct Cell_head window;
+
 int main(int argc, char *argv[])
 {
     double N, E;

Modified: grass/trunk/raster/r.watershed/ram/Gwater.h
===================================================================
--- grass/trunk/raster/r.watershed/ram/Gwater.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.watershed/ram/Gwater.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -38,60 +38,41 @@
     int nxt;
 };
 
-#ifdef MAIN
-#define GLOBAL
-#define DRAINVAR	= {{ 7,6,5 },{ 8,0,4 },{ 1,2,3 }}
-#define UPDRAINVAR	= {{ 3,2,1 },{ 4,0,8 },{ 5,6,7 }}
-#define NEXTDRVAR	= { 1,-1,0,0,-1,1,1,-1 }
-#define NEXTDCVAR	= { 0,0,-1,1,1,-1,1,-1 }
-#else
-#define GLOBAL extern
-#define DRAINVAR
-#define UPDRAINVAR
-#define NEXTDRVAR
-#define NEXTDCVAR
-#endif
+extern struct Cell_head window;
 
-GLOBAL struct Cell_head window;
+extern int first_astar, first_cum, nxt_avail_pt, total_cells, do_points;
+extern SHORT nrows, ncols;
+extern double half_res, diag, max_length, dep_slope;
+extern int bas_thres, tot_parts;
+extern FLAG *worked, *in_list, *s_b, *swale;
+extern RAMSEG dis_seg, alt_seg, wat_seg, asp_seg, bas_seg, haf_seg;
+extern RAMSEG r_h_seg, dep_seg;
+extern RAMSEG slp_seg, s_l_seg, s_g_seg, l_s_seg;
+extern POINT *astar_pts;
+extern CELL *dis, *alt, *wat, *asp, *bas, *haf, *r_h, *dep;
+extern CELL *ril_buf;
+extern int ril_fd;
+extern double *s_l, *s_g, *l_s;
+extern CELL one, zero;
+extern double ril_value, dzero;
+extern SHORT sides;
+extern SHORT drain[3][3];
+extern SHORT updrain[3][3];
+extern SHORT nextdr[8];
+extern SHORT nextdc[8];
+extern char ele_name[GNAME_MAX], *ele_mapset, pit_name[GNAME_MAX], *pit_mapset;
+extern char run_name[GNAME_MAX], *run_mapset, ob_name[GNAME_MAX], *ob_mapset;
+extern char ril_name[GNAME_MAX], *ril_mapset, dep_name[GNAME_MAX], *dep_mapset;
+extern char *this_mapset;
+extern char seg_name[GNAME_MAX], bas_name[GNAME_MAX], haf_name[GNAME_MAX], thr_name[8];
+extern char ls_name[GNAME_MAX], st_name[GNAME_MAX], sl_name[GNAME_MAX], sg_name[GNAME_MAX];
+extern char wat_name[GNAME_MAX], asp_name[GNAME_MAX], arm_name[GNAME_MAX], dis_name[GNAME_MAX];
+extern char ele_flag, pit_flag, run_flag, dis_flag, ob_flag;
+extern char wat_flag, asp_flag, arm_flag, ril_flag, dep_flag;
+extern char bas_flag, seg_flag, haf_flag, er_flag;
+extern char st_flag, sb_flag, sg_flag, sl_flag, ls_flag;
+extern FILE *fp;
 
-GLOBAL int first_astar, first_cum, nxt_avail_pt, total_cells, do_points;
-GLOBAL SHORT nrows, ncols;
-GLOBAL double half_res, diag, max_length, dep_slope;
-GLOBAL int bas_thres, tot_parts;
-GLOBAL FLAG *worked, *in_list, *s_b, *swale;
-GLOBAL RAMSEG dis_seg, alt_seg, wat_seg, asp_seg, bas_seg, haf_seg;
-GLOBAL RAMSEG r_h_seg, dep_seg;
-GLOBAL RAMSEG slp_seg, s_l_seg, s_g_seg, l_s_seg;
-GLOBAL POINT *astar_pts;
-GLOBAL CELL *dis, *alt, *wat, *asp, *bas, *haf, *r_h, *dep;
-GLOBAL CELL *ril_buf;
-GLOBAL int ril_fd;
-GLOBAL double *s_l, *s_g, *l_s;
-GLOBAL CELL one, zero;
-GLOBAL double ril_value, dzero;
-GLOBAL SHORT sides;
-GLOBAL SHORT drain[3][3] DRAINVAR;
-GLOBAL SHORT updrain[3][3] UPDRAINVAR;
-GLOBAL SHORT nextdr[8] NEXTDRVAR;
-GLOBAL SHORT nextdc[8] NEXTDCVAR;
-GLOBAL char ele_name[GNAME_MAX], *ele_mapset, pit_name[GNAME_MAX],
-    *pit_mapset;
-GLOBAL char run_name[GNAME_MAX], *run_mapset, ob_name[GNAME_MAX], *ob_mapset;
-GLOBAL char ril_name[GNAME_MAX], *ril_mapset, dep_name[GNAME_MAX],
-    *dep_mapset;
-GLOBAL char *this_mapset;
-GLOBAL char seg_name[GNAME_MAX], bas_name[GNAME_MAX], haf_name[GNAME_MAX],
-    thr_name[8];
-GLOBAL char ls_name[GNAME_MAX], st_name[GNAME_MAX], sl_name[GNAME_MAX],
-    sg_name[GNAME_MAX];
-GLOBAL char wat_name[GNAME_MAX], asp_name[GNAME_MAX], arm_name[GNAME_MAX],
-    dis_name[GNAME_MAX];
-GLOBAL char ele_flag, pit_flag, run_flag, dis_flag, ob_flag;
-GLOBAL char wat_flag, asp_flag, arm_flag, ril_flag, dep_flag;
-GLOBAL char bas_flag, seg_flag, haf_flag, er_flag;
-GLOBAL char st_flag, sb_flag, sg_flag, sl_flag, ls_flag;
-GLOBAL FILE *fp;
-
 /* close_maps.c */
 int close_maps(void);
 

Modified: grass/trunk/raster/r.watershed/ram/main.c
===================================================================
--- grass/trunk/raster/r.watershed/ram/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.watershed/ram/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -13,15 +13,48 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
+
 #include <stdlib.h>
 #include <unistd.h>
 #include "Gwater.h"
 #include <grass/gis.h>
 #include <grass/glocale.h>
-#undef MAIN
 
+struct Cell_head window;
 
+int first_astar, first_cum, nxt_avail_pt, total_cells, do_points;
+SHORT nrows, ncols;
+double half_res, diag, max_length, dep_slope;
+int bas_thres, tot_parts;
+FLAG *worked, *in_list, *s_b, *swale;
+RAMSEG dis_seg, alt_seg, wat_seg, asp_seg, bas_seg, haf_seg;
+RAMSEG r_h_seg, dep_seg;
+RAMSEG slp_seg, s_l_seg, s_g_seg, l_s_seg;
+POINT *astar_pts;
+CELL *dis, *alt, *wat, *asp, *bas, *haf, *r_h, *dep;
+CELL *ril_buf;
+int ril_fd;
+double *s_l, *s_g, *l_s;
+CELL one, zero;
+double ril_value, dzero;
+SHORT sides;
+SHORT drain[3][3]	= {{ 7,6,5 },{ 8,0,4 },{ 1,2,3 }};
+SHORT updrain[3][3]	= {{ 3,2,1 },{ 4,0,8 },{ 5,6,7 }};
+SHORT nextdr[8]	= { 1,-1,0,0,-1,1,1,-1 };
+SHORT nextdc[8]	= { 0,0,-1,1,1,-1,1,-1 };
+char ele_name[GNAME_MAX], *ele_mapset, pit_name[GNAME_MAX], *pit_mapset;
+char run_name[GNAME_MAX], *run_mapset, ob_name[GNAME_MAX], *ob_mapset;
+char ril_name[GNAME_MAX], *ril_mapset, dep_name[GNAME_MAX], *dep_mapset;
+char *this_mapset;
+char seg_name[GNAME_MAX], bas_name[GNAME_MAX], haf_name[GNAME_MAX], thr_name[8];
+char ls_name[GNAME_MAX], st_name[GNAME_MAX], sl_name[GNAME_MAX], sg_name[GNAME_MAX];
+char wat_name[GNAME_MAX], asp_name[GNAME_MAX], arm_name[GNAME_MAX], dis_name[GNAME_MAX];
+char ele_flag, pit_flag, run_flag, dis_flag, ob_flag;
+char wat_flag, asp_flag, arm_flag, ril_flag, dep_flag;
+char bas_flag, seg_flag, haf_flag, er_flag;
+char st_flag, sb_flag, sg_flag, sl_flag, ls_flag;
+FILE *fp;
+
 int main(int argc, char *argv[])
 {
     init_vars(argc, argv);

Modified: grass/trunk/raster/r.watershed/seg/Gwater.h
===================================================================
--- grass/trunk/raster/r.watershed/seg/Gwater.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.watershed/seg/Gwater.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -35,56 +35,37 @@
     int nxt;
 };
 
-#ifdef MAIN
-#define GLOBAL
-#define DRAINVAR	= {{ 7,6,5 },{ 8,0,4 },{ 1,2,3 }}
-#define UPDRAINVAR	= {{ 3,2,1 },{ 4,0,8 },{ 5,6,7 }}
-#define NEXTDRVAR	= { 1,-1,0,0,-1,1,1,-1 }
-#define NEXTDCVAR	= { 0,0,-1,1,1,-1,1,-1 }
-#else
-#define GLOBAL extern
-#define DRAINVAR
-#define UPDRAINVAR
-#define NEXTDRVAR
-#define NEXTDCVAR
-#endif
+extern struct Cell_head window;
 
-GLOBAL struct Cell_head window;
+extern int first_astar, first_cum, nxt_avail_pt, total_cells, do_points;
+extern SHORT nrows, ncols;
+extern double half_res, diag, max_length, dep_slope;
+extern int bas_thres, tot_parts;
+extern SSEG astar_pts;
+extern BSEG worked, in_list, s_b, swale;
+extern CSEG dis, alt, wat, asp, bas, haf, r_h, dep;
+extern DSEG slp, s_l, s_g, l_s, ril;
+extern CELL one, zero;
+extern double ril_value, dzero;
+extern SHORT sides;
+extern SHORT drain[3][3];
+extern SHORT updrain[3][3];
+extern SHORT nextdr[8];
+extern SHORT nextdc[8];
+extern char ele_name[GNAME_MAX], *ele_mapset, pit_name[GNAME_MAX], *pit_mapset;
+extern char run_name[GNAME_MAX], *run_mapset, ob_name[GNAME_MAX], *ob_mapset;
+extern char ril_name[GNAME_MAX], *ril_mapset, dep_name[GNAME_MAX], *dep_mapset;
 
-GLOBAL int first_astar, first_cum, nxt_avail_pt, total_cells, do_points;
-GLOBAL SHORT nrows, ncols;
-GLOBAL double half_res, diag, max_length, dep_slope;
-GLOBAL int bas_thres, tot_parts;
-GLOBAL SSEG astar_pts;
-GLOBAL BSEG worked, in_list, s_b, swale;
-GLOBAL CSEG dis, alt, wat, asp, bas, haf, r_h, dep;
-GLOBAL DSEG slp, s_l, s_g, l_s, ril;
-GLOBAL CELL one, zero;
-GLOBAL double ril_value, dzero;
-GLOBAL SHORT sides;
-GLOBAL SHORT drain[3][3] DRAINVAR;
-GLOBAL SHORT updrain[3][3] UPDRAINVAR;
-GLOBAL SHORT nextdr[8] NEXTDRVAR;
-GLOBAL SHORT nextdc[8] NEXTDCVAR;
-GLOBAL char ele_name[GNAME_MAX], *ele_mapset, pit_name[GNAME_MAX],
-    *pit_mapset;
-GLOBAL char run_name[GNAME_MAX], *run_mapset, ob_name[GNAME_MAX], *ob_mapset;
-GLOBAL char ril_name[GNAME_MAX], *ril_mapset, dep_name[GNAME_MAX],
-    *dep_mapset;
+extern char *this_mapset;
+extern char seg_name[GNAME_MAX], bas_name[GNAME_MAX], haf_name[GNAME_MAX], thr_name[8];
+extern char ls_name[GNAME_MAX], st_name[GNAME_MAX], sl_name[GNAME_MAX], sg_name[GNAME_MAX];
+extern char wat_name[GNAME_MAX], asp_name[GNAME_MAX], arm_name[GNAME_MAX], dis_name[GNAME_MAX];
+extern char ele_flag, pit_flag, run_flag, dis_flag, ob_flag;
+extern char wat_flag, asp_flag, arm_flag, ril_flag, dep_flag;
+extern char bas_flag, seg_flag, haf_flag, er_flag;
+extern char st_flag, sb_flag, sg_flag, sl_flag, ls_flag;
+extern FILE *fp;
 
-GLOBAL char *this_mapset;
-GLOBAL char seg_name[GNAME_MAX], bas_name[GNAME_MAX], haf_name[GNAME_MAX],
-    thr_name[8];
-GLOBAL char ls_name[GNAME_MAX], st_name[GNAME_MAX], sl_name[GNAME_MAX],
-    sg_name[GNAME_MAX];
-GLOBAL char wat_name[GNAME_MAX], asp_name[GNAME_MAX], arm_name[GNAME_MAX],
-    dis_name[GNAME_MAX];
-GLOBAL char ele_flag, pit_flag, run_flag, dis_flag, ob_flag;
-GLOBAL char wat_flag, asp_flag, arm_flag, ril_flag, dep_flag;
-GLOBAL char bas_flag, seg_flag, haf_flag, er_flag;
-GLOBAL char st_flag, sb_flag, sg_flag, sl_flag, ls_flag;
-GLOBAL FILE *fp;
-
 /* close_maps.c */
 int close_maps(void);
 

Modified: grass/trunk/raster/r.watershed/seg/main.c
===================================================================
--- grass/trunk/raster/r.watershed/seg/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/r.watershed/seg/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,19 +15,53 @@
  *               for details.
  *
  *****************************************************************************/
-#define MAIN
+
 #include <stdlib.h>
 #include <unistd.h>
 #include "Gwater.h"
 #include <grass/gis.h>
 #include <grass/glocale.h>
-#undef MAIN
 
+struct Cell_head window;
 
+int first_astar, first_cum, nxt_avail_pt, total_cells, do_points;
+SHORT nrows, ncols;
+double half_res, diag, max_length, dep_slope;
+int bas_thres, tot_parts;
+SSEG astar_pts;
+BSEG worked, in_list, s_b, swale;
+CSEG dis, alt, wat, asp, bas, haf, r_h, dep;
+DSEG slp, s_l, s_g, l_s, ril;
+CELL one, zero;
+double ril_value, dzero;
+SHORT sides;
+SHORT drain[3][3] = {{ 7,6,5 },{ 8,0,4 },{ 1,2,3 }};
+SHORT updrain[3][3]	= {{ 3,2,1 },{ 4,0,8 },{ 5,6,7 }};
+SHORT nextdr[8]	= { 1,-1,0,0,-1,1,1,-1 };
+SHORT nextdc[8]	= { 0,0,-1,1,1,-1,1,-1 };
+char ele_name[GNAME_MAX], *ele_mapset, pit_name[GNAME_MAX],
+    *pit_mapset;
+char run_name[GNAME_MAX], *run_mapset, ob_name[GNAME_MAX], *ob_mapset;
+char ril_name[GNAME_MAX], *ril_mapset, dep_name[GNAME_MAX],
+    *dep_mapset;
+
+char *this_mapset;
+char seg_name[GNAME_MAX], bas_name[GNAME_MAX], haf_name[GNAME_MAX],
+    thr_name[8];
+char ls_name[GNAME_MAX], st_name[GNAME_MAX], sl_name[GNAME_MAX],
+    sg_name[GNAME_MAX];
+char wat_name[GNAME_MAX], asp_name[GNAME_MAX], arm_name[GNAME_MAX],
+    dis_name[GNAME_MAX];
+char ele_flag, pit_flag, run_flag, dis_flag, ob_flag;
+char wat_flag, asp_flag, arm_flag, ril_flag, dep_flag;
+char bas_flag, seg_flag, haf_flag, er_flag;
+char st_flag, sb_flag, sg_flag, sl_flag, ls_flag;
+FILE *fp;
+
+
+
 int main(int argc, char *argv[])
 {
-    extern FILE *fopen();
-
     one = 1;
     zero = 0;
     dzero = 0.0;

Modified: grass/trunk/raster/wildfire/r.spreadpath/main.c
===================================================================
--- grass/trunk/raster/wildfire/r.spreadpath/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/wildfire/r.spreadpath/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -33,12 +33,28 @@
 #include <fcntl.h>
 #include <grass/segment.h>
 #include <grass/gis.h>
-#define MAIN
+
 #include "stash.h"
 #include <grass/glocale.h>
 #include "local_proto.h"
 
 
+struct variables
+{
+    char *alias;
+    int position;
+} variables[] = {
+    {"x_input", BACKCOL_LAYER},
+    {"y_input", BACKROW_LAYER},
+    {"coor", START_PT},
+    {"output", PATH_LAYER}
+};
+
+char path_layer[64];
+char backrow_layer[64];
+char backcol_layer[64];
+struct point *head_start_pt = NULL;
+
 char *value;
 int nrows, ncols;
 SEGMENT in_row_seg, in_col_seg, out_seg;

Modified: grass/trunk/raster/wildfire/r.spreadpath/stash.h
===================================================================
--- grass/trunk/raster/wildfire/r.spreadpath/stash.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster/wildfire/r.spreadpath/stash.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -17,34 +17,10 @@
 #define      PATH_LAYER         4
 
 #include "point.h"
-#ifdef MAIN
 
-struct variables
-{
-    char *alias;
-    int position;
-}
-
-variables[] = {
-    {
-    "x_input", BACKCOL_LAYER}, {
-    "y_input", BACKROW_LAYER}, {
-    "coor", START_PT}, {
-    "output", PATH_LAYER}
-};
-
-char path_layer[64];
-char backrow_layer[64];
-char backcol_layer[64];
-struct point *head_start_pt = NULL;
-
-#else
-
 extern char path_layer[];
 extern char backrow_layer[];
 extern char backcol_layer[];
 extern struct point *head_start_pt;
 
-#endif
-
 /****************END OF "GDRAIN_CMD_LINE.H"**********************/

Modified: grass/trunk/raster3d/r3.mkdspf/iso_surface.c
===================================================================
--- grass/trunk/raster3d/r3.mkdspf/iso_surface.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.mkdspf/iso_surface.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,7 +1,6 @@
 #include <stdlib.h>
 #include <math.h>
 #include "vizual.h"
-#include "cell_table.h"
 #include <grass/gis.h>
 #include <grass/G3d.h>
 #include "local_proto.h"

Modified: grass/trunk/raster3d/r3.mkdspf/main.c
===================================================================
--- grass/trunk/raster3d/r3.mkdspf/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.mkdspf/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -40,7 +40,6 @@
  *     to use new GRASS 3dgrid data files & API
  */
 
-#define MAIN
 #include <stdlib.h>
 #include <math.h>
 #include "vizual.h"
@@ -49,6 +48,10 @@
 #include "local_proto.h"
 #include <grass/glocale.h>
 
+file_info Headfax;	/* contains info about command line */
+Cube_data CUBE;		/* and the data for a single cube */
+int NTHRESH;
+
 int main(int argc, char *argv[])
 {
     char *dspout, element[160];

Modified: grass/trunk/raster3d/r3.mkdspf/vizual.h
===================================================================
--- grass/trunk/raster3d/r3.mkdspf/vizual.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.mkdspf/vizual.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,5 +1,5 @@
 #include "viz.h"
 
-GLOBAL file_info Headfax;	/* contains info about command line */
-GLOBAL Cube_data CUBE;		/* and the data for a single cube */
-GLOBAL int NTHRESH;
+extern file_info Headfax;	/* contains info about command line */
+extern Cube_data CUBE;		/* and the data for a single cube */
+extern int NTHRESH;

Modified: grass/trunk/raster3d/r3.out.vtk/globalDefs.h
===================================================================
--- grass/trunk/raster3d/r3.out.vtk/globalDefs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.out.vtk/globalDefs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -41,12 +41,7 @@
 
 } input_maps;
 
-#ifdef MAIN
-double x_extent;
-double y_extent;
-#else
 extern double x_extent;
 extern double y_extent;
-#endif
 
 #endif

Modified: grass/trunk/raster3d/r3.out.vtk/main.c
===================================================================
--- grass/trunk/raster3d/r3.out.vtk/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.out.vtk/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -22,7 +22,6 @@
 #include <grass/G3d.h>
 #include <grass/glocale.h>
 
-#define MAIN
 #include "globalDefs.h"
 #include "parameters.h"
 
@@ -31,6 +30,11 @@
 #include "writeVTKHead.h"
 #include "errorHandling.h"
 
+paramType param;		/*Parameters */
+
+double x_extent;
+double y_extent;
+
 /** prototypes ***************************************************************/
 
 /*Open the rgb voxel maps and write the data to the output */

Modified: grass/trunk/raster3d/r3.out.vtk/parameters.h
===================================================================
--- grass/trunk/raster3d/r3.out.vtk/parameters.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.out.vtk/parameters.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -29,13 +29,9 @@
 
 
 /*global structs */
-#ifdef MAIN
-paramType param;		/*Parameters */
-#else
 extern paramType param;		/*Parameters */
-#endif
 
 /*prototype */
-void set_params();
+void set_params(void);
 
 #endif

Deleted: grass/trunk/raster3d/r3.showdspf/cell_table.h
===================================================================
--- grass/trunk/raster3d/r3.showdspf/cell_table.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.showdspf/cell_table.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,1542 +0,0 @@
-#ifdef MAIN
-CELL_ENTRY cell_table[256] = {
-    {0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 1, 0, 0, 0, 0, 0, 0, 0,
-     3, 1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 2, 0, 0, 0, 0, 0, 0, 0,
-     3, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 1, 2, 0, 0, 0, 0, 0, 0,
-     4, 2, 4, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 2, 9, 10, 2, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 3, 0, 0, 0, 0, 0, 0, 0,
-     3, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 1, 3, 0, 0, 0, 0, 0, 0,
-     6, 1, 2, 3, 4, 9, 12, 0, 0, 0, 0, 0, 0,
-     2, 1, 4, 9, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 3, 2, 0, 0, 0, 0, 0, 0,
-     4, 10, 12, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 10, 3, 1, 10, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 2, 1, 0, 0, 0, 0, 0,
-     5, 10, 12, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0,
-     3, 12, 9, 10, 3, 9, 12, 3, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 4, 0, 0, 0, 0, 0, 0, 0,
-     3, 3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 1, 4, 0, 0, 0, 0, 0, 0,
-     4, 11, 9, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 11, 1, 3, 11, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 2, 4, 0, 0, 0, 0, 0, 0,
-     6, 2, 3, 4, 1, 10, 11, 0, 0, 0, 0, 0, 0,
-     2, 2, 1, 10, 4, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 2, 1, 4, 0, 0, 0, 0, 0,
-     5, 9, 10, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0,
-     3, 10, 11, 9, 2, 11, 10, 2, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 4, 3, 0, 0, 0, 0, 0, 0,
-     4, 12, 11, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 12, 4, 2, 12, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 4, 3, 0, 0, 0, 0, 0,
-     5, 11, 9, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0,
-     3, 9, 12, 11, 1, 12, 9, 1, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 4, 3, 2, 0, 0, 0, 0, 0,
-     5, 12, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0,
-     3, 11, 10, 12, 4, 10, 11, 4, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 3, 1, 2, 0, 0, 0, 0,
-     4, 12, 11, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 11, 9, 10, 11, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 5, 0, 0, 0, 0, 0, 0, 0,
-     3, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 5, 1, 0, 0, 0, 0, 0, 0,
-     4, 4, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 4, 5, 1, 4, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 5, 2, 0, 0, 0, 0, 0, 0,
-     6, 5, 10, 1, 9, 8, 2, 0, 0, 0, 0, 0, 0,
-     2, 5, 9, 8, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 1, 2, 0, 0, 0, 0, 0,
-     5, 4, 8, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0,
-     3, 8, 2, 4, 5, 2, 8, 5, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 5, 3, 0, 0, 0, 0, 0, 0,
-     6, 5, 9, 12, 3, 8, 2, 0, 0, 0, 0, 0, 0,
-     2, 5, 9, 8, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 1, 3, 0, 0, 0, 0, 0,
-     7, 4, 8, 2, 12, 5, 1, 3, 0, 0, 0, 0, 0,
-     3, 2, 12, 3, 4, 8, 5, 4, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 2, 5, 0, 0, 0, 0, 0,
-     7, 10, 12, 9, 8, 3, 1, 5, 0, 0, 0, 0, 0,
-     3, 9, 8, 5, 10, 12, 3, 10, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 1, 2, 5, 0, 0, 0, 0,
-     6, 3, 12, 10, 5, 4, 8, 0, 0, 0, 0, 0, 0,
-     4, 3, 10, 12, 3, 8, 10, 3, 4, 8, 10, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 5, 4, 0, 0, 0, 0, 0, 0,
-     6, 9, 4, 11, 8, 5, 3, 0, 0, 0, 0, 0, 0,
-     2, 9, 8, 5, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 4, 1, 5, 0, 0, 0, 0, 0,
-     5, 1, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0,
-     3, 3, 5, 1, 11, 5, 3, 11, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 4, 2, 0, 0, 0, 0, 0,
-     9, 8, 9, 4, 11, 10, 2, 5, 3, 1, 0, 0, 0,
-     3, 10, 2, 1, 4, 3, 11, 9, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 1, 2, 5, 0, 0, 0, 0,
-     6, 3, 11, 10, 5, 2, 8, 0, 0, 0, 0, 0, 0,
-     4, 10, 2, 3, 5, 10, 3, 11, 5, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 4, 5, 0, 0, 0, 0, 0,
-     7, 4, 2, 8, 5, 12, 11, 9, 0, 0, 0, 0, 0,
-     3, 8, 5, 9, 4, 2, 12, 4, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 4, 1, 5, 0, 0, 0, 0,
-     6, 2, 12, 8, 11, 1, 5, 0, 0, 0, 0, 0, 0,
-     4, 12, 11, 2, 11, 5, 2, 5, 1, 2, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 5, 2, 3, 0, 0, 0, 0,
-     8, 4, 11, 8, 9, 12, 10, 1, 5, 0, 0, 0, 0,
-     4, 11, 10, 12, 11, 1, 10, 4, 1, 11, 8, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 3, 2, 5, 4, 1, 0, 0, 0,
-     5, 12, 10, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0,
-     3, 11, 10, 12, 11, 5, 10, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 6, 0, 0, 0, 0, 0, 0, 0,
-     3, 5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 5, 6, 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,
-     }
-    ,
-    {2, 6, 1, 0, 0, 0, 0, 0, 0,
-     6, 10, 1, 9, 5, 6, 4, 0, 0, 0, 0, 0, 0,
-     2, 10, 5, 6, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 2, 6, 0, 0, 0, 0, 0, 0,
-     4, 6, 2, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 6, 1, 5, 6, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 2, 6, 0, 0, 0, 0, 0,
-     5, 2, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0,
-     3, 4, 6, 2, 9, 6, 4, 9, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 3, 6, 0, 0, 0, 0, 0, 0,
-     6, 2, 10, 6, 12, 3, 5, 0, 0, 0, 0, 0, 0,
-     2, 2, 12, 3, 6, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 6, 1, 3, 0, 0, 0, 0, 0,
-     9, 5, 10, 1, 9, 12, 3, 6, 4, 2, 0, 0, 0,
-     3, 12, 3, 2, 1, 4, 9, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 6, 2, 3, 0, 0, 0, 0, 0,
-     5, 1, 5, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0,
-     3, 5, 3, 1, 6, 3, 5, 6, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 2, 3, 6, 0, 0, 0, 0,
-     6, 4, 9, 12, 6, 3, 5, 0, 0, 0, 0, 0, 0,
-     4, 12, 3, 4, 6, 12, 4, 9, 6, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 4, 6, 0, 0, 0, 0, 0, 0,
-     6, 3, 11, 10, 5, 4, 6, 0, 0, 0, 0, 0, 0,
-     2, 3, 11, 4, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 4, 1, 6, 0, 0, 0, 0, 0,
-     7, 1, 3, 5, 6, 11, 9, 10, 0, 0, 0, 0, 0,
-     3, 5, 6, 10, 1, 3, 11, 1, 11, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 6, 2, 4, 0, 0, 0, 0, 0,
-     7, 1, 5, 3, 11, 6, 2, 4, 0, 0, 0, 0, 0,
-     3, 3, 11, 4, 1, 5, 6, 1, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 1, 2, 6, 0, 0, 0, 0,
-     6, 3, 11, 5, 9, 2, 6, 0, 0, 0, 0, 0, 0,
-     4, 11, 9, 3, 9, 6, 3, 6, 2, 3, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 4, 3, 6, 0, 0, 0, 0, 0,
-     7, 12, 11, 10, 5, 4, 2, 6, 0, 0, 0, 0, 0,
-     3, 10, 5, 6, 12, 11, 4, 12, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 6, 3, 4, 0, 0, 0, 0,
-     8, 1, 9, 5, 10, 11, 12, 2, 6, 0, 0, 0, 0,
-     4, 9, 12, 11, 9, 2, 12, 1, 2, 9, 5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 2, 3, 6, 0, 0, 0, 0,
-     6, 4, 11, 12, 6, 1, 5, 0, 0, 0, 0, 0, 0,
-     4, 4, 12, 11, 4, 5, 12, 4, 1, 5, 12, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 3, 6, 1, 2, 0, 0, 0,
-     5, 11, 12, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0,
-     3, 9, 12, 11, 9, 6, 12, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 5, 6, 0, 0, 0, 0, 0, 0,
-     4, 10, 9, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 10, 8, 6, 10, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 6, 5, 1, 0, 0, 0, 0, 0,
-     5, 8, 6, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0,
-     3, 6, 4, 8, 10, 4, 6, 10, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 2, 6, 5, 0, 0, 0, 0, 0,
-     5, 6, 2, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0,
-     3, 2, 8, 6, 1, 8, 2, 1, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 2, 5, 6, 0, 0, 0, 0,
-     4, 2, 4, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 4, 8, 6, 4, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 6, 3, 0, 0, 0, 0, 0,
-     7, 10, 9, 12, 3, 8, 6, 2, 0, 0, 0, 0, 0,
-     3, 12, 3, 2, 10, 9, 8, 10, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 6, 3, 1, 5, 0, 0, 0, 0,
-     8, 10, 6, 12, 2, 8, 4, 1, 3, 0, 0, 0, 0,
-     4, 6, 4, 8, 6, 1, 4, 10, 1, 6, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 6, 2, 3, 0, 0, 0, 0,
-     6, 9, 8, 12, 6, 1, 3, 0, 0, 0, 0, 0, 0,
-     4, 8, 6, 9, 6, 3, 9, 3, 1, 9, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 1, 3, 6, 2, 0, 0, 0,
-     5, 8, 4, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0,
-     3, 6, 4, 8, 6, 3, 4, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 6, 5, 4, 0, 0, 0, 0, 0,
-     7, 8, 6, 4, 3, 10, 9, 11, 0, 0, 0, 0, 0,
-     3, 4, 3, 11, 8, 6, 10, 8, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 6, 1, 5, 4, 0, 0, 0, 0,
-     6, 10, 6, 8, 11, 1, 3, 0, 0, 0, 0, 0, 0,
-     4, 10, 8, 6, 10, 3, 8, 10, 1, 3, 8, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 4, 5, 6, 0, 0, 0, 0,
-     8, 1, 2, 3, 4, 6, 8, 9, 11, 0, 0, 0, 0,
-     4, 2, 8, 6, 2, 9, 8, 1, 9, 2, 3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 6, 5, 4, 2, 1, 0, 0, 0,
-     5, 6, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0,
-     3, 2, 8, 6, 2, 11, 8, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 4, 6, 5, 0, 0, 0, 0,
-     8, 12, 11, 10, 9, 2, 6, 4, 8, 0, 0, 0, 0,
-     4, 12, 11, 2, 11, 4, 2, 10, 8, 6, 10, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 6, 5, 4, 3, 1, 0, 0, 0,
-     7, 6, 8, 2, 1, 11, 12, 10, 0, 0, 0, 0, 0,
-     5, 1, 2, 10, 8, 6, 11, 11, 6, 12, 12, 6, 2, 2, 6, 10, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 3, 6, 5, 2, 0, 0, 0,
-     7, 11, 12, 9, 1, 6, 8, 4, 0, 0, 0, 0, 0,
-     5, 1, 9, 4, 12, 11, 6, 6, 11, 8, 8, 11, 9, 9, 11, 4, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 6, 5, 4, 3, 2, 1, 0, 0,
-     4, 6, 8, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 11, 6, 12, 8, 6, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 7, 0, 0, 0, 0, 0, 0, 0,
-     3, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 1, 7, 0, 0, 0, 0, 0, 0,
-     6, 1, 4, 6, 7, 9, 12, 0, 0, 0, 0, 0, 0,
-     2, 1, 4, 9, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 2, 7, 0, 0, 0, 0, 0, 0,
-     6, 10, 6, 12, 2, 1, 7, 0, 0, 0, 0, 0, 0,
-     2, 10, 2, 1, 12, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 2, 7, 0, 0, 0, 0, 0,
-     7, 2, 4, 6, 7, 9, 10, 12, 0, 0, 0, 0, 0,
-     3, 6, 7, 12, 2, 4, 9, 2, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 7, 3, 0, 0, 0, 0, 0, 0,
-     4, 2, 6, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 2, 7, 3, 2, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 3, 1, 0, 0, 0, 0, 0,
-     7, 2, 6, 4, 9, 7, 3, 1, 0, 0, 0, 0, 0,
-     3, 4, 9, 1, 2, 6, 7, 2, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 2, 3, 7, 0, 0, 0, 0, 0,
-     5, 3, 1, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0,
-     3, 1, 7, 3, 10, 7, 1, 10, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 2, 3, 7, 0, 0, 0, 0,
-     6, 4, 9, 6, 10, 3, 7, 0, 0, 0, 0, 0, 0,
-     4, 9, 10, 4, 10, 7, 4, 7, 3, 4, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 4, 7, 0, 0, 0, 0, 0, 0,
-     6, 3, 12, 7, 11, 4, 6, 0, 0, 0, 0, 0, 0,
-     2, 3, 11, 4, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 4, 7, 0, 0, 0, 0, 0,
-     7, 11, 9, 12, 6, 1, 3, 7, 0, 0, 0, 0, 0,
-     3, 12, 6, 7, 11, 9, 1, 11, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 2, 4, 7, 0, 0, 0, 0, 0,
-     9, 1, 2, 3, 4, 6, 7, 10, 11, 12, 0, 0, 0,
-     3, 6, 7, 12, 3, 11, 4, 2, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 7, 4, 1, 0, 0, 0, 0,
-     8, 2, 10, 6, 12, 9, 11, 3, 7, 0, 0, 0, 0,
-     4, 10, 11, 9, 10, 3, 11, 2, 3, 10, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 3, 4, 0, 0, 0, 0, 0,
-     5, 2, 6, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0,
-     3, 6, 4, 2, 7, 4, 6, 7, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 7, 4, 3, 1, 0, 0, 0, 0,
-     6, 7, 6, 2, 1, 11, 9, 0, 0, 0, 0, 0, 0,
-     4, 7, 2, 6, 7, 9, 2, 7, 11, 9, 2, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 3, 7, 2, 0, 0, 0, 0,
-     6, 11, 4, 6, 10, 7, 1, 0, 0, 0, 0, 0, 0,
-     4, 6, 7, 11, 10, 6, 11, 4, 10, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 4, 7, 2, 3, 0, 0, 0,
-     5, 9, 11, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0,
-     3, 10, 11, 9, 10, 7, 11, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 7, 5, 0, 0, 0, 0, 0, 0,
-     6, 6, 5, 8, 7, 12, 9, 0, 0, 0, 0, 0, 0,
-     2, 6, 7, 12, 8, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 5, 7, 0, 0, 0, 0, 0,
-     7, 5, 1, 7, 12, 4, 8, 6, 0, 0, 0, 0, 0,
-     3, 7, 12, 6, 5, 1, 4, 5, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 5, 2, 0, 0, 0, 0, 0,
-     9, 7, 6, 5, 8, 2, 1, 12, 9, 10, 0, 0, 0,
-     3, 2, 1, 10, 5, 9, 8, 6, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 7, 2, 1, 0, 0, 0, 0,
-     8, 5, 8, 7, 6, 4, 2, 10, 12, 0, 0, 0, 0,
-     4, 8, 2, 4, 8, 10, 2, 5, 10, 8, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 7, 5, 0, 0, 0, 0, 0,
-     7, 7, 3, 5, 9, 2, 6, 8, 0, 0, 0, 0, 0,
-     3, 5, 9, 8, 7, 3, 2, 7, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 1, 7, 3, 0, 0, 0, 0,
-     8, 5, 1, 7, 3, 8, 6, 4, 2, 0, 0, 0, 0,
-     4, 5, 1, 8, 1, 4, 8, 7, 2, 6, 7, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 5, 7, 3, 0, 0, 0, 0,
-     8, 10, 1, 9, 5, 3, 7, 6, 8, 0, 0, 0, 0,
-     4, 1, 7, 3, 1, 6, 7, 10, 6, 1, 9, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 1, 3, 7, 2, 0, 0, 0,
-     7, 8, 4, 6, 10, 3, 7, 5, 0, 0, 0, 0, 0,
-     5, 10, 6, 5, 4, 8, 3, 3, 8, 7, 7, 8, 6, 6, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 4, 5, 7, 0, 0, 0, 0, 0,
-     9, 4, 11, 8, 9, 12, 6, 3, 5, 7, 0, 0, 0,
-     3, 12, 6, 7, 8, 5, 9, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 7, 5, 1, 0, 0, 0, 0,
-     8, 11, 3, 12, 7, 1, 5, 8, 6, 0, 0, 0, 0,
-     4, 3, 5, 1, 3, 8, 5, 11, 8, 3, 12, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 7, 2, 5, 0, 0, 0, 0,
-     12, 3, 12, 7, 11, 1, 10, 5, 9, 4, 2, 8, 6,
-     4, 3, 11, 4, 12, 6, 7, 1, 10, 2, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 7, 1, 2, 5, 0, 0, 0,
-     9, 3, 12, 7, 11, 10, 5, 2, 8, 6, 0, 0, 0,
-     10, 5, 10, 6, 8, 7, 11, 3, 12, 2, 12, 3, 11, 12, 11, 7, 7, 8, 5, 7, 5, 6,
-     12, 10, 2, 12, 6, 10, 12, 7, 6,
-     }
-    ,
-    {4, 7, 5, 4, 3, 0, 0, 0, 0,
-     8, 7, 6, 5, 8, 2, 4, 11, 9, 0, 0, 0, 0,
-     4, 6, 4, 2, 6, 11, 4, 7, 11, 6, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 7, 3, 1, 5, 4, 0, 0, 0,
-     7, 6, 2, 8, 11, 1, 5, 7, 0, 0, 0, 0, 0,
-     5, 11, 8, 7, 2, 6, 1, 1, 6, 5, 5, 6, 8, 8, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 5, 3, 7, 2, 0, 0, 0,
-     9, 11, 8, 9, 4, 6, 10, 7, 1, 5, 0, 0, 0,
-     10, 10, 6, 5, 1, 9, 4, 11, 8, 7, 8, 11, 4, 8, 4, 9, 9, 1, 10, 9, 10, 5,
-     8, 6, 7, 8, 5, 6, 8, 9, 5,
-     }
-    ,
-    {6, 7, 5, 4, 3, 2, 1, 0, 0,
-     6, 7, 6, 5, 8, 11, 10, 0, 0, 0, 0, 0, 0,
-     4, 8, 7, 11, 6, 5, 10, 6, 7, 8, 6, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 6, 7, 0, 0, 0, 0, 0, 0,
-     4, 12, 10, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 12, 5, 7, 12, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 6, 1, 0, 0, 0, 0, 0,
-     7, 5, 7, 1, 4, 12, 10, 9, 0, 0, 0, 0, 0,
-     3, 1, 4, 9, 5, 7, 12, 5, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 6, 2, 0, 0, 0, 0, 0,
-     5, 5, 7, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0,
-     3, 7, 1, 5, 12, 1, 7, 12, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 6, 2, 7, 0, 0, 0, 0,
-     6, 9, 4, 2, 12, 5, 7, 0, 0, 0, 0, 0, 0,
-     4, 9, 2, 4, 9, 7, 2, 9, 5, 7, 2, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 7, 6, 0, 0, 0, 0, 0,
-     5, 7, 3, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0,
-     3, 3, 5, 7, 2, 5, 3, 2, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 1, 6, 7, 0, 0, 0, 0,
-     8, 2, 3, 4, 1, 7, 5, 10, 9, 0, 0, 0, 0,
-     4, 3, 5, 7, 3, 10, 5, 2, 10, 3, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 3, 6, 7, 0, 0, 0, 0,
-     4, 3, 1, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 1, 5, 7, 1, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 7, 6, 1, 3, 2, 0, 0, 0,
-     5, 7, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0,
-     3, 3, 5, 7, 3, 9, 5, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 6, 7, 4, 0, 0, 0, 0, 0,
-     7, 12, 10, 11, 4, 5, 7, 3, 0, 0, 0, 0, 0,
-     3, 11, 4, 3, 12, 10, 5, 12, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 4, 6, 7, 0, 0, 0, 0,
-     8, 1, 3, 5, 7, 9, 10, 11, 12, 0, 0, 0, 0,
-     4, 1, 3, 9, 3, 11, 9, 5, 12, 10, 5, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 7, 4, 2, 6, 0, 0, 0, 0,
-     8, 12, 7, 11, 3, 5, 1, 2, 4, 0, 0, 0, 0,
-     4, 7, 1, 5, 7, 2, 1, 12, 2, 7, 11, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 7, 6, 1, 4, 2, 0, 0, 0,
-     7, 7, 5, 3, 2, 9, 11, 12, 0, 0, 0, 0, 0,
-     5, 2, 3, 12, 5, 7, 9, 9, 7, 11, 11, 7, 3, 3, 7, 12, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 3, 7, 6, 0, 0, 0, 0,
-     6, 11, 4, 10, 2, 7, 5, 0, 0, 0, 0, 0, 0,
-     4, 4, 2, 11, 2, 5, 11, 5, 7, 11, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 4, 7, 6, 3, 0, 0, 0,
-     7, 9, 11, 10, 2, 7, 5, 1, 0, 0, 0, 0, 0,
-     5, 2, 10, 1, 11, 9, 7, 7, 9, 5, 5, 9, 10, 10, 9, 1, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 6, 2, 4, 7, 3, 0, 0, 0,
-     5, 5, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0,
-     3, 7, 1, 5, 7, 4, 1, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 1, 4, 7, 6, 2, 3, 0, 0,
-     4, 9, 11, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 7, 9, 5, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 6, 7, 0, 0, 0, 0, 0,
-     5, 10, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0,
-     3, 9, 12, 10, 8, 12, 9, 8, 7, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 5, 6, 7, 0, 0, 0, 0,
-     6, 1, 4, 7, 8, 10, 12, 0, 0, 0, 0, 0, 0,
-     4, 4, 8, 1, 8, 12, 1, 12, 10, 1, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 6, 2, 7, 0, 0, 0, 0,
-     6, 9, 8, 2, 12, 1, 7, 0, 0, 0, 0, 0, 0,
-     4, 2, 1, 9, 12, 2, 9, 8, 12, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 2, 7, 5, 6, 0, 0, 0,
-     5, 4, 2, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0,
-     3, 8, 2, 4, 8, 12, 2, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 7, 6, 3, 0, 0, 0, 0,
-     6, 8, 9, 10, 2, 7, 3, 0, 0, 0, 0, 0, 0,
-     4, 8, 10, 9, 8, 3, 10, 8, 7, 3, 10, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 3, 7, 5, 1, 6, 0, 0, 0,
-     7, 3, 7, 1, 10, 8, 4, 2, 0, 0, 0, 0, 0,
-     5, 10, 1, 2, 7, 3, 8, 8, 3, 4, 4, 3, 1, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 3, 7, 5, 2, 6, 0, 0, 0,
-     5, 3, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0,
-     3, 1, 7, 3, 1, 8, 7, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 5, 1, 3, 7, 6, 2, 0, 0,
-     4, 8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 3, 8, 7, 4, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 4, 7, 6, 0, 0, 0, 0,
-     8, 8, 9, 4, 11, 10, 12, 7, 3, 0, 0, 0, 0,
-     4, 9, 12, 10, 9, 7, 12, 8, 7, 9, 4, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 1, 6, 7, 5, 0, 0, 0,
-     7, 3, 1, 7, 8, 10, 12, 11, 0, 0, 0, 0, 0,
-     5, 8, 7, 11, 1, 3, 10, 10, 3, 12, 12, 3, 7, 7, 3, 11, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 4, 6, 2, 7, 0, 0, 0,
-     9, 9, 4, 11, 8, 2, 12, 1, 7, 3, 0, 0, 0,
-     10, 12, 2, 3, 7, 11, 8, 9, 4, 1, 4, 9, 8, 4, 8, 11, 11, 7, 12, 11, 12, 3,
-     4, 2, 1, 4, 3, 2, 4, 11, 3,
-     }
-    ,
-    {6, 7, 4, 2, 6, 5, 1, 0, 0,
-     6, 12, 7, 11, 3, 2, 8, 0, 0, 0, 0, 0, 0,
-     4, 3, 12, 2, 7, 11, 8, 7, 12, 3, 7, 3, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 6, 3, 4, 7, 0, 0, 0,
-     7, 9, 10, 11, 7, 2, 4, 8, 0, 0, 0, 0, 0,
-     5, 7, 11, 8, 10, 9, 2, 2, 9, 4, 4, 9, 11, 11, 9, 8, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 7, 6, 5, 4, 3, 1, 0, 0,
-     6, 7, 8, 2, 1, 11, 10, 0, 0, 0, 0, 0, 0,
-     2, 8, 7, 11, 1, 2, 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,
-     }
-    ,
-    {6, 4, 5, 2, 3, 7, 6, 0, 0,
-     6, 4, 11, 8, 9, 1, 7, 0, 0, 0, 0, 0, 0,
-     4, 9, 4, 1, 11, 8, 7, 11, 4, 9, 11, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 7, 6, 5, 4, 3, 2, 1, 0,
-     3, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 8, 7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {1, 8, 0, 0, 0, 0, 0, 0, 0,
-     3, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 1, 8, 0, 0, 0, 0, 0, 0,
-     6, 4, 11, 8, 9, 1, 7, 0, 0, 0, 0, 0, 0,
-     2, 4, 9, 1, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 8, 2, 0, 0, 0, 0, 0, 0,
-     6, 7, 8, 2, 1, 11, 10, 0, 0, 0, 0, 0, 0,
-     2, 7, 8, 11, 2, 1, 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,
-     }
-    ,
-    {3, 2, 1, 8, 0, 0, 0, 0, 0,
-     7, 9, 10, 11, 7, 2, 4, 8, 0, 0, 0, 0, 0,
-     3, 11, 7, 8, 9, 10, 2, 9, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 3, 8, 0, 0, 0, 0, 0, 0,
-     6, 12, 7, 11, 3, 2, 8, 0, 0, 0, 0, 0, 0,
-     2, 12, 3, 2, 11, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 8, 3, 0, 0, 0, 0, 0,
-     9, 9, 4, 11, 8, 2, 12, 1, 7, 3, 0, 0, 0,
-     3, 2, 12, 3, 11, 7, 8, 4, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 2, 3, 8, 0, 0, 0, 0, 0,
-     7, 3, 1, 7, 8, 10, 12, 11, 0, 0, 0, 0, 0,
-     3, 7, 8, 11, 3, 1, 10, 3, 10, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 8, 1, 2, 0, 0, 0, 0,
-     8, 3, 12, 7, 11, 10, 9, 4, 8, 0, 0, 0, 0,
-     4, 12, 9, 10, 12, 4, 9, 3, 4, 12, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 4, 8, 0, 0, 0, 0, 0, 0,
-     4, 8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 8, 3, 7, 8, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 8, 4, 1, 0, 0, 0, 0, 0,
-     5, 3, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0,
-     3, 7, 1, 3, 8, 1, 7, 8, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 8, 4, 2, 0, 0, 0, 0, 0,
-     7, 3, 7, 1, 10, 8, 4, 2, 0, 0, 0, 0, 0,
-     3, 1, 10, 2, 3, 7, 8, 3, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 4, 1, 8, 0, 0, 0, 0,
-     6, 2, 10, 9, 8, 3, 7, 0, 0, 0, 0, 0, 0,
-     4, 2, 9, 10, 2, 7, 9, 2, 3, 7, 9, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 4, 8, 0, 0, 0, 0, 0,
-     5, 4, 2, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0,
-     3, 2, 8, 4, 12, 8, 2, 12, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 4, 3, 1, 0, 0, 0, 0,
-     6, 7, 8, 2, 1, 12, 9, 0, 0, 0, 0, 0, 0,
-     4, 2, 12, 7, 1, 2, 7, 8, 1, 7, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 4, 3, 2, 0, 0, 0, 0,
-     6, 7, 8, 1, 4, 12, 10, 0, 0, 0, 0, 0, 0,
-     4, 8, 4, 7, 4, 10, 7, 10, 12, 7, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 2, 1, 8, 3, 4, 0, 0, 0,
-     5, 10, 9, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0,
-     3, 12, 9, 10, 12, 8, 9, 7, 8, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 8, 5, 0, 0, 0, 0, 0, 0,
-     4, 9, 11, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 9, 7, 5, 9, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 1, 5, 8, 0, 0, 0, 0, 0,
-     5, 5, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0,
-     3, 1, 7, 5, 4, 7, 1, 4, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 8, 5, 2, 0, 0, 0, 0, 0,
-     7, 9, 11, 10, 2, 7, 5, 1, 0, 0, 0, 0, 0,
-     3, 10, 2, 1, 9, 11, 7, 9, 7, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 1, 5, 8, 0, 0, 0, 0,
-     6, 10, 2, 11, 4, 5, 7, 0, 0, 0, 0, 0, 0,
-     4, 2, 4, 10, 4, 7, 10, 7, 5, 10, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 8, 3, 0, 0, 0, 0, 0,
-     7, 7, 5, 3, 2, 9, 11, 12, 0, 0, 0, 0, 0,
-     3, 3, 2, 12, 7, 5, 9, 7, 9, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 3, 8, 5, 0, 0, 0, 0,
-     8, 4, 1, 2, 3, 5, 7, 11, 12, 0, 0, 0, 0,
-     4, 1, 7, 5, 1, 11, 7, 4, 11, 1, 2, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 5, 3, 2, 0, 0, 0, 0,
-     8, 7, 5, 3, 1, 11, 12, 9, 10, 0, 0, 0, 0,
-     4, 7, 5, 11, 5, 9, 11, 3, 10, 12, 3, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 3, 2, 5, 8, 1, 0, 0, 0,
-     7, 12, 10, 11, 4, 5, 7, 3, 0, 0, 0, 0, 0,
-     5, 4, 11, 3, 10, 12, 5, 5, 12, 7, 7, 12, 11, 11, 12, 3, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 5, 8, 4, 0, 0, 0, 0, 0,
-     5, 7, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0,
-     3, 5, 3, 7, 9, 3, 5, 9, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 8, 1, 4, 0, 0, 0, 0,
-     4, 7, 5, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 5, 1, 3, 5, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 2, 4, 8, 0, 0, 0, 0,
-     8, 9, 5, 10, 1, 7, 3, 4, 2, 0, 0, 0, 0,
-     4, 5, 3, 7, 5, 4, 3, 9, 4, 5, 10, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 4, 2, 5, 1, 0, 0, 0,
-     5, 7, 3, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0,
-     3, 5, 3, 7, 5, 2, 3, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 8, 4, 5, 0, 0, 0, 0,
-     6, 12, 2, 4, 9, 7, 5, 0, 0, 0, 0, 0, 0,
-     4, 12, 4, 2, 12, 5, 4, 12, 7, 5, 4, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 8, 3, 1, 4, 0, 0, 0,
-     5, 5, 7, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0,
-     3, 1, 7, 5, 1, 12, 7, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 8, 3, 2, 4, 0, 0, 0,
-     7, 5, 7, 1, 4, 12, 10, 9, 0, 0, 0, 0, 0,
-     5, 4, 1, 9, 7, 5, 12, 12, 5, 10, 10, 5, 1, 1, 5, 9, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 3, 2, 5, 8, 4, 1, 0, 0,
-     4, 12, 10, 5, 7, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 5, 12, 7, 10, 12, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 8, 6, 0, 0, 0, 0, 0, 0,
-     6, 7, 6, 5, 8, 11, 10, 0, 0, 0, 0, 0, 0,
-     2, 7, 8, 11, 5, 6, 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,
-     }
-    ,
-    {3, 8, 1, 6, 0, 0, 0, 0, 0,
-     9, 11, 8, 9, 4, 6, 10, 7, 1, 5, 0, 0, 0,
-     3, 6, 10, 5, 9, 1, 4, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 2, 6, 8, 0, 0, 0, 0, 0,
-     7, 6, 2, 8, 11, 1, 5, 7, 0, 0, 0, 0, 0,
-     3, 8, 11, 7, 6, 2, 1, 6, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 8, 6, 2, 0, 0, 0, 0,
-     8, 9, 4, 11, 8, 2, 6, 5, 7, 0, 0, 0, 0,
-     4, 4, 6, 2, 4, 5, 6, 9, 5, 4, 11, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 3, 8, 6, 0, 0, 0, 0, 0,
-     9, 3, 12, 7, 11, 10, 5, 2, 8, 6, 0, 0, 0,
-     3, 10, 5, 6, 7, 8, 11, 12, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 3, 6, 8, 0, 0, 0, 0,
-     12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-     4, 1, 4, 9, 2, 12, 3, 5, 6, 10, 7, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 6, 8, 3, 2, 0, 0, 0, 0,
-     8, 6, 5, 8, 7, 1, 3, 12, 11, 0, 0, 0, 0,
-     4, 5, 3, 1, 5, 12, 3, 6, 12, 5, 8, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 8, 2, 3, 6, 0, 0, 0,
-     9, 4, 11, 8, 9, 12, 6, 3, 5, 7, 0, 0, 0,
-     10, 6, 12, 7, 5, 8, 9, 4, 11, 3, 11, 4, 9, 11, 9, 8, 8, 5, 6, 8, 6, 7,
-     11, 12, 3, 11, 7, 12, 11, 8, 7,
-     }
-    ,
-    {3, 4, 8, 6, 0, 0, 0, 0, 0,
-     7, 8, 4, 6, 10, 3, 7, 5, 0, 0, 0, 0, 0,
-     3, 6, 10, 5, 8, 4, 3, 8, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 6, 1, 4, 0, 0, 0, 0,
-     8, 8, 7, 6, 5, 3, 1, 9, 10, 0, 0, 0, 0,
-     4, 7, 1, 3, 7, 9, 1, 8, 9, 7, 6, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 8, 2, 6, 0, 0, 0, 0,
-     8, 3, 7, 1, 5, 4, 2, 8, 6, 0, 0, 0, 0,
-     4, 3, 7, 4, 7, 8, 4, 1, 6, 2, 1, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 4, 2, 6, 1, 0, 0, 0,
-     7, 7, 3, 5, 9, 2, 6, 8, 0, 0, 0, 0, 0,
-     5, 9, 5, 8, 3, 7, 2, 2, 7, 6, 6, 7, 5, 5, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 3, 6, 8, 4, 0, 0, 0, 0,
-     8, 12, 2, 10, 6, 4, 8, 7, 5, 0, 0, 0, 0,
-     4, 2, 8, 4, 2, 7, 8, 12, 7, 2, 10, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 6, 4, 3, 1, 0, 0, 0,
-     9, 7, 6, 5, 8, 2, 1, 12, 9, 10, 0, 0, 0,
-     10, 1, 2, 10, 9, 5, 8, 7, 6, 12, 6, 7, 8, 6, 8, 5, 5, 9, 1, 5, 1, 10, 6,
-     2, 12, 6, 10, 2, 6, 5, 10,
-     }
-    ,
-    {5, 6, 2, 4, 8, 3, 0, 0, 0,
-     7, 5, 1, 7, 12, 4, 8, 6, 0, 0, 0, 0, 0,
-     5, 12, 7, 6, 1, 5, 4, 4, 5, 8, 8, 5, 7, 7, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 6, 8, 3, 2, 1, 4, 0, 0,
-     6, 6, 5, 8, 7, 12, 9, 0, 0, 0, 0, 0, 0,
-     4, 7, 6, 12, 5, 8, 9, 5, 6, 7, 5, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 8, 5, 6, 0, 0, 0, 0, 0,
-     5, 9, 11, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0,
-     3, 11, 10, 9, 7, 10, 11, 7, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 1, 5, 6, 8, 0, 0, 0, 0,
-     6, 1, 4, 6, 7, 10, 11, 0, 0, 0, 0, 0, 0,
-     4, 6, 10, 1, 7, 6, 1, 4, 7, 1, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 5, 6, 8, 0, 0, 0, 0,
-     6, 1, 2, 6, 7, 9, 11, 0, 0, 0, 0, 0, 0,
-     4, 1, 6, 2, 1, 11, 6, 1, 9, 11, 6, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 2, 6, 8, 1, 5, 0, 0, 0,
-     5, 2, 6, 11, 4, 7, 0, 0, 0, 0, 0, 0, 0,
-     3, 4, 6, 2, 4, 7, 6, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 3, 6, 5, 0, 0, 0, 0,
-     8, 7, 11, 3, 12, 9, 10, 6, 2, 0, 0, 0, 0,
-     4, 11, 10, 9, 11, 6, 10, 7, 6, 11, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 3, 5, 6, 8, 0, 0, 0,
-     9, 1, 2, 3, 4, 6, 7, 10, 11, 12, 0, 0, 0,
-     10, 7, 6, 12, 11, 3, 4, 1, 2, 10, 2, 1, 4, 2, 4, 3, 3, 11, 7, 3, 7, 12,
-     2, 6, 10, 2, 12, 6, 2, 3, 12,
-     }
-    ,
-    {5, 8, 5, 2, 3, 6, 0, 0, 0,
-     7, 11, 9, 12, 6, 1, 3, 7, 0, 0, 0, 0, 0,
-     5, 6, 12, 7, 9, 11, 1, 1, 11, 3, 3, 11, 12, 12, 11, 7, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 3, 8, 1, 2, 6, 5, 0, 0,
-     6, 3, 12, 7, 11, 4, 6, 0, 0, 0, 0, 0, 0,
-     4, 11, 3, 4, 12, 7, 6, 12, 3, 11, 12, 11, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 6, 5, 8, 4, 0, 0, 0, 0,
-     6, 6, 10, 4, 9, 7, 3, 0, 0, 0, 0, 0, 0,
-     4, 10, 9, 6, 9, 3, 6, 3, 7, 6, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 1, 6, 8, 5, 0, 0, 0,
-     5, 3, 1, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0,
-     3, 7, 1, 3, 7, 10, 1, 6, 10, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 2, 6, 8, 4, 5, 0, 0, 0,
-     7, 2, 6, 4, 9, 7, 3, 1, 0, 0, 0, 0, 0,
-     5, 9, 4, 1, 6, 2, 7, 7, 2, 3, 3, 2, 4, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 2, 6, 8, 4, 1, 5, 0, 0,
-     4, 2, 6, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 7, 2, 3, 6, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 3, 4, 5, 6, 8, 0, 0, 0,
-     7, 2, 4, 6, 7, 9, 10, 12, 0, 0, 0, 0, 0,
-     5, 7, 6, 12, 4, 2, 9, 9, 2, 10, 10, 2, 6, 6, 2, 12, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 6, 3, 1, 5, 8, 4, 0, 0,
-     6, 10, 6, 12, 2, 1, 7, 0, 0, 0, 0, 0, 0,
-     4, 2, 10, 1, 6, 12, 7, 6, 10, 2, 6, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 2, 3, 4, 5, 6, 8, 0, 0,
-     6, 1, 4, 6, 7, 9, 12, 0, 0, 0, 0, 0, 0,
-     2, 4, 1, 9, 7, 6, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 8, 4, 3, 6, 5, 1, 2, 0,
-     3, 7, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 12, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {2, 8, 7, 0, 0, 0, 0, 0, 0,
-     4, 6, 8, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 6, 11, 12, 6, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 8, 1, 0, 0, 0, 0, 0,
-     7, 11, 12, 9, 1, 6, 8, 4, 0, 0, 0, 0, 0,
-     3, 9, 1, 4, 11, 12, 6, 11, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 8, 7, 2, 0, 0, 0, 0, 0,
-     7, 6, 8, 2, 1, 11, 12, 10, 0, 0, 0, 0, 0,
-     3, 2, 1, 10, 6, 8, 11, 6, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 2, 1, 7, 8, 0, 0, 0, 0,
-     8, 2, 4, 6, 8, 10, 12, 9, 11, 0, 0, 0, 0,
-     4, 2, 4, 10, 4, 9, 10, 6, 11, 12, 6, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 8, 7, 3, 0, 0, 0, 0, 0,
-     5, 6, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0,
-     3, 8, 2, 6, 11, 2, 8, 11, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 1, 3, 7, 0, 0, 0, 0,
-     8, 11, 8, 9, 4, 6, 2, 3, 1, 0, 0, 0, 0,
-     4, 8, 2, 6, 8, 3, 2, 11, 3, 8, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 3, 7, 2, 0, 0, 0, 0,
-     6, 11, 8, 6, 10, 3, 1, 0, 0, 0, 0, 0, 0,
-     4, 11, 6, 8, 11, 1, 6, 11, 3, 1, 6, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 7, 2, 1, 3, 0, 0, 0,
-     7, 8, 6, 4, 3, 10, 9, 11, 0, 0, 0, 0, 0,
-     5, 3, 4, 11, 6, 8, 10, 10, 8, 9, 9, 8, 4, 4, 8, 11, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 4, 8, 7, 0, 0, 0, 0, 0,
-     5, 8, 4, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0,
-     3, 4, 6, 8, 3, 6, 4, 3, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 7, 8, 4, 1, 0, 0, 0, 0,
-     6, 12, 6, 9, 8, 3, 1, 0, 0, 0, 0, 0, 0,
-     4, 6, 8, 12, 8, 1, 12, 1, 3, 12, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 4, 2, 7, 8, 0, 0, 0, 0,
-     8, 3, 4, 1, 2, 8, 6, 12, 10, 0, 0, 0, 0,
-     4, 4, 6, 8, 4, 12, 6, 3, 12, 4, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 2, 1, 8, 7, 4, 0, 0, 0,
-     7, 10, 9, 12, 3, 8, 6, 2, 0, 0, 0, 0, 0,
-     5, 3, 12, 2, 9, 10, 8, 8, 10, 6, 6, 10, 12, 12, 10, 2, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 7, 4, 3, 0, 0, 0, 0,
-     4, 6, 8, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 8, 4, 2, 8, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 7, 3, 1, 8, 4, 0, 0, 0,
-     5, 6, 2, 9, 8, 1, 0, 0, 0, 0, 0, 0, 0,
-     3, 8, 2, 6, 8, 1, 2, 9, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 7, 2, 4, 3, 0, 0, 0,
-     5, 8, 6, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0,
-     3, 4, 6, 8, 4, 10, 6, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 2, 1, 8, 7, 3, 4, 0, 0,
-     4, 10, 9, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 8, 10, 6, 9, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {3, 7, 8, 5, 0, 0, 0, 0, 0,
-     5, 11, 12, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0,
-     3, 12, 9, 11, 6, 9, 12, 6, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 7, 5, 8, 1, 0, 0, 0, 0,
-     6, 6, 12, 11, 4, 5, 1, 0, 0, 0, 0, 0, 0,
-     4, 6, 11, 12, 6, 1, 11, 6, 5, 1, 11, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 7, 2, 5, 8, 0, 0, 0, 0,
-     8, 6, 12, 2, 10, 11, 9, 5, 1, 0, 0, 0, 0,
-     4, 12, 9, 11, 12, 5, 9, 6, 5, 12, 2, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 7, 8, 1, 2, 5, 0, 0, 0,
-     7, 12, 11, 10, 5, 4, 2, 6, 0, 0, 0, 0, 0,
-     5, 5, 10, 6, 11, 12, 4, 4, 12, 2, 2, 12, 10, 10, 12, 6, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 8, 7, 3, 0, 0, 0, 0,
-     6, 5, 9, 3, 11, 6, 2, 0, 0, 0, 0, 0, 0,
-     4, 9, 11, 5, 11, 2, 5, 2, 6, 5, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 5, 7, 3, 8, 0, 0, 0,
-     7, 1, 5, 3, 11, 6, 2, 4, 0, 0, 0, 0, 0,
-     5, 11, 3, 4, 5, 1, 6, 6, 1, 2, 2, 1, 3, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 2, 3, 8, 5, 7, 0, 0, 0,
-     7, 1, 3, 5, 6, 11, 9, 10, 0, 0, 0, 0, 0,
-     5, 6, 5, 10, 3, 1, 11, 11, 1, 9, 9, 1, 5, 5, 1, 10, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 3, 7, 8, 1, 2, 5, 0, 0,
-     6, 3, 11, 10, 5, 4, 6, 0, 0, 0, 0, 0, 0,
-     2, 11, 3, 4, 5, 10, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 8, 7, 4, 0, 0, 0, 0,
-     6, 5, 9, 12, 3, 6, 4, 0, 0, 0, 0, 0, 0,
-     4, 12, 6, 5, 3, 12, 5, 9, 3, 5, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 5, 7, 4, 8, 0, 0, 0,
-     5, 1, 5, 12, 3, 6, 0, 0, 0, 0, 0, 0, 0,
-     3, 3, 5, 1, 3, 6, 5, 12, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 2, 8, 7, 4, 0, 0, 0,
-     9, 5, 10, 1, 9, 12, 3, 6, 4, 2, 0, 0, 0,
-     10, 3, 12, 2, 4, 1, 9, 5, 10, 6, 10, 5, 9, 10, 9, 1, 1, 4, 3, 1, 3, 2,
-     10, 12, 6, 10, 2, 12, 10, 1, 2,
-     }
-    ,
-    {6, 2, 7, 4, 1, 5, 8, 0, 0,
-     6, 2, 10, 6, 12, 3, 5, 0, 0, 0, 0, 0, 0,
-     4, 12, 2, 3, 10, 6, 5, 10, 2, 12, 10, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 3, 4, 5, 7, 8, 0, 0, 0,
-     5, 2, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0,
-     3, 6, 4, 2, 6, 9, 4, 5, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 7, 3, 1, 5, 8, 4, 0, 0,
-     4, 6, 2, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 1, 6, 5, 2, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 2, 5, 7, 3, 4, 8, 0, 0,
-     6, 10, 1, 9, 5, 6, 4, 0, 0, 0, 0, 0, 0,
-     4, 5, 10, 6, 1, 9, 4, 1, 10, 5, 1, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 5, 8, 7, 2, 1, 4, 3, 0,
-     3, 5, 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 6, 5, 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,
-     }
-    ,
-    {3, 6, 7, 8, 0, 0, 0, 0, 0,
-     5, 12, 10, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0,
-     3, 10, 11, 12, 5, 11, 10, 5, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 6, 1, 8, 7, 0, 0, 0, 0,
-     8, 5, 10, 1, 9, 12, 11, 8, 4, 0, 0, 0, 0,
-     4, 10, 11, 12, 10, 8, 11, 5, 8, 10, 1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 7, 6, 2, 0, 0, 0, 0,
-     6, 8, 11, 2, 12, 5, 1, 0, 0, 0, 0, 0, 0,
-     4, 11, 12, 8, 12, 1, 8, 1, 5, 8, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 1, 2, 7, 8, 6, 0, 0, 0,
-     7, 4, 2, 8, 5, 12, 11, 9, 0, 0, 0, 0, 0,
-     5, 5, 8, 9, 2, 4, 12, 12, 4, 11, 11, 4, 8, 8, 4, 9, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 8, 7, 6, 3, 0, 0, 0, 0,
-     6, 8, 11, 10, 2, 5, 3, 0, 0, 0, 0, 0, 0,
-     4, 10, 5, 8, 2, 10, 8, 11, 2, 8, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 1, 7, 6, 3, 0, 0, 0,
-     9, 8, 9, 4, 11, 10, 2, 5, 3, 1, 0, 0, 0,
-     10, 2, 10, 1, 3, 4, 11, 8, 9, 5, 9, 8, 11, 9, 11, 4, 4, 3, 2, 4, 2, 1, 9,
-     10, 5, 9, 1, 10, 9, 4, 1,
-     }
-    ,
-    {5, 2, 3, 8, 6, 7, 0, 0, 0,
-     5, 1, 3, 8, 5, 11, 0, 0, 0, 0, 0, 0, 0,
-     3, 5, 3, 1, 5, 11, 3, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 1, 8, 6, 2, 3, 7, 0, 0,
-     6, 9, 4, 11, 8, 5, 3, 0, 0, 0, 0, 0, 0,
-     4, 8, 9, 5, 4, 11, 3, 4, 9, 8, 4, 8, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 6, 8, 7, 4, 0, 0, 0, 0,
-     6, 5, 10, 12, 3, 8, 4, 0, 0, 0, 0, 0, 0,
-     4, 5, 12, 10, 5, 4, 12, 5, 8, 4, 12, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 6, 7, 4, 1, 8, 0, 0, 0,
-     7, 10, 12, 9, 8, 3, 1, 5, 0, 0, 0, 0, 0,
-     5, 8, 9, 5, 12, 10, 3, 3, 10, 1, 1, 10, 9, 9, 10, 5, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 8, 6, 2, 7, 0, 0, 0,
-     7, 4, 8, 2, 12, 5, 1, 3, 0, 0, 0, 0, 0,
-     5, 12, 2, 3, 8, 4, 5, 5, 4, 1, 1, 4, 2, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 6, 2, 1, 8, 7, 4, 0, 0,
-     6, 5, 9, 12, 3, 8, 2, 0, 0, 0, 0, 0, 0,
-     2, 9, 5, 8, 3, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 4, 8, 6, 3, 7, 0, 0, 0,
-     5, 4, 8, 10, 2, 5, 0, 0, 0, 0, 0, 0, 0,
-     3, 2, 8, 4, 2, 5, 8, 10, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 6, 1, 8, 7, 3, 4, 0, 0,
-     6, 5, 10, 1, 9, 8, 2, 0, 0, 0, 0, 0, 0,
-     4, 9, 5, 8, 10, 1, 2, 10, 5, 9, 10, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 4, 8, 6, 2, 3, 7, 0, 0,
-     4, 4, 8, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 5, 4, 1, 8, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 6, 2, 1, 8, 7, 3, 4, 0,
-     3, 5, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 9, 5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {4, 5, 6, 8, 7, 0, 0, 0, 0,
-     4, 10, 9, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 9, 11, 12, 9, 12, 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,
-     }
-    ,
-    {5, 7, 8, 1, 6, 5, 0, 0, 0,
-     5, 12, 11, 1, 10, 4, 0, 0, 0, 0, 0, 0, 0,
-     3, 10, 11, 12, 10, 4, 11, 1, 4, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 8, 5, 2, 7, 6, 0, 0, 0,
-     5, 11, 9, 2, 12, 1, 0, 0, 0, 0, 0, 0, 0,
-     3, 12, 9, 11, 12, 1, 9, 2, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 7, 8, 1, 2, 6, 5, 0, 0,
-     4, 12, 11, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 4, 12, 2, 11, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 5, 6, 3, 8, 7, 0, 0, 0,
-     5, 9, 10, 3, 11, 2, 0, 0, 0, 0, 0, 0, 0,
-     3, 11, 10, 9, 11, 2, 10, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 3, 1, 6, 7, 8, 5, 0, 0,
-     6, 2, 3, 4, 1, 10, 11, 0, 0, 0, 0, 0, 0,
-     4, 1, 2, 10, 3, 4, 11, 3, 2, 1, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 8, 5, 2, 3, 7, 6, 0, 0,
-     4, 11, 9, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 1, 11, 3, 9, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 3, 7, 8, 1, 2, 6, 5, 0,
-     3, 3, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 11, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {5, 6, 7, 4, 5, 8, 0, 0, 0,
-     5, 10, 12, 4, 9, 3, 0, 0, 0, 0, 0, 0, 0,
-     3, 9, 12, 10, 9, 3, 12, 4, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 6, 7, 4, 1, 5, 8, 0, 0,
-     4, 10, 12, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 3, 10, 1, 12, 10, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 2, 4, 5, 6, 7, 8, 0, 0,
-     6, 1, 2, 3, 4, 9, 12, 0, 0, 0, 0, 0, 0,
-     4, 4, 1, 9, 2, 3, 12, 2, 1, 4, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 4, 1, 2, 7, 8, 5, 6, 0,
-     3, 3, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 2, 3, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {6, 3, 4, 5, 6, 7, 8, 0, 0,
-     4, 2, 4, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-     2, 9, 2, 10, 4, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 1, 5, 6, 3, 4, 8, 7, 0,
-     3, 1, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 10, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {7, 2, 3, 4, 5, 6, 7, 8, 0,
-     3, 1, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     1, 4, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-    {0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0,
-     }
-    ,
-};
-#else
-extern CELL_ENTRY cell_table[256];
-#endif

Modified: grass/trunk/raster3d/r3.showdspf/kns_globals.h
===================================================================
--- grass/trunk/raster3d/r3.showdspf/kns_globals.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.showdspf/kns_globals.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,16 +1,10 @@
 #ifndef KNS_GLOBALS_DEFINED
 #define KNS_GLOBALS_DEFINED
 
-#ifdef MAIN
-#define DECLARATION
-#else
-#define DECLARATION extern
-#endif
+extern GLuint Material_1_Dlist;
+extern OGLMotifWindowData MainOGLWindow;
+extern OGLMotifWindowData ColormapWindow;
+extern GLuint MainDlist;
+extern XtAppContext App_context;
 
-DECLARATION GLuint Material_1_Dlist;
-DECLARATION OGLMotifWindowData MainOGLWindow;
-DECLARATION OGLMotifWindowData ColormapWindow;
-DECLARATION GLuint MainDlist;
-DECLARATION XtAppContext App_context;
-
 #endif

Modified: grass/trunk/raster3d/r3.showdspf/main_ogl.c
===================================================================
--- grass/trunk/raster3d/r3.showdspf/main_ogl.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.showdspf/main_ogl.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -21,7 +21,6 @@
 
 #define TOGGLE(x) ((x) = (x) ? 0 : 1)
 
-#define MAIN
 #include <Xm/Xm.h>
 #include <Xm/Form.h>
 
@@ -54,6 +53,18 @@
 #define WAIT_ANY ((pid_t) -1)
 #endif
 
+GLuint Material_1_Dlist;
+OGLMotifWindowData MainOGLWindow;
+OGLMotifWindowData ColormapWindow;
+GLuint MainDlist;
+XtAppContext App_context;
+
+file_info Headfax;	/* contains info about data itself */
+file_info G3header;	/* contains info about data itself */
+int G_sign;
+int X_sign;
+long D_offset;		/*offset to data in grid3 file */
+
 void set_threshold_button(int i);
 char *check_get_any_dspname();
 void do__bbox(struct dspec *D_spec);

Modified: grass/trunk/raster3d/r3.showdspf/togif.c
===================================================================
--- grass/trunk/raster3d/r3.showdspf/togif.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.showdspf/togif.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,8 +15,9 @@
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
+#include <stdlib.h>
+#include <grass/gis.h>
 #include "togif.h"
-#include <stdlib.h>
 #define GIFGAMMA	(1.5)	/* smaller makes output image darker */
 #define MAXCOLORS 256
 #define CBITS    12

Modified: grass/trunk/raster3d/r3.showdspf/vizual.h
===================================================================
--- grass/trunk/raster3d/r3.showdspf/vizual.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.showdspf/vizual.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -8,14 +8,14 @@
 #define INSIDE  0
 #define OUTSIDE 1
 
-GLOBAL file_info Headfax;	/* contains info about data itself */
+extern file_info Headfax;	/* contains info about data itself */
 
-GLOBAL file_info G3header;	/* contains info about data itself */
+extern file_info G3header;	/* contains info about data itself */
 
-GLOBAL int G_sign;
-GLOBAL int X_sign;
+extern int G_sign;
+extern int X_sign;
 
-GLOBAL long D_offset;		/*offset to data in grid3 file */
+extern long D_offset;		/*offset to data in grid3 file */
 
 struct poly_info
 {

Modified: grass/trunk/raster3d/r3.showdspf/vizual2.h
===================================================================
--- grass/trunk/raster3d/r3.showdspf/vizual2.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/raster3d/r3.showdspf/vizual2.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -80,10 +80,5 @@
 } CELL_ENTRY;			/* for writing out in condensed format */
 
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern CELL_ENTRY cell_table[256];
 
-#include "cell_table.h"

Modified: grass/trunk/vector/v.build.polylines/global.h
===================================================================
--- grass/trunk/vector/v.build.polylines/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.build.polylines/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,13 +1,8 @@
 #ifndef GLOBAL_VARSH
 #define GLOBAL_VARSH
 
-#ifndef MAIN
-#define WORLD extern
-#else
-#define WORLD
-#endif
+extern int gCopy_atts;
+extern int gAsciiout;
+extern char gAscii_type;
 
-WORLD int gCopy_atts;
-WORLD int gAsciiout;
-WORLD char gAscii_type;
 #endif

Modified: grass/trunk/vector/v.build.polylines/main.c
===================================================================
--- grass/trunk/vector/v.build.polylines/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.build.polylines/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -68,7 +68,6 @@
    1) Portable
 
    ********************************************************************** */
-#define MAIN
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -78,6 +77,10 @@
 #include <grass/glocale.h>
 #include "walk.h"
 
+int gCopy_atts;
+int gAsciiout;
+char gAscii_type;
+
 int main(int argc, char **argv)
 {
     int line;

Modified: grass/trunk/vector/v.digit/global.h
===================================================================
--- grass/trunk/vector/v.digit/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.digit/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -2,12 +2,6 @@
 #include <tk.h>
 #include <grass/Vect.h>
 
-#ifdef MAIN
-#define Global
-#else
-#define Global extern
-#endif
-
 /*      tool in c:         name in Tk */
 typedef enum
 {
@@ -117,59 +111,38 @@
 #define VAR_LINEWIDTH   11
 #define VARN_LINEWIDTH   "linewidth"	/* Width for lines and boundaries */
 
-#ifdef MAIN
-VAR Variable[] = {
-    {VAR_CAT, VARN_CAT, VART_INT, 0, 0, NULL},
-    {VAR_FIELD, VARN_FIELD, VART_INT, 0, 0, NULL},
-    {VAR_CAT_MODE, VARN_CAT_MODE, VART_INT, 0, 0, NULL},
-    {VAR_INSERT, VARN_INSERT, VART_INT, 0, 0, NULL},
-    {VAR_MESSAGE, VARN_MESSAGE, VART_CHAR, 0, 0, NULL},
-    {VAR_SNAP, VARN_SNAP, VART_INT, 0, 0, NULL},
-    {VAR_SNAP_MODE, VARN_SNAP_MODE, VART_INT, 0, 0, NULL},
-    {VAR_SNAP_SCREEN, VARN_SNAP_SCREEN, VART_INT, 0, 0, NULL},
-    {VAR_SNAP_MAP, VARN_SNAP_MAP, VART_DOUBLE, 0, 0, NULL},
-    {VAR_ZOOM_REGION, VARN_ZOOM_REGION, VART_CHAR, 0, 0, NULL},
-    {VAR_ANSWER, VARN_ANSWER, VART_INT, 0, 0, NULL},
-    {VAR_LINEWIDTH, VARN_LINEWIDTH, VART_INT, 2, 0, NULL},
-    {0, NULL, 0, 0, 0, NULL}
-};
-#else
 extern VAR Variable[];
-#endif
 
 /* Category and field set for current line to be written */
 #define CAT_MODE_NO   0		/* No category */
 #define CAT_MODE_MAN  1		/* Manual imput */
 #define CAT_MODE_NEXT 2		/* Next not yet used category of given field */
 #define CAT_MODE_COUNT 3	/* Count of modes */
-#ifdef MAIN
-char *CatModeLab[] = { "No category", "Manual entry", "Next not used" };
-#else
+
 extern char *CatModeLab[];
-#endif
 
 /* Maximum value for field */
-Global int (*MaxFieldCat)[2];
-Global int nMaxFieldCat, aMaxFieldCat;
+extern int (*MaxFieldCat)[2];
+extern int nMaxFieldCat, aMaxFieldCat;
 
-Global SYMB Symb[SYMB_COUNT];
+extern SYMB Symb[SYMB_COUNT];
 
-Global struct Map_info Map;
-Global struct Cell_head GRegion;	/* Current region (synchronized with GRASS WIND) */
-Global Tcl_Interp *Toolbox;
-Global int Tool_next;		/* Next tool to be run */
-Global double Xscale, Yscale;	/* Scale factors = size_in_map / size_on_screen */
+extern struct Map_info Map;
+extern struct Cell_head GRegion;	/* Current region (synchronized with GRASS WIND) */
+extern Tcl_Interp *Toolbox;
+extern int Tool_next;		/* Next tool to be run */
+extern double Xscale, Yscale;	/* Scale factors = size_in_map / size_on_screen */
 
-Global struct Cell_head window;
+extern struct Cell_head window;
 
-Global double Scale;		/* Map / xdriver */
+extern double Scale;		/* Map / xdriver */
 
 
 /* Display symbology for lines and nodes */
-Global int *LineSymb;		/* array of line symbology codes, starts from index 1 */
-Global int aLineSymb;		/* number of lines / allocated space (array size + 1) */
-Global int *NodeSymb;		/* array of nodes' symbology codes, start from index 1 */
-Global int aNodeSymb;		/* number of nodes / allocated space (array size + 1) */
+extern int *LineSymb;		/* array of line symbology codes, starts from index 1 */
+extern int aLineSymb;		/* number of lines / allocated space (array size + 1) */
+extern int *NodeSymb;		/* array of nodes' symbology codes, start from index 1 */
+extern int aNodeSymb;		/* number of nodes / allocated space (array size + 1) */
 
 /* Background commands */
 typedef struct
@@ -178,15 +151,9 @@
     int on;			/* 1 display, 0 do not display */
 } BGCMD;
 
-#ifdef MAIN
-BGCMD *Bgcmd = NULL;
-int nbgcmd = 0;
-int abgcmd = 0;
-#else
 extern BGCMD *Bgcmd;
 extern int nbgcmd;
 extern int abgcmd;
-#endif
 
 #define MOUSE_POINT	1
 #define MOUSE_LINE	2

Modified: grass/trunk/vector/v.digit/main.c
===================================================================
--- grass/trunk/vector/v.digit/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.digit/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -9,7 +9,6 @@
  *               for details.
  **************************************************************/
 
-#define MAIN
 #include <stdio.h>
 #include <stdlib.h>
 #include <tcl.h>
@@ -22,6 +21,50 @@
 #include "global.h"
 #include "proto.h"
 
+VAR Variable[] = {
+    {VAR_CAT, VARN_CAT, VART_INT, 0, 0, NULL},
+    {VAR_FIELD, VARN_FIELD, VART_INT, 0, 0, NULL},
+    {VAR_CAT_MODE, VARN_CAT_MODE, VART_INT, 0, 0, NULL},
+    {VAR_INSERT, VARN_INSERT, VART_INT, 0, 0, NULL},
+    {VAR_MESSAGE, VARN_MESSAGE, VART_CHAR, 0, 0, NULL},
+    {VAR_SNAP, VARN_SNAP, VART_INT, 0, 0, NULL},
+    {VAR_SNAP_MODE, VARN_SNAP_MODE, VART_INT, 0, 0, NULL},
+    {VAR_SNAP_SCREEN, VARN_SNAP_SCREEN, VART_INT, 0, 0, NULL},
+    {VAR_SNAP_MAP, VARN_SNAP_MAP, VART_DOUBLE, 0, 0, NULL},
+    {VAR_ZOOM_REGION, VARN_ZOOM_REGION, VART_CHAR, 0, 0, NULL},
+    {VAR_ANSWER, VARN_ANSWER, VART_INT, 0, 0, NULL},
+    {VAR_LINEWIDTH, VARN_LINEWIDTH, VART_INT, 2, 0, NULL},
+    {0, NULL, 0, 0, 0, NULL}
+};
+
+BGCMD *Bgcmd = NULL;
+int nbgcmd = 0;
+int abgcmd = 0;
+
+char *CatModeLab[] = { "No category", "Manual entry", "Next not used" };
+
+/* Maximum value for field */
+int (*MaxFieldCat)[2];
+int nMaxFieldCat, aMaxFieldCat;
+
+SYMB Symb[SYMB_COUNT];
+
+struct Map_info Map;
+struct Cell_head GRegion;	/* Current region (synchronized with GRASS WIND) */
+Tcl_Interp *Toolbox;
+int Tool_next;		/* Next tool to be run */
+double Xscale, Yscale;	/* Scale factors = size_in_map / size_on_screen */
+
+struct Cell_head window;
+
+double Scale;		/* Map / xdriver */
+
+/* Display symbology for lines and nodes */
+int *LineSymb;		/* array of line symbology codes, starts from index 1 */
+int aLineSymb;		/* number of lines / allocated space (array size + 1) */
+int *NodeSymb;		/* array of nodes' symbology codes, start from index 1 */
+int aNodeSymb;		/* number of nodes / allocated space (array size + 1) */
+
 int Tcl_AppInit(Tcl_Interp * interp)
 {
     int ret;

Modified: grass/trunk/vector/v.in.dwg/global.h
===================================================================
--- grass/trunk/vector/v.in.dwg/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.in.dwg/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -25,11 +25,6 @@
  * from your version.
  * 
  * **************************************************************/
-#ifdef MAIN
-#define Global
-#else
-#define Global extern
-#endif
 
 /* transformation, first level is 0 ( called from main ) and transformation 
  *  for this level is 0,0,0, 1,1,1, 0 so that no transformation is done on first level
@@ -41,24 +36,24 @@
     double rotang;
 } TRANS;
 
-Global int cat;
-Global int n_elements;		/* number of processed elements (only low level elements) */
-Global int n_skipped;		/* number of skipped low level elements (different layer name) */
-Global struct Map_info Map;
-Global dbDriver *driver;
-Global dbString sql;
-Global dbString str;
-Global struct line_pnts *Points;
-Global struct line_cats *Cats;
-Global PAD_LAY Layer;
-Global char *Txt;
-Global char *Block;
-Global struct field_info *Fi;
-Global AD_DB_HANDLE dwghandle;
-Global TRANS *Trans;		/* transformation */
-Global int atrans;		/* number of allocated levels */
-Global struct Option *layers_opt;
-Global struct Flag *invert_flag;
+extern int cat;
+extern int n_elements;		/* number of processed elements (only low level elements) */
+extern int n_skipped;		/* number of skipped low level elements (different layer name) */
+extern struct Map_info Map;
+extern dbDriver *driver;
+extern dbString sql;
+extern dbString str;
+extern struct line_pnts *Points;
+extern struct line_cats *Cats;
+extern PAD_LAY Layer;
+extern char *Txt;
+extern char *Block;
+extern struct field_info *Fi;
+extern AD_DB_HANDLE dwghandle;
+extern TRANS *Trans;		/* transformation */
+extern int atrans;		/* number of allocated levels */
+extern struct Option *layers_opt;
+extern struct Flag *invert_flag;
 
 void wrentity(PAD_ENT_HDR adenhd, PAD_ENT aden, int level, AD_VMADDR entlist,
 	      int circle_as_point);

Modified: grass/trunk/vector/v.in.dwg/main.c
===================================================================
--- grass/trunk/vector/v.in.dwg/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.in.dwg/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -28,8 +28,6 @@
 #define AD_VM_PC
 #define OD_GENERIC_READ
 
-#define MAIN
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -44,6 +42,25 @@
 #include "io/odio.h"
 #include "global.h"
 
+int cat;
+int n_elements;		/* number of processed elements (only low level elements) */
+int n_skipped;		/* number of skipped low level elements (different layer name) */
+struct Map_info Map;
+dbDriver *driver;
+dbString sql;
+dbString str;
+struct line_pnts *Points;
+struct line_cats *Cats;
+PAD_LAY Layer;
+char *Txt;
+char *Block;
+struct field_info *Fi;
+AD_DB_HANDLE dwghandle;
+TRANS *Trans;		/* transformation */
+int atrans;		/* number of allocated levels */
+struct Option *layers_opt;
+struct Flag *invert_flag;
+
 int main(int argc, char *argv[])
 {
     struct GModule *module;

Modified: grass/trunk/vector/v.in.dxf/global.h
===================================================================
--- grass/trunk/vector/v.in.dxf/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.in.dxf/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -19,20 +19,14 @@
 #define ARR_INCR 256
 #define DXF_BUF_SIZE 256
 
-#ifdef _MAIN_C_
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
-GLOBAL int flag_list, flag_extent, flag_table, flag_topo, flag_invert,
+extern int flag_list, flag_extent, flag_table, flag_topo, flag_invert,
     flag_one_layer, flag_frame;
-GLOBAL int num_layers, found_layers;
-GLOBAL char **layers;
-GLOBAL char dxf_buf[DXF_BUF_SIZE], entity[DXF_BUF_SIZE];
-GLOBAL int ARR_MAX;
-GLOBAL double *xpnts, *ypnts, *zpnts;
-GLOBAL struct line_pnts *Points;
+extern int num_layers, found_layers;
+extern char **layers;
+extern char dxf_buf[DXF_BUF_SIZE], entity[DXF_BUF_SIZE];
+extern int ARR_MAX;
+extern double *xpnts, *ypnts, *zpnts;
+extern struct line_pnts *Points;
 
 /* dxf_to_vect.c */
 int dxf_to_vect(struct dxf_file *, struct Map_info *);

Modified: grass/trunk/vector/v.in.dxf/main.c
===================================================================
--- grass/trunk/vector/v.in.dxf/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.in.dxf/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -24,12 +24,20 @@
  *               for details.
  */
 
-#define _MAIN_C_
 #include <stdlib.h>
 #include <grass/gis.h>
 #include <grass/glocale.h>
 #include "global.h"
 
+int flag_list, flag_extent, flag_table, flag_topo, flag_invert,
+    flag_one_layer, flag_frame;
+int num_layers, found_layers;
+char **layers;
+char dxf_buf[DXF_BUF_SIZE], entity[DXF_BUF_SIZE];
+int ARR_MAX;
+double *xpnts, *ypnts, *zpnts;
+struct line_pnts *Points;
+
 int main(int argc, char *argv[])
 {
     struct dxf_file *dxf;

Modified: grass/trunk/vector/v.in.ogr/global.h
===================================================================
--- grass/trunk/vector/v.in.ogr/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.in.ogr/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -24,13 +24,8 @@
 #define __GLOBAL_H__
 
 
-#ifdef MAIN
-int n_polygons = 0;
-#else
 extern int n_polygons;
-#endif
 
-
 /* centroid structure */
 typedef struct
 {

Modified: grass/trunk/vector/v.in.ogr/main.c
===================================================================
--- grass/trunk/vector/v.in.ogr/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.in.ogr/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -19,7 +19,7 @@
  * TODO: - make fixed field length of OFTIntegerList dynamic
  *       - several other TODOs below
 **************************************************************/
-#define MAIN
+
 #include <grass/config.h>
 #include <stdlib.h>
 #include <string.h>
@@ -37,6 +37,8 @@
 #  define MAX(a,b)      ((a>b) ? a : b)
 #endif
 
+int n_polygons;
+
 int geom(OGRGeometryH hGeom, struct Map_info *Map, int field, int cat,
 	 double min_area, int type, int mk_centr);
 int centroid(OGRGeometryH hGeom, CENTR * Centr, SPATIAL_INDEX * Sindex,

Modified: grass/trunk/vector/v.out.dxf/global.h
===================================================================
--- grass/trunk/vector/v.out.dxf/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.out.dxf/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -4,15 +4,9 @@
 #include <stdio.h>
 #include <grass/glocale.h>
 
-#ifdef _MAIN_C_
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern FILE *dxf_fp;
+extern int overwrite;
 
-GLOBAL FILE *dxf_fp;
-GLOBAL int overwrite;
-
 /* write_dxf.c */
 int dxf_open(char *);
 int dxf_header(void);

Modified: grass/trunk/vector/v.out.dxf/main.c
===================================================================
--- grass/trunk/vector/v.out.dxf/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.out.dxf/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -14,7 +14,6 @@
  *              for details.
  */
 
-#define _MAIN_C_
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -24,6 +23,9 @@
 #include <grass/glocale.h>
 #include "global.h"
 
+FILE *dxf_fp;
+int overwrite;
+
 /* size of text compared to screen=1 */
 #define TEXT_SIZE	.003
 #define CENTERED	4

Modified: grass/trunk/vector/v.out.vtk/local_proto.h
===================================================================
--- grass/trunk/vector/v.out.vtk/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.out.vtk/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,13 +18,8 @@
 #define __V_OUT_VTK_LOCAL_PROTO__
 
 /*global structs */
-#ifdef MAIN
-double x_extent;
-double y_extent;
-#else
 extern double x_extent;
 extern double y_extent;
-#endif
 
 /*Write the vtk output */
 int write_vtk(FILE * ascii, struct Map_info *, int layer, int *types,

Modified: grass/trunk/vector/v.out.vtk/main.c
===================================================================
--- grass/trunk/vector/v.out.vtk/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.out.vtk/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -23,9 +23,11 @@
 #include <grass/glocale.h>
 #include <string.h>
 
-#define MAIN
 #include "local_proto.h"
 
+double x_extent;
+double y_extent;
+
 int main(int argc, char *argv[])
 {
     FILE *ascii;

Modified: grass/trunk/vector/v.to.db/global.h
===================================================================
--- grass/trunk/vector/v.to.db/global.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.to.db/global.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,13 +1,7 @@
-#ifndef MAIN
-# define EXT extern
-#else
-# define EXT
-#endif
-
 #include <grass/gis.h>
 #include <grass/Vect.h>
 
-typedef struct
+struct value
 {
     int cat;			/* category */
     int count1, count2;		/* Count of found values; i1: count, coor, sides; i2: sides */
@@ -20,12 +14,11 @@
     int nqcats;			/* number of query cats */
     int aqcats;			/* number of allocated query cats */
     char null;			/* no records selected by query */
-} VALUE;
+};
 
-EXT VALUE *Values;
+extern struct value *Values;
 
-#define OPTIONS struct _options_
-EXT OPTIONS
+struct options
 {
     char *name;
     char *mapset;
@@ -39,10 +32,11 @@
     int total;			/* print totals */
     int units;
     int qfield;			/* query field */
-} options;
+};
 
-#define VSTAT struct _vstat_
-EXT VSTAT
+extern struct options options;
+
+struct vstat
 {
     int rcat;			/* number of categories read from map */
     int select;			/* number of categories selected from DB */
@@ -52,8 +46,10 @@
     int update;			/* number of updated rows */
     int error;			/* number of errors */
     int qtype;			/* C type of query column */
-} vstat;
+};
 
+extern struct vstat vstat;
+
 #define O_CAT		1
 #define O_AREA		2
 #define O_LENGTH	3

Modified: grass/trunk/vector/v.to.db/main.c
===================================================================
--- grass/trunk/vector/v.to.db/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.to.db/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -15,10 +15,13 @@
  *
  *****************************************************************************/
 
-#define MAIN
 #include <grass/glocale.h>
 #include "global.h"
 
+struct value *Values;
+struct options options;
+struct vstat vstat;
+
 int main(int argc, char *argv[])
 {
     int n;
@@ -59,7 +62,7 @@
 	n = 0;
     }
     G_debug(2, "%d unique cats", n);
-    Values = (VALUE *) G_calloc(n + 1, sizeof(VALUE));
+    Values = (struct value *) G_calloc(n + 1, sizeof(struct value));
     vstat.rcat = 0;
 
     /* Read values from map */

Modified: grass/trunk/vector/v.transform/main.c
===================================================================
--- grass/trunk/vector/v.transform/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.transform/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -29,7 +29,6 @@
  *- Modified by Radim Blazek to work on binary files 2002
  *- Interactive functionality disabled, 2007
  */
-#define MAIN
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -41,7 +40,19 @@
 #include "trans.h"
 #include "local_proto.h"
 
+double ax[MAX_COOR];	/*  current map   */
+double ay[MAX_COOR];
 
+double bx[MAX_COOR];	/*  map we are going to   */
+double by[MAX_COOR];
+
+int use[MAX_COOR];	/*  where the coordinate came from */
+double residuals[MAX_COOR];
+double rms;
+
+/*  this may be used in the future  */
+int reg_cnt;		/*  count of registered points */
+
 int main(int argc, char *argv[])
 {
     struct file_info Current, Trans, Coord;

Modified: grass/trunk/vector/v.transform/trans.h
===================================================================
--- grass/trunk/vector/v.transform/trans.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.transform/trans.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -49,24 +49,18 @@
 * Yah, I made them global.  So shoot me.
 **/
 
-#ifdef MAIN
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
+extern double ax[MAX_COOR];	/*  current map   */
+extern double ay[MAX_COOR];
 
-GLOBAL double ax[MAX_COOR];	/*  current map   */
-GLOBAL double ay[MAX_COOR];
+extern double bx[MAX_COOR];	/*  map we are going to   */
+extern double by[MAX_COOR];
 
-GLOBAL double bx[MAX_COOR];	/*  map we are going to   */
-GLOBAL double by[MAX_COOR];
+extern int use[MAX_COOR];	/*  where the coordinate came from */
+extern double residuals[MAX_COOR];
+extern double rms;
 
-GLOBAL int use[MAX_COOR];	/*  where the coordinate came from */
-GLOBAL double residuals[MAX_COOR];
-GLOBAL double rms;
-
 /*  this may be used in the future  */
-GLOBAL int reg_cnt;		/*  count of registered points */
+extern int reg_cnt;		/*  count of registered points */
 
 
 /******************

Modified: grass/trunk/vector/v.vol.rst/main.c
===================================================================
--- grass/trunk/vector/v.vol.rst/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.vol.rst/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -32,8 +32,6 @@
 #include <string.h>
 #include <unistd.h>
 
-#define USERMAIN
-
 #include <grass/gis.h>
 #include <grass/site.h>
 #include <grass/Vect.h>
@@ -50,6 +48,45 @@
 #include <grass/dbmi.h>
 #include <grass/glocale.h>
 
+double /* pargr */ xmin, xmax, ymin, ymax, zmin, zmax, wmin, wmax;
+double /* norm */ xmin0, xmax0, ymin0, ymax0, zmin0, zmax0, wmin0, wmax0,
+    delt, dnorm;
+double /* MAT */ *A;
+double /* PRISP */ fi, rsm, fstar2, alphat, betat;
+
+double /* out */ *b, *w;
+double /* orig */ x0utm, y0utm, z0utm;
+double /* gcmax */ gmin, gmax, c1min, c1max, c2min, c2max, c3min, c3max;
+double /* gcmax */ a1min, a1max, a2min, a2max;
+float *zero_array1, *zero_array2, *zero_array3, *zero_array4, *zero_array5,
+    *zero_array6, *zero_array7;
+int out_cond1, out_cond2;
+double xmn, xmx, ymn, ymx, zmn, zmx;
+double z_orig_in, tb_res_in;
+int cursegm;
+int totsegm;
+int iw2;
+int n_rows_in;			/* fix by JH 04/24/02 */
+int cv;
+int sig1;
+
+char msg[80];
+
+struct Map_info Map;
+dbString sql;
+dbDriver *driver;
+dbHandle handle;
+struct field_info *f;
+struct line_pnts *Pnts;
+struct line_cats *Cats;
+char buf[1024];
+int count;
+
+FILE *dev, *cvdevf;
+FCELL *zero_array_cell;
+G3D_Region current_region;
+
+
 /* pargr */
 double ns_res, ew_res, tb_res;
 double dmin, ertre;

Modified: grass/trunk/vector/v.vol.rst/userglobs.h
===================================================================
--- grass/trunk/vector/v.vol.rst/userglobs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.vol.rst/userglobs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -5,46 +5,6 @@
 #include <grass/Vect.h>
 #include <grass/dbmi.h>
 
-#ifdef USERMAIN
-double /* pargr */ xmin, xmax, ymin, ymax, zmin, zmax, wmin, wmax;
-double /* norm */ xmin0, xmax0, ymin0, ymax0, zmin0, zmax0, wmin0, wmax0,
-    delt, dnorm;
-double /* MAT */ *A;
-double /* PRISP */ fi, rsm, fstar2, alphat, betat;
-
-double /* out */ *b, *w;
-double /* orig */ x0utm, y0utm, z0utm;
-double /* gcmax */ gmin, gmax, c1min, c1max, c2min, c2max, c3min, c3max;
-double /* gcmax */ a1min, a1max, a2min, a2max;
-float *zero_array1, *zero_array2, *zero_array3, *zero_array4, *zero_array5,
-    *zero_array6, *zero_array7;
-int out_cond1, out_cond2;
-double xmn, xmx, ymn, ymx, zmn, zmx;
-double z_orig_in, tb_res_in;
-int cursegm;
-int totsegm;
-int iw2;
-int n_rows_in;			/* fix by JH 04/24/02 */
-int cv;
-int sig1;
-
-char msg[80];
-
-struct Map_info Map;
-dbString sql;
-dbDriver *driver;
-dbHandle handle;
-struct field_info *f;
-struct line_pnts *Pnts;
-struct line_cats *Cats;
-char buf[1024];
-int count;
-
-FILE *dev, *cvdevf;
-FCELL *zero_array_cell;
-G3D_Region current_region;
-
-#else
 extern double /* pargr */ xmin, xmax, ymin, ymax, zmin, zmax, wmin, wmax;
 extern double /* norm */ xmin0, xmax0, ymin0, ymax0, zmin0, zmax0, wmin0,
     wmax0, delt, dnorm;
@@ -84,6 +44,5 @@
 extern FILE *dev, *cvdevf;
 extern FCELL *zero_array_cell;
 extern G3D_Region current_region;
-#endif
 
 #endif

Modified: grass/trunk/vector/v.voronoi/defs.h
===================================================================
--- grass/trunk/vector/v.voronoi/defs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.voronoi/defs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,13 +1,6 @@
-#ifdef MAIN
-struct Cell_head Window;
-BOUND_BOX Box;
-struct Map_info In, Out;
-int Type;
-int All;
-#else
+
 extern struct Cell_head Window;
 extern BOUND_BOX Box;
 extern struct Map_info In, Out;
 extern int Type;
 extern int All;
-#endif

Modified: grass/trunk/vector/v.voronoi/dt_main.c
===================================================================
--- grass/trunk/vector/v.voronoi/dt_main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.voronoi/dt_main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -18,7 +18,6 @@
 ** 4 2008: Benjamin Ducke - 3D support + better memory management
 **/
 
-#define MAIN
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>

Modified: grass/trunk/vector/v.voronoi/sw_defs.h
===================================================================
--- grass/trunk/vector/v.voronoi/sw_defs.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.voronoi/sw_defs.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -46,27 +46,6 @@
     struct Halfedge *PQnext;
 };
 
-#ifdef MAIN
-int triangulate, sorted, plot, debug, mode3d;
-struct Site *sites;
-int nsites;
-int siteidx;
-int sqrt_nsites;
-int nvertices;
-struct Freelist sfl;
-struct Site *bottomsite;
-int nedges;
-struct Freelist efl;
-double xmin, xmax, ymin, ymax, deltax, deltay;
-struct Freelist hfl;
-struct Halfedge *ELleftend, *ELrightend;
-int ELhashsize;
-struct Halfedge **ELhash;
-int PQhashsize;
-struct Halfedge *PQhash;
-int PQcount;
-int PQmin;
-#else
 extern int triangulate, sorted, plot, debug, mode3d;
 extern struct Site *sites;
 extern int nsites;
@@ -86,7 +65,6 @@
 extern struct Halfedge *PQhash;
 extern int PQcount;
 extern int PQmin;
-#endif
 
 /* sw_edgelist.c */
 int ELinitialize(void);

Modified: grass/trunk/vector/v.voronoi/sw_main.c
===================================================================
--- grass/trunk/vector/v.voronoi/sw_main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.voronoi/sw_main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -6,6 +6,32 @@
 #include "sw_defs.h"
 #include "defs.h"
 
+int triangulate, sorted, plot, debug, mode3d;
+struct Site *sites;
+int nsites;
+int siteidx;
+int sqrt_nsites;
+int nvertices;
+struct Freelist sfl;
+struct Site *bottomsite;
+int nedges;
+struct Freelist efl;
+double xmin, xmax, ymin, ymax, deltax, deltay;
+struct Freelist hfl;
+struct Halfedge *ELleftend, *ELrightend;
+int ELhashsize;
+struct Halfedge **ELhash;
+int PQhashsize;
+struct Halfedge *PQhash;
+int PQcount;
+int PQmin;
+
+struct Cell_head Window;
+BOUND_BOX Box;
+struct Map_info In, Out;
+int Type;
+int All;
+
 /* sort sites on y, then x, coord */
 int scomp(const void *v1, const void *v2)
 {

Modified: grass/trunk/vector/v.voronoi/vo_main.c
===================================================================
--- grass/trunk/vector/v.voronoi/vo_main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/vector/v.voronoi/vo_main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -34,7 +34,6 @@
 **             this together from stuff he found on netlib (see the manpage).
 **/
 
-#define MAIN
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>

Modified: grass/trunk/visualization/nviz/src/draw.c
===================================================================
--- grass/trunk/visualization/nviz/src/draw.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/visualization/nviz/src/draw.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -2,7 +2,6 @@
 #include <grass/gis.h>
 #include "togl.h"
 
-#define FontBase_MAIN
 #include "interface.h"
 
 #define BG_COLOR 0xFF000000
@@ -23,6 +22,8 @@
 Tcl_Interp *cancel_interp;
 static GLuint legend_list = 0;
 
+GLuint FontBase;
+
 int auto_draw(Nv_data *, Tcl_Interp *);
 
 /* this function is used as a hook to

Modified: grass/trunk/visualization/nviz/src/interface.h
===================================================================
--- grass/trunk/visualization/nviz/src/interface.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/visualization/nviz/src/interface.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -62,11 +62,7 @@
 #define SV_ATT_MAP      -6
 #define SV_ATT_FLAT     -7
 
-#ifdef FontBase_MAIN
-GLuint FontBase;
-#else
 extern GLuint FontBase;
-#endif
 
 /*------------------------------------------------------------------------
 -            this is the data type declaration section                   -

Modified: grass/trunk/visualization/nviz/src/mkdspf_main.c
===================================================================
--- grass/trunk/visualization/nviz/src/mkdspf_main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/visualization/nviz/src/mkdspf_main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -51,9 +51,12 @@
  *
  */
 
-#define MAIN
 #include "viz.h"
 
+file_info Headfax;	/* contains info about data itself */
+Cube_data CUBE;		/* and the data for a single cube */
+int NTHRESH;
+
 /* Nvision includes */
 #include "interface.h"
 

Modified: grass/trunk/visualization/nviz/src/viz.h
===================================================================
--- grass/trunk/visualization/nviz/src/viz.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/visualization/nviz/src/viz.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,5 +1,5 @@
 #include "Viz.h"
 
-GLOBAL file_info Headfax;	/* contains info about data itself */
-GLOBAL Cube_data CUBE;		/* and the data for a single cube */
-GLOBAL int NTHRESH;
+extern file_info Headfax;	/* contains info about data itself */
+extern Cube_data CUBE;		/* and the data for a single cube */
+extern int NTHRESH;

Modified: grass/trunk/visualization/xganim/local_proto.h
===================================================================
--- grass/trunk/visualization/xganim/local_proto.h	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/visualization/xganim/local_proto.h	2008-08-11 09:29:51 UTC (rev 32675)
@@ -1,5 +1 @@
-#ifdef MAIN
-Visual *use_visual;
-#else
 extern Visual *use_visual;
-#endif

Modified: grass/trunk/visualization/xganim/main.c
===================================================================
--- grass/trunk/visualization/xganim/main.c	2008-08-11 09:18:29 UTC (rev 32674)
+++ grass/trunk/visualization/xganim/main.c	2008-08-11 09:29:51 UTC (rev 32675)
@@ -26,7 +26,6 @@
 #include <grass/gis.h>
 #include <grass/glocale.h>
 #include "gui.h"
-#define MAIN
 #include "local_proto.h"
 
 #define COLOR_OFFSET 0
@@ -65,6 +64,7 @@
 
 unsigned int depth;
 
+Visual *use_visual;
 
 int main(int argc, char **argv)
 {



More information about the grass-commit mailing list