sizeof_1_ = 8;
aggr _1_
{
	'D' 0 hlength;
	'D' 4 llength;
};

defn
_1_(addr) {
	complex _1_ addr;
	print("	hlength	", addr.hlength, "\n");
	print("	llength	", addr.llength, "\n");
};

sizeof_2_ = 8;
aggr _2_
{
	'V' 0 length;
	{
	'D' 0 hlength;
	'D' 4 llength;
	};
};

defn
_2_(addr) {
	complex _2_ addr;
	print("	length	", addr.length, "\n");
	print("_1_ {\n");
		_1_(addr+0);
	print("}\n");
};

UTFmax = 3;
Runesync = 128;
Runeself = 128;
Runeerror = 128;
sizeofFconv = 24;
aggr Fconv
{
	'X' 0 out;
	'X' 4 eout;
	'D' 8 f1;
	'D' 12 f2;
	'D' 16 f3;
	'D' 20 chr;
};

defn
Fconv(addr) {
	complex Fconv addr;
	print("	out	", addr.out\X, "\n");
	print("	eout	", addr.eout\X, "\n");
	print("	f1	", addr.f1, "\n");
	print("	f2	", addr.f2, "\n");
	print("	f3	", addr.f3, "\n");
	print("	chr	", addr.chr, "\n");
};

sizeofTm = 40;
aggr Tm
{
	'D' 0 sec;
	'D' 4 min;
	'D' 8 hour;
	'D' 12 mday;
	'D' 16 mon;
	'D' 20 year;
	'D' 24 wday;
	'D' 28 yday;
	'a' 32 zone;
	'D' 36 tzoff;
};

defn
Tm(addr) {
	complex Tm addr;
	print("	sec	", addr.sec, "\n");
	print("	min	", addr.min, "\n");
	print("	hour	", addr.hour, "\n");
	print("	mday	", addr.mday, "\n");
	print("	mon	", addr.mon, "\n");
	print("	year	", addr.year, "\n");
	print("	wday	", addr.wday, "\n");
	print("	yday	", addr.yday, "\n");
	print("	zone	", addr.zone, "\n");
	print("	tzoff	", addr.tzoff, "\n");
};

PNPROC = 1;
PNGROUP = 2;
sizeofLock = 4;
aggr Lock
{
	'D' 0 val;
};

defn
Lock(addr) {
	complex Lock addr;
	print("	val	", addr.val, "\n");
};

sizeofQLp = 12;
aggr QLp
{
	'D' 0 inuse;
	'A' QLp 4 next;
	'C' 8 state;
};

defn
QLp(addr) {
	complex QLp addr;
	print("	inuse	", addr.inuse, "\n");
	print("	next	", addr.next\X, "\n");
	print("	state	", addr.state, "\n");
};

sizeofQLock = 16;
aggr QLock
{
	Lock 0 lock;
	'D' 4 locked;
	'A' QLp 8 $head;
	'A' QLp 12 $tail;
};

defn
QLock(addr) {
	complex QLock addr;
	print("Lock lock {\n");
	Lock(addr.lock);
	print("}\n");
	print("	locked	", addr.locked, "\n");
	print("	$head	", addr.$head\X, "\n");
	print("	$tail	", addr.$tail\X, "\n");
};

sizeofRWLock = 20;
aggr RWLock
{
	Lock 0 lock;
	'D' 4 readers;
	'D' 8 writer;
	'A' QLp 12 $head;
	'A' QLp 16 $tail;
};

defn
RWLock(addr) {
	complex RWLock addr;
	print("Lock lock {\n");
	Lock(addr.lock);
	print("}\n");
	print("	readers	", addr.readers, "\n");
	print("	writer	", addr.writer, "\n");
	print("	$head	", addr.$head\X, "\n");
	print("	$tail	", addr.$tail\X, "\n");
};

RFNAMEG = 1;
RFENVG = 2;
RFFDG = 4;
RFNOTEG = 8;
RFPROC = 16;
RFMEM = 32;
RFNOWAIT = 64;
RFCNAMEG = 1024;
RFCENVG = 2048;
RFCFDG = 4096;
RFREND = 8192;
sizeofQid = 8;
aggr Qid
{
	'U' 0 path;
	'U' 4 vers;
};

defn
Qid(addr) {
	complex Qid addr;
	print("	path	", addr.path, "\n");
	print("	vers	", addr.vers, "\n");
};

