Hi,
I've started to upgrade the git branches on code.x2go.org to 3.5. So far
I've completed:
- nxcomp
- nxcompext
- nxcompshad
- nxproxy
x2goagent is still missing, and this is a bit hairy. In order to find
out what has been actually changed compared to NX, I've compared the
sources in nxagent-3.4.0-5.tar.gz to what we ship in x2goagent. Here, I
noticed that 'our' x2goagent tarball actually combines several NX
'upstream' tarballs, among others 'nxagent' and 'nx-x11'. It is not
totally clear to me what tarballs have been exactly used to construct
the x2goagent sources.
As for modifications, I've grepped through all sources for 'x2go'
markers, and compared those files against the NX version. Find the diff
attached to this e-mail. Alex, do you remember any additional changes
that have been done to the NX sources?
As comparison, I've had a look what the freenx team is doing [1]. It
seems that they have had similar problems and also combined several
tarballs into the source package 'nx-x11'. Feel free to check.
[1] https://launchpad.net/~freenx-team/+archive/ppa/+packages
So, how to upgrade all this mess? Well, TBH, I think the FreeNX guys are
doing a great job with their package. They have accumulated a fair
number of patches (18 to my counting) so far, which are mostly
undocumented but generally look reasonable on the first glance. I think
it would make sense to consider using their 'nx-x11' package as basis
for x2goagent and add the x2go modification as additional patch to that
package.
Comments/Flames welcome.
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Display.c programs/Xserver/hw/nxagent/Display.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Display.c 2009-09-15 15:48:17.000000000 +0200
+++ programs/Xserver/hw/nxagent/Display.c 2011-06-29 15:55:13.219528420 +0200
@@ -1186,7 +1186,7 @@
but rather use a specific function that may eventually call
FatalError() on its turn.
*/
- FatalError("Unable to open display '%s'.\n", nxagentDisplayName);
+ FatalError("x2goagent: Unable to open display '%s'.\n", nxagentDisplayName);
}
nxagentXConnectionNumber = XConnectionNumber(nxagentDisplay);
@@ -1331,7 +1331,6 @@
* moment as we reimplement nxagentConstrainCursor()
* to skip the "constrain" stuff.
*/
-
#ifdef TEST
fprintf(stderr, "nxagentOpenDisplay: Going to create agent's confine window.\n");
#endif
@@ -1347,6 +1346,9 @@
fprintf(stderr, "nxagentOpenDisplay: Created agent's confine window with id [%ld].\n",
nxagentConfineWindow);
#endif
+
+
+
if (!(nxagentUserGeometry.flag & XValue))
{
@@ -1407,6 +1409,9 @@
nxagentLogoBlack = 0x000000;
nxagentLogoRed = 0xff0000;
nxagentLogoWhite = 0xffffff;
+ /*X2GO*/
+ nxagentLogoGray = 0x222222;
+
}
else
{
@@ -1417,6 +1422,9 @@
nxagentLogoRed = nxagentLogoColor(0xff0000);
nxagentLogoBlack = nxagentLogoColor(0x000000);
nxagentLogoWhite = 0xffffff;
+ /*X2GO*/
+ nxagentLogoGray = nxagentLogoColor(0x222222);
+
}
#ifdef WATCH
@@ -2612,6 +2620,7 @@
nxagentConfineWindow);
#endif
+
nxagentLogoDepth = DefaultDepth(nxagentDisplay, DefaultScreen(nxagentDisplay));
pV = nxagentVisuals[nxagentDefaultVisualIndex];
@@ -2625,6 +2634,9 @@
nxagentLogoBlack = 0x000000;
nxagentLogoRed = 0xff0000;
nxagentLogoWhite = 0xffffff;
+ /*X2GO*/
+ nxagentLogoGray = 0x222222;
+
}
else
{
@@ -2634,6 +2646,8 @@
nxagentLogoRed = nxagentLogoColor(0xff0000);
nxagentLogoBlack = nxagentLogoColor(0x000000);
+ /*X2GO*/
+ nxagentLogoGray = nxagentLogoColor(0x222222);
nxagentLogoWhite = 0xffffff;
}
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Icons.h programs/Xserver/hw/nxagent/Icons.h
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Icons.h 2007-05-30 16:29:28.000000000 +0200
+++ programs/Xserver/hw/nxagent/Icons.h 2011-06-29 15:55:13.219528420 +0200
@@ -22,7 +22,11 @@
#include <X11/xpm.h>
#undef Pixel
+/*
+X2GO
#define NXAGENT_ICON_NAME "nxagent.xpm"
+*/
+#define NXAGENT_ICON_NAME "x2go.xpm"
#define NXAGENT_PLACEHOLDER_NAME "nxmissing.xpm"
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Keyboard.c programs/Xserver/hw/nxagent/Keyboard.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Keyboard.c 2009-08-25 13:22:15.000000000 +0200
+++ programs/Xserver/hw/nxagent/Keyboard.c 2011-06-29 15:55:13.219528420 +0200
@@ -88,7 +88,6 @@
#undef TEST
#undef DEBUG
#undef WATCH
-
#ifdef WATCH
#include "unistd.h"
#endif
@@ -1763,7 +1762,7 @@
if (drulesLen != 0 && drules != NULL && dmodel != NULL)
{
fprintf(stderr, "nxagentKeycodeConversionSetup: "
- "Remote: [%s,%s,%s,%s,%s].\n", drules, dmodel, dlayout,
+ "Remote: [drules-%s-,dmodel-%s-,dlayout-%s-,dvariant-%s-,doptions-%s-].\n", drules, dmodel, dlayout,
dvariant, doptions);
}
else
@@ -1779,6 +1778,15 @@
strcmp(dmodel, "evdev") == 0))
{
nxagentKeycodeConversion = 1;
+ #ifdef DEBUG
+ fprintf(stderr, "conversion is on.\n");
+ #endif
+ }
+ else
+ {
+ #ifdef DEBUG
+ fprintf(stderr, "conversion is off.\n");
+ #endif
}
if (drules != NULL)
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Makefile programs/Xserver/hw/nxagent/Makefile
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Screen.c programs/Xserver/hw/nxagent/Screen.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Screen.c 2009-09-09 16:32:13.000000000 +0200
+++ programs/Xserver/hw/nxagent/Screen.c 2011-06-29 15:55:13.239528420 +0200
@@ -424,7 +424,7 @@
XSetWMProperties(nxagentDisplay, w,
&windowName, &windowName,
NULL , 0 , &sizeHints, &wmHints, NULL);
-
+
/*
* Enable events from the icon window.
*/
@@ -779,6 +779,10 @@
fprintf(stderr, "--------------- %s -----------------.\n", hdrMessage);
}
+
+ fprintf(stderr, "FS WINDOW %ld\n", nxagentFullscreenWindow);
+ fprintf(stderr, "ICON WINDOW %ld\n", nxagentIconWindow);
+ fprintf(stderr, "wname %s\n", nxagentWindowName);
fprintf(stderr, "%s Root window at offset (%d,%d) size (%d,%d).\n", prefix,
nxagentOption(RootX), nxagentOption(RootY),
nxagentOption(RootWidth), nxagentOption(RootHeight));
@@ -1703,7 +1707,20 @@
#ifdef TEST
fprintf(stderr, "nxagentOpenScreen: Created new default window with id [%ld].\n",
nxagentDefaultWindows[pScreen->myNum]);
+
+ fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
+ nxagentDefaultWindows[pScreen->myNum]);
#endif
+
+ XClassHint hint;
+ hint.res_name=malloc(strlen("X2GoAgent")+1);
+ hint.res_class=malloc(strlen("X2GoAgent")+1);
+ strcpy(hint.res_name,"X2GoAgent");
+ strcpy(hint.res_class,"X2GoAgent");
+ XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
+ free(hint.res_name);
+ free(hint.res_class);
+
if (nxagentOption(Fullscreen))
{
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.c programs/Xserver/hw/nxagent/Splash.c
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.c 2007-05-30 16:29:29.000000000 +0200
+++ programs/Xserver/hw/nxagent/Splash.c 2011-06-29 15:55:13.239528420 +0200
@@ -53,6 +53,8 @@
int nxagentLogoWhite;
int nxagentLogoRed;
int nxagentLogoBlack;
+/*X2GO*/
+int nxagentLogoGray;
void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height);
@@ -156,16 +158,18 @@
GetTimeInMillis() - startTime);
}
#endif
-
return True;
}
void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height)
{
+/*
+changed for x2go system
+*/
+
XPoint rect[4];
XPoint m[12];
int w, h, c, w2, h2;
-
#ifdef DEBUG
fprintf(stderr, "nxagenShowtLogo: Got called.\n");
#endif
@@ -218,7 +222,7 @@
XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
- rect[0].x = w2-10*c; rect[0].y = h2-8*c;
+/* rect[0].x = w2-10*c; rect[0].y = h2-8*c;
rect[1].x = w2-10*c; rect[1].y = h2+8*c;
rect[2].x = w2+10*c; rect[2].y = h2+8*c;
rect[3].x = w2+10*c; rect[3].y = h2-8*c;
@@ -238,11 +242,12 @@
XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
-
+*/
+ w2-=2*c;
/*
* Begin 'M'.
*/
-
+/*
m[0].x = w2-3*c; m[0].y = h2-5*c;
m[1].x = w2+7*c; m[1].y = h2-5*c;
m[2].x = w2+7*c; m[2].y = h2+5*c;
@@ -256,37 +261,151 @@
m[10].x = w2-1*c; m[10].y = h2+5*c;
m[11].x = w2-3*c; m[11].y = h2+5*c;
- XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
- XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
- XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);*/
/*
* End 'M'.
*/
/*
- * Begin '!'.
+ * Begin 'X'.
*/
+ XSetForeground(nxagentDisplay, gc, nxagentLogoGray);
+ XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
rect[0].x = w2-7*c; rect[0].y = h2-5*c;
- rect[1].x = w2-5*c; rect[1].y = h2-5*c;
- rect[2].x = w2-5*c; rect[2].y = h2+2*c;
- rect[3].x = w2-7*c; rect[3].y = h2+2*c;
+ rect[1].x = w2-8*c; rect[1].y = h2-5*c;
+ rect[2].x = w2-4*c; rect[2].y = h2+3*c;
+ rect[3].x = w2-3*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2-4*c; rect[0].y = h2-5*c;
+ rect[1].x = w2-3*c; rect[1].y = h2-5*c;
+ rect[2].x = w2-7*c; rect[2].y = h2+3*c;
+ rect[3].x = w2-8*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ /*
+ * End 'X'.
+ */
+
+ /*
+ * Start '2'.
+ */
+ rect[0].x = w2-2*c; rect[0].y = h2-5*c;
+ rect[1].x = w2-1*c; rect[1].y = h2-5*c;
+ rect[2].x = w2-1*c; rect[2].y = h2-3*c;
+ rect[3].x = w2-2*c; rect[3].y = h2-3*c;
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
- rect[0].x = w2-7*c; rect[0].y = h2+3*c;
- rect[1].x = w2-5*c; rect[1].y = h2+3*c;
- rect[2].x = w2-5*c; rect[2].y = h2+5*c;
- rect[3].x = w2-7*c; rect[3].y = h2+5*c;
+ rect[0].x = w2-2*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+2*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+2*c; rect[2].y = h2-4*c;
+ rect[3].x = w2-2*c; rect[3].y = h2-4*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+1*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+2*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+2*c; rect[2].y = h2-2*c;
+ rect[3].x = w2+1*c; rect[3].y = h2-2*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ rect[0].x = w2+2*c; rect[0].y = h2-2*c;
+ rect[1].x = w2+1*c; rect[1].y = h2-2*c;
+ rect[2].x = w2-2*c; rect[2].y = h2+2*c;
+ rect[3].x = w2-1*c; rect[3].y = h2+2*c;
XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2-2*c; rect[0].y = h2+2*c;
+ rect[1].x = w2+2*c; rect[1].y = h2+2*c;
+ rect[2].x = w2+2*c; rect[2].y = h2+3*c;
+ rect[3].x = w2-2*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
/*
- * End 'M'.
+ * End '2'.
*/
+ /*
+ * Start 'G'.
+ */
+
+ rect[0].x = w2+3*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+7*c; rect[2].y = h2-4*c;
+ rect[3].x = w2+3*c; rect[3].y = h2-4*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+3*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+4*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+4*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+3*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+3*c; rect[0].y = h2+2*c;
+ rect[1].x = w2+7*c; rect[1].y = h2+2*c;
+ rect[2].x = w2+7*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+3*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+6*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+7*c; rect[2].y = h2-3*c;
+ rect[3].x = w2+6*c; rect[3].y = h2-3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+6*c; rect[0].y = h2-0*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-0*c;
+ rect[2].x = w2+7*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+6*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+5*c; rect[0].y = h2-1*c;
+ rect[1].x = w2+7*c; rect[1].y = h2-1*c;
+ rect[2].x = w2+7*c; rect[2].y = h2+0*c;
+ rect[3].x = w2+5*c; rect[3].y = h2+0*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ /*
+ * End 'G'.
+ */
+
+ /*
+ * Start 'O'.
+ */
+
+ rect[0].x = w2+8*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+12*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+12*c; rect[2].y = h2-4*c;
+ rect[3].x = w2+8*c; rect[3].y = h2-4*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+8*c; rect[0].y = h2+3*c;
+ rect[1].x = w2+12*c; rect[1].y = h2+3*c;
+ rect[2].x = w2+12*c; rect[2].y = h2+2*c;
+ rect[3].x = w2+8*c; rect[3].y = h2+2*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+8*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+9*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+9*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+8*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ rect[0].x = w2+11*c; rect[0].y = h2-5*c;
+ rect[1].x = w2+12*c; rect[1].y = h2-5*c;
+ rect[2].x = w2+12*c; rect[2].y = h2+3*c;
+ rect[3].x = w2+11*c; rect[3].y = h2+3*c;
+ XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+
+ /*
+ * End 'O'.
+ */
+
+
+
+
XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
#ifdef NXAGENT_LOGO_DEBUG
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.h programs/Xserver/hw/nxagent/Splash.h
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//Splash.h 2007-05-30 16:29:29.000000000 +0200
+++ programs/Xserver/hw/nxagent/Splash.h 2011-06-29 15:55:13.239528420 +0200
@@ -33,6 +33,8 @@
extern int nxagentLogoWhite;
extern int nxagentLogoRed;
extern int nxagentLogoBlack;
+/*X2GO*/
+extern int nxagentLogoGray;
extern Window nxagentSplashWindow;
diff -Nur ../nx/nx-X11/programs/Xserver/hw/nxagent//x2go.xpm programs/Xserver/hw/nxagent/x2go.xpm
--- ../nx/nx-X11/programs/Xserver/hw/nxagent//x2go.xpm 1970-01-01 01:00:00.000000000 +0100
+++ programs/Xserver/hw/nxagent/x2go.xpm 2011-06-29 15:55:13.249528420 +0200
@@ -0,0 +1,148 @@
+/* XPM */
+static char *nxagentIconData[]={
+"128 128 17 1",
+". c None",
+"m c #323232",
+"l c #323232",
+"f c #323232",
+"e c #323232",
+"o c #323232",
+"# c #323232",
+"h c #323232",
+"i c #323232",
+"n c #323232",
+"d c #323232",
+"a c #323232",
+"g c #323232",
+"j c #323232",
+"b c #323232",
+"k c #323232",
+"c c #323232",
+".....#abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbde.....",
+"...fbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgf...",
+"..#ccccaheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeijccckf..",
+".ecccgl..................................................................................................................ejcckf.",
+".bccd.....................................................................................................................mdccg.",
+"#cca.......................................................................................................................mjcce",
+"gckm........................................................................................................................eccd",
+"ccn..........................................................................................................................jcb",
+"cce..........................................................................................................................icc",
+"ccm..........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc............................................meeee..........................................................................ecc",
+"cc.........eeeeeeeeoiiiiiiiinggggggggjccccccccccccc....#ggggggggggggggggggggggggggggf.............ggggggggggggggggggggggf....ecc",
+"cc....meeeeoiiiiiiiinggggggggjccccccccccccccccccccc....icccccccccccccccccccccccccccce.............cccccccccccccccccccccce....ecc",
+"cc....................................meeeeeeeeoiii....icccccccccccccccccccccccccccce.............cccccccccccccccccccccce....ecc",
+"cc.......................................................menbccccccccccccccccccbhe..................logccccccccccccghe.......ecc",
+"cc...........................................................iccccccccccccccccdm.......................#cccccccccke..........ecc",
+"cc..............................................lee...........#cccccccccccccckm.........................jccccccckm...........ecc",
+"cc........feeeeeeeeoiiiiiiiiiaggggggggjcccccccccccc............icccccccccccccd..........................icccccccf............ecc",
+"cc....meeeeeoiiiiiiiinggggggggjcccccccccccccccccccciiiiii#m.....jcccccccccccci..........................icccccci.............ecc",
+"cc......................................eeeeeeeeeiiiiiiiiigl....eccccccccccccd..........................dcccccj..............ecc",
+"cc...............................................................dcccccccccccj..........................bccccce..............ecc",
+"cc...............................................................lccccccccccccl........................lccccca...............ecc",
+"cc.............................................meeeeeeee#iiiie....dccccccccccch........................icccccl...............ecc",
+"cc.........meeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccb....ecccccccccccb........................bccccn................ecc",
+"cc....meeeeiiiiiiiiiaggggggggbcccccccccccccccccccccccccccccccc#....gccccccccccco......................#cccckm................ecc",
+"cc....................................meeeeeeeeeiiiiiiiiiaggggd....#cccccccccccg......................bcccci.................ecc",
+"cc..................................................................bcccccccccccf....................#cccckm.................ecc",
+"cc..................................................................hcccccccccccd...................mkcccci..................ecc",
+"cc............................................meeeeeeeeoiiiiiiiil...mkcccccccccccl..................icccckm..................ecc",
+"cc.........eeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccccccn....dccccccccccci.................mkcccci...................ecc",
+"cc....meeeeeiiiiiiiiiaggggggggbccccccccccccccccccccccccccccccccckm...lccccccccccck.................icccckm...................ecc",
+"cc.....................................leeeeeeeeoiiiiiiiiigggggggo....accccccccccc#...............mkcccch....................ecc",
+"cc....................................................................ecccccccccccb...............iccccb.....................ecc",
+"cc.....................................................................jccccccccccce.............mkcccc#.....................ecc",
+"cc.............................................meeeeeeeeehiiiiiiii#....#ccccccccccca.............nccccb......................ecc",
+"cc........feeeeeeee#iiiiiiiiigggggggggkccccccccccccccccccccccccccccl....kcccccccccccl...........lccccc#......................ecc",
+"cc....meeeeeoiiiiiiiiigggggggggkcccccccccccccccccccccccccccccccccccd....icccccccccccd...........dccccb.......................ecc",
+"cc......................................leeeeeeeeoiiiiiiiingggggggga....mccccccccccckm.........lccccc#.......................ecc",
+"cc.......................................................................dccccccccccch.........dccccb........................ecc",
+"cc.......................................................................lcccccccccccb........lccccc#........................ecc",
+"cc.............................................meeeeeeeeoiiiiiiiingggo....gccccccccccc#.......dccccg.........................ecc",
+"cc.........meeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccccccccccg....occcccccccccg......lccccce.........................ecc",
+"cc....meeeeiiiiiiiiiaggggggggbcccccccccccccccccccccccccccccccccccccccce....bccccccccccce.....gccccg..........................ecc",
+"cc....................................meeeeeeeeeiiiiiiiiigggggggggkcccd....#cccccccccccd....eccccce..........................ecc",
+"cc.........................................................................mkcccccccccccl...gccccg...........................ecc",
+"cc..........................................................................nccccccccccci..eccccce...........................ecc",
+"cc............................................meeeeeeeeoiiiiiiiingggggggm...lccccccccccckm.gccccg............................ecc",
+"cc.........eeeeeeeeoiiiiiiiinggggggggjcccccccccccccccccccccccccccccccccc#....dccccccccccc#eccccce............................ecc",
+"cc....meeeeeiiiiiiiiiaggggggggkcccccccccccccccccccccccccccccccccccccccccb....ecccccccccccbgccccg.............................ecc",
+"cc.....................................leeeeeeeeoiiiiiiiiigggggggggkccccco....gccccccccccccccccl.............................ecc",
+"cc............................................................................#cccccccccccccccd..............................ecc",
+"cc.............................................................................bccccccccccccccl..............................ecc",
+"cc.............................................leeeeeeeeeiiiiiiiiiagggggggi....icccccccccccccd...............................ecc",
+"cc........feeeeeeee#iiiiiiiingggggggggkccccccccccccccccccccccccccccccccccckm...mkccccccccccccl...............................ecc",
+"cc....meeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccccccccccci....dccccccccccca................................ecc",
+"cc......................................leeeeeeeeoiiiiiiiiigggggggggccccccck....lccccccccccckm...............................ecc",
+"cc...............................................................................accccccccccc#...............................ecc",
+"cc...............................................................................ecccccccccccb...............................ecc",
+"cc............................................leeeeeeeeeiiiiiiiiiaggggggggbcce....bccccccccccce..............................ecc",
+"cc.......feeeeeeee#iiiiiiiiigggggggggkcccccccccccccccccccccccccccccccccccccccd....#cccccccccccg..............................ecc",
+"cc....meeeeeeoiiiiiiiingggggggggccccccccccccccccccccccccccccccccccccccccccccccl....kcccccccccccl.............................ecc",
+"cc.......................................feeeeeeeehiiiiiiiidggggggggbccccccccci....ncccccccccccd.............................ecc",
+"cc...........................................................................mm....bccccccccccccm............................ecc",
+"cc................................................................................#ccccccccccccci............................ecc",
+"cc..........................................leeeeeeee#iiiiiiiidggggggggbcccccl....bccccccccccccck............................ecc",
+"cc......feeeeeeeehiiiiiiiiaggggggggkccccccccccccccccccccccccccccccccccccccccd....#ccccccccccccccc#...........................ecc",
+"cc....meeeeeee#iiiiiiiidggggggggjcccccccccccccccccccccccccccccccccccccccccccl....bcccccccccccccccb...........................ecc",
+"cc.......................................meeeeeeeeeiiiiiiiiigggggggggkcccccd....#cccccbccccccccccce..........................ecc",
+"cc..............................................................................bccccdhcccccccccccg..........................ecc",
+"cc.............................................................................#ccccclmkcccccccccccl.........................ecc",
+"cc..........................................meeeeeeeeeiiiiiiiiiaggggggggbkm....bccccd..ncccccccccccd.........................ecc",
+"cc.....leeeeeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccccci....hcccckl..lccccccccccccm........................ecc",
+"cc....meeeeeeeehiiiiiiiidggggggggbcccccccccccccccccccccccccccccccccccccckm...mkcccci....dccccccccccci........................ecc",
+"cc........................................leeeeeeee#iiiiiiiinggggggggjcci....icccckm....eccccccccccck........................ecc",
+"cc..........................................................................mkcccci......gccccccccccc#.......................ecc",
+"cc..........................................................................icccckm......#cccccccccccb.......................ecc",
+"cc.........................................leeeeeeeeoiiiiiiiiigggggggga....mkcccci........bccccccccccce......................ecc",
+"cc....meeeeeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccci....icccckm........hcccccccccccg......................ecc",
+"cc.....feeeeeeeehiiiiiiiiaggggggggkcccccccccccccccccccccccccccccccccckm...mkcccci.........mkcccccccccccl.....................ecc",
+"cc.........................................feeeeeeeehiiiiiiiiagggggggh....icccckm..........icccccccccccd.....................ecc",
+"cc.......................................................................mkcccci...........lccccccccccccm....................ecc",
+"cc.......................................................................icccckm............dccccccccccci....................ecc",
+"cc...........................................eeeeeeeeehiiiiiiiidggga....mkcccci.............fccccccccccck....................ecc",
+"cc......feeeeeeee#iiiiiiiingggggggggccccccccccccccccccccccccccccccci....iccccb...............gccccccccccc#...................ecc",
+"cc....meeeeeeeoiiiiiiiiigggggggggbcccccccccccccccccccccccccccccccckm...mkcccc#...............occcccccccccb...................ecc",
+"cc........................................meeeeeeeeeiiiiiiiiidgggg#....iccccb.................bccccccccccce..................ecc",
+"cc....................................................................mkcccc#.................#cccccccccccg..................ecc",
+"cc....................................................................iccccb..................mkcccccccccccl.................ecc",
+"cc..........................................eeeeeeeeeiiiiiiiiiaga....mkcccc#...................icccccccccccd.................ecc",
+"cc.....leeeeeeee#iiiiiiiinggggggggjccccccccccccccccccccccccccccci....iccccb....................lccccccccccccm................ecc",
+"cc....meeeeeeee#iiiiiiiiigggggggggkcccccccccccccccccccccccccccckm...mkcccc#.....................dccccccccccci................ecc",
+"cc.........................................leeeeeeeeoiiiiiiiiiah....iccccb......................lccccccccccck................ecc",
+"cc.................................................................mkcccc#.......................gccccccccccc#...............ecc",
+"cc.................................................................dccccj........................ecccccccccccj...............ecc",
+"cc..........................................leeeeeeeeeiiiiiiih....lccccce.........................bccccccccccce..............ecc",
+"cc....meeeeeeeeeiiiiiiiiidgggggggggcccccccccccccccccccccccccci....dccccg..........................#ccccccccccca..............ecc",
+"cc.....feeeeeeeeiiiiiiiinggggggggbcccccccccccccccccccccccccckm...lccccce...........................kcccccccccccl.............ecc",
+"cc........................................leeeeeeeehiiiiiiiih....dccccg............................ncccccccccccd.............ecc",
+"cc..............................................................lccccce............................fccccccccccccf............ecc",
+"cc..............................................................dccccb..............................jcccccccccccg............ecc",
+"cc.........................................meeeeeeeeoiiiiil....lcccccn..............................icccccccccccce...........ecc",
+"cc......feeeeeeeehiiiiiiiigggggggggccccccccccccccccjgggggo.....gccccc#..............................eccccccccccccbm..........ecc",
+"cc....meeeeeeeoiiiiiiiiidgggggggggccccccccccccccccc...........hcccccco...............................cccccccccccccn..........ecc",
+"cc.........................................leeeeeee..........ecccccccn..............................lcccccccccccccc#.........ecc",
+"cc..........................................................#kccccccckf.............................nccccccccccccccc#........ecc",
+"cc........................................................ldcccccccccck#m.........................lncccccccccccccccccdl......ecc",
+"cc.........................................feeeeeee....ogjcccccccccccccccggi..................oggbcccccccccccccccccccccja....ecc",
+"cc.....leeeeeeee#iiiiiiiidggggggggbcccccccccccccccc....icccccccccccccccccccg..................icccccccccccccccccccccccccc....ecc",
+"cc....meeeeeeeehiiiiiiiiaggggggggkccccccccccccccccc....icccccccccccccccccccg..................icccccccccccccccccccccccccc....ecc",
+"cc........................................feeeeeeee..........................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cc...........................................................................................................................ecc",
+"cce..........................................................................................................................hcc",
+"ccn..........................................................................................................................acb",
+"jcb.........................................................................................................................lcca",
+"hcci........................................................................................................................acc#",
+"mkcc#......................................................................................................................dccb.",
+".occci...................................................................................................................macccf.",
+"..#cccbne.............................................................................................................menkccc#..",
+"...okccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbe...",
+"....mhjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccg#....."};
--
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4
_______________________________________________
X2go-Dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/x2go-dev