diff options
| author | Michael Brown | 2005-05-17 18:44:57 +0200 |
|---|---|---|
| committer | Michael Brown | 2005-05-17 18:44:57 +0200 |
| commit | 1097cf8685cd81f0003bd6f17d050e5174a85b90 (patch) | |
| tree | 47a39f2a1e980cca43c28c4d1a6dfdf431b910b2 /contrib/ppmtoansi | |
| parent | Quickly hacked to use a buffer rather than a processor. (diff) | |
| download | ipxe-1097cf8685cd81f0003bd6f17d050e5174a85b90.tar.gz ipxe-1097cf8685cd81f0003bd6f17d050e5174a85b90.tar.xz ipxe-1097cf8685cd81f0003bd6f17d050e5174a85b90.zip | |
Initial revision
Diffstat (limited to 'contrib/ppmtoansi')
30 files changed, 1677 insertions, 0 deletions
diff --git a/contrib/ppmtoansi/Makefile b/contrib/ppmtoansi/Makefile new file mode 100644 index 000000000..bc0ca0a68 --- /dev/null +++ b/contrib/ppmtoansi/Makefile @@ -0,0 +1,67 @@ +CPPFLAGS = +LDLIBS = +CFLAGS = -pipe -g -O2 -Wall +LDFLAGS = -pipe +CC = gcc +LD = gcc +# Some "black" magic to determine optimal compiler flags for target +# architecture +TARGET_ARCH:= $(shell if [ \! -r .compile-options ] ; then ( \ + cpu=`grep cpu /proc/cpuinfo 2>&1 |head -1| \ + cut -d : -f 2-| sed -e 's/ //g'`; \ + if [ x"$$cpu" = x"" ] ; then \ + echo -fno-strength-reduce; \ + else if [ "$$cpu" = "386" ] ; then \ + echo -m386 -fno-strength-reduce; \ + else if [ "$$cpu" = "486" ] ; then \ + echo -m486 -fno-strength-reduce; \ + else if [ "$$cpu" = "Alpha" ] ; then \ + echo -fno-strength-reduce; \ + else echo main\(\)\{\} >.compile-options.c; \ + if gcc -mpentium -o .compile-options.o -c \ + .compile-options.c &>/dev/null; then \ + echo -mpentium -fstrength-reduce; \ + else if gcc -m486 -malign-functions=2 -malign-jumps=2 \ + -malign-loops=2 -o .compile-options.o -c \ + .compile-options.c &>/dev/null; then \ + echo -n -m486 -malign-functions=2 -malign-jumps=2; \ + echo ' '-malign-loops=2 -fno-strength-reduce; \ + else echo -m486; \ + fi;fi;fi;fi;fi;fi) > .compile-options; \ + rm -f .compile-options.c .compile-options.o; \ + fi; cat .compile-options) +ASFLAGS = $(TARGET_ARCH) + +OBJS = ppmtoansi.o + +############################################################################## + +ifeq (.depend,$(wildcard .depend)) +all: ppmtoansi +include .depend +else +all: depend + @$(MAKE) all +endif + +############################################################################## + +ppmtoansi: $(OBJS) + +############################################################################## + +clean: + $(RM) *~ *.o *.dvi *.log *.aux *yacc.tab.[ch] *yacc.output *lex.[co] \ + *.dat .depend .tmp_depend .compile-options* + strip ppmtoansi >&/dev/null || true + +distclean: clean + $(RM) -rf ppmtoansi + +############################################################################## + +depend: + for i in *.c;do $(CPP) $(CPPFLAGS) -MM $$i;done >.tmp_depend + mv .tmp_depend .depend + +############################################################################## diff --git a/contrib/ppmtoansi/demo/dos.ansi b/contrib/ppmtoansi/demo/dos.ansi new file mode 100644 index 000000000..2ce5cda46 --- /dev/null +++ b/contrib/ppmtoansi/demo/dos.ansi @@ -0,0 +1 @@ +[9;;1- [15;;1- [18;;5-l[9;1;3-$[13;1;3-$[17;1;1-[9;2;1- [12;2;1- [15;2;1- [17;2;1-[9;3;1- [15;3;1- [18;3;5-l[9;4;1- [15;4;1- [23;4;1-[9;5;1- [15;5;1- [23;5;1-[9;6;1- [15;6;1- [18;6;5-l[8;8;4-I [14;8;4-m[19;8;5-[8;9;1-@[12;9;2-L[18;9;2-[8;10;1-@[11;10;1-`[13;10;1-@[18;10;1-[20;10;1-`[8;11;1-@[11;11;1-`[13;11;1-@[19;11;5-[8;12;1-@[11;12;1-`[13;12;1-@[20;12;1-`[24;12;1-[8;13;1-@[12;13;2-L[18;13;2-l[24;13;1-[8;14;4-I [14;14;4-m[19;14;5-
\ No newline at end of file diff --git a/contrib/ppmtoansi/demo/dos.ppm b/contrib/ppmtoansi/demo/dos.ppm new file mode 100644 index 000000000..6efde7fa0 --- /dev/null +++ b/contrib/ppmtoansi/demo/dos.ppm @@ -0,0 +1,51 @@ +P3 +17 16 +65535 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 +0 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 65535 0 0 +65535 0 0 65535 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 +0 65535 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 65535 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 65535 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 0 0 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 65535 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 +0 65535 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 65535 0 65535 +0 65535 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 65535 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/contrib/ppmtoansi/demo/dos.xpm b/contrib/ppmtoansi/demo/dos.xpm new file mode 100644 index 000000000..471c4edff --- /dev/null +++ b/contrib/ppmtoansi/demo/dos.xpm @@ -0,0 +1,29 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"17 16 6 1", +/* colors */ +"` c #000000", +"a c #00FFFF", +"b c #00FF00", +"c c #FF00FF", +"d c #FF0000", +"e c #FFFF00", +/* pixels */ +"`d`````d``aaaaa``", +"`ddd`ddd`a```````", +"`d``d``d`a```````", +"`d`````d``aaaaa``", +"`d`````d```````a`", +"`d`````d```````a`", +"`d`````d``aaaaa``", +"`````````````````", +"bbbb``eeee`ccccc`", +"b```be````ce`````", +"b``e`b````c`e````", +"b``e`b`````ccccc`", +"b``e`b``````e```c", +"b```be````ee````c", +"bbbb``eeee`ccccc`", +"`````````````````" +}; diff --git a/contrib/ppmtoansi/demo/etherboot.ansi b/contrib/ppmtoansi/demo/etherboot.ansi Binary files differnew file mode 100644 index 000000000..7975f36ce --- /dev/null +++ b/contrib/ppmtoansi/demo/etherboot.ansi diff --git a/contrib/ppmtoansi/demo/etherboot.ppm b/contrib/ppmtoansi/demo/etherboot.ppm new file mode 100644 index 000000000..da5b2458c --- /dev/null +++ b/contrib/ppmtoansi/demo/etherboot.ppm @@ -0,0 +1,99 @@ +P3 +32 16 +65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 +0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 0 0 0 +0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 +0 65535 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 +0 0 0 0 65535 0 0 0 0 0 0 0 0 65535 0 0 0 0 +0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 +0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +0 0 0 65535 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 +0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 +0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +0 0 0 65535 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 +0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 +0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 +0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 +0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 65535 65535 +0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 diff --git a/contrib/ppmtoansi/demo/etherboot.xpm b/contrib/ppmtoansi/demo/etherboot.xpm new file mode 100644 index 000000000..d42171461 --- /dev/null +++ b/contrib/ppmtoansi/demo/etherboot.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"32 16 4 1", +/* colors */ +"` c #000000", +"a c #00FFFF", +"b c #00FF00", +"c c #FF0000", +/* pixels */ +"``a``a``a``a``a``a``a``a``a``a``", +"``a``a``a``a``a``a``a``a``a``a``", +"cccccccccccccccccccccccccccccccc", +"c``bbbb`bbbb`bbbb`bbbbb`bbbb```c", +"c``bbbb`b``b`b``b```b```bbbb```c", +"c``b``b`b``b`b``b```b```b``````c", +"`c`bbbb`bbbb`bbbb```b```b``````c", +"``c````````````````````````````c", +"`c`bbbbb`bbbb`bbbbb`bbbb```````c", +"c````b```b``````b```bbbb```````c", +"c````b```bbb````b```b``````````c", +"c````b```b``````b```b``````````c", +"cccccccccccccccccccccccccccccccc", +"``a``a``a``a``a``a``a``a``a``a``", +"``a``a``a``a``a``a``a``a``a``a``", +"````````````````````````````````" +}; diff --git a/contrib/ppmtoansi/demo/flash.ansi b/contrib/ppmtoansi/demo/flash.ansi new file mode 100644 index 000000000..43837a78e --- /dev/null +++ b/contrib/ppmtoansi/demo/flash.ansi @@ -0,0 +1 @@ +[11;;2-l[11;1;2-l[17;1;1-`[11;2;2-l[16;2;2-l[11;3;2-l[15;3;3-m[11;4;2-l[14;4;4-m[11;5;2-l[14;5;4-m[11;6;4-m[16;6;2-l[11;7;4-m[16;7;2-l[11;8;3-m[16;8;2-l[11;9;2-l[16;9;2-l[11;10;1-`[16;10;2-l[16;11;2-l[13;12;2-l[16;12;2-l[19;12;2-l[14;13;6-m[15;14;4-m[16;15;2-l
\ No newline at end of file diff --git a/contrib/ppmtoansi/demo/flash.ppm b/contrib/ppmtoansi/demo/flash.ppm new file mode 100644 index 000000000..1464af6ef --- /dev/null +++ b/contrib/ppmtoansi/demo/flash.ppm @@ -0,0 +1,35 @@ +P3 +10 16 +65535 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 65535 0 65535 65535 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 65535 65535 0 65535 65535 0 +0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 diff --git a/contrib/ppmtoansi/demo/flash.xpm b/contrib/ppmtoansi/demo/flash.xpm new file mode 100644 index 000000000..25419d706 --- /dev/null +++ b/contrib/ppmtoansi/demo/flash.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"10 16 2 1", +/* colors */ +" c #000000", +"x c #FFFF00", +/* pixels */ +"xx ", +"xx x ", +"xx xx ", +"xx xxx ", +"xx xxxx ", +"xx xxxx ", +"xxxx xx ", +"xxxx xx ", +"xxx xx ", +"xx xx ", +"x xx ", +" xx ", +" xx xx xx", +" xxxxxx ", +" xxxx ", +" xx ", +}; diff --git a/contrib/ppmtoansi/demo/floppy.ansi b/contrib/ppmtoansi/demo/floppy.ansi new file mode 100644 index 000000000..f4267f409 --- /dev/null +++ b/contrib/ppmtoansi/demo/floppy.ansi @@ -0,0 +1 @@ +[9;;14-%m@[8;1;16-$[l[8;2;17-$[l [8;3;17-$[l [8;4;17-$m [8;5;17;1+[8;6;17;1+[8;7;17-$m [8;8;17-$mۉ [8;9;17-$m [8;10;17-$mۉ [8;11;17-$m [8;12;17-$mۉ [8;13;17-2mm [8;14;17-2kmۤ [9;15;15-'mlH
\ No newline at end of file diff --git a/contrib/ppmtoansi/demo/floppy.ppm b/contrib/ppmtoansi/demo/floppy.ppm new file mode 100644 index 000000000..2b0b28633 --- /dev/null +++ b/contrib/ppmtoansi/demo/floppy.ppm @@ -0,0 +1,51 @@ +P3 +17 16 +65535 +0 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 0 0 0 0 0 0 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 +65535 0 0 65535 65535 0 65535 0 0 65535 0 0 0 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 +65535 0 0 65535 65535 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 +65535 0 0 65535 65535 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 65535 65535 65535 0 65535 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 +65535 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 65535 65535 65535 0 65535 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 +65535 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 65535 65535 65535 0 65535 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 +65535 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 0 0 65535 0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 0 65535 0 0 65535 65535 0 0 +65535 0 0 0 0 65535 0 0 65535 0 65535 65535 65535 0 65535 65535 0 65535 +65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 +65535 0 65535 0 65535 65535 0 0 65535 0 0 65535 65535 0 0 +0 0 0 65535 0 0 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 65535 0 0 65535 0 0 0 0 0 diff --git a/contrib/ppmtoansi/demo/floppy.xpm b/contrib/ppmtoansi/demo/floppy.xpm new file mode 100644 index 000000000..8bb60d293 --- /dev/null +++ b/contrib/ppmtoansi/demo/floppy.xpm @@ -0,0 +1,29 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"17 16 6 1", +/* colors */ +"` c #000000", +"a c #00FFFF", +"b c #FF00FF", +"c c #FF0000", +"d c #FFFF00", +"e c #0000FF", +/* pixels */ +"`ccdccddddddddc``", +"cccdccddddcccdcc`", +"cccdccddddcccdccc", +"cccdccddddcccdccc", +"cccdddddddddddccc", +"ccccccccccccccccc", +"ccccccccccccccccc", +"cccaaaaaaaaaaaccc", +"cccabbbbbbbbbaccc", +"cccaaaaaaaaaaaccc", +"cccabbbbbbbbbaccc", +"cccaaaaaaaaaaaccc", +"cccabbbbbbbbbaccc", +"ceeaaaaaaaaaaaeec", +"ceeabbbbbbbbbaeec", +"`ccaaaaaaaaaaacc`" +}; diff --git a/contrib/ppmtoansi/demo/hd.ansi b/contrib/ppmtoansi/demo/hd.ansi Binary files differnew file mode 100644 index 000000000..33bda53c5 --- /dev/null +++ b/contrib/ppmtoansi/demo/hd.ansi diff --git a/contrib/ppmtoansi/demo/hd.ppm b/contrib/ppmtoansi/demo/hd.ppm new file mode 100644 index 000000000..34878bf9f --- /dev/null +++ b/contrib/ppmtoansi/demo/hd.ppm @@ -0,0 +1,51 @@ +P3 +17 16 +65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 +65535 0 0 0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 +0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 65535 0 +65535 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0 +65535 0 0 0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 +0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +65535 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0 +65535 0 0 0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +65535 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0 +65535 0 0 0 65535 0 65535 0 65535 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 65535 0 +65535 0 0 65535 65535 0 65535 0 0 0 0 0 0 0 0 +65535 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 +65535 0 0 65535 0 0 0 0 65535 0 0 65535 0 0 65535 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 0 65535 65535 0 65535 65535 0 0 65535 0 0 65535 +0 0 0 0 0 65535 0 65535 65535 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 65535 65535 +0 65535 65535 0 65535 65535 0 0 65535 0 65535 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 65535 65535 0 65535 65535 0 0 65535 +0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 0 65535 0 65535 65535 0 65535 65535 0 0 65535 +0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 65535 65535 0 0 65535 0 65535 65535 0 0 65535 0 0 0 +0 0 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 +0 65535 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/contrib/ppmtoansi/demo/hd.xpm b/contrib/ppmtoansi/demo/hd.xpm new file mode 100644 index 000000000..280c7abcb --- /dev/null +++ b/contrib/ppmtoansi/demo/hd.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"17 16 7 1", +/* colors */ +"` c #000000", +"a c #00FFFF", +"b c #00FF00", +"c c #FF00FF", +"d c #FF0000", +"e c #FFFF00", +"f c #0000FF", +/* pixels */ +"`````````````````", +"ddddddddddddd````", +"dbbbbbbbbbbbddd``", +"dbccccbccccbdeed`", +"dbccccbcbbbbdeed`", +"dbcbbbbcbbbbdeed`", +"dbcbbbbccccbded``", +"dbbbbbbbbbbbddfff", +"dddddddddddddaaff", +"`faddddddddaaafaf", +"ffffffffffffffaaf", +"faaaaaaaaaaaafaaf", +"faaaaaafffffafaf`", +"faaaaaaaaaaaaff``", +"ffffffffffffff```", +"`````````````````" +}; diff --git a/contrib/ppmtoansi/demo/ibmmap.ppm b/contrib/ppmtoansi/demo/ibmmap.ppm new file mode 100644 index 000000000..648676e48 --- /dev/null +++ b/contrib/ppmtoansi/demo/ibmmap.ppm @@ -0,0 +1,11 @@ +P3 +8 1 +255 + 0 0 0 +255 0 0 + 0 255 0 + 0 0 255 +255 255 0 +255 0 255 + 0 255 255 +255 255 255 diff --git a/contrib/ppmtoansi/demo/ibmmap.xpm b/contrib/ppmtoansi/demo/ibmmap.xpm new file mode 100644 index 000000000..06d4d990c --- /dev/null +++ b/contrib/ppmtoansi/demo/ibmmap.xpm @@ -0,0 +1,16 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"8 1 8 1", +/* colors */ +"` c #000000", +"a c #00FFFF", +"b c #00FF00", +"c c #FF00FF", +"d c #FF0000", +"e c #FFFFFF", +"f c #FFFF00", +"g c #0000FF", +/* pixels */ +"`dbgfcae" +}; diff --git a/contrib/ppmtoansi/demo/linux-logo.ansi b/contrib/ppmtoansi/demo/linux-logo.ansi Binary files differnew file mode 100644 index 000000000..165f834b2 --- /dev/null +++ b/contrib/ppmtoansi/demo/linux-logo.ansi diff --git a/contrib/ppmtoansi/demo/linux-logo.ppm b/contrib/ppmtoansi/demo/linux-logo.ppm new file mode 100644 index 000000000..18604b445 --- /dev/null +++ b/contrib/ppmtoansi/demo/linux-logo.ppm @@ -0,0 +1,552 @@ +P3 +52 61 +65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +65535 65535 65535 0 0 0 0 0 0 65535 65535 65535 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 65535 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 0 65535 65535 65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 0 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 0 0 65535 65535 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 +65535 65535 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 +65535 65535 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 0 0 65535 0 0 0 0 0 65535 0 0 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 0 0 0 0 65535 0 0 65535 +0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 0 0 0 +0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 0 0 65535 +0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 0 0 0 0 0 0 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 0 0 65535 +65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 0 0 0 0 65535 0 0 65535 +0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 65535 0 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 65535 0 0 65535 0 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 0 65535 65535 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 0 0 +0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 65535 0 0 +65535 0 0 65535 0 0 65535 65535 0 65535 0 0 65535 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 65535 0 0 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 65535 diff --git a/contrib/ppmtoansi/demo/linux-logo.xpm b/contrib/ppmtoansi/demo/linux-logo.xpm new file mode 100644 index 000000000..fd2dd671a --- /dev/null +++ b/contrib/ppmtoansi/demo/linux-logo.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"52 61 5 1", +/* colors */ +"` c #000000", +"a c #FF0000", +"b c #FFFFFF", +"c c #FFFF00", +"d c #0000FF", +/* pixels */ +"dddddddddddddddddddddd```````ddddddddddddddddddddddd", +"dddddddddddddddddddd```````````ddddddddddddddddddddd", +"ddddddddddddddddddd`````````````dddddddddddddddddddd", +"dddddddddddddddddd```````````````ddddddddddddddddddd", +"ddddddddddddddddd`````````````````dddddddddddddddddd", +"ddddddddddddddddd`````````````````dddddddddddddddddd", +"ddddddddddddddddd``````````````````ddddddddddddddddd", +"ddddddddddddddddd``````````````````ddddddddddddddddd", +"ddddddddddddddddd``````````````````ddddddddddddddddd", +"ddddddddddddddddd``bb`````bbbb`````ddddddddddddddddd", +"ddddddddddddddddd``bbb```bbbbb`````ddddddddddddddddd", +"ddddddddddddddddd`b``b```bb``bb````ddddddddddddddddd", +"ddddddddddddddddd`b``````b````b````ddddddddddddddddd", +"ddddddddddddddddd`````cccc````b````ddddddddddddddddd", +"ddddddddddddddddd``b`cccccca`b``````dddddddddddddddd", +"ddddddddddddddddd``acccccccccc``````dddddddddddddddd", +"ddddddddddddddddd``cccccccccccc`````dddddddddddddddd", +"ddddddddddddddddd``ccccccccccca`````dddddddddddddddd", +"ddddddddddddddddd```ccccccaccc``````dddddddddddddddd", +"ddddddddddddddddd``bacccaccccbb``````ddddddddddddddd", +"ddddddddddddddddd``bbacccacbbbb```````dddddddddddddd", +"ddddddddddddddddd``bbbaaccbbbbbb``````dddddddddddddd", +"dddddddddddddddd```bbbbbbbbbbbbb```````ddddddddddddd", +"ddddddddddddddd```bbbbbbbbbbbbbbb``````ddddddddddddd", +"dddddddddddddd```bbbbbbbbbbbbbbbb```````dddddddddddd", +"dddddddddddddd```bbbbbbbbbbbbbbbbb```````ddddddddddd", +"ddddddddddddd```bbbbbbbbbbbbbbbbbb````````dddddddddd", +"dddddddddddd````bbbbbbbbbbbbbbbbbb````````dddddddddd", +"dddddddddddd````bbbbbbbbbbbbbbbbbbb````````ddddddddd", +"ddddddddddd````bbbbbbbbbbbbbbbbbbbb`````````dddddddd", +"ddddddddddd````bbbbbbbbbbbbbbbbbbbbb````````dddddddd", +"ddddddddddd```bbbbbbbbbbbbbbbbbbbbbb````````dddddddd", +"dddddddddd````bbbbbbbbbbbbbbbbbbbbbbb````````ddddddd", +"dddddddddd```bbbbbbbbbbbbbbbbbbbbbbbb````````ddddddd", +"ddddddddd````bbbbbbbbbbbbbbbbbbbbbbbb````````ddddddd", +"ddddddddd````bbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"ddddddddd```bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"dddddddd````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"ddddddd`````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"ddddddd`````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"ddddddd`````bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"ddddddd``c``bbbbbbbbbbbbbbbbbbbbbbbbb`````````dddddd", +"dddddddcccc``bbbbbbbbbbbbbbbbbbbbbbcc`````````dddddd", +"dddddddccccc``bbbbbbbbbbbbbbbbbbbbcccc```````cdddddd", +"ddddddccccccc``bbbbbbbbbbbbbbbbbbbccca``````ccaddddd", +"dddddcccccccca``bbbbbbbbbbbbbbbbbbccca`````cccaddddd", +"dacccccccccccc```bbbbbbbbbbbbbbbbbccccaa`aaccccddddd", +"acccccccccccccc````bbbbbbbbbbbbbbbcccccccccccccadddd", +"acccccccccccccc````bbbbbbbbbbbbbbbccccccccccccccdddd", +"accccccccccccccc````bbbbbbbbbbbbbbaccccccccccccccadd", +"daccccccccccccccc``bbbbbbbbbbbbbb``ccccccccccccccccd", +"daccccccccccccccccbbbbbbbbbbbbbb``accccccccccccccccc", +"acccccccccccccccccbbbbbbbbbbbbb```accccccccccccccccd", +"acccccccccccccccccabbbbbbbbbb`````accccccccccccccadd", +"dacccccccccccccccca``bbbb`````````acccccccccccccdddd", +"dacccccccccccccccca```````````````acccccccccccaddddd", +"ddaacccccccccccccca```````````````acccccccccaddddddd", +"ddddddaaaacccccccaddd```````````dddaccccccaddddddddd", +"ddddddddddaaaaaaaddddddddddddddddddaaacaaddddddddddd", +"ddddddddddddddadddddddddddddddddddddaaaadddddddddddd", +"dddddddddddddddddddddddddddddddddddddddddddddddddddd" +}; diff --git a/contrib/ppmtoansi/demo/make-ansi.sh b/contrib/ppmtoansi/demo/make-ansi.sh new file mode 100755 index 000000000..16d7b98d9 --- /dev/null +++ b/contrib/ppmtoansi/demo/make-ansi.sh @@ -0,0 +1,17 @@ +#!/bin/sh +xpmtoppm <linux-logo.xpm >linux-logo.ppm +../ppmtoansi -b 0/0/255 -y 10 -t 0/0/0:4 linux-logo.ppm >linux-logo.ansi +xpmtoppm <etherboot.xpm >etherboot.ppm +../ppmtoansi -b 0/0/0 etherboot.ppm >etherboot.ansi +xpmtoppm <text.xpm >text.ppm +../ppmtoansi -b 0/0/0 -x 10 text.ppm >text.ansi +xpmtoppm <x.xpm >x.ppm +../ppmtoansi -b 0/0/0 -x 8 x.ppm >x.ansi +xpmtoppm <dos.xpm >dos.ppm +../ppmtoansi -b 0/0/0 -x 8 dos.ppm >dos.ansi +xpmtoppm <hd.xpm >hd.ppm +../ppmtoansi -b 0/0/0 -x 8 hd.ppm >hd.ansi +xpmtoppm <floppy.xpm >floppy.ppm +../ppmtoansi -b 0/0/0 -x 8 floppy.ppm >floppy.ansi +xpmtoppm <flash.xpm >flash.ppm +../ppmtoansi -b 0/0/0 -x 11 flash.ppm >flash.ansi diff --git a/contrib/ppmtoansi/demo/text.ansi b/contrib/ppmtoansi/demo/text.ansi Binary files differnew file mode 100644 index 000000000..bbe7998a5 --- /dev/null +++ b/contrib/ppmtoansi/demo/text.ansi diff --git a/contrib/ppmtoansi/demo/text.ppm b/contrib/ppmtoansi/demo/text.ppm new file mode 100644 index 000000000..c6f87610e --- /dev/null +++ b/contrib/ppmtoansi/demo/text.ppm @@ -0,0 +1,51 @@ +P3 +13 16 +65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 +0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 +0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 +0 0 65535 65535 65535 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 0 +65535 65535 0 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 0 +65535 65535 0 65535 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 +65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 65535 +0 0 0 +0 0 0 0 0 0 65535 0 0 65535 65535 65535 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 65535 0 0 65535 0 0 0 +0 0 0 +0 0 0 65535 65535 0 65535 65535 0 65535 0 0 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 65535 65535 0 0 0 0 65535 65535 65535 0 +0 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 65535 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +65535 0 0 +65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 65535 +65535 65535 65535 65535 65535 65535 65535 65535 0 65535 65535 0 65535 65535 0 65535 65535 0 +0 0 0 +0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0 +0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 diff --git a/contrib/ppmtoansi/demo/text.xpm b/contrib/ppmtoansi/demo/text.xpm new file mode 100644 index 000000000..5261b9627 --- /dev/null +++ b/contrib/ppmtoansi/demo/text.xpm @@ -0,0 +1,28 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"13 16 5 1", +/* colors */ +"` c #000000", +"a c #FF0000", +"b c #FFFFFF", +"c c #FFFF00", +"d c #0000FF", +/* pixels */ +"`````ddd`````", +"````ddddd````", +"````dbdbd````", +"````dccdd````", +"````dccad````", +"`````bbbdd```", +"```dbbbbdd```", +"```dbbbbbdd``", +"``dbbbbbbdd``", +"``dbbbbbbddd`", +"``abbbbbbdd``", +"`ccabbbbbadc`", +"ccccbbbbcccca", +"cccccbbbcccc`", +"```aa````aa``", +"`````````````" +}; diff --git a/contrib/ppmtoansi/demo/x.ansi b/contrib/ppmtoansi/demo/x.ansi new file mode 100644 index 000000000..e2844b347 --- /dev/null +++ b/contrib/ppmtoansi/demo/x.ansi @@ -0,0 +1 @@ +[8;1;4-$[23;1;1- [9;2;4-$[22;2;1- [10;3;4-$[21;3;1- [11;4;4-$[20;4;1- [12;5;4-$[19;5;1- [13;6;4-$[18;6;1- [14;7;2-$[17;7;2-$[14;8;1- [16;8;4-$[13;9;1- [17;9;4-$[12;10;1- [18;10;4-$[11;11;1- [19;11;4-$[10;12;1- [20;12;4-$[9;13;1- [21;13;4-$
\ No newline at end of file diff --git a/contrib/ppmtoansi/demo/x.ppm b/contrib/ppmtoansi/demo/x.ppm new file mode 100644 index 000000000..53e5bcfc1 --- /dev/null +++ b/contrib/ppmtoansi/demo/x.ppm @@ -0,0 +1,51 @@ +P3 +17 16 +65535 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 +0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 0 0 65535 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 65535 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 +0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 65535 0 0 +65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 65535 0 0 +65535 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 0 0 +65535 0 0 65535 0 0 65535 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +65535 0 0 65535 0 0 65535 0 0 65535 0 0 0 0 0 +0 0 0 65535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 65535 0 0 65535 0 0 65535 0 0 65535 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/contrib/ppmtoansi/demo/x.xpm b/contrib/ppmtoansi/demo/x.xpm new file mode 100644 index 000000000..d06952700 --- /dev/null +++ b/contrib/ppmtoansi/demo/x.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"17 16 2 1", +/* colors */ +"` c #000000", +"a c #FF0000", +/* pixels */ +"`````````````````", +"aaaa```````````a`", +"`aaaa`````````a``", +"``aaaa```````a```", +"```aaaa`````a````", +"````aaaa```a`````", +"`````aaaa`a``````", +"``````aa`aa``````", +"``````a`aaaa`````", +"`````a```aaaa````", +"````a`````aaaa```", +"```a```````aaaa``", +"``a`````````aaaa`", +"`a```````````aaaa", +"`````````````````", +"`````````````````" +}; diff --git a/contrib/ppmtoansi/ppmtoansi.c b/contrib/ppmtoansi/ppmtoansi.c new file mode 100644 index 000000000..71d95cba7 --- /dev/null +++ b/contrib/ppmtoansi/ppmtoansi.c @@ -0,0 +1,235 @@ +#include <getopt.h> +#include <stdio.h> +#include <stdlib.h> + +static int palette[8][3] = { +/* black, red, green, yellow, */ + { 0, 0, 0},{255, 0, 0},{ 0,255, 0},{255,255, 0}, + { 0, 0,255},{255, 0,255},{ 0,255,255},{255,255,255}}; +/* blue, magenta, cyan, white */ + +static struct trans { + struct trans *next; + int idx,r,g,b; +} *trans = NULL; + +static int skipcomment(FILE *fp) +{ + int ch; + + for (;;) { + ch = getc(fp); + if (ch != '#') + return(ch); + while (ch != '\n' && ch != EOF) + ch = getc(fp); } +} + +static int readentry(FILE *fp,int format,int depth) +{ + int ch,i = 0; + + if (format == '3') { + while ((ch = getc(fp)) == ' ' || ch == '\t' || ch == '\r' || ch == '\n'); + if (ch < '0' || ch > '9') { + error: + fprintf(stderr,"Format error in input file\n"); + exit(1); } + for (; ch >= '0' && ch <= '9'; ch = getc(fp)) + i = 10*i + ch - '0'; } + else { + if ((i = getc(fp)) > depth || i < 0) + goto error; } + return((i*256)/(depth+1)); +} + +static void packpixel(char *data,int c) +{ + int i = 0, n = 0; + + while (c--) { + i = (i << 3) | (*data++ & 0x7); + if ((n += 3) >= 8) + putchar((i >> (n -= 8)) & 0xFF); } + if (n) + putchar(i << (8 - n)); + return; +} + +static int dg(int i) +{ + int d; + + for (d = 0; i; d++, i /= 10); + return(d); +} + +static char *i2s(char *buf,int i) +{ +/* if (!i) + *buf = '\000'; + else*/ + sprintf(buf,"%d",i); + return(buf); +} + +static void flushdata(int x,int y,int c,char *data) +{ + char b1[10],b2[10],b3[10],b4[10]; + int i,j,rle,v; + + for (i = j = v = 0; i < c; ) { + for (rle = 0; i+rle < c && data[i] == data[i+rle]; rle++); + if (rle > (i != j ? (v ? 4 : 6) : 0) + + ((v || (i != j)) ? 4+dg(rle)+dg(data[i]) + : 6+dg(x+i)+dg(y)+dg(rle)+dg(data[i]))) { + if (i != j) { + if (v) + printf("[%s-",i2s(b1,i-j)); + else + printf("[%s;%s;%s-",i2s(b1,x+j),i2s(b2,y),i2s(b3,i-j)); + packpixel(data+j,i-j); } + if (v++ || (i != j)) + printf("[%s;%s+",i2s(b1,rle),i2s(b2,data[i])); + else + printf("[%s;%s;%s;%s+",i2s(b1,x+i),i2s(b2,y), + i2s(b3,rle),i2s(b4,data[i])); + j = i += rle; } + else + i++; } + if (j != c) { + if (v) + printf("[%s-",i2s(b1,c-j)); + else + printf("[%s;%s;%s-",i2s(b1,x+j),i2s(b2,y),i2s(b3,c-j)); + packpixel(data+j,c-j); } + return; +} + +int main(int argc,char *argv[]) +{ + extern int optind; + extern char *optarg; + FILE *infile = NULL; + int ch,i,j,dist,idx; + int format,width,height,depth; + int bg = 0,bgred = 0,bggreen = 0,bgblue = 0; + int xoffset = 0,yoffset = 0; + int w,h,r,g,b,c; + struct trans *tp; + char *buf; + + while ((i = getopt(argc,argv,"b:t:x:y:")) >= 0) switch(i) { + case 'b': + bg++; + for (i = bgred = 0; optarg[i] >= '0' && optarg[i] <= '9'; + bgred = 10*bgred + optarg[i++] - '0'); + if (optarg[i++] != '/') + goto usage; + for (bggreen = 0; optarg[i] >= '0' && optarg[i] <= '9'; + bggreen = 10*bggreen + optarg[i++] - '0'); + if (optarg[i++] != '/') + goto usage; + for (bgblue = 0; optarg[i] >= '0' && optarg[i] <= '9'; + bgblue = 10*bgblue + optarg[i++] - '0'); + if (optarg[i]) + goto usage; + break; + case 't': + if ((tp = malloc(sizeof(struct trans))) == NULL) + goto usage; + for (i = tp->r = 0; optarg[i] >= '0' && optarg[i] <= '9'; + tp->r = 10*tp->r + optarg[i++] - '0'); + if (optarg[i++] != '/') + goto usage; + for (tp->g = 0; optarg[i] >= '0' && optarg[i] <= '9'; + tp->g = 10*tp->g + optarg[i++] - '0'); + if (optarg[i++] != '/') + goto usage; + for (tp->b = 0; optarg[i] >= '0' && optarg[i] <= '9'; + tp->b = 10*tp->b + optarg[i++] - '0'); + if (optarg[i++] != ':') + goto usage; + if (optarg[i] == '-') { + j = -1; i++; } + else j = 1; + for (tp->idx = 0; optarg[i] >= '0' && optarg[i] <= '9'; + tp->idx = 10*tp->idx + optarg[i++] - '0'); + tp->idx *= j; + if (tp->idx < -1 || tp->idx >= 8) + goto usage; + if (optarg[i]) + goto usage; + tp->next = trans; + trans = tp; + break; + case 'x': + for (i = xoffset = 0; optarg[i] >= '0' && optarg[i] <= '9'; + xoffset = 10*xoffset + optarg[i++] - '0'); + if (optarg[i]) + goto usage; + break; + case 'y': + for (i = yoffset = 0; optarg[i] >= '0' && optarg[i] <= '9'; + yoffset = 10*yoffset + optarg[i++] - '0'); + if (optarg[i]) + goto usage; + break; + default: + usage: + fprintf(stderr,"Usage: %s [-b r/g/b] [-t r/g/b:idx] " + "[-x offset] [-y offset] [ppmfile]\n",argv[0]); + exit(1); } + if (argc-optind == 0) + infile = stdin; + else if (argc-optind == 1) + infile = fopen(argv[optind],"r"); + if (!infile) + goto usage; + if ((ch = skipcomment(infile)) != 'P' || + ((format = getc(infile)) != '3' && format != '6') || + ((ch = getc(infile)) != '\n' && ch != '\r' && getc(infile) != '\n')) + goto usage; + for (width = 0; (ch = skipcomment(infile)) >= '0' && ch <= '9'; + width = 10*width + ch - '0'); + while (ch == ' ') ch = getc(infile); + for (height = 0; ch >= '0' && ch <= '9'; ch = getc(infile)) + height = 10*height + ch - '0'; + if (ch != '\n' && ch != '\r' && getc(infile) != '\n') + goto usage; + for (depth = 0; (ch = skipcomment(infile)) >= '0' && ch <= '9'; + depth = 10*depth + ch - '0'); + if (ch != '\n' && ch != '\r' && getc(infile) != '\n') + goto usage; + if (!width || !height || !depth /* || depth > 255 */) + goto usage; + if ((buf = malloc(width)) == NULL) + goto usage; + for (h = 0; h < height; h++) { + for (w = c = 0; w < width; w++) { + r = readentry(infile,format,depth); + g = readentry(infile,format,depth); + b = readentry(infile,format,depth); + idx = 255; + if (bg && bgred == r && + bggreen == g && bgblue == b) + idx = -1; + else for (tp = trans; tp; tp = tp->next) + if (tp->r == r && tp->g == g && tp->b == b) { + idx = tp->idx; + break; } + if (idx == 255) + for (idx = -1, dist = 3*255*255, i = 8; i--;) + if ((j = (r-palette[i][0])*(r-palette[i][0]) + + (g-palette[i][1])*(g-palette[i][1]) + + (b-palette[i][2])*(b-palette[i][2])) < dist) { + dist = j; idx = i; } + if (idx >= 0) + buf[c++] = idx; + else if (c) { + flushdata(w-c+xoffset,h+yoffset,c,buf); + c = 0; } } + if (c) + flushdata(w-c+xoffset,h+yoffset,c,buf); } + exit(0); +} diff --git a/contrib/ppmtoansi/ppmtoansi.man b/contrib/ppmtoansi/ppmtoansi.man new file mode 100644 index 000000000..b19f9795e --- /dev/null +++ b/contrib/ppmtoansi/ppmtoansi.man @@ -0,0 +1,120 @@ +.TH PPMTOANSI 1 "January 12, 1997" +.SH NAME +ppmtoansi \- Graphics Conversion Program For Extended ANSI Escape Codes +.SH SYNOPSIS +.B ppmtoansi +[ +.SM \-b +r/g/b ] [ +.SM \-t +r/g/b:idx] [ +.SM \-x +<xoffset> ] [ +.SM \-y +<yoffset> ] [ +<filename> ] +.SH DESCRIPTION +.I ppmtoansi +converts input files in +.IR ppm (5) +format to escape sequences that are understood by +.IR etherboot . +This allows for displaying icons and logos on the BOOT-Prom's splash +screen. +.PP +If no input file is specified, data is read from +.IR standard +.IR input . +All output is send to +.IR standard +.IR output , +error messages go to +.IR standard +.IR error . +.I ppmtoansi +tries to do some compression and minimizes the output filesize. +.SH OPTIONS +.TP +.B \-b +Specifies the +.IR red , +.IR green , and +.IR blue +intensities for the background color. This information is +used for providing a shape mask. All values are in the range from 0 to +255. +.TP +.B \-t +Allows for explicitly providing a translation between color values and +color indices. The indices are in the range 0 to 7 and conform to the +standard +.IR ANSI +.IR colorcodes . +.RS +.PP +0 black 4 blue +.PP +1 red 5 magenta +.PP +2 green 6 cyan +.PP +3 yellow 7 white +.PP +If no translations apply, +.IR ppmtoansi +will automatically select the color that is closest. +.RE +.TP +.B \-x +Specify an X offset relative to the current text cursor position. +.TP +.B \-y +Specify an Y offset relative to the current text cursor position. +.SH FILE FORMAT +.IR ppmtoansi +uses these extensions to the standard +.B ANSI escape +.BR codes . +.TP +.B <esc>[a;b;c;d+<data> +Draw pixel data. Use one byte per pixel. Colors are encoded as shown +above. In text mode, graphics is approximated by outputting suitable +characters. Parameters differ depending on the number of parameters +passed: +.RS +.TP +.B cnt +.IR cnt +data bytes follow. They will be drawn to the right of the last +graphics position. +.TP +.B rle;col +The next +.IR rle +pixels have the value +.IR col . +They will be drawn to the right of the last graphics position. No data +bytes follow. +.TP +.B x;y;cnt +.IR cnt +data bytes follow. They will be drawn relative to the top left corner +of the text cursor with an offset of +.RI ( x / y ). +.TP +.B x;y;rle;col +the next +.IR rle +pixels have the value +.IR col . +They will be drawn relative to the top left corner of the text cursor +with an offset of +.RI ( x / y ). +No data bytes follow. +.RE +.TP +.B <esc>[a;b;c;d\-<data> +same as above, but pack pixels into three bits. The first pixel is +stored in the three most significant bits of the first data byte. +.SH "SEE ALSO" +ppm(5), mknbi-linux(8), mknbi-dos(8). |