sizeofDir = 116;
aggr Dir
{
	'a' 0 name;
	'a' 28 uid;
	'a' 56 gid;
	Qid 84 qid;
	'U' 92 mode;
	'D' 96 atime;
	'D' 100 mtime;
	{
	'V' 104 length;
	{
	'D' 104 hlength;
	'D' 108 llength;
	};
	};
	'u' 112 type;
	'u' 114 dev;
};

defn
Dir(addr) {
	complex Dir addr;
	print("	name	", addr.name, "\n");
	print("	uid	", addr.uid, "\n");
	print("	gid	", addr.gid, "\n");
	print("Qid qid {\n");
	Qid(addr.qid);
	print("}\n");
	print("	mode	", addr.mode, "\n");
	print("	atime	", addr.atime, "\n");
	print("	mtime	", addr.mtime, "\n");
	print("_2_ {\n");
		_2_(addr+104);
	print("}\n");
	print("	type	", addr.type, "\n");
	print("	dev	", addr.dev, "\n");
};

sizeofWaitmsg = 112;
aggr Waitmsg
{
	'a' 0 pid;
	'a' 12 time;
	'a' 48 msg;
};

defn
Waitmsg(addr) {
	complex Waitmsg addr;
	print("	pid	", addr.pid, "\n");
	print("	time	", addr.time, "\n");
	print("	msg	", addr.msg, "\n");
};

DBlack = 255;
DBlue = 201;
DRed = 15;
DYellow = 3;
DGreen = 192;
DWhite = 0;
Displaybufsize = 8000;
ICOSSCALE = 1024;
Borderwidth = 4;
Refbackup = 0;
Refnone = 1;
Refmesg = 2;
Endsquare = 0;
Enddisc = 1;
Endarrow = 2;
Endmask = 31;
sizeofPoint = 8;
aggr Point
{
	'D' 0 x;
	'D' 4 y;
};

defn
Point(addr) {
	complex Point addr;
	print("	x	", addr.x, "\n");
	print("	y	", addr.y, "\n");
};

sizeofRectangle = 16;
aggr Rectangle
{
	Point 0 min;
	Point 8 max;
};

defn
Rectangle(addr) {
	complex Rectangle addr;
	print("Point min {\n");
	Point(addr.min);
	print("}\n");
	print("Point max {\n");
	Point(addr.max);
	print("}\n");
};

sizeofScreen = 16;
aggr Screen
{
	'X' 0 display;
	'D' 4 id;
	'X' 8 image;
	'X' 12 fill;
};

defn
Screen(addr) {
	complex Screen addr;
	print("	display	", addr.display\X, "\n");
	print("	id	", addr.id, "\n");
	print("	image	", addr.image\X, "\n");
	print("	fill	", addr.fill\X, "\n");
};

sizeofDisplay = 8156;
aggr Display
{
	QLock 0 qlock;
	'D' 16 dirno;
	'D' 20 fd;
	'D' 24 reffd;
	'D' 28 ctlfd;
	'D' 32 imageid;
	'D' 36 $local;
	'D' 40 ldepth;
	'X' 44 error;
	'X' 48 devdir;
	'X' 52 windir;
	'a' 56 oldlabel;
	'U' 120 dataqid;
	'X' 124 ones;
	'X' 128 zeros;
	'X' 132 image;
	'a' 136 buf;
	'X' 8140 bufp;
	'X' 8144 defaultfont;
	'X' 8148 defaultsubfont;
	'X' 8152 windows;
};

defn
Display(addr) {
	complex Display addr;
	print("QLock qlock {\n");
	QLock(addr.qlock);
	print("}\n");
	print("	dirno	", addr.dirno, "\n");
	print("	fd	", addr.fd, "\n");
	print("	reffd	", addr.reffd, "\n");
	print("	ctlfd	", addr.ctlfd, "\n");
	print("	imageid	", addr.imageid, "\n");
	print("	$local	", addr.$local, "\n");
	print("	ldepth	", addr.ldepth, "\n");
	print("	error	", addr.error\X, "\n");
	print("	devdir	", addr.devdir\X, "\n");
	print("	windir	", addr.windir\X, "\n");
	print("	oldlabel	", addr.oldlabel, "\n");
	print("	dataqid	", addr.dataqid, "\n");
	print("	ones	", addr.ones\X, "\n");
	print("	zeros	", addr.zeros\X, "\n");
	print("	image	", addr.image\X, "\n");
	print("	buf	", addr.buf, "\n");
	print("	bufp	", addr.bufp\X, "\n");
	print("	defaultfont	", addr.defaultfont\X, "\n");
	print("	defaultsubfont	", addr.defaultsubfont\X, "\n");
	print("	windows	", addr.windows\X, "\n");
};

sizeofImage = 56;
aggr Image
{
	'A' Display 0 display;
	'D' 4 id;
	Rectangle 8 r;
	Rectangle 24 clipr;
	'D' 40 ldepth;
	'D' 44 repl;
	'A' Screen 48 screen;
	'A' Image 52 next;
};

defn
Image(addr) {
	complex Image addr;
	print("	display	", addr.display\X, "\n");
	print("	id	", addr.id, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("Rectangle clipr {\n");
	Rectangle(addr.clipr);
	print("}\n");
	print("	ldepth	", addr.ldepth, "\n");
	print("	repl	", addr.repl, "\n");
	print("	screen	", addr.screen\X, "\n");
	print("	next	", addr.next\X, "\n");
};

sizeofRGB = 12;
aggr RGB
{
	'U' 0 red;
	'U' 4 green;
	'U' 8 blue;
};

defn
RGB(addr) {
	complex RGB addr;
	print("	red	", addr.red, "\n");
	print("	green	", addr.green, "\n");
	print("	blue	", addr.blue, "\n");
};

sizeofFontchar = 8;
aggr Fontchar
{
	'D' 0 x;
	'b' 4 top;
	'b' 5 bottom;
	'C' 6 left;
	'b' 7 width;
};

defn
Fontchar(addr) {
	complex Fontchar addr;
	print("	x	", addr.x, "\n");
	print("	top	", addr.top, "\n");
	print("	bottom	", addr.bottom, "\n");
	print("	left	", addr.left, "\n");
	print("	width	", addr.width, "\n");
};

sizeofSubfont = 16;
aggr Subfont
{
	'X' 0 name;
	'd' 4 n;
	'b' 6 height;
	'C' 7 ascent;
	'A' Fontchar 8 info;
	'A' Image 12 bits;
};

defn
Subfont(addr) {
	complex Subfont addr;
	print("	name	", addr.name\X, "\n");
	print("	n	", addr.n, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	info	", addr.info\X, "\n");
	print("	bits	", addr.bits\X, "\n");
};

LOG2NFCACHE = 6;
NFCACHE = 64;
NFLOOK = 5;
NFSUBF = 2;
MAXFCACHE = 1029;
MAXSUBF = 50;
DSUBF = 4;
SUBFAGE = 10000;
CACHEAGE = 10000;
sizeofCachefont = 16;
aggr Cachefont
{
	'u' 0 min;
	'u' 2 max;
	'D' 4 offset;
	'X' 8 name;
	'X' 12 subfontname;
};

defn
Cachefont(addr) {
	complex Cachefont addr;
	print("	min	", addr.min, "\n");
	print("	max	", addr.max, "\n");
	print("	offset	", addr.offset, "\n");
	print("	name	", addr.name\X, "\n");
	print("	subfontname	", addr.subfontname\X, "\n");
};

sizeofCacheinfo = 8;
aggr Cacheinfo
{
	'u' 0 x;
	'b' 2 width;
	'C' 3 left;
	'u' 4 value;
	'u' 6 age;
};

defn
Cacheinfo(addr) {
	complex Cacheinfo addr;
	print("	x	", addr.x, "\n");
	print("	width	", addr.width, "\n");
	print("	left	", addr.left, "\n");
	print("	value	", addr.value, "\n");
	print("	age	", addr.age, "\n");
};

sizeofCachesubf = 12;
aggr Cachesubf
{
	'U' 0 age;
	'A' Cachefont 4 cf;
	'A' Subfont 8 f;
};

defn
Cachesubf(addr) {
	complex Cachesubf addr;
	print("	age	", addr.age, "\n");
	print("	cf	", addr.cf\X, "\n");
	print("	f	", addr.f\X, "\n");
};

sizeofFont = 52;
aggr Font
{
	'X' 0 name;
	'A' Display 4 display;
	'd' 8 height;
	'd' 10 ascent;
	'D' 12 maxldepth;
	'd' 16 width;
	'd' 18 ldepth;
	'd' 20 nsub;
	'U' 24 age;
	'D' 28 ncache;
	'D' 32 nsubf;
	'A' Cacheinfo 36 cache;
	'A' Cachesubf 40 subf;
	'A' Cachefont 44 sub;
	'A' Image 48 cacheimage;
};

defn
Font(addr) {
	complex Font addr;
	print("	name	", addr.name\X, "\n");
	print("	display	", addr.display\X, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	maxldepth	", addr.maxldepth, "\n");
	print("	width	", addr.width, "\n");
	print("	ldepth	", addr.ldepth, "\n");
	print("	nsub	", addr.nsub, "\n");
	print("	age	", addr.age, "\n");
	print("	ncache	", addr.ncache, "\n");
	print("	nsubf	", addr.nsubf, "\n");
	print("	cache	", addr.cache\X, "\n");
	print("	subf	", addr.subf\X, "\n");
	print("	sub	", addr.sub\X, "\n");
	print("	cacheimage	", addr.cacheimage\X, "\n");
};

complex Point ZP;
complex Rectangle ZR;
complex Display display;
complex Font font;
complex Image screen;
sizeofAlt = 20;
aggr Alt
{
	'X' 0 c;
	'X' 4 v;
	'D' 8 op;
	'X' 12 tag;
	'U' 16 q;
};

defn
Alt(addr) {
	complex Alt addr;
	print("	c	", addr.c\X, "\n");
	print("	v	", addr.v\X, "\n");
	print("	op	", addr.op, "\n");
	print("	tag	", addr.tag\X, "\n");
	print("	q	", addr.q, "\n");
};

sizeofRef = 4;
aggr Ref
{
	'D' 0 ref;
};

defn
Ref(addr) {
	complex Ref addr;
	print("	ref	", addr.ref, "\n");
};

sizeofCursor = 72;
aggr Cursor
{
	Point 0 offset;
	'a' 8 clr;
	'a' 40 set;
};

defn
Cursor(addr) {
	complex Cursor addr;
	print("Point offset {\n");
	Point(addr.offset);
	print("}\n");
	print("	clr	", addr.clr, "\n");
	print("	set	", addr.set, "\n");
};

sizeofMouse = 16;
aggr Mouse
{
	'D' 0 buttons;
	Point 4 xy;
	'U' 12 msec;
};

defn
Mouse(addr) {
	complex Mouse addr;
	print("	buttons	", addr.buttons, "\n");
	print("Point xy {\n");
	Point(addr.xy);
	print("}\n");
	print("	msec	", addr.msec, "\n");
};

sizeofMousectl = 44;
aggr Mousectl
{
	{
	'D' 0 buttons;
	Point 4 xy;
	'U' 12 msec;
	};
	'X' 16 c;
	'X' 20 reshapec;
	'X' 24 file;
	'D' 28 mfd;
	'D' 32 cfd;
	'D' 36 pid;
	'A' Image 40 image;
};

defn
Mousectl(addr) {
	complex Mousectl addr;
	print("Mouse {\n");
		Mouse(addr+0);
	print("}\n");
	print("	c	", addr.c\X, "\n");
	print("	reshapec	", addr.reshapec\X, "\n");
	print("	file	", addr.file\X, "\n");
	print("	mfd	", addr.mfd, "\n");
	print("	cfd	", addr.cfd, "\n");
	print("	pid	", addr.pid, "\n");
	print("	image	", addr.image\X, "\n");
};

sizeofMenu = 12;
aggr Menu
{
	'X' 0 item;
	'X' 4 gen;
	'D' 8 lasthit;
};

defn
Menu(addr) {
	complex Menu addr;
	print("	item	", addr.item\X, "\n");
	print("	gen	", addr.gen\X, "\n");
	print("	lasthit	", addr.lasthit, "\n");
};

sizeofKeyboardctl = 20;
aggr Keyboardctl
{
	'X' 0 c;
	'X' 4 file;
	'D' 8 consfd;
	'D' 12 ctlfd;
	'D' 16 pid;
};

defn
Keyboardctl(addr) {
	complex Keyboardctl addr;
	print("	c	", addr.c\X, "\n");
	print("	file	", addr.file\X, "\n");
	print("	consfd	", addr.consfd, "\n");
	print("	ctlfd	", addr.ctlfd, "\n");
	print("	pid	", addr.pid, "\n");
};

BACK = 0;
HIGH = 1;
BORD = 2;
TEXT = 3;
HTEXT = 4;
NCOL = 5;
sizeof_3_ = 4;
aggr _3_
{
	'd' 0 bc;
	'd' 2 minwid;
};

defn
_3_(addr) {
	complex _3_ addr;
	print("	bc	", addr.bc, "\n");
	print("	minwid	", addr.minwid, "\n");
};

sizeof_4_ = 4;
aggr _4_
{
	'X' 0 ptr;
	{
	'd' 0 bc;
	'd' 2 minwid;
	};
};

defn
_4_(addr) {
	complex _4_ addr;
	print("	ptr	", addr.ptr\X, "\n");
	print("_3_ {\n");
		_3_(addr+0);
	print("}\n");
};

sizeofFrbox = 12;
aggr Frbox
{
	'D' 0 wid;
	'D' 4 nrune;
	{
	'X' 8 ptr;
	{
	'd' 8 bc;
	'd' 10 minwid;
	};
	};
};

defn
Frbox(addr) {
	complex Frbox addr;
	print("	wid	", addr.wid, "\n");
	print("	nrune	", addr.nrune, "\n");
	print("_4_ {\n");
		_4_(addr+8);
	print("}\n");
};

complex Font font;
complex Display display;
sizeofFrame = 108;
aggr Frame
{
	'A' Font 0 font;
	'A' Display 4 display;
	'A' Image 8 b;
	'a' 12 cols;
	Rectangle 32 r;
	Rectangle 48 entire;
	'X' 64 scroll;
	'A' Frbox 68 box;
	'U' 72 p0;
	'U' 76 p1;
	'u' 80 nbox;
	'u' 82 nalloc;
	'u' 84 maxtab;
	'u' 86 nchars;
	'u' 88 nlines;
	'u' 90 maxlines;
	'u' 92 lastlinefull;
	'u' 94 modified;
	'A' Image 96 tick;
	'A' Image 100 tickback;
	'D' 104 ticked;
};

defn
Frame(addr) {
	complex Frame addr;
	print("	font	", addr.font\X, "\n");
	print("	display	", addr.display\X, "\n");
	print("	b	", addr.b\X, "\n");
	print("	cols	", addr.cols, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("Rectangle entire {\n");
	Rectangle(addr.entire);
	print("}\n");
	print("	scroll	", addr.scroll\X, "\n");
	print("	box	", addr.box\X, "\n");
	print("	p0	", addr.p0, "\n");
	print("	p1	", addr.p1, "\n");
	print("	nbox	", addr.nbox, "\n");
	print("	nalloc	", addr.nalloc, "\n");
	print("	maxtab	", addr.maxtab, "\n");
	print("	nchars	", addr.nchars, "\n");
	print("	nlines	", addr.nlines, "\n");
	print("	maxlines	", addr.maxlines, "\n");
	print("	lastlinefull	", addr.lastlinefull, "\n");
	print("	modified	", addr.modified, "\n");
	print("	tick	", addr.tick\X, "\n");
	print("	tickback	", addr.tickback\X, "\n");
	print("	ticked	", addr.ticked, "\n");
};

None = 0;
Some = 1;
All = 2;
Clicktime = 1000;
sizeofFlayer = 172;
aggr Flayer
{
	Frame 0 f;
	'D' 108 origin;
	'D' 112 p0;
	'D' 116 p1;
	'D' 120 click;
	'X' 124 textfn;
	'D' 128 user0;
	'X' 132 user1;
	Rectangle 136 entire;
	Rectangle 152 scroll;
	'D' 168 visible;
};

defn
Flayer(addr) {
	complex Flayer addr;
	print("Frame f {\n");
	Frame(addr.f);
	print("}\n");
	print("	origin	", addr.origin, "\n");
	print("	p0	", addr.p0, "\n");
	print("	p1	", addr.p1, "\n");
	print("	click	", addr.click, "\n");
	print("	textfn	", addr.textfn\X, "\n");
	print("	user0	", addr.user0, "\n");
	print("	user1	", addr.user1\X, "\n");
	print("Rectangle entire {\n");
	Rectangle(addr.entire);
	print("}\n");
	print("Rectangle scroll {\n");
	Rectangle(addr.scroll);
	print("}\n");
	print("	visible	", addr.visible, "\n");
};

Up = 0;
Down = 1;
sizeofSection = 12;
aggr Section
{
	'D' 0 nrunes;
	'X' 4 text;
	'A' Section 8 next;
};

defn
Section(addr) {
	complex Section addr;
	print("	nrunes	", addr.nrunes, "\n");
	print("	text	", addr.text\X, "\n");
	print("	next	", addr.next\X, "\n");
};

sizeofRasp = 8;
aggr Rasp
{
	'D' 0 nrunes;
	'A' Section 4 sect;
};

defn
Rasp(addr) {
	complex Rasp addr;
	print("	nrunes	", addr.nrunes, "\n");
	print("	sect	", addr.sect\X, "\n");
};

sizeofText = 876;
aggr Text
{
	Rasp 0 rasp;
	'd' 8 nwin;
	'd' 10 front;
	'u' 12 tag;
	'C' 14 lock;
	'a' 16 l;
};

defn
Text(addr) {
	complex Text addr;
	print("Rasp rasp {\n");
	Rasp(addr.rasp);
	print("}\n");
	print("	nwin	", addr.nwin, "\n");
	print("	front	", addr.front, "\n");
	print("	tag	", addr.tag, "\n");
	print("	lock	", addr.lock, "\n");
	print("	l	", addr.l, "\n");
};

sizeofReadbuf = 8196;
aggr Readbuf
{
	'd' 0 n;
	'a' 2 data;
};

defn
Readbuf(addr) {
	complex Readbuf addr;
	print("	n	", addr.n, "\n");
	print("	data	", addr.data, "\n");
};

RHost = 0;
RKeyboard = 1;
RMouse = 2;
RPlumb = 3;
RReshape = 4;
NRes = 5;
complex Cursor bullseye;
complex Cursor deadmouse;
complex Cursor lockarrow;
complex Cursor cursor;
complex Flayer which;
complex Flayer work;
complex Text cmd;
complex Mousectl mousectl;
complex Keyboardctl keyboardctl;
complex Mouse mousep;
Tversion = 0;
Tstartcmdfile = 1;
Tcheck = 2;
Trequest = 3;
Torigin = 4;
Tstartfile = 5;
Tworkfile = 6;
Ttype = 7;
Tcut = 8;
Tpaste = 9;
Tsnarf = 10;
Tstartnewfile = 11;
Twrite = 12;
Tclose = 13;
Tlook = 14;
Tsearch = 15;
Tsend = 16;
Tdclick = 17;
Tstartsnarf = 18;
Tsetsnarf = 19;
Tack = 20;
Texit = 21;
Tplumb = 22;
TMAX = 23;
Hversion = 0;
Hbindname = 1;
Hcurrent = 2;
Hnewname = 3;
Hmovname = 4;
Hgrow = 5;
Hcheck0 = 6;
Hcheck = 7;
Hunlock = 8;
Hdata = 9;
Horigin = 10;
Hunlockfile = 11;
Hsetdot = 12;
Hgrowdata = 13;
Hmoveto = 14;
Hclean = 15;
Hdirty = 16;
Hcut = 17;
Hsetpat = 18;
Hdelname = 19;
Hclose = 20;
Hsetsnarf = 21;
Hsnarflen = 22;
Hack = 23;
Hexit = 24;
Hplumb = 25;
HMAX = 26;
sizeofHeader = 4;
aggr Header
{
	'b' 0 type;
	'b' 1 count0;
	'b' 2 count1;
	'a' 3 data;
};

defn
Header(addr) {
	complex Header addr;
	print("	type	", addr.type, "\n");
	print("	count0	", addr.count0, "\n");
	print("	count1	", addr.count1, "\n");
	print("	data	", addr.data, "\n");
};

complex Text cmd;
complex Cursor cursor;
complex Flayer which;
complex Flayer work;
complex Text threadmain:t;
complex Rectangle threadmain:r;
complex Flayer threadmain:nwhich;
complex Flayer current:nw;
complex Text current:t;
complex Flayer closeup:l;
complex Text closeup:t;
complex Text findl:t;
complex Flayer duplicate:l;
complex Rectangle duplicate:r;
complex Font duplicate:f;
complex Text duplicate:t;
complex Flayer duplicate:nl;
complex Rectangle getr:rp;
complex Point getr:p;
complex Rectangle getr:r;
complex Text snarf:t;
complex Flayer snarf:l;
complex Text cut:t;
complex Flayer cut:l;
complex Text paste:t;
complex Flayer scrorigin:l;
complex Text scrorigin:t;
complex Rasp raspc:r;
complex Rasp ctlw:r;
complex Rasp ctlu:r;
complex Flayer center:l;
complex Text center:t;
complex Flayer onethird:l;
complex Text onethird:t;
complex Rectangle onethird:s;
complex Text flushtyping:t;
complex Flayer type:l;
complex Text type:t;
complex Flayer gettext:l;
complex Text gettext:t;
complex Flayer scrtotal:l;
