changes from H.G. Muller; version 4.3.7 v4.3.7
authorH.G. Muller <h.g.muller@hccnet.nl>
Sun, 19 Apr 2009 16:44:15 +0000 (09:44 -0700)
committerArun Persaud <arun@nubati.net>
Sun, 19 Apr 2009 17:32:56 +0000 (10:32 -0700)
415 files changed:
backend.c
backend.h
bitmaps/260px-Hanzi.svg [new file with mode: 0644]
bitmaps/65px-Zhongwen.svg [new file with mode: 0644]
bitmaps/ANALYZE2_14.ICO [new file with mode: 0644]
bitmaps/ANALYZE_14.ICO [new file with mode: 0644]
bitmaps/BALOON_14.ICO [new file with mode: 0644]
bitmaps/BLACK_14.ICO [new file with mode: 0644]
bitmaps/CLOCK_14.ICO [new file with mode: 0644]
bitmaps/PONDER_14.ICO [new file with mode: 0644]
bitmaps/README.bitmaps
bitmaps/TRANS_14.ICO [new file with mode: 0644]
bitmaps/UNKNOWN_14.ICO [new file with mode: 0644]
bitmaps/WHITE_14.ICO [new file with mode: 0644]
bitmaps/a49c.bmp [new file with mode: 0644]
bitmaps/b108o.bmp [new file with mode: 0644]
bitmaps/b108s.bmp [new file with mode: 0644]
bitmaps/b108w.bmp [new file with mode: 0644]
bitmaps/b116o.bmp [new file with mode: 0644]
bitmaps/b116s.bmp [new file with mode: 0644]
bitmaps/b116w.bmp [new file with mode: 0644]
bitmaps/b129o.bmp [new file with mode: 0644]
bitmaps/b129s.bmp [new file with mode: 0644]
bitmaps/b129w.bmp [new file with mode: 0644]
bitmaps/b21o.bmp [new file with mode: 0644]
bitmaps/b21s.bmp [new file with mode: 0644]
bitmaps/b21w.bmp [new file with mode: 0644]
bitmaps/b25o.bmp [new file with mode: 0644]
bitmaps/b25s.bmp [new file with mode: 0644]
bitmaps/b25w.bmp [new file with mode: 0644]
bitmaps/b29o.bmp [new file with mode: 0644]
bitmaps/b29s.bmp [new file with mode: 0644]
bitmaps/b29w.bmp [new file with mode: 0644]
bitmaps/b33o.bmp [new file with mode: 0644]
bitmaps/b33s.bmp [new file with mode: 0644]
bitmaps/b33w.bmp [new file with mode: 0644]
bitmaps/b37o.bmp [new file with mode: 0644]
bitmaps/b37s.bmp [new file with mode: 0644]
bitmaps/b37w.bmp [new file with mode: 0644]
bitmaps/b40o.bmp [new file with mode: 0644]
bitmaps/b40s.bmp [new file with mode: 0644]
bitmaps/b40w.bmp [new file with mode: 0644]
bitmaps/b45o.bmp [new file with mode: 0644]
bitmaps/b45s.bmp [new file with mode: 0644]
bitmaps/b45w.bmp [new file with mode: 0644]
bitmaps/b49o.bmp [new file with mode: 0644]
bitmaps/b49s.bmp [new file with mode: 0644]
bitmaps/b49w.bmp [new file with mode: 0644]
bitmaps/b54o.bmp [new file with mode: 0644]
bitmaps/b54s.bmp [new file with mode: 0644]
bitmaps/b54w.bmp [new file with mode: 0644]
bitmaps/b58o.bmp [new file with mode: 0644]
bitmaps/b58s.bmp [new file with mode: 0644]
bitmaps/b58w.bmp [new file with mode: 0644]
bitmaps/b64o.bmp [new file with mode: 0644]
bitmaps/b64s.bmp [new file with mode: 0644]
bitmaps/b64w.bmp [new file with mode: 0644]
bitmaps/b72o.bmp [new file with mode: 0644]
bitmaps/b72s.bmp [new file with mode: 0644]
bitmaps/b72w.bmp [new file with mode: 0644]
bitmaps/b80o.bmp [new file with mode: 0644]
bitmaps/b80s.bmp [new file with mode: 0644]
bitmaps/b80w.bmp [new file with mode: 0644]
bitmaps/b87o.bmp [new file with mode: 0644]
bitmaps/b87s.bmp [new file with mode: 0644]
bitmaps/b87w.bmp [new file with mode: 0644]
bitmaps/b95o.bmp [new file with mode: 0644]
bitmaps/b95s.bmp [new file with mode: 0644]
bitmaps/b95w.bmp [new file with mode: 0644]
bitmaps/board.ico [new file with mode: 0644]
bitmaps/dk49o.bmp [new file with mode: 0644]
bitmaps/dk49s.bmp [new file with mode: 0644]
bitmaps/dk49w.bmp [new file with mode: 0644]
bitmaps/dk72o.bmp [new file with mode: 0644]
bitmaps/dk72s.bmp [new file with mode: 0644]
bitmaps/dk72w.bmp [new file with mode: 0644]
bitmaps/e129o.bmp [new file with mode: 0644]
bitmaps/g49o.bmp [new file with mode: 0644]
bitmaps/g49s.bmp [new file with mode: 0644]
bitmaps/g49w.bmp [new file with mode: 0644]
bitmaps/g72o.bmp [new file with mode: 0644]
bitmaps/g72s.bmp [new file with mode: 0644]
bitmaps/g72w.bmp [new file with mode: 0644]
bitmaps/galactic.bmp [new file with mode: 0644]
bitmaps/h129o.bmp [new file with mode: 0644]
bitmaps/h49o.bmp
bitmaps/h49s.bmp
bitmaps/h49w.bmp
bitmaps/h72o.bmp
bitmaps/h72s.bmp
bitmaps/h72w.bmp
bitmaps/icon_b.bmp [new file with mode: 0644]
bitmaps/icon_b.ico [new file with mode: 0644]
bitmaps/icon_o.ico [new file with mode: 0644]
bitmaps/icon_ob.ico [new file with mode: 0644]
bitmaps/icon_ow.ico [new file with mode: 0644]
bitmaps/icon_w.bmp [new file with mode: 0644]
bitmaps/icon_w.ico [new file with mode: 0644]
bitmaps/icon_whi.ico [new file with mode: 0644]
bitmaps/k108o.bmp [new file with mode: 0644]
bitmaps/k108s.bmp [new file with mode: 0644]
bitmaps/k108w.bmp [new file with mode: 0644]
bitmaps/k116o.bmp [new file with mode: 0644]
bitmaps/k116s.bmp [new file with mode: 0644]
bitmaps/k116w.bmp [new file with mode: 0644]
bitmaps/k129o.bmp [new file with mode: 0644]
bitmaps/k129s.bmp [new file with mode: 0644]
bitmaps/k129w.bmp [new file with mode: 0644]
bitmaps/k21o.bmp [new file with mode: 0644]
bitmaps/k21s.bmp [new file with mode: 0644]
bitmaps/k21w.bmp [new file with mode: 0644]
bitmaps/k25o.bmp [new file with mode: 0644]
bitmaps/k25s.bmp [new file with mode: 0644]
bitmaps/k25w.bmp [new file with mode: 0644]
bitmaps/k29o.bmp [new file with mode: 0644]
bitmaps/k29s.bmp [new file with mode: 0644]
bitmaps/k29w.bmp [new file with mode: 0644]
bitmaps/k33o.bmp [new file with mode: 0644]
bitmaps/k33s.bmp [new file with mode: 0644]
bitmaps/k33w.bmp [new file with mode: 0644]
bitmaps/k37o.bmp [new file with mode: 0644]
bitmaps/k37s.bmp [new file with mode: 0644]
bitmaps/k37w.bmp [new file with mode: 0644]
bitmaps/k40o.bmp [new file with mode: 0644]
bitmaps/k40s.bmp [new file with mode: 0644]
bitmaps/k40w.bmp [new file with mode: 0644]
bitmaps/k45o.bmp [new file with mode: 0644]
bitmaps/k45s.bmp [new file with mode: 0644]
bitmaps/k45w.bmp [new file with mode: 0644]
bitmaps/k49o.bmp [new file with mode: 0644]
bitmaps/k49s.bmp [new file with mode: 0644]
bitmaps/k49w.bmp [new file with mode: 0644]
bitmaps/k54o.bmp [new file with mode: 0644]
bitmaps/k54s.bmp [new file with mode: 0644]
bitmaps/k54w.bmp [new file with mode: 0644]
bitmaps/k58o.bmp [new file with mode: 0644]
bitmaps/k58s.bmp [new file with mode: 0644]
bitmaps/k58w.bmp [new file with mode: 0644]
bitmaps/k64o.bmp [new file with mode: 0644]
bitmaps/k64s.bmp [new file with mode: 0644]
bitmaps/k64w.bmp [new file with mode: 0644]
bitmaps/k72o.bmp [new file with mode: 0644]
bitmaps/k72s.bmp [new file with mode: 0644]
bitmaps/k72w.bmp [new file with mode: 0644]
bitmaps/k80o.bmp [new file with mode: 0644]
bitmaps/k80s.bmp [new file with mode: 0644]
bitmaps/k80w.bmp [new file with mode: 0644]
bitmaps/k87o.bmp [new file with mode: 0644]
bitmaps/k87s.bmp [new file with mode: 0644]
bitmaps/k87w.bmp [new file with mode: 0644]
bitmaps/k95o.bmp [new file with mode: 0644]
bitmaps/k95s.bmp [new file with mode: 0644]
bitmaps/k95w.bmp [new file with mode: 0644]
bitmaps/l49o.bmp [new file with mode: 0644]
bitmaps/l49s.bmp [new file with mode: 0644]
bitmaps/l49w.bmp [new file with mode: 0644]
bitmaps/l72o.bmp [new file with mode: 0644]
bitmaps/l72s.bmp [new file with mode: 0644]
bitmaps/l72w.bmp [new file with mode: 0644]
bitmaps/m129o.bmp [new file with mode: 0644]
bitmaps/n108o.bmp [new file with mode: 0644]
bitmaps/n108s.bmp [new file with mode: 0644]
bitmaps/n108w.bmp [new file with mode: 0644]
bitmaps/n116o.bmp [new file with mode: 0644]
bitmaps/n116s.bmp [new file with mode: 0644]
bitmaps/n116w.bmp [new file with mode: 0644]
bitmaps/n129o.bmp [new file with mode: 0644]
bitmaps/n129s.bmp [new file with mode: 0644]
bitmaps/n129w.bmp [new file with mode: 0644]
bitmaps/n21o.bmp [new file with mode: 0644]
bitmaps/n21s.bmp [new file with mode: 0644]
bitmaps/n21w.bmp [new file with mode: 0644]
bitmaps/n25o.bmp [new file with mode: 0644]
bitmaps/n25s.bmp [new file with mode: 0644]
bitmaps/n25w.bmp [new file with mode: 0644]
bitmaps/n29o.bmp [new file with mode: 0644]
bitmaps/n29s.bmp [new file with mode: 0644]
bitmaps/n29w.bmp [new file with mode: 0644]
bitmaps/n33o.bmp [new file with mode: 0644]
bitmaps/n33s.bmp [new file with mode: 0644]
bitmaps/n33w.bmp [new file with mode: 0644]
bitmaps/n37o.bmp [new file with mode: 0644]
bitmaps/n37s.bmp [new file with mode: 0644]
bitmaps/n37w.bmp [new file with mode: 0644]
bitmaps/n40o.bmp [new file with mode: 0644]
bitmaps/n40s.bmp [new file with mode: 0644]
bitmaps/n40w.bmp [new file with mode: 0644]
bitmaps/n45o.bmp [new file with mode: 0644]
bitmaps/n45s.bmp [new file with mode: 0644]
bitmaps/n45w.bmp [new file with mode: 0644]
bitmaps/n49o.bmp [new file with mode: 0644]
bitmaps/n49s.bmp [new file with mode: 0644]
bitmaps/n49w.bmp [new file with mode: 0644]
bitmaps/n54o.bmp [new file with mode: 0644]
bitmaps/n54s.bmp [new file with mode: 0644]
bitmaps/n54w.bmp [new file with mode: 0644]
bitmaps/n58o.bmp [new file with mode: 0644]
bitmaps/n58s.bmp [new file with mode: 0644]
bitmaps/n58w.bmp [new file with mode: 0644]
bitmaps/n64o.bmp [new file with mode: 0644]
bitmaps/n64s.bmp [new file with mode: 0644]
bitmaps/n64w.bmp [new file with mode: 0644]
bitmaps/n72o.bmp [new file with mode: 0644]
bitmaps/n72s.bmp [new file with mode: 0644]
bitmaps/n72w.bmp [new file with mode: 0644]
bitmaps/n80o.bmp [new file with mode: 0644]
bitmaps/n80s.bmp [new file with mode: 0644]
bitmaps/n80w.bmp [new file with mode: 0644]
bitmaps/n87o.bmp [new file with mode: 0644]
bitmaps/n87s.bmp [new file with mode: 0644]
bitmaps/n87w.bmp [new file with mode: 0644]
bitmaps/n95o.bmp [new file with mode: 0644]
bitmaps/n95s.bmp [new file with mode: 0644]
bitmaps/n95w.bmp [new file with mode: 0644]
bitmaps/ni49o.bmp [new file with mode: 0644]
bitmaps/ni49s.bmp [new file with mode: 0644]
bitmaps/ni49w.bmp [new file with mode: 0644]
bitmaps/ni72o.bmp [new file with mode: 0644]
bitmaps/ni72s.bmp [new file with mode: 0644]
bitmaps/ni72w.bmp [new file with mode: 0644]
bitmaps/p108o.bmp [new file with mode: 0644]
bitmaps/p108s.bmp [new file with mode: 0644]
bitmaps/p108w.bmp [new file with mode: 0644]
bitmaps/p116o.bmp [new file with mode: 0644]
bitmaps/p116s.bmp [new file with mode: 0644]
bitmaps/p116w.bmp [new file with mode: 0644]
bitmaps/p129o.bmp [new file with mode: 0644]
bitmaps/p129s.bmp [new file with mode: 0644]
bitmaps/p129w.bmp [new file with mode: 0644]
bitmaps/p21o.bmp [new file with mode: 0644]
bitmaps/p21s.bmp [new file with mode: 0644]
bitmaps/p21w.bmp [new file with mode: 0644]
bitmaps/p25o.bmp [new file with mode: 0644]
bitmaps/p25s.bmp [new file with mode: 0644]
bitmaps/p25w.bmp [new file with mode: 0644]
bitmaps/p29o.bmp [new file with mode: 0644]
bitmaps/p29s.bmp [new file with mode: 0644]
bitmaps/p29w.bmp [new file with mode: 0644]
bitmaps/p33o.bmp [new file with mode: 0644]
bitmaps/p33s.bmp [new file with mode: 0644]
bitmaps/p33w.bmp [new file with mode: 0644]
bitmaps/p37o.bmp [new file with mode: 0644]
bitmaps/p37s.bmp [new file with mode: 0644]
bitmaps/p37w.bmp [new file with mode: 0644]
bitmaps/p40o.bmp [new file with mode: 0644]
bitmaps/p40s.bmp [new file with mode: 0644]
bitmaps/p40w.bmp [new file with mode: 0644]
bitmaps/p45o.bmp [new file with mode: 0644]
bitmaps/p45s.bmp [new file with mode: 0644]
bitmaps/p45w.bmp [new file with mode: 0644]
bitmaps/p49o.bmp [new file with mode: 0644]
bitmaps/p49s.bmp [new file with mode: 0644]
bitmaps/p49w.bmp [new file with mode: 0644]
bitmaps/p54o.bmp [new file with mode: 0644]
bitmaps/p54s.bmp [new file with mode: 0644]
bitmaps/p54w.bmp [new file with mode: 0644]
bitmaps/p58o.bmp [new file with mode: 0644]
bitmaps/p58s.bmp [new file with mode: 0644]
bitmaps/p58w.bmp [new file with mode: 0644]
bitmaps/p64o.bmp [new file with mode: 0644]
bitmaps/p64s.bmp [new file with mode: 0644]
bitmaps/p64w.bmp [new file with mode: 0644]
bitmaps/p72o.bmp [new file with mode: 0644]
bitmaps/p72s.bmp [new file with mode: 0644]
bitmaps/p72w.bmp [new file with mode: 0644]
bitmaps/p80o.bmp [new file with mode: 0644]
bitmaps/p80s.bmp [new file with mode: 0644]
bitmaps/p80w.bmp [new file with mode: 0644]
bitmaps/p87o.bmp [new file with mode: 0644]
bitmaps/p87s.bmp [new file with mode: 0644]
bitmaps/p87w.bmp [new file with mode: 0644]
bitmaps/p95o.bmp [new file with mode: 0644]
bitmaps/p95s.bmp [new file with mode: 0644]
bitmaps/p95w.bmp [new file with mode: 0644]
bitmaps/q108o.bmp [new file with mode: 0644]
bitmaps/q108s.bmp [new file with mode: 0644]
bitmaps/q108w.bmp [new file with mode: 0644]
bitmaps/q116o.bmp [new file with mode: 0644]
bitmaps/q116s.bmp [new file with mode: 0644]
bitmaps/q116w.bmp [new file with mode: 0644]
bitmaps/q129o.bmp [new file with mode: 0644]
bitmaps/q129s.bmp [new file with mode: 0644]
bitmaps/q129w.bmp [new file with mode: 0644]
bitmaps/q21o.bmp [new file with mode: 0644]
bitmaps/q21s.bmp [new file with mode: 0644]
bitmaps/q21w.bmp [new file with mode: 0644]
bitmaps/q25o.bmp [new file with mode: 0644]
bitmaps/q25s.bmp [new file with mode: 0644]
bitmaps/q25w.bmp [new file with mode: 0644]
bitmaps/q29o.bmp [new file with mode: 0644]
bitmaps/q29s.bmp [new file with mode: 0644]
bitmaps/q29w.bmp [new file with mode: 0644]
bitmaps/q33o.bmp [new file with mode: 0644]
bitmaps/q33s.bmp [new file with mode: 0644]
bitmaps/q33w.bmp [new file with mode: 0644]
bitmaps/q37o.bmp [new file with mode: 0644]
bitmaps/q37s.bmp [new file with mode: 0644]
bitmaps/q37w.bmp [new file with mode: 0644]
bitmaps/q40o.bmp [new file with mode: 0644]
bitmaps/q40s.bmp [new file with mode: 0644]
bitmaps/q40w.bmp [new file with mode: 0644]
bitmaps/q45o.bmp [new file with mode: 0644]
bitmaps/q45s.bmp [new file with mode: 0644]
bitmaps/q45w.bmp [new file with mode: 0644]
bitmaps/q49o.bmp [new file with mode: 0644]
bitmaps/q49s.bmp [new file with mode: 0644]
bitmaps/q49w.bmp [new file with mode: 0644]
bitmaps/q54o.bmp [new file with mode: 0644]
bitmaps/q54s.bmp [new file with mode: 0644]
bitmaps/q54w.bmp [new file with mode: 0644]
bitmaps/q58o.bmp [new file with mode: 0644]
bitmaps/q58s.bmp [new file with mode: 0644]
bitmaps/q58w.bmp [new file with mode: 0644]
bitmaps/q64o.bmp [new file with mode: 0644]
bitmaps/q64s.bmp [new file with mode: 0644]
bitmaps/q64w.bmp [new file with mode: 0644]
bitmaps/q72o.bmp [new file with mode: 0644]
bitmaps/q72s.bmp [new file with mode: 0644]
bitmaps/q72w.bmp [new file with mode: 0644]
bitmaps/q80o.bmp [new file with mode: 0644]
bitmaps/q80s.bmp [new file with mode: 0644]
bitmaps/q80w.bmp [new file with mode: 0644]
bitmaps/q87o.bmp [new file with mode: 0644]
bitmaps/q87s.bmp [new file with mode: 0644]
bitmaps/q87w.bmp [new file with mode: 0644]
bitmaps/q95o.bmp [new file with mode: 0644]
bitmaps/q95s.bmp [new file with mode: 0644]
bitmaps/q95w.bmp [new file with mode: 0644]
bitmaps/r108o.bmp [new file with mode: 0644]
bitmaps/r108s.bmp [new file with mode: 0644]
bitmaps/r108w.bmp [new file with mode: 0644]
bitmaps/r116o.bmp [new file with mode: 0644]
bitmaps/r116s.bmp [new file with mode: 0644]
bitmaps/r116w.bmp [new file with mode: 0644]
bitmaps/r129o.bmp [new file with mode: 0644]
bitmaps/r129s.bmp [new file with mode: 0644]
bitmaps/r129w.bmp [new file with mode: 0644]
bitmaps/r21o.bmp [new file with mode: 0644]
bitmaps/r21s.bmp [new file with mode: 0644]
bitmaps/r21w.bmp [new file with mode: 0644]
bitmaps/r25o.bmp [new file with mode: 0644]
bitmaps/r25s.bmp [new file with mode: 0644]
bitmaps/r25w.bmp [new file with mode: 0644]
bitmaps/r29o.bmp [new file with mode: 0644]
bitmaps/r29s.bmp [new file with mode: 0644]
bitmaps/r29w.bmp [new file with mode: 0644]
bitmaps/r33o.bmp [new file with mode: 0644]
bitmaps/r33s.bmp [new file with mode: 0644]
bitmaps/r33w.bmp [new file with mode: 0644]
bitmaps/r37o.bmp [new file with mode: 0644]
bitmaps/r37s.bmp [new file with mode: 0644]
bitmaps/r37w.bmp [new file with mode: 0644]
bitmaps/r40o.bmp [new file with mode: 0644]
bitmaps/r40s.bmp [new file with mode: 0644]
bitmaps/r40w.bmp [new file with mode: 0644]
bitmaps/r45o.bmp [new file with mode: 0644]
bitmaps/r45s.bmp [new file with mode: 0644]
bitmaps/r45w.bmp [new file with mode: 0644]
bitmaps/r49o.bmp [new file with mode: 0644]
bitmaps/r49s.bmp [new file with mode: 0644]
bitmaps/r49w.bmp [new file with mode: 0644]
bitmaps/r54o.bmp [new file with mode: 0644]
bitmaps/r54s.bmp [new file with mode: 0644]
bitmaps/r54w.bmp [new file with mode: 0644]
bitmaps/r58o.bmp [new file with mode: 0644]
bitmaps/r58s.bmp [new file with mode: 0644]
bitmaps/r58w.bmp [new file with mode: 0644]
bitmaps/r64o.bmp [new file with mode: 0644]
bitmaps/r64s.bmp [new file with mode: 0644]
bitmaps/r64w.bmp [new file with mode: 0644]
bitmaps/r72o.bmp [new file with mode: 0644]
bitmaps/r72s.bmp [new file with mode: 0644]
bitmaps/r72w.bmp [new file with mode: 0644]
bitmaps/r80o.bmp [new file with mode: 0644]
bitmaps/r80s.bmp [new file with mode: 0644]
bitmaps/r80w.bmp [new file with mode: 0644]
bitmaps/r87o.bmp [new file with mode: 0644]
bitmaps/r87s.bmp [new file with mode: 0644]
bitmaps/r87w.bmp [new file with mode: 0644]
bitmaps/r95o.bmp [new file with mode: 0644]
bitmaps/r95s.bmp [new file with mode: 0644]
bitmaps/r95w.bmp [new file with mode: 0644]
bitmaps/tim.bmp [new file with mode: 0644]
bitmaps/w49o.bmp
bitmaps/w49s.bmp
bitmaps/w54o.bmp [new file with mode: 0644]
bitmaps/w54s.bmp [new file with mode: 0644]
bitmaps/w54w.bmp [new file with mode: 0644]
bitmaps/w72s.bmp
bitmaps/wl49o.bmp [new file with mode: 0644]
bitmaps/wl49s.bmp [new file with mode: 0644]
bitmaps/wl72o.bmp [new file with mode: 0644]
bitmaps/wl72s.bmp [new file with mode: 0644]
bitmaps/wn49o.bmp [new file with mode: 0644]
bitmaps/wn49s.bmp [new file with mode: 0644]
bitmaps/wn72o.bmp [new file with mode: 0644]
bitmaps/wn72s.bmp [new file with mode: 0644]
bitmaps/wp49o.bmp [new file with mode: 0644]
bitmaps/wp49s.bmp [new file with mode: 0644]
bitmaps/wp72o.bmp [new file with mode: 0644]
bitmaps/wp72s.bmp [new file with mode: 0644]
bitmaps/ws49o.bmp [new file with mode: 0644]
bitmaps/ws49s.bmp [new file with mode: 0644]
bitmaps/ws72o.bmp [new file with mode: 0644]
bitmaps/ws72s.bmp [new file with mode: 0644]
common.h
config.h
moves.c
moves.h
parser.l
readme_HGM.txt
winboard/resource.h
winboard/winboard.c
winboard/winboard.rc
winboard/woptions.c

index f3cffc5..6c79b03 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -1702,13 +1702,13 @@ CopyHoldings(Board board, char *holdings, ChessSquare lowestPiece)
     char p;\r
     ChessSquare piece;\r
 \r
-    if(gameInfo.holdingsWidth < 1)  return;\r
+    if(gameInfo.holdingsWidth < 2)  return;\r
 \r
     if( (int)lowestPiece >= BlackPawn ) {\r
         holdingsColumn = 0;\r
         countsColumn = 1;\r
         holdingsStartRow = BOARD_HEIGHT-1;\r
-        direction = 1;\r
+        direction = -1;\r
     } else {\r
         holdingsColumn = BOARD_WIDTH-1;\r
         countsColumn = BOARD_WIDTH-2;\r
@@ -1723,12 +1723,13 @@ CopyHoldings(Board board, char *holdings, ChessSquare lowestPiece)
     while( (p=*holdings++) != NULLCHAR ) {\r
         piece = CharToPiece( ToUpper(p) );\r
         if(piece == EmptySquare) continue;\r
-        j = (int) piece - (int) WhitePawn;\r
+        /*j = (int) piece - (int) WhitePawn;*/\r
+        j = PieceToNumber(piece);\r
         if(j >= gameInfo.holdingsSize) continue; /* ignore pieces that do not fit */\r
         if(j < 0) continue;               /* should not happen */\r
-        piece = (ChessSquare) ( (int)piece + (int)lowestPiece );\r
-        board[holdingsStartRow+i*direction][holdingsColumn] = piece;\r
-        board[holdingsStartRow+i*direction][countsColumn]++;\r
+        piece = (ChessSquare) ( j + (int)lowestPiece );\r
+        board[holdingsStartRow+j*direction][holdingsColumn] = piece;\r
+        board[holdingsStartRow+j*direction][countsColumn]++;\r
     }\r
 \r
 }\r
@@ -2336,6 +2337,7 @@ read_from_ics(isr, closure, data, count, error)
                sprintf(str, "ICS %s %s match", star_match[0], star_match[1]);\r
                gameInfo.event = StrSave(str);\r
                gameInfo.variant = StringToVariant(gameInfo.event);\r
+                Reset(TRUE,TRUE); /* [HGM] possibly change board or holdings size */\r
                continue;\r
            }\r
 \r
@@ -2804,7 +2806,27 @@ read_from_ics(isr, closure, data, count, error)
                    if (sscanf(parse, " game %d", &gamenum) == 1 &&\r
                        gamenum == ics_gamenum) {\r
                        if (gameInfo.variant == VariantNormal) {\r
+                          /* [HGM] We seem to switch variant during a game!\r
+                           * Presumably no holdings were displayed, so we have\r
+                           * to move the position two files to the right to\r
+                           * create room for them!\r
+                           */\r
+                          int i, j;\r
+                          if(gameInfo.holdingsWidth == 0) /* to be sure */\r
+                          for(i=0; i<BOARD_HEIGHT; i++)\r
+                            for(j=BOARD_RGHT-1; j>=0; j--)\r
+                              boards[currentMove][i][j+2] = boards[currentMove][i][j];\r
+\r
+  if (appData.debugMode) {\r
+    fprintf(debugFP, "Switch board to Crazy\n");\r
+    setbuf(debugFP, NULL);\r
+  }\r
                          gameInfo.variant = VariantCrazyhouse; /*temp guess*/\r
+                          gameInfo.boardWidth  = 8;  /* [HGM] guess board size as well */\r
+                          gameInfo.boardHeight = 8;\r
+                          gameInfo.holdingsSize = 5;\r
+                          gameInfo.holdingsWidth = 2;\r
+                          InitDrawingSizes(-2, 0);\r
                          /* Get a move list just to see the header, which\r
                             will tell us whether this is really bug or zh */\r
                          if (ics_getting_history == H_FALSE) {\r
@@ -2819,6 +2841,9 @@ read_from_ics(isr, closure, data, count, error)
                               new_piece);\r
                         white_holding[strlen(white_holding)-1] = NULLCHAR;\r
                         black_holding[strlen(black_holding)-1] = NULLCHAR;\r
+                        /* [HGM] copy holdings to board holdings area */\r
+                        CopyHoldings(boards[currentMove], white_holding, WhitePawn);\r
+                        CopyHoldings(boards[currentMove], black_holding, BlackPawn);\r
 #if ZIPPY\r
                        if (appData.zippyPlay && first.initDone) {\r
                            ZippyHoldings(white_holding, black_holding,\r
@@ -2837,9 +2862,6 @@ read_from_ics(isr, closure, data, count, error)
                                    gameInfo.black, black_holding);\r
                        }\r
 \r
-                        /* [HGM] copy holdings to board holdings area */\r
-                        CopyHoldings(boards[currentMove], white_holding, WhitePawn);\r
-                        CopyHoldings(boards[currentMove], black_holding, BlackPawn);\r
                        DrawPosition(FALSE, NULL);\r
                        DisplayTitle(str);\r
                    }\r
@@ -3057,20 +3079,26 @@ ParseBoard12(string)
        movesPerSession = 0;\r
        gameInfo.timeControl = TimeControlTagValue();\r
        gameInfo.variant = StringToVariant(gameInfo.event);\r
+  if (appData.debugMode) {\r
+    fprintf(debugFP, "ParseBoard says variant = '%s'\n", gameInfo.event);\r
+    fprintf(debugFP, "recognized as %s\n", VariantName(gameInfo.variant));\r
+    setbuf(debugFP, NULL);\r
+  }\r
+\r
         gameInfo.holdingsSize = 5; /* [HGM] prepare holdings */\r
+        gameInfo.boardWidth = gameInfo.boardHeight = 8;\r
         switch(gameInfo.variant) {\r
             case VariantShogi:\r
             case VariantShowgi:\r
-              gameInfo.boardWidth = gameInfo.boardHeight = 9;\r
-              gameInfo.holdingsSize += 2;\r
+              gameInfo.boardWidth = 9;  gameInfo.boardHeight = 9;\r
+              gameInfo.holdingsSize = 7;\r
             case VariantBughouse:\r
             case VariantCrazyhouse:\r
-              gameInfo.boardWidth = gameInfo.boardHeight = 8;\r
               gameInfo.holdingsWidth = 2; break;\r
             default:\r
-              gameInfo.boardWidth = gameInfo.boardHeight = 8;\r
-              gameInfo.holdingsWidth = 0;\r
+              gameInfo.holdingsWidth = gameInfo.holdingsSize = 0;\r
         }\r
+        InitDrawingSizes(-2, 0);\r
         gameInfo.outOfBook = NULL;\r
        \r
        /* Do we have the ratings? */\r
@@ -3132,9 +3160,14 @@ ParseBoard12(string)
     }\r
     \r
     /* Parse the board */\r
-    for (k = 0; k < 8; k++)\r
+    for (k = 0; k < 8; k++) {\r
       for (j = 0; j < 8; j++)\r
-       board[k][j] = CharToPiece(board_chars[(7-k)*9 + j]);\r
+        board[k][j+gameInfo.holdingsWidth] = CharToPiece(board_chars[(7-k)*9 + j]);\r
+      if(gameInfo.holdingsWidth > 1) {\r
+           board[k][0] = board[k][BOARD_WIDTH-1] = EmptySquare;\r
+           board[k][1] = board[k][BOARD_WIDTH-2] = (ChessSquare) 0;;\r
+      }\r
+    }\r
     CopyBoard(boards[moveNum], board);\r
     if (moveNum == 0) {\r
        startedFromSetupPosition =\r
@@ -3202,6 +3235,11 @@ ParseBoard12(string)
     /* Put the move on the move list, first converting\r
        to canonical algebraic form. */\r
     if (moveNum > 0) {\r
+  if (appData.debugMode) {\r
+    fprintf(debugFP, "accepted move %s from ICS, parse it.\n", move_str);\r
+    fprintf(debugFP, "board = %d-d x%d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT);\r
+    setbuf(debugFP, NULL);\r
+  }\r
        if (moveNum <= backwardMostMove) {\r
            /* We don't know what the board looked like before\r
               this move.  Punt. */\r
@@ -3222,7 +3260,8 @@ ParseBoard12(string)
              default:\r
                break;\r
              case MT_CHECK:\r
-               strcat(parseList[moveNum - 1], "+");\r
+                if(gameInfo.variant != VariantShogi)\r
+                    strcat(parseList[moveNum - 1], "+");\r
                break;\r
              case MT_CHECKMATE:\r
                strcat(parseList[moveNum - 1], "#");\r
@@ -3255,6 +3294,10 @@ ParseBoard12(string)
            moveList[moveNum - 1][0] = NULLCHAR;\r
            fromX = fromY = toX = toY = -1;\r
        }\r
+  if (appData.debugMode) {\r
+    fprintf(debugFP, "Move parsed to '%s'\n", parseList[moveNum - 1]);\r
+    setbuf(debugFP, NULL);\r
+  }\r
 \r
 #if ZIPPY\r
        /* Send move to chess program (BEFORE animating it). */\r
@@ -3407,7 +3450,7 @@ SendMoveToProgram(moveNum, cps)
        sprintf(buf, "%s\n", parseList[moveNum]);\r
       }\r
       /* [HGM] decrement all digits to code ranks starting from 0 */\r
-      if(BOARD_HEIGHT>8) {\r
+      if(BOARD_HEIGHT>9) {\r
           char *p = buf;\r
           while(*p) { if(*p < 'A') (*p)--; p++; }\r
       }\r
@@ -3737,6 +3780,30 @@ static void SetupFRC( Board board, int pos_index )
     }\r
 }\r
 \r
+BOOL SetCharTable( char *table, const char * map )\r
+/* [HGM] moved here from winboard.c because of its general usefulness */\r
+/*       Basically a safe strcpy that uses the last character as King */\r
+{\r
+    BOOL result = FALSE; int NrPieces;\r
+\r
+    if( map != NULL && (NrPieces=strlen(map)) <= (int) EmptySquare \r
+                    && NrPieces >= 12 && !(NrPieces&1)) {\r
+        int i; /* [HGM] Accept even length from 12 to 34 */\r
+\r
+        for( i=0; i<(int) EmptySquare; i++ ) table[i] = '.';\r
+        for( i=0; i<NrPieces/2-1; i++ ) {\r
+            table[i] = map[i];\r
+            table[i + (int)BlackPawn - (int) WhitePawn] = map[i+NrPieces/2];\r
+        }\r
+        table[(int) WhiteKing]  = map[NrPieces/2-1];\r
+        table[(int) BlackKing]  = map[NrPieces-1];\r
+\r
+        result = TRUE;\r
+    }\r
+\r
+    return result;\r
+}\r
+\r
 void\r
 InitPosition(redraw)\r
      int redraw;\r
@@ -3745,7 +3812,8 @@ InitPosition(redraw)
     int i, j, pawnRow, overrule,\r
     oldx = gameInfo.boardWidth,\r
     oldy = gameInfo.boardHeight,\r
-    oldh = gameInfo.holdingsWidth;\r
+    oldh = gameInfo.holdingsWidth,\r
+    oldv = gameInfo.variant;\r
 \r
     currentMove = forwardMostMove = backwardMostMove = 0;\r
 \r
@@ -3757,19 +3825,6 @@ InitPosition(redraw)
             for( j=0; j<BOARD_SIZE; j++ ) castlingRights[i][j] = -1;\r
         }\r
 \r
-        /* [HGM] Build normal castling rights */\r
-        for( j=0; j<BOARD_SIZE; j++ ) initialRights[j] = -1;\r
-        nrCastlingRights = 6;\r
-        castlingRights[0][0] = initialRights[0] = BOARD_RGHT-1;\r
-        castlingRights[0][1] = initialRights[1] = BOARD_LEFT;\r
-        castlingRights[0][2] = initialRights[2] = BOARD_WIDTH>>1;\r
-        castlingRights[0][3] = initialRights[3] = BOARD_RGHT-1;\r
-        castlingRights[0][4] = initialRights[4] = BOARD_LEFT;\r
-        castlingRights[0][5] = initialRights[5] = BOARD_WIDTH>>1;\r
-\r
-        castlingRank[0] = castlingRank[1] = castlingRank[2] = 0;\r
-        castlingRank[3] = castlingRank[4] = castlingRank[5] = BOARD_HEIGHT-1;\r
-\r
         initialRulePlies = 0; /* 50-move counter start */\r
     }\r
 \r
@@ -3785,6 +3840,9 @@ InitPosition(redraw)
     gameInfo.boardWidth    = 8;\r
     gameInfo.boardHeight   = 8;\r
     gameInfo.holdingsSize  = 0;\r
+    nrCastlingRights = -1; /* [HGM] Kludge to indicate default should be used */\r
+    for(i=0; i<BOARD_SIZE; i++) initialRights[i] = -1; /* but no rights yet */\r
+    SetCharTable(pieceToChar, "PNBRQ...........Kpnbrq...........k"); \r
 \r
     switch (gameInfo.variant) {\r
     default:\r
@@ -3793,7 +3851,6 @@ InitPosition(redraw)
     case VariantShatranj:\r
       pieces = ShatranjArray;\r
       nrCastlingRights = 0;\r
-      for(i=0; i<BOARD_SIZE; i++) initialRights[i] = -1;\r
       break;\r
     case VariantTwoKings:\r
       pieces = twoKingsArray;\r
@@ -3807,18 +3864,19 @@ InitPosition(redraw)
     case VariantCapablanca:\r
       pieces = CapablancaArray;\r
       gameInfo.boardWidth = 10;\r
+      SetCharTable(pieceToChar, "PNBRQ.......AC..Kpnbrq.......ac..k"); \r
       break;\r
     case VariantGothic:\r
       pieces = GothicArray;\r
       gameInfo.boardWidth = 10;\r
+      SetCharTable(pieceToChar, "PNBRQ.......AC..Kpnbrq.......ac..k"); \r
       break;\r
     case VariantXiangqi:\r
       pieces = XiangqiArray;\r
       gameInfo.boardWidth  = 9;\r
       gameInfo.boardHeight = 10;\r
       nrCastlingRights = 0;\r
-      for(i=0; i<BOARD_SIZE; i++) initialRights[i] = -1;\r
-      strcpy(pieceToChar, "PN.R.MKE...C....pn.r.mke...c...."); \r
+      SetCharTable(pieceToChar, "PH.R.AKE.C.......ph.r.ake.c......."); \r
       break;\r
     case VariantShogi:\r
       pieces = ShogiArray;\r
@@ -3826,8 +3884,7 @@ InitPosition(redraw)
       gameInfo.boardHeight = 9;\r
       gameInfo.holdingsSize = 7;\r
       nrCastlingRights = 0;\r
-      for(i=0; i<BOARD_SIZE; i++) initialRights[i] = -1;\r
-      strcpy(pieceToChar, "PNBRLSGPNBRLS..Kpnbrlsgpnbrls..k"); \r
+      SetCharTable(pieceToChar, "PNBRLSG.........Kpnbrlsg.........k"); \r
       break;\r
     case VariantShowgi:\r
       pieces = ShogiArray;\r
@@ -3836,28 +3893,28 @@ InitPosition(redraw)
       gameInfo.holdingsSize = 7;\r
       nrCastlingRights = 0;\r
       for(i=0; i<BOARD_SIZE; i++) initialRights[i] = -1;\r
-      strcpy(pieceToChar, "PNBRQFWEHACGOUMKpnbrlsgpnbrls..k"); \r
+      SetCharTable(pieceToChar, "PNBRQFWEMOUHACG.Kpnbrlsgpnbrls...k"); \r
       break;\r
     case VariantCourier:\r
       pieces = CourierArray;\r
       gameInfo.boardWidth  = 12;\r
       nrCastlingRights = 0;\r
+      SetCharTable(pieceToChar, "PNBR.FWEM.......Kpnbr.fwem.......k"); \r
       for(i=0; i<BOARD_SIZE; i++) initialRights[i] = -1;\r
       break;\r
     case VariantKnightmate:\r
       pieces = KnightmateArray;\r
-      strcpy(pieceToChar, "PNBRQFWEHACGOMK.pnbrqfwehacgomK."); \r
+      strcpy(pieceToChar, "P.BRQ...M.K......p.brq...m.k......"); \r
       break;\r
     case VariantFairy:\r
       pieces = fairyArray;\r
-      strcpy(pieceToChar, "PNBRQFWEHACGOMUKpnbrqfwehacgomuk"); \r
+      SetCharTable(pieceToChar, "PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk"); \r
       startedFromSetupPosition = TRUE;\r
       break;\r
     case VariantCrazyhouse:\r
     case VariantBughouse:\r
       pieces = FIDEArray;\r
       gameInfo.holdingsSize = 5;\r
-      strcpy(pieceToChar, "PNBRQ...NBRQ...Kpnbrq...nbrq...k"); \r
       break;\r
     case VariantWildCastle:\r
       pieces = FIDEArray;\r
@@ -3877,7 +3934,6 @@ InitPosition(redraw)
         gameInfo.boardWidth = appData.NrFiles;\r
     }\r
     if(appData.NrRanks >= 0) {\r
-        if(gameInfo.boardHeight != appData.NrRanks) overrule++;\r
         gameInfo.boardHeight = appData.NrRanks;\r
     }\r
     if(appData.holdingsSize >= 0) {\r
@@ -3889,11 +3945,12 @@ InitPosition(redraw)
     if(BOARD_HEIGHT > BOARD_SIZE || BOARD_WIDTH > BOARD_SIZE)\r
         DisplayFatalError("Recompile to support this BOARD_SIZE!", 0, 2);\r
 \r
-    pawnRow = gameInfo.boardHeight - 7; /* seems to work in all variants */\r
+    pawnRow = gameInfo.boardHeight - 7; /* seems to work in all common variants */\r
+    if(pawnRow < 1) pawnRow = 1;\r
 \r
     /* User pieceToChar list overrules defaults */\r
     if(appData.pieceToCharTable != NULL)\r
-        strcpy(pieceToChar, appData.pieceToCharTable);\r
+        SetCharTable(pieceToChar, appData.pieceToCharTable);\r
 \r
     for( j=0; j<BOARD_WIDTH; j++ ) { ChessSquare s = EmptySquare;\r
 \r
@@ -3929,6 +3986,23 @@ InitPosition(redraw)
             initialPosition[BOARD_HEIGHT-2][j] = BlackBishop;\r
     }\r
 \r
+    if( nrCastlingRights == -1) {\r
+        /* [HGM] Build normal castling rights (must be done after board sizing!) */\r
+        /*       This sets default castling rights from none to normal corners   */\r
+        /* Variants with other castling rights must set them themselves above    */\r
+        nrCastlingRights = 6;\r
+       \r
+        castlingRights[0][0] = initialRights[0] = BOARD_RGHT-1;\r
+        castlingRights[0][1] = initialRights[1] = BOARD_LEFT;\r
+        castlingRights[0][2] = initialRights[2] = BOARD_WIDTH>>1;\r
+        castlingRights[0][3] = initialRights[3] = BOARD_RGHT-1;\r
+        castlingRights[0][4] = initialRights[4] = BOARD_LEFT;\r
+        castlingRights[0][5] = initialRights[5] = BOARD_WIDTH>>1;\r
+\r
+        castlingRank[0] = castlingRank[1] = castlingRank[2] = 0;\r
+        castlingRank[3] = castlingRank[4] = castlingRank[5] = BOARD_HEIGHT-1;\r
+     }\r
+\r
     if(gameInfo.variant == VariantFischeRandom) {\r
       if( appData.defaultFrcPosition < 0 ) {\r
         ShuffleFRC( initialPosition );\r
@@ -3942,8 +4016,13 @@ InitPosition(redraw)
 \r
     if(oldx != gameInfo.boardWidth ||\r
        oldy != gameInfo.boardHeight ||\r
-       oldh != gameInfo.holdingsWidth )\r
-            InitDrawingSizes(-1 ,0);\r
+       oldh != gameInfo.holdingsWidth\r
+#ifdef GOTHIC\r
+       || oldv == VariantGothic ||\r
+       gameInfo.variant == VariantGothic\r
+#endif\r
+                                         )\r
+            InitDrawingSizes(-2 ,0);\r
 \r
     if (redraw)\r
       DrawPosition(TRUE, boards[currentMove]);\r
@@ -4014,7 +4093,10 @@ IsPromotion(fromX, fromY, toX, toY)
     piece = boards[currentMove][fromY][fromX];\r
     if(gameInfo.variant == VariantShogi) {\r
         promotionZoneSize = 3;\r
-        highestPromotingPiece = (int)WhiteFerz; /* Silver */\r
+        highestPromotingPiece = (int)WhiteKing;\r
+        /* [HGM] Should be Silver = Ferz, really, but legality testing is off,\r
+           and if in normal chess we then allow promotion to King, why not\r
+           allow promotion of other piece in Shogi?                         */\r
     }\r
     if((int)piece >= BlackPawn) {\r
         if(toY >= promotionZoneSize && fromY >= promotionZoneSize)\r
@@ -4165,14 +4247,13 @@ UserMoveTest(fromX, fromY, toX, toY, promoChar)
      int promoChar;\r
 {\r
     ChessMove moveType;\r
+    ChessSquare pdown, pup;\r
 \r
     if (fromX < 0 || fromY < 0) return ImpossibleMove;\r
     if ((fromX == toX) && (fromY == toY)) {\r
         return ImpossibleMove;\r
     }\r
-    /* [HGM] suppress all moves into holdings area and guard band */\r
-    if( toX < BOARD_LEFT || toX >= BOARD_RGHT ) return ImpossibleMove;\r
-       \r
+\r
     /* Check if the user is playing in turn.  This is complicated because we\r
        let the user "pick up" a piece before it is his turn.  So the piece he\r
        tried to pick up may have been captured by the time he puts it down!\r
@@ -4278,6 +4359,8 @@ UserMoveTest(fromX, fromY, toX, toY, promoChar)
        break;\r
 \r
       case EditPosition:\r
+       /* EditPosition, empty square, or different color piece;\r
+          click-click move is possible */\r
        if (toX == -2 || toY == -2) {\r
            boards[0][fromY][fromX] = EmptySquare;\r
            DrawPosition(FALSE, boards[currentMove]);\r
@@ -4289,26 +4372,49 @@ UserMoveTest(fromX, fromY, toX, toY, promoChar)
         return ImpossibleMove;\r
     }\r
 \r
-    if (toX < 0 || toY < 0) return ImpossibleMove;\r
+    /* [HGM] suppress all moves into holdings area and guard band */\r
+    if( toX < BOARD_LEFT || toX >= BOARD_RGHT || toY < 0 )\r
+            return ImpossibleMove;\r
+\r
+    /* [HGM] <sameColor> moved to here from winboard.c */\r
+    /* note: EditPosition already filtered out and performed! */\r
+    pdown = boards[currentMove][fromY][fromX];\r
+    pup = boards[currentMove][toY][toX];\r
+    if ( \r
+            (WhitePawn <= pdown && pdown < BlackPawn &&\r
+             WhitePawn <= pup && pup < BlackPawn) ||\r
+            (BlackPawn <= pdown && pdown < EmptySquare &&\r
+             BlackPawn <= pup && pup < EmptySquare)      )\r
+         return ImpossibleMove;\r
 \r
     /* [HGM] If move started in holdings, it means a drop */\r
-    if( fromX == BOARD_LEFT-2 || fromX == BOARD_RGHT+1) {\r
-         if( boards[currentMove][toY][toX] != EmptySquare ) return ImpossibleMove;\r
+    if( fromX == BOARD_LEFT-2 || fromX == BOARD_RGHT+1) { \r
+         if( pup != EmptySquare ) return ImpossibleMove;\r
+         if(appData.testLegality) {\r
+             /* it would be more logical if LegalityTest() also figured out\r
+              * which drops are legal. For now we forbid pawns on back rank.\r
+              * Shogi is on its own here...\r
+              */\r
+             if( (pdown == WhitePawn || pdown == BlackPawn) &&\r
+                 (toY == 0 || toY == BOARD_HEIGHT -1 ) )\r
+                 return(ImpossibleMove); /* no pawn drops on 1st/8th */\r
+         }\r
          return WhiteDrop; /* Not needed to specify white or black yet */\r
     }\r
 \r
     userOfferedDraw = FALSE;\r
        \r
-    if (appData.testLegality) {\r
-       moveType = LegalityTest(boards[currentMove], PosFlags(currentMove),\r
-                                EP_UNKNOWN, castlingRights[currentMove],\r
+    /* [HGM] always test for legality, to get promotion info */\r
+    moveType = LegalityTest(boards[currentMove], PosFlags(currentMove),\r
+                          epStatus[currentMove], castlingRights[currentMove],\r
                                          fromY, fromX, toY, toX, promoChar);\r
+\r
+    /* [HGM] but possibly ignore an IllegalMove result */\r
+    if (appData.testLegality) {\r
        if (moveType == IllegalMove || moveType == ImpossibleMove) {\r
            DisplayMoveError("Illegal move");\r
             return ImpossibleMove;\r
        }\r
-    } else {\r
-       moveType = PromoCharToMoveType(WhiteOnMove(currentMove), promoChar);\r
     }\r
 \r
     return moveType;\r
@@ -4643,23 +4749,40 @@ HandleMachineMove(message, cps)
         /* to make sure an illegal e.p. capture does not slip through,   */\r
         /* to cause a forfeit on a justified illegal-move complaint      */\r
         /* of the opponent.                                              */\r
-        if(gameMode==TwoMachinesPlay && appData.testLegality &&\r
-           fromY != DROP_RANK && /* [HGM] temporary; should still add legality test for drops */\r
-           LegalityTest(boards[forwardMostMove], PosFlags(forwardMostMove),\r
+        if( gameMode==TwoMachinesPlay && appData.testLegality\r
+            && fromY != DROP_RANK /* [HGM] temporary; should still add legality test for drops */\r
+                                                              ) {\r
+           ChessMove moveType;\r
+           moveType = LegalityTest(boards[forwardMostMove], PosFlags(forwardMostMove),\r
                         epStatus[forwardMostMove], castlingRights[forwardMostMove],\r
-                             fromY, fromX, toY, toX, promoChar) == IllegalMove)\r
-           {\r
+                             fromY, fromX, toY, toX, promoChar);\r
            if (appData.debugMode) {\r
                 int i;\r
                 for(i=0; i< nrCastlingRights; i++) fprintf(debugFP, "(%d,%d) ",\r
                     castlingRights[forwardMostMove][i], castlingRank[i]);\r
                 fprintf(debugFP, "castling rights\n");\r
            }\r
-            sprintf(buf1, "Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c",\r
-                    machineMove, fromX+AAA, fromY+ONE, toX+AAA, toY+ONE, 0);\r
-             GameEnds(machineWhite ? BlackWins : WhiteWins,\r
-                       buf1, GE_XBOARD);\r
+            if(moveType == IllegalMove) {\r
+                sprintf(buf1, "Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c",\r
+                        machineMove, fromX+AAA, fromY+ONE, toX+AAA, toY+ONE, 0);\r
+                GameEnds(machineWhite ? BlackWins : WhiteWins,\r
+                           buf1, GE_XBOARD);\r
+           } else if(gameInfo.variant != VariantFischeRandom)\r
+           /* [HGM] Kludge to handle engines that send FRC-style castling\r
+              when they shouldn't (like TSCP-Gothic) */\r
+           switch(moveType) {\r
+             case WhiteASideCastleFR:\r
+             case BlackASideCastleFR:\r
+               toY++;\r
+               currentMoveString[2]++;\r
+               break;\r
+             case WhiteHSideCastleFR:\r
+             case BlackHSideCastleFR:\r
+               toY--;\r
+               currentMoveString[2]--;\r
+               break;\r
            }\r
+        }\r
        hintRequested = FALSE;\r
        lastHint[0] = NULLCHAR;\r
        bookRequested = FALSE;\r
@@ -4946,6 +5069,31 @@ HandleMachineMove(message, cps)
        cps->useSigterm = FALSE;\r
     }\r
 \r
+    /* [HGM] Allow engine to set up a position. Don't ask me why one would\r
+     * want this, I was asked to put it in, and obliged.\r
+     */\r
+    if (!strncmp(message, "setboard ", 9)) {\r
+        Board initial_position; int i;\r
+\r
+        GameEnds(GameIsDrawn, "Engine aborts game", GE_XBOARD);\r
+\r
+        if (!ParseFEN(initial_position, &blackPlaysFirst, message + 9)) {\r
+            DisplayError("Bad FEN received from engine", 0);\r
+            return ;\r
+        } else {\r
+           Reset(FALSE, FALSE);\r
+           CopyBoard(boards[0], initial_position);\r
+           initialRulePlies = FENrulePlies;\r
+           epStatus[0] = FENepStatus;\r
+           for( i=0; i<nrCastlingRights; i++ )\r
+                castlingRights[0][i] = FENcastlingRights[i];\r
+           if(blackPlaysFirst) gameMode = MachinePlaysWhite;\r
+           else gameMode = MachinePlaysBlack;                 \r
+           DrawPosition(FALSE, boards[currentMove]);\r
+        }\r
+       return;\r
+    }\r
+\r
     /*\r
      * Look for communication commands\r
      */\r
@@ -5771,7 +5919,8 @@ ParseGameHistory(game)
          default:\r
            break;\r
          case MT_CHECK:\r
-           strcat(parseList[boardIndex - 1], "+");\r
+            if(gameInfo.variant != VariantShogi)\r
+                strcat(parseList[boardIndex - 1], "+");\r
            break;\r
          case MT_CHECKMATE:\r
            strcat(parseList[boardIndex - 1], "#");\r
@@ -5788,24 +5937,23 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
      int promoChar;\r
      Board board;\r
 {\r
-    ChessSquare captured = board[toY][toX], piece; int p;\r
+  ChessSquare captured = board[toY][toX], piece; int p;\r
 \r
-    /* [HGM] In Shatranj and Courier all promotions are to Ferz */\r
-    if((gameInfo.variant==VariantShatranj || gameInfo.variant==VariantCourier)\r
+  /* [HGM] In Shatranj and Courier all promotions are to Ferz */\r
+  if((gameInfo.variant==VariantShatranj || gameInfo.variant==VariantCourier)\r
        && promoChar != 0) promoChar = 'F';\r
          \r
-    if (fromY == DROP_RANK) {\r
+  if (fromX == toX && fromY == toY) return;\r
+\r
+  if (fromY == DROP_RANK) {\r
        /* must be first */\r
        board[toY][toX] = (ChessSquare) fromX;\r
-    } else if (fromX == toX && fromY == toY) {\r
-       return;\r
-    }\r
+  } else {\r
+     piece = board[fromY][fromX]; /* [HGM] remember, for Shogi promotion */\r
 \r
-    piece = board[fromY][fromX];\r
-    \r
     /* Code added by Tord: */\r
     /* FRC castling assumed when king captures friendly rook. */\r
-    else if (board[fromY][fromX] == WhiteKing &&\r
+    if (board[fromY][fromX] == WhiteKing &&\r
             board[toY][toX] == WhiteRook) {\r
       board[fromY][fromX] = EmptySquare;\r
       board[toY][toX] = EmptySquare;\r
@@ -5855,17 +6003,16 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
        board[toY][2] = WhiteRook;\r
     } else if (board[fromY][fromX] == WhitePawn\r
                && toY == BOARD_HEIGHT-1\r
-#ifdef FAIRY\r
                && gameInfo.variant != VariantXiangqi\r
-#endif\r
                ) {\r
        /* white pawn promotion */\r
         board[toY][toX] = CharToPiece(ToUpper(promoChar));\r
         if (board[toY][toX] == EmptySquare) {\r
             board[toY][toX] = WhiteQueen;\r
        }\r
-        if(gameInfo.variant==VariantCrazyhouse) /* [HGM] use shadow piece */\r
-            board[toY][toX] += (int) WhiteAlfil - (int) WhitePawn;\r
+        if(gameInfo.variant==VariantBughouse ||\r
+           gameInfo.variant==VariantCrazyhouse) /* [HGM] use shadow piece */\r
+            board[toY][toX] = (ChessSquare) (PROMOTED board[toY][toX]);\r
        board[fromY][fromX] = EmptySquare;\r
     } else if ((fromY == BOARD_HEIGHT-4)\r
               && (toX != fromX)\r
@@ -5905,17 +6052,16 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
        board[toY][2] = BlackRook;\r
     } else if (board[fromY][fromX] == BlackPawn\r
               && toY == 0\r
-#ifdef FAIRY\r
                && gameInfo.variant != VariantXiangqi\r
-#endif\r
                ) {\r
        /* black pawn promotion */\r
        board[0][toX] = CharToPiece(ToLower(promoChar));\r
        if (board[0][toX] == EmptySquare) {\r
            board[0][toX] = BlackQueen;\r
        }\r
-        if(gameInfo.variant==VariantCrazyhouse) /* [HGM] use shadow piece */\r
-            board[toY][toX] += (int) WhiteAlfil - (int) WhitePawn;\r
+        if(gameInfo.variant==VariantBughouse ||\r
+           gameInfo.variant==VariantCrazyhouse) /* [HGM] use shadow piece */\r
+            board[toY][toX] = (ChessSquare) (PROMOTED board[toY][toX]);\r
        board[fromY][fromX] = EmptySquare;\r
     } else if ((fromY == 3)\r
               && (toX != fromX)\r
@@ -5929,6 +6075,12 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
        board[toY][toX] = board[fromY][fromX];\r
        board[fromY][fromX] = EmptySquare;\r
     }\r
+\r
+    /* [HGM] now we promote for Shogi, if needed */\r
+    if(gameInfo.variant == VariantShogi && promoChar == 'q')\r
+        board[toY][toX] = (ChessSquare) (PROMOTED piece);\r
+  }\r
+\r
     if (gameInfo.holdingsWidth != 0) {\r
 \r
       /* !!A lot more code needs to be written to support holdings  */\r
@@ -5962,6 +6114,7 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
                   captured = (ChessSquare) (DEMOTED captured);\r
                   p = DEMOTED p;\r
           }\r
+          p = PieceToNumber((ChessSquare)p);\r
           if(p >= gameInfo.holdingsSize) { p = 0; captured = BlackPawn; }\r
           board[p][BOARD_WIDTH-2]++;\r
           board[p][BOARD_WIDTH-1] =\r
@@ -5972,6 +6125,7 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
                   captured = (ChessSquare) (DEMOTED captured);\r
                   p = DEMOTED p;\r
           }\r
+          p = PieceToNumber((ChessSquare)p);\r
           if(p >= gameInfo.holdingsSize) { p = 0; captured = WhitePawn; }\r
           board[BOARD_HEIGHT-1-p][1]++;\r
           board[BOARD_HEIGHT-1-p][0] =\r
@@ -5993,7 +6147,7 @@ ApplyMove(fromX, fromY, toX, toY, promoChar, board)
        board[toY][toX] = EmptySquare;\r
       }\r
     }\r
-    if(gameInfo.variant == VariantShogi && promoChar != NULLCHAR) {\r
+    if(gameInfo.variant == VariantShogi && promoChar != NULLCHAR && promoChar != '=') {\r
         /* [HGM] Shogi promotions */\r
         board[toY][toX] = (ChessSquare) (PROMOTED piece);\r
     }\r
@@ -6073,12 +6227,17 @@ MakeMove(fromX, fromY, toX, toY, promoChar)
       default:\r
        break;\r
       case MT_CHECK:\r
-       strcat(parseList[forwardMostMove - 1], "+");\r
+        if(gameInfo.variant != VariantShogi)\r
+            strcat(parseList[forwardMostMove - 1], "+");\r
        break;\r
       case MT_CHECKMATE:\r
        strcat(parseList[forwardMostMove - 1], "#");\r
        break;\r
     }\r
+    if (appData.debugMode) {\r
+        fprintf(debugFP, "move: %s, parse: %s (%c)\n", moveList[forwardMostMove-1], parseList[forwardMostMove-1], moveList[forwardMostMove-1][4]);\r
+    }\r
+\r
 }\r
 \r
 /* Updates currentMove if not pausing */\r
@@ -6124,7 +6283,8 @@ InitChessProgram(cps)
         || gameInfo.boardWidth != 8 || gameInfo.boardHeight != 8\r
                                             ) {\r
       char *v = VariantName(gameInfo.variant);\r
-      if (StrStr(cps->variants, v) == NULL) {\r
+      if (cps->protocolVersion != 1 && StrStr(cps->variants, v) == NULL) {\r
+        /* [HGM] in protocol 1 we have to assume all variants valid */\r
        sprintf(buf, "Variant %s not supported by %s", v, cps->tidy);\r
        DisplayFatalError(buf, 0, 1);\r
        return;\r
@@ -6144,15 +6304,13 @@ InitChessProgram(cps)
            overruled = gameInfo.boardWidth != 12 || gameInfo.boardHeight != 8 || gameInfo.holdingsSize != 0;\r
 \r
       if(overruled) {\r
-#if 0\r
-           // doesn't work in protocol 1\r
-           if (StrStr(cps->variants, "boardsize") == NULL,) {\r
+           if (cps->protocolVersion != 1 && StrStr(cps->variants, "boardsize") == NULL) {\r
              sprintf(buf, "Board size %dx%d+%d not supported by %s",\r
                   gameInfo.boardWidth, gameInfo.boardHeight, gameInfo.holdingsSize, cps->tidy);\r
              DisplayFatalError(buf, 0, 1);\r
              return;\r
            }\r
-#endif\r
+           /* [HGM] here we really should compare with the maximum supported board size */\r
            sprintf(buf, "%dx%d+%d_", gameInfo.boardWidth,\r
                               gameInfo.boardHeight, gameInfo.holdingsSize );\r
            while(*b++ != '_');\r
@@ -6802,12 +6960,10 @@ LoadGameOneMove(readAhead)
 \r
       case WhiteCapturesEnPassant:\r
       case BlackCapturesEnPassant:\r
-#ifdef FAIRY\r
       case WhitePromotionChancellor:\r
       case BlackPromotionChancellor:\r
       case WhitePromotionArchbishop:\r
       case BlackPromotionArchbishop:\r
-#endif\r
       case WhitePromotionQueen:\r
       case BlackPromotionQueen:\r
       case WhitePromotionRook:\r
@@ -9336,6 +9492,7 @@ EditPositionMenuEvent(selection, x, y)
      int x, y;\r
 {\r
     char buf[MSG_SIZ];\r
+    ChessSquare piece = boards[0][y][x];\r
 \r
     if (gameMode != EditPosition && gameMode != IcsExamining) return;\r
 \r
@@ -9385,7 +9542,40 @@ EditPositionMenuEvent(selection, x, y)
        }\r
        break;\r
 \r
+      case PromotePiece:\r
+        if(piece >= (int)WhitePawn && piece < (int)WhiteWazir ||\r
+           piece >= (int)BlackPawn && piece < (int)BlackWazir   ) {\r
+            selection = (ChessSquare) (PROMOTED piece);\r
+        } else if(piece == EmptySquare) selection = WhiteWazir;\r
+        else selection = (ChessSquare)((int)piece - 1);\r
+        goto defaultlabel;\r
+\r
+      case DemotePiece:\r
+        if(piece >= (int)WhiteUnicorn && piece < (int)WhiteKing ||\r
+           piece >= (int)BlackUnicorn && piece < (int)BlackKing   ) {\r
+            selection = (ChessSquare) (DEMOTED piece);\r
+        } else if( piece == WhiteKing || piece == BlackKing )\r
+            selection = (ChessSquare)((int)piece - (int)WhiteKing + (int)WhiteMan);\r
+        else if(piece == EmptySquare) selection = BlackWazir;\r
+        else selection = (ChessSquare)((int)piece + 1);       \r
+        goto defaultlabel;\r
+\r
+      case WhiteQueen:\r
+      case BlackQueen:\r
+        if(gameInfo.variant == VariantShatranj ||\r
+           gameInfo.variant == VariantXiangqi  ||\r
+           gameInfo.variant == VariantCourier    )\r
+            selection = (ChessSquare)((int)selection - (int)WhiteQueen + (int)WhiteFerz);\r
+        goto defaultlabel;\r
+\r
+      case WhiteKing:\r
+      case BlackKing:\r
+        if(gameInfo.variant == VariantXiangqi)\r
+            selection = (ChessSquare)((int)selection - (int)WhiteKing + (int)WhiteWazir);\r
+        if(gameInfo.variant == VariantKnightmate)\r
+            selection = (ChessSquare)((int)selection - (int)WhiteKing + (int)WhiteUnicorn);\r
       default:\r
+        defaultlabel:\r
        if (gameMode == IcsExamining) {\r
            sprintf(buf, "%s%c@%c%c\n", ics_prefix,\r
                     PieceToChar(selection), AAA + x, ONE + y);\r
@@ -11116,6 +11306,15 @@ NextTickLength(timeRemaining)
     return nextTickLength;\r
 }\r
 \r
+/* Adjust clock one minute up or down */\r
+void\r
+AdjustClock(Boolean which, int dir)\r
+{\r
+    if(which) blackTimeRemaining += 60000*dir;\r
+    else      whiteTimeRemaining += 60000*dir;\r
+    DisplayBothClocks();\r
+}\r
+\r
 /* Stop clocks and reset to a fresh time control */\r
 void\r
 ResetClocks() \r
@@ -11468,19 +11667,27 @@ PositionToFEN(move, useFEN960)
         for (j = BOARD_LEFT; j < BOARD_RGHT; j++) {\r
            if (boards[move][i][j] == EmptySquare) {\r
                emptycount++;\r
-           } else {\r
+            } else { ChessSquare piece = boards[move][i][j];\r
                if (emptycount > 0) {\r
                     if(emptycount<10) /* [HGM] can be >= 10 */\r
                         *p++ = '0' + emptycount;\r
                     else { *p++ = '0' + emptycount/10; *p++ = '0' + emptycount%10; }\r
                    emptycount = 0;\r
                }\r
-                *p++ = PieceToChar(boards[move][i][j]);\r
-                if(gameInfo.variant == VariantCrazyhouse) {\r
+                if(gameInfo.variant == VariantShogi) {\r
+                    /* [HGM] write Shogi promoted pieces as +<unpromoted> */\r
+                    if( (int)piece > (int) WhiteCannon && (int)piece < (int) WhiteKing ||\r
+                        (int)piece > (int) BlackCannon && (int)piece < (int) BlackKing ) {\r
+                        *p++ = '+';\r
+                        piece = (ChessSquare)(DEMOTED piece);\r
+                    }\r
+                } \r
+                *p++ = PieceToChar(piece);\r
+                if(gameInfo.variant == VariantCrazyhouse || gameInfo.variant == VariantBughouse) {\r
                     /* [HGM] flag Crazyhouse promoted pieces */\r
-                    if( (int)boards[move][i][j] > (int) WhiteQueen && (int)boards[move][i][j] < (int) WhiteKing ||\r
-                        (int)boards[move][i][j] > (int) BlackQueen && (int)boards[move][i][j] < (int) BlackKing ) {\r
-                        p[-1] = PieceToChar((ChessSquare)((int)boards[move][i][j]-(int)WhiteAlfil+(int)WhitePawn));\r
+                    if( (int)piece > (int) WhiteQueen && (int)piece < (int) WhiteKing ||\r
+                        (int)piece > (int) BlackQueen && (int)piece < (int) BlackKing ) {\r
+                        p[-1] = PieceToChar((ChessSquare)(DEMOTED piece));\r
                         *p++ = '~';\r
                     }\r
                 }\r
@@ -11698,11 +11905,12 @@ ParseFEN(board, blackPlaysFirst, fen)
                 if (j + emptycount > gameInfo.boardWidth) return FALSE;\r
                 while (emptycount--)\r
                         board[i][(j++)+gameInfo.holdingsWidth] = EmptySquare;\r
-           } else if (isalpha(*p)) {\r
+            } else if (*p == '+' || isalpha(*p)) {\r
                 if (j >= gameInfo.boardWidth) return FALSE;\r
-                piece = CharToPiece(*p++);\r
+                if(*p=='+') { piece = (ChessSquare) (PROMOTED CharToPiece(*++p) ); p++; }\r
+                else piece = CharToPiece(*p++);\r
                 if(*p == '~') { /* [HGM] make it a promoted piece for Crazyhouse */\r
-                    piece = (ChessSquare) ((int)piece + (int)WhiteAlfil - (int)WhitePawn);\r
+                    piece = (ChessSquare) (PROMOTED piece);\r
                     p++;\r
                 }\r
                 board[i][(j++)+gameInfo.holdingsWidth] = piece;\r
index 0057b9d..8ef5bf3 100644 (file)
--- a/backend.h
+++ b/backend.h
@@ -131,6 +131,7 @@ void UserMoveEvent P((int fromX, int fromY, int toX, int toY, int promoChar));
 void DecrementClocks P((void));\r
 char *TimeString P((long millisec));\r
 void AutoPlayGameLoop P((void));\r
+void AdjustClock P((Boolean which, int dir));\r
 void DisplayBothClocks P((void));\r
 void EditPositionMenuEvent P((ChessSquare selection, int x, int y));\r
 void DropMenuEvent P((ChessSquare selection, int x, int y));\r
diff --git a/bitmaps/260px-Hanzi.svg b/bitmaps/260px-Hanzi.svg
new file mode 100644 (file)
index 0000000..ab2e9ca
Binary files /dev/null and b/bitmaps/260px-Hanzi.svg differ
diff --git a/bitmaps/65px-Zhongwen.svg b/bitmaps/65px-Zhongwen.svg
new file mode 100644 (file)
index 0000000..a1e4ad0
Binary files /dev/null and b/bitmaps/65px-Zhongwen.svg differ
diff --git a/bitmaps/ANALYZE2_14.ICO b/bitmaps/ANALYZE2_14.ICO
new file mode 100644 (file)
index 0000000..8f725f1
Binary files /dev/null and b/bitmaps/ANALYZE2_14.ICO differ
diff --git a/bitmaps/ANALYZE_14.ICO b/bitmaps/ANALYZE_14.ICO
new file mode 100644 (file)
index 0000000..f25d0fb
Binary files /dev/null and b/bitmaps/ANALYZE_14.ICO differ
diff --git a/bitmaps/BALOON_14.ICO b/bitmaps/BALOON_14.ICO
new file mode 100644 (file)
index 0000000..dfe056f
Binary files /dev/null and b/bitmaps/BALOON_14.ICO differ
diff --git a/bitmaps/BLACK_14.ICO b/bitmaps/BLACK_14.ICO
new file mode 100644 (file)
index 0000000..9661f7c
Binary files /dev/null and b/bitmaps/BLACK_14.ICO differ
diff --git a/bitmaps/CLOCK_14.ICO b/bitmaps/CLOCK_14.ICO
new file mode 100644 (file)
index 0000000..0785d5c
Binary files /dev/null and b/bitmaps/CLOCK_14.ICO differ
diff --git a/bitmaps/PONDER_14.ICO b/bitmaps/PONDER_14.ICO
new file mode 100644 (file)
index 0000000..484deaa
Binary files /dev/null and b/bitmaps/PONDER_14.ICO differ
index b868cfd..573108d 100644 (file)
@@ -1,94 +1,20 @@
-This directory provides bitmaps with the same size and naming
-conventions as those distributed till xboard-3.**
-These bitmaps are distributed under the GNU GENERAL PUBLIC LICENSE
-coming with xboard.
-
-The bitmaps contained herein were converted from my MetaFont
-version of chess font. These are designed very well to deliver
-good rastered images on low resolution devices. The general
-shape of these fonts are designed after very old typefaces
-used in printing chess books. They are not as fancy as the
-currently used bitmaps of xboard, but I like them in their
-'san serif'-ness - may be others too.
-  The MetaFont source of this font may be obtained from me
-under the GNU GENERAL PUBLIC LICENSE.
-  To convert the pk-Files to bitmaps I used the conversion tool
-mftobdf to generate X11-bdf - fonts, and then used a small C
-program, to write the xbm-files.
-
-5.Feb.1994 Elmar Bartel
-bartel@informatik.tu-muenchen.de
-
-[Elmar supplied only 80, 64, and 40 pixel bitmaps]
-
-* * *
-
-The 21-pixel bitmaps are also based on Elmar's font, but I hand-tuned
-them quite a bit.  I converted them from the Metafont gf file by
-running gftype and applying a C program of my own to the
-human-readable output.
-
-icon_white and icon_black were produced in the same way.
-
-21 Nov 1995  Tim Mann
-
-* * *
-
-The 33, 45, 49, 54, and 58 pixel bitmaps are also based on Elmar's font.
-They were converted using dopkbm.sh, followed by a manual pass with the
-X bitmap editor to adjust the size (adding blank borders as needed) and
-to hand-tune the pixels in a few cases where that was badly needed.
-Here is some data that may be useful in later conversions:
-
-Character numbers in fselch fonts:
-
-Piece  Open  Solid  Open/bg  Solid/bg
-P      0     014    022      036
-N      1     015    023      037
-B      2     016    024      040
-R      3     017    025      041
-Q      4     020    026      042
-K      5     021    027      043
-
-Sizes (WxH):
-
-fselch*.mf  blank sq  queen   used for
-----------  --------  -----   --------
-8           33x33     31x29   33x33
-9           37x37     33x32   none
-10          42x42     41x37   none
-11          46x46     43x41   45x45
-12          50x50     47x43   49x49
-13          54x54     50x47   54x54
-14          58x58     56x50   58x58
-20          83x83     71x76   none
-21          87x87     76x81   87x87
-22          91x91     79x83   none
-23          95x95     82x89   95x95
-25          104x104   91x99   none
-26          108x108   94x103  108x108
-28          116x116   99x107  116x116
-30          125x125   110x118 none
-31          129x129   113x122 129x129
-32          133x133   116x124 none
-
-
-In each case, fselch*.mf was formatted for 300 dpi.  On Linux with the
-Red Hat tetex-0.4pl8-9 package, this required mag=0.5.  Example:
-
-  mf
-  \mode=localfont; mag=0.5; input fselch8.mf
-  gftopk fselch8.300gf
-
-On Red Hat with tetex-0.9-6, mag=1.0 was needed instead.
-
-  mf
-  \mode=localfont; mag=1.0; input fselch26.mf
-  gftopk fselch26.300gf
-
-
-15 Feb 1998  Tim Mann
-25 Feb 1999  Tim Mann
-
-* * *
-
+This directory provides bitmaps with the same size and naming\r
+conventions as those distributed till xboard-3.**\r
+These bitmaps are distributed under the GNU GENERAL PUBLIC LICENSE\r
+coming with xboard.\r
+\r
+The bitmaps contained herein were converted from my MetaFont\r
+version of chess font. These are designed very well to deliver\r
+good rastered images on low resolution devices. The general\r
+shape of these fonts are designed after very old typefaces\r
+used in printing chess books. They are not as fancy as the\r
+currently used bitmaps of xboard, but I like them in their\r
+'san serif'-ness - may be others too.\r
+  The MetaFont source of this font may be obtained from me\r
+under the GNU GENERAL PUBLIC LICENSE.\r
+  To convert the pk-Files to bitmaps I used the conversion tool\r
+mftobdf to generate X11-bdf - fonts, and then used a small C\r
+program, to write the xbm-files.\r
+\r
+5.Feb.1994 Elmar Bartel\r
+bartel@informatik.tu-muenchen.de\r
diff --git a/bitmaps/TRANS_14.ICO b/bitmaps/TRANS_14.ICO
new file mode 100644 (file)
index 0000000..a096131
Binary files /dev/null and b/bitmaps/TRANS_14.ICO differ
diff --git a/bitmaps/UNKNOWN_14.ICO b/bitmaps/UNKNOWN_14.ICO
new file mode 100644 (file)
index 0000000..ea3cef3
Binary files /dev/null and b/bitmaps/UNKNOWN_14.ICO differ
diff --git a/bitmaps/WHITE_14.ICO b/bitmaps/WHITE_14.ICO
new file mode 100644 (file)
index 0000000..4783e0f
Binary files /dev/null and b/bitmaps/WHITE_14.ICO differ
diff --git a/bitmaps/a49c.bmp b/bitmaps/a49c.bmp
new file mode 100644 (file)
index 0000000..19b739a
Binary files /dev/null and b/bitmaps/a49c.bmp differ
diff --git a/bitmaps/b108o.bmp b/bitmaps/b108o.bmp
new file mode 100644 (file)
index 0000000..a02c11f
Binary files /dev/null and b/bitmaps/b108o.bmp differ
diff --git a/bitmaps/b108s.bmp b/bitmaps/b108s.bmp
new file mode 100644 (file)
index 0000000..aac8e9c
Binary files /dev/null and b/bitmaps/b108s.bmp differ
diff --git a/bitmaps/b108w.bmp b/bitmaps/b108w.bmp
new file mode 100644 (file)
index 0000000..5086abf
Binary files /dev/null and b/bitmaps/b108w.bmp differ
diff --git a/bitmaps/b116o.bmp b/bitmaps/b116o.bmp
new file mode 100644 (file)
index 0000000..26b226a
Binary files /dev/null and b/bitmaps/b116o.bmp differ
diff --git a/bitmaps/b116s.bmp b/bitmaps/b116s.bmp
new file mode 100644 (file)
index 0000000..12d70e3
Binary files /dev/null and b/bitmaps/b116s.bmp differ
diff --git a/bitmaps/b116w.bmp b/bitmaps/b116w.bmp
new file mode 100644 (file)
index 0000000..f11ec11
Binary files /dev/null and b/bitmaps/b116w.bmp differ
diff --git a/bitmaps/b129o.bmp b/bitmaps/b129o.bmp
new file mode 100644 (file)
index 0000000..243ef28
Binary files /dev/null and b/bitmaps/b129o.bmp differ
diff --git a/bitmaps/b129s.bmp b/bitmaps/b129s.bmp
new file mode 100644 (file)
index 0000000..4209b45
Binary files /dev/null and b/bitmaps/b129s.bmp differ
diff --git a/bitmaps/b129w.bmp b/bitmaps/b129w.bmp
new file mode 100644 (file)
index 0000000..759f1ef
Binary files /dev/null and b/bitmaps/b129w.bmp differ
diff --git a/bitmaps/b21o.bmp b/bitmaps/b21o.bmp
new file mode 100644 (file)
index 0000000..4a5dc5f
Binary files /dev/null and b/bitmaps/b21o.bmp differ
diff --git a/bitmaps/b21s.bmp b/bitmaps/b21s.bmp
new file mode 100644 (file)
index 0000000..cb9e317
Binary files /dev/null and b/bitmaps/b21s.bmp differ
diff --git a/bitmaps/b21w.bmp b/bitmaps/b21w.bmp
new file mode 100644 (file)
index 0000000..0b8b1ee
Binary files /dev/null and b/bitmaps/b21w.bmp differ
diff --git a/bitmaps/b25o.bmp b/bitmaps/b25o.bmp
new file mode 100644 (file)
index 0000000..dfd160e
Binary files /dev/null and b/bitmaps/b25o.bmp differ
diff --git a/bitmaps/b25s.bmp b/bitmaps/b25s.bmp
new file mode 100644 (file)
index 0000000..c9c41af
Binary files /dev/null and b/bitmaps/b25s.bmp differ
diff --git a/bitmaps/b25w.bmp b/bitmaps/b25w.bmp
new file mode 100644 (file)
index 0000000..1d79b9d
Binary files /dev/null and b/bitmaps/b25w.bmp differ
diff --git a/bitmaps/b29o.bmp b/bitmaps/b29o.bmp
new file mode 100644 (file)
index 0000000..cb1ef88
Binary files /dev/null and b/bitmaps/b29o.bmp differ
diff --git a/bitmaps/b29s.bmp b/bitmaps/b29s.bmp
new file mode 100644 (file)
index 0000000..f14cbfa
Binary files /dev/null and b/bitmaps/b29s.bmp differ
diff --git a/bitmaps/b29w.bmp b/bitmaps/b29w.bmp
new file mode 100644 (file)
index 0000000..a04ae00
Binary files /dev/null and b/bitmaps/b29w.bmp differ
diff --git a/bitmaps/b33o.bmp b/bitmaps/b33o.bmp
new file mode 100644 (file)
index 0000000..8a2779a
Binary files /dev/null and b/bitmaps/b33o.bmp differ
diff --git a/bitmaps/b33s.bmp b/bitmaps/b33s.bmp
new file mode 100644 (file)
index 0000000..1955f6b
Binary files /dev/null and b/bitmaps/b33s.bmp differ
diff --git a/bitmaps/b33w.bmp b/bitmaps/b33w.bmp
new file mode 100644 (file)
index 0000000..3d34cbc
Binary files /dev/null and b/bitmaps/b33w.bmp differ
diff --git a/bitmaps/b37o.bmp b/bitmaps/b37o.bmp
new file mode 100644 (file)
index 0000000..2e46cd4
Binary files /dev/null and b/bitmaps/b37o.bmp differ
diff --git a/bitmaps/b37s.bmp b/bitmaps/b37s.bmp
new file mode 100644 (file)
index 0000000..de6f7c5
Binary files /dev/null and b/bitmaps/b37s.bmp differ
diff --git a/bitmaps/b37w.bmp b/bitmaps/b37w.bmp
new file mode 100644 (file)
index 0000000..432212c
Binary files /dev/null and b/bitmaps/b37w.bmp differ
diff --git a/bitmaps/b40o.bmp b/bitmaps/b40o.bmp
new file mode 100644 (file)
index 0000000..bb0c457
Binary files /dev/null and b/bitmaps/b40o.bmp differ
diff --git a/bitmaps/b40s.bmp b/bitmaps/b40s.bmp
new file mode 100644 (file)
index 0000000..4664ff2
Binary files /dev/null and b/bitmaps/b40s.bmp differ
diff --git a/bitmaps/b40w.bmp b/bitmaps/b40w.bmp
new file mode 100644 (file)
index 0000000..239e2fe
Binary files /dev/null and b/bitmaps/b40w.bmp differ
diff --git a/bitmaps/b45o.bmp b/bitmaps/b45o.bmp
new file mode 100644 (file)
index 0000000..5cd3765
Binary files /dev/null and b/bitmaps/b45o.bmp differ
diff --git a/bitmaps/b45s.bmp b/bitmaps/b45s.bmp
new file mode 100644 (file)
index 0000000..285e968
Binary files /dev/null and b/bitmaps/b45s.bmp differ
diff --git a/bitmaps/b45w.bmp b/bitmaps/b45w.bmp
new file mode 100644 (file)
index 0000000..dec307a
Binary files /dev/null and b/bitmaps/b45w.bmp differ
diff --git a/bitmaps/b49o.bmp b/bitmaps/b49o.bmp
new file mode 100644 (file)
index 0000000..b643dc3
Binary files /dev/null and b/bitmaps/b49o.bmp differ
diff --git a/bitmaps/b49s.bmp b/bitmaps/b49s.bmp
new file mode 100644 (file)
index 0000000..1a7f30c
Binary files /dev/null and b/bitmaps/b49s.bmp differ
diff --git a/bitmaps/b49w.bmp b/bitmaps/b49w.bmp
new file mode 100644 (file)
index 0000000..8a294bb
Binary files /dev/null and b/bitmaps/b49w.bmp differ
diff --git a/bitmaps/b54o.bmp b/bitmaps/b54o.bmp
new file mode 100644 (file)
index 0000000..5020224
Binary files /dev/null and b/bitmaps/b54o.bmp differ
diff --git a/bitmaps/b54s.bmp b/bitmaps/b54s.bmp
new file mode 100644 (file)
index 0000000..cb770e5
Binary files /dev/null and b/bitmaps/b54s.bmp differ
diff --git a/bitmaps/b54w.bmp b/bitmaps/b54w.bmp
new file mode 100644 (file)
index 0000000..011e8a9
Binary files /dev/null and b/bitmaps/b54w.bmp differ
diff --git a/bitmaps/b58o.bmp b/bitmaps/b58o.bmp
new file mode 100644 (file)
index 0000000..c8d3bd8
Binary files /dev/null and b/bitmaps/b58o.bmp differ
diff --git a/bitmaps/b58s.bmp b/bitmaps/b58s.bmp
new file mode 100644 (file)
index 0000000..f7c9220
Binary files /dev/null and b/bitmaps/b58s.bmp differ
diff --git a/bitmaps/b58w.bmp b/bitmaps/b58w.bmp
new file mode 100644 (file)
index 0000000..6a808b2
Binary files /dev/null and b/bitmaps/b58w.bmp differ
diff --git a/bitmaps/b64o.bmp b/bitmaps/b64o.bmp
new file mode 100644 (file)
index 0000000..52f14ac
Binary files /dev/null and b/bitmaps/b64o.bmp differ
diff --git a/bitmaps/b64s.bmp b/bitmaps/b64s.bmp
new file mode 100644 (file)
index 0000000..a24c96e
Binary files /dev/null and b/bitmaps/b64s.bmp differ
diff --git a/bitmaps/b64w.bmp b/bitmaps/b64w.bmp
new file mode 100644 (file)
index 0000000..acf8351
Binary files /dev/null and b/bitmaps/b64w.bmp differ
diff --git a/bitmaps/b72o.bmp b/bitmaps/b72o.bmp
new file mode 100644 (file)
index 0000000..e0010bb
Binary files /dev/null and b/bitmaps/b72o.bmp differ
diff --git a/bitmaps/b72s.bmp b/bitmaps/b72s.bmp
new file mode 100644 (file)
index 0000000..a91b41d
Binary files /dev/null and b/bitmaps/b72s.bmp differ
diff --git a/bitmaps/b72w.bmp b/bitmaps/b72w.bmp
new file mode 100644 (file)
index 0000000..76f2128
Binary files /dev/null and b/bitmaps/b72w.bmp differ
diff --git a/bitmaps/b80o.bmp b/bitmaps/b80o.bmp
new file mode 100644 (file)
index 0000000..3a72bfe
Binary files /dev/null and b/bitmaps/b80o.bmp differ
diff --git a/bitmaps/b80s.bmp b/bitmaps/b80s.bmp
new file mode 100644 (file)
index 0000000..c9eef7a
Binary files /dev/null and b/bitmaps/b80s.bmp differ
diff --git a/bitmaps/b80w.bmp b/bitmaps/b80w.bmp
new file mode 100644 (file)
index 0000000..ecaf147
Binary files /dev/null and b/bitmaps/b80w.bmp differ
diff --git a/bitmaps/b87o.bmp b/bitmaps/b87o.bmp
new file mode 100644 (file)
index 0000000..202994b
Binary files /dev/null and b/bitmaps/b87o.bmp differ
diff --git a/bitmaps/b87s.bmp b/bitmaps/b87s.bmp
new file mode 100644 (file)
index 0000000..d5baa5c
Binary files /dev/null and b/bitmaps/b87s.bmp differ
diff --git a/bitmaps/b87w.bmp b/bitmaps/b87w.bmp
new file mode 100644 (file)
index 0000000..540b4c9
Binary files /dev/null and b/bitmaps/b87w.bmp differ
diff --git a/bitmaps/b95o.bmp b/bitmaps/b95o.bmp
new file mode 100644 (file)
index 0000000..fea8eff
Binary files /dev/null and b/bitmaps/b95o.bmp differ
diff --git a/bitmaps/b95s.bmp b/bitmaps/b95s.bmp
new file mode 100644 (file)
index 0000000..c288c7f
Binary files /dev/null and b/bitmaps/b95s.bmp differ
diff --git a/bitmaps/b95w.bmp b/bitmaps/b95w.bmp
new file mode 100644 (file)
index 0000000..565deb0
Binary files /dev/null and b/bitmaps/b95w.bmp differ
diff --git a/bitmaps/board.ico b/bitmaps/board.ico
new file mode 100644 (file)
index 0000000..62f0714
Binary files /dev/null and b/bitmaps/board.ico differ
diff --git a/bitmaps/dk49o.bmp b/bitmaps/dk49o.bmp
new file mode 100644 (file)
index 0000000..e3f6f3a
Binary files /dev/null and b/bitmaps/dk49o.bmp differ
diff --git a/bitmaps/dk49s.bmp b/bitmaps/dk49s.bmp
new file mode 100644 (file)
index 0000000..46b05b1
Binary files /dev/null and b/bitmaps/dk49s.bmp differ
diff --git a/bitmaps/dk49w.bmp b/bitmaps/dk49w.bmp
new file mode 100644 (file)
index 0000000..4e05b8f
Binary files /dev/null and b/bitmaps/dk49w.bmp differ
diff --git a/bitmaps/dk72o.bmp b/bitmaps/dk72o.bmp
new file mode 100644 (file)
index 0000000..e531478
Binary files /dev/null and b/bitmaps/dk72o.bmp differ
diff --git a/bitmaps/dk72s.bmp b/bitmaps/dk72s.bmp
new file mode 100644 (file)
index 0000000..da3d696
Binary files /dev/null and b/bitmaps/dk72s.bmp differ
diff --git a/bitmaps/dk72w.bmp b/bitmaps/dk72w.bmp
new file mode 100644 (file)
index 0000000..66ee835
Binary files /dev/null and b/bitmaps/dk72w.bmp differ
diff --git a/bitmaps/e129o.bmp b/bitmaps/e129o.bmp
new file mode 100644 (file)
index 0000000..f464adf
Binary files /dev/null and b/bitmaps/e129o.bmp differ
diff --git a/bitmaps/g49o.bmp b/bitmaps/g49o.bmp
new file mode 100644 (file)
index 0000000..2930420
Binary files /dev/null and b/bitmaps/g49o.bmp differ
diff --git a/bitmaps/g49s.bmp b/bitmaps/g49s.bmp
new file mode 100644 (file)
index 0000000..835cd41
Binary files /dev/null and b/bitmaps/g49s.bmp differ
diff --git a/bitmaps/g49w.bmp b/bitmaps/g49w.bmp
new file mode 100644 (file)
index 0000000..4cf34ac
Binary files /dev/null and b/bitmaps/g49w.bmp differ
diff --git a/bitmaps/g72o.bmp b/bitmaps/g72o.bmp
new file mode 100644 (file)
index 0000000..6eb6bcf
Binary files /dev/null and b/bitmaps/g72o.bmp differ
diff --git a/bitmaps/g72s.bmp b/bitmaps/g72s.bmp
new file mode 100644 (file)
index 0000000..751be79
Binary files /dev/null and b/bitmaps/g72s.bmp differ
diff --git a/bitmaps/g72w.bmp b/bitmaps/g72w.bmp
new file mode 100644 (file)
index 0000000..aaae0c4
Binary files /dev/null and b/bitmaps/g72w.bmp differ
diff --git a/bitmaps/galactic.bmp b/bitmaps/galactic.bmp
new file mode 100644 (file)
index 0000000..7dc277e
Binary files /dev/null and b/bitmaps/galactic.bmp differ
diff --git a/bitmaps/h129o.bmp b/bitmaps/h129o.bmp
new file mode 100644 (file)
index 0000000..563da93
Binary files /dev/null and b/bitmaps/h129o.bmp differ
index dd279cf..8ae9967 100644 (file)
Binary files a/bitmaps/h49o.bmp and b/bitmaps/h49o.bmp differ
index 97cdec9..1ace8fe 100644 (file)
Binary files a/bitmaps/h49s.bmp and b/bitmaps/h49s.bmp differ
index 3de2f0c..0163d1e 100644 (file)
Binary files a/bitmaps/h49w.bmp and b/bitmaps/h49w.bmp differ
index 3ad8904..cdef69a 100644 (file)
Binary files a/bitmaps/h72o.bmp and b/bitmaps/h72o.bmp differ
index 85fd8c8..44baa80 100644 (file)
Binary files a/bitmaps/h72s.bmp and b/bitmaps/h72s.bmp differ
index 5d9ecd0..eac2216 100644 (file)
Binary files a/bitmaps/h72w.bmp and b/bitmaps/h72w.bmp differ
diff --git a/bitmaps/icon_b.bmp b/bitmaps/icon_b.bmp
new file mode 100644 (file)
index 0000000..152809d
Binary files /dev/null and b/bitmaps/icon_b.bmp differ
diff --git a/bitmaps/icon_b.ico b/bitmaps/icon_b.ico
new file mode 100644 (file)
index 0000000..8555e72
Binary files /dev/null and b/bitmaps/icon_b.ico differ
diff --git a/bitmaps/icon_o.ico b/bitmaps/icon_o.ico
new file mode 100644 (file)
index 0000000..e3051fd
Binary files /dev/null and b/bitmaps/icon_o.ico differ
diff --git a/bitmaps/icon_ob.ico b/bitmaps/icon_ob.ico
new file mode 100644 (file)
index 0000000..27cfe72
Binary files /dev/null and b/bitmaps/icon_ob.ico differ
diff --git a/bitmaps/icon_ow.ico b/bitmaps/icon_ow.ico
new file mode 100644 (file)
index 0000000..5ba5631
Binary files /dev/null and b/bitmaps/icon_ow.ico differ
diff --git a/bitmaps/icon_w.bmp b/bitmaps/icon_w.bmp
new file mode 100644 (file)
index 0000000..c1a7c03
Binary files /dev/null and b/bitmaps/icon_w.bmp differ
diff --git a/bitmaps/icon_w.ico b/bitmaps/icon_w.ico
new file mode 100644 (file)
index 0000000..d0d803a
Binary files /dev/null and b/bitmaps/icon_w.ico differ
diff --git a/bitmaps/icon_whi.ico b/bitmaps/icon_whi.ico
new file mode 100644 (file)
index 0000000..fd7b2db
Binary files /dev/null and b/bitmaps/icon_whi.ico differ
diff --git a/bitmaps/k108o.bmp b/bitmaps/k108o.bmp
new file mode 100644 (file)
index 0000000..3a38071
Binary files /dev/null and b/bitmaps/k108o.bmp differ
diff --git a/bitmaps/k108s.bmp b/bitmaps/k108s.bmp
new file mode 100644 (file)
index 0000000..854baff
Binary files /dev/null and b/bitmaps/k108s.bmp differ
diff --git a/bitmaps/k108w.bmp b/bitmaps/k108w.bmp
new file mode 100644 (file)
index 0000000..4fa8e67
Binary files /dev/null and b/bitmaps/k108w.bmp differ
diff --git a/bitmaps/k116o.bmp b/bitmaps/k116o.bmp
new file mode 100644 (file)
index 0000000..eafb1f7
Binary files /dev/null and b/bitmaps/k116o.bmp differ
diff --git a/bitmaps/k116s.bmp b/bitmaps/k116s.bmp
new file mode 100644 (file)
index 0000000..5fce825
Binary files /dev/null and b/bitmaps/k116s.bmp differ
diff --git a/bitmaps/k116w.bmp b/bitmaps/k116w.bmp
new file mode 100644 (file)
index 0000000..fd37812
Binary files /dev/null and b/bitmaps/k116w.bmp differ
diff --git a/bitmaps/k129o.bmp b/bitmaps/k129o.bmp
new file mode 100644 (file)
index 0000000..c2c9bb2
Binary files /dev/null and b/bitmaps/k129o.bmp differ
diff --git a/bitmaps/k129s.bmp b/bitmaps/k129s.bmp
new file mode 100644 (file)
index 0000000..91db0dd
Binary files /dev/null and b/bitmaps/k129s.bmp differ
diff --git a/bitmaps/k129w.bmp b/bitmaps/k129w.bmp
new file mode 100644 (file)
index 0000000..2901b42
Binary files /dev/null and b/bitmaps/k129w.bmp differ
diff --git a/bitmaps/k21o.bmp b/bitmaps/k21o.bmp
new file mode 100644 (file)
index 0000000..0d753d9
Binary files /dev/null and b/bitmaps/k21o.bmp differ
diff --git a/bitmaps/k21s.bmp b/bitmaps/k21s.bmp
new file mode 100644 (file)
index 0000000..bbc70fc
Binary files /dev/null and b/bitmaps/k21s.bmp differ
diff --git a/bitmaps/k21w.bmp b/bitmaps/k21w.bmp
new file mode 100644 (file)
index 0000000..ea0ad50
Binary files /dev/null and b/bitmaps/k21w.bmp differ
diff --git a/bitmaps/k25o.bmp b/bitmaps/k25o.bmp
new file mode 100644 (file)
index 0000000..8c17818
Binary files /dev/null and b/bitmaps/k25o.bmp differ
diff --git a/bitmaps/k25s.bmp b/bitmaps/k25s.bmp
new file mode 100644 (file)
index 0000000..fcf180c
Binary files /dev/null and b/bitmaps/k25s.bmp differ
diff --git a/bitmaps/k25w.bmp b/bitmaps/k25w.bmp
new file mode 100644 (file)
index 0000000..bcc7986
Binary files /dev/null and b/bitmaps/k25w.bmp differ
diff --git a/bitmaps/k29o.bmp b/bitmaps/k29o.bmp
new file mode 100644 (file)
index 0000000..4284322
Binary files /dev/null and b/bitmaps/k29o.bmp differ
diff --git a/bitmaps/k29s.bmp b/bitmaps/k29s.bmp
new file mode 100644 (file)
index 0000000..aefee9a
Binary files /dev/null and b/bitmaps/k29s.bmp differ
diff --git a/bitmaps/k29w.bmp b/bitmaps/k29w.bmp
new file mode 100644 (file)
index 0000000..9bea2c5
Binary files /dev/null and b/bitmaps/k29w.bmp differ
diff --git a/bitmaps/k33o.bmp b/bitmaps/k33o.bmp
new file mode 100644 (file)
index 0000000..ef6bd2a
Binary files /dev/null and b/bitmaps/k33o.bmp differ
diff --git a/bitmaps/k33s.bmp b/bitmaps/k33s.bmp
new file mode 100644 (file)
index 0000000..8ac836d
Binary files /dev/null and b/bitmaps/k33s.bmp differ
diff --git a/bitmaps/k33w.bmp b/bitmaps/k33w.bmp
new file mode 100644 (file)
index 0000000..4658756
Binary files /dev/null and b/bitmaps/k33w.bmp differ
diff --git a/bitmaps/k37o.bmp b/bitmaps/k37o.bmp
new file mode 100644 (file)
index 0000000..34b1702
Binary files /dev/null and b/bitmaps/k37o.bmp differ
diff --git a/bitmaps/k37s.bmp b/bitmaps/k37s.bmp
new file mode 100644 (file)
index 0000000..d5ac9ac
Binary files /dev/null and b/bitmaps/k37s.bmp differ
diff --git a/bitmaps/k37w.bmp b/bitmaps/k37w.bmp
new file mode 100644 (file)
index 0000000..5be036f
Binary files /dev/null and b/bitmaps/k37w.bmp differ
diff --git a/bitmaps/k40o.bmp b/bitmaps/k40o.bmp
new file mode 100644 (file)
index 0000000..52b02a3
Binary files /dev/null and b/bitmaps/k40o.bmp differ
diff --git a/bitmaps/k40s.bmp b/bitmaps/k40s.bmp
new file mode 100644 (file)
index 0000000..5965e8c
Binary files /dev/null and b/bitmaps/k40s.bmp differ
diff --git a/bitmaps/k40w.bmp b/bitmaps/k40w.bmp
new file mode 100644 (file)
index 0000000..098cc61
Binary files /dev/null and b/bitmaps/k40w.bmp differ
diff --git a/bitmaps/k45o.bmp b/bitmaps/k45o.bmp
new file mode 100644 (file)
index 0000000..7fc08b3
Binary files /dev/null and b/bitmaps/k45o.bmp differ
diff --git a/bitmaps/k45s.bmp b/bitmaps/k45s.bmp
new file mode 100644 (file)
index 0000000..4412cb5
Binary files /dev/null and b/bitmaps/k45s.bmp differ
diff --git a/bitmaps/k45w.bmp b/bitmaps/k45w.bmp
new file mode 100644 (file)
index 0000000..f6ef58f
Binary files /dev/null and b/bitmaps/k45w.bmp differ
diff --git a/bitmaps/k49o.bmp b/bitmaps/k49o.bmp
new file mode 100644 (file)
index 0000000..912e63a
Binary files /dev/null and b/bitmaps/k49o.bmp differ
diff --git a/bitmaps/k49s.bmp b/bitmaps/k49s.bmp
new file mode 100644 (file)
index 0000000..bda98b0
Binary files /dev/null and b/bitmaps/k49s.bmp differ
diff --git a/bitmaps/k49w.bmp b/bitmaps/k49w.bmp
new file mode 100644 (file)
index 0000000..985b675
Binary files /dev/null and b/bitmaps/k49w.bmp differ
diff --git a/bitmaps/k54o.bmp b/bitmaps/k54o.bmp
new file mode 100644 (file)
index 0000000..f3e9047
Binary files /dev/null and b/bitmaps/k54o.bmp differ
diff --git a/bitmaps/k54s.bmp b/bitmaps/k54s.bmp
new file mode 100644 (file)
index 0000000..287d70b
Binary files /dev/null and b/bitmaps/k54s.bmp differ
diff --git a/bitmaps/k54w.bmp b/bitmaps/k54w.bmp
new file mode 100644 (file)
index 0000000..0923c9b
Binary files /dev/null and b/bitmaps/k54w.bmp differ
diff --git a/bitmaps/k58o.bmp b/bitmaps/k58o.bmp
new file mode 100644 (file)
index 0000000..95ac9de
Binary files /dev/null and b/bitmaps/k58o.bmp differ
diff --git a/bitmaps/k58s.bmp b/bitmaps/k58s.bmp
new file mode 100644 (file)
index 0000000..8eb1ed7
Binary files /dev/null and b/bitmaps/k58s.bmp differ
diff --git a/bitmaps/k58w.bmp b/bitmaps/k58w.bmp
new file mode 100644 (file)
index 0000000..10b2338
Binary files /dev/null and b/bitmaps/k58w.bmp differ
diff --git a/bitmaps/k64o.bmp b/bitmaps/k64o.bmp
new file mode 100644 (file)
index 0000000..7418826
Binary files /dev/null and b/bitmaps/k64o.bmp differ
diff --git a/bitmaps/k64s.bmp b/bitmaps/k64s.bmp
new file mode 100644 (file)
index 0000000..d257d77
Binary files /dev/null and b/bitmaps/k64s.bmp differ
diff --git a/bitmaps/k64w.bmp b/bitmaps/k64w.bmp
new file mode 100644 (file)
index 0000000..b90bcb3
Binary files /dev/null and b/bitmaps/k64w.bmp differ
diff --git a/bitmaps/k72o.bmp b/bitmaps/k72o.bmp
new file mode 100644 (file)
index 0000000..1e0ad8f
Binary files /dev/null and b/bitmaps/k72o.bmp differ
diff --git a/bitmaps/k72s.bmp b/bitmaps/k72s.bmp
new file mode 100644 (file)
index 0000000..2df1e5d
Binary files /dev/null and b/bitmaps/k72s.bmp differ
diff --git a/bitmaps/k72w.bmp b/bitmaps/k72w.bmp
new file mode 100644 (file)
index 0000000..f710470
Binary files /dev/null and b/bitmaps/k72w.bmp differ
diff --git a/bitmaps/k80o.bmp b/bitmaps/k80o.bmp
new file mode 100644 (file)
index 0000000..d9bc797
Binary files /dev/null and b/bitmaps/k80o.bmp differ
diff --git a/bitmaps/k80s.bmp b/bitmaps/k80s.bmp
new file mode 100644 (file)
index 0000000..e5848e4
Binary files /dev/null and b/bitmaps/k80s.bmp differ
diff --git a/bitmaps/k80w.bmp b/bitmaps/k80w.bmp
new file mode 100644 (file)
index 0000000..1e9797a
Binary files /dev/null and b/bitmaps/k80w.bmp differ
diff --git a/bitmaps/k87o.bmp b/bitmaps/k87o.bmp
new file mode 100644 (file)
index 0000000..929fa11
Binary files /dev/null and b/bitmaps/k87o.bmp differ
diff --git a/bitmaps/k87s.bmp b/bitmaps/k87s.bmp
new file mode 100644 (file)
index 0000000..a013148
Binary files /dev/null and b/bitmaps/k87s.bmp differ
diff --git a/bitmaps/k87w.bmp b/bitmaps/k87w.bmp
new file mode 100644 (file)
index 0000000..2f4a62a
Binary files /dev/null and b/bitmaps/k87w.bmp differ
diff --git a/bitmaps/k95o.bmp b/bitmaps/k95o.bmp
new file mode 100644 (file)
index 0000000..7438de4
Binary files /dev/null and b/bitmaps/k95o.bmp differ
diff --git a/bitmaps/k95s.bmp b/bitmaps/k95s.bmp
new file mode 100644 (file)
index 0000000..098bc95
Binary files /dev/null and b/bitmaps/k95s.bmp differ
diff --git a/bitmaps/k95w.bmp b/bitmaps/k95w.bmp
new file mode 100644 (file)
index 0000000..15a98c8
Binary files /dev/null and b/bitmaps/k95w.bmp differ
diff --git a/bitmaps/l49o.bmp b/bitmaps/l49o.bmp
new file mode 100644 (file)
index 0000000..4a83007
Binary files /dev/null and b/bitmaps/l49o.bmp differ
diff --git a/bitmaps/l49s.bmp b/bitmaps/l49s.bmp
new file mode 100644 (file)
index 0000000..9dbea26
Binary files /dev/null and b/bitmaps/l49s.bmp differ
diff --git a/bitmaps/l49w.bmp b/bitmaps/l49w.bmp
new file mode 100644 (file)
index 0000000..da13b66
Binary files /dev/null and b/bitmaps/l49w.bmp differ
diff --git a/bitmaps/l72o.bmp b/bitmaps/l72o.bmp
new file mode 100644 (file)
index 0000000..130cbfd
Binary files /dev/null and b/bitmaps/l72o.bmp differ
diff --git a/bitmaps/l72s.bmp b/bitmaps/l72s.bmp
new file mode 100644 (file)
index 0000000..798e908
Binary files /dev/null and b/bitmaps/l72s.bmp differ
diff --git a/bitmaps/l72w.bmp b/bitmaps/l72w.bmp
new file mode 100644 (file)
index 0000000..6914cb1
Binary files /dev/null and b/bitmaps/l72w.bmp differ
diff --git a/bitmaps/m129o.bmp b/bitmaps/m129o.bmp
new file mode 100644 (file)
index 0000000..243ef28
Binary files /dev/null and b/bitmaps/m129o.bmp differ
diff --git a/bitmaps/n108o.bmp b/bitmaps/n108o.bmp
new file mode 100644 (file)
index 0000000..773c91b
Binary files /dev/null and b/bitmaps/n108o.bmp differ
diff --git a/bitmaps/n108s.bmp b/bitmaps/n108s.bmp
new file mode 100644 (file)
index 0000000..62691df
Binary files /dev/null and b/bitmaps/n108s.bmp differ
diff --git a/bitmaps/n108w.bmp b/bitmaps/n108w.bmp
new file mode 100644 (file)
index 0000000..248dff0
Binary files /dev/null and b/bitmaps/n108w.bmp differ
diff --git a/bitmaps/n116o.bmp b/bitmaps/n116o.bmp
new file mode 100644 (file)
index 0000000..61e037d
Binary files /dev/null and b/bitmaps/n116o.bmp differ
diff --git a/bitmaps/n116s.bmp b/bitmaps/n116s.bmp
new file mode 100644 (file)
index 0000000..fc2419a
Binary files /dev/null and b/bitmaps/n116s.bmp differ
diff --git a/bitmaps/n116w.bmp b/bitmaps/n116w.bmp
new file mode 100644 (file)
index 0000000..a6299b1
Binary files /dev/null and b/bitmaps/n116w.bmp differ
diff --git a/bitmaps/n129o.bmp b/bitmaps/n129o.bmp
new file mode 100644 (file)
index 0000000..857a82f
Binary files /dev/null and b/bitmaps/n129o.bmp differ
diff --git a/bitmaps/n129s.bmp b/bitmaps/n129s.bmp
new file mode 100644 (file)
index 0000000..d5f2142
Binary files /dev/null and b/bitmaps/n129s.bmp differ
diff --git a/bitmaps/n129w.bmp b/bitmaps/n129w.bmp
new file mode 100644 (file)
index 0000000..e1d630c
Binary files /dev/null and b/bitmaps/n129w.bmp differ
diff --git a/bitmaps/n21o.bmp b/bitmaps/n21o.bmp
new file mode 100644 (file)
index 0000000..8ae7a73
Binary files /dev/null and b/bitmaps/n21o.bmp differ
diff --git a/bitmaps/n21s.bmp b/bitmaps/n21s.bmp
new file mode 100644 (file)
index 0000000..7c2aa5c
Binary files /dev/null and b/bitmaps/n21s.bmp differ
diff --git a/bitmaps/n21w.bmp b/bitmaps/n21w.bmp
new file mode 100644 (file)
index 0000000..174e345
Binary files /dev/null and b/bitmaps/n21w.bmp differ
diff --git a/bitmaps/n25o.bmp b/bitmaps/n25o.bmp
new file mode 100644 (file)
index 0000000..9ebffd6
Binary files /dev/null and b/bitmaps/n25o.bmp differ
diff --git a/bitmaps/n25s.bmp b/bitmaps/n25s.bmp
new file mode 100644 (file)
index 0000000..c4f4ab5
Binary files /dev/null and b/bitmaps/n25s.bmp differ
diff --git a/bitmaps/n25w.bmp b/bitmaps/n25w.bmp
new file mode 100644 (file)
index 0000000..493f9b5
Binary files /dev/null and b/bitmaps/n25w.bmp differ
diff --git a/bitmaps/n29o.bmp b/bitmaps/n29o.bmp
new file mode 100644 (file)
index 0000000..5b78783
Binary files /dev/null and b/bitmaps/n29o.bmp differ
diff --git a/bitmaps/n29s.bmp b/bitmaps/n29s.bmp
new file mode 100644 (file)
index 0000000..88d0afb
Binary files /dev/null and b/bitmaps/n29s.bmp differ
diff --git a/bitmaps/n29w.bmp b/bitmaps/n29w.bmp
new file mode 100644 (file)
index 0000000..d075211
Binary files /dev/null and b/bitmaps/n29w.bmp differ
diff --git a/bitmaps/n33o.bmp b/bitmaps/n33o.bmp
new file mode 100644 (file)
index 0000000..2677922
Binary files /dev/null and b/bitmaps/n33o.bmp differ
diff --git a/bitmaps/n33s.bmp b/bitmaps/n33s.bmp
new file mode 100644 (file)
index 0000000..85d2f83
Binary files /dev/null and b/bitmaps/n33s.bmp differ
diff --git a/bitmaps/n33w.bmp b/bitmaps/n33w.bmp
new file mode 100644 (file)
index 0000000..7a42f6a
Binary files /dev/null and b/bitmaps/n33w.bmp differ
diff --git a/bitmaps/n37o.bmp b/bitmaps/n37o.bmp
new file mode 100644 (file)
index 0000000..a68f14a
Binary files /dev/null and b/bitmaps/n37o.bmp differ
diff --git a/bitmaps/n37s.bmp b/bitmaps/n37s.bmp
new file mode 100644 (file)
index 0000000..27a6de2
Binary files /dev/null and b/bitmaps/n37s.bmp differ
diff --git a/bitmaps/n37w.bmp b/bitmaps/n37w.bmp
new file mode 100644 (file)
index 0000000..89d157e
Binary files /dev/null and b/bitmaps/n37w.bmp differ
diff --git a/bitmaps/n40o.bmp b/bitmaps/n40o.bmp
new file mode 100644 (file)
index 0000000..9be7534
Binary files /dev/null and b/bitmaps/n40o.bmp differ
diff --git a/bitmaps/n40s.bmp b/bitmaps/n40s.bmp
new file mode 100644 (file)
index 0000000..1fa0fce
Binary files /dev/null and b/bitmaps/n40s.bmp differ
diff --git a/bitmaps/n40w.bmp b/bitmaps/n40w.bmp
new file mode 100644 (file)
index 0000000..84eeea1
Binary files /dev/null and b/bitmaps/n40w.bmp differ
diff --git a/bitmaps/n45o.bmp b/bitmaps/n45o.bmp
new file mode 100644 (file)
index 0000000..81e3ee4
Binary files /dev/null and b/bitmaps/n45o.bmp differ
diff --git a/bitmaps/n45s.bmp b/bitmaps/n45s.bmp
new file mode 100644 (file)
index 0000000..67752a1
Binary files /dev/null and b/bitmaps/n45s.bmp differ
diff --git a/bitmaps/n45w.bmp b/bitmaps/n45w.bmp
new file mode 100644 (file)
index 0000000..e200f89
Binary files /dev/null and b/bitmaps/n45w.bmp differ
diff --git a/bitmaps/n49o.bmp b/bitmaps/n49o.bmp
new file mode 100644 (file)
index 0000000..44d9cec
Binary files /dev/null and b/bitmaps/n49o.bmp differ
diff --git a/bitmaps/n49s.bmp b/bitmaps/n49s.bmp
new file mode 100644 (file)
index 0000000..7a5200b
Binary files /dev/null and b/bitmaps/n49s.bmp differ
diff --git a/bitmaps/n49w.bmp b/bitmaps/n49w.bmp
new file mode 100644 (file)
index 0000000..f3f7311
Binary files /dev/null and b/bitmaps/n49w.bmp differ
diff --git a/bitmaps/n54o.bmp b/bitmaps/n54o.bmp
new file mode 100644 (file)
index 0000000..738c72b
Binary files /dev/null and b/bitmaps/n54o.bmp differ
diff --git a/bitmaps/n54s.bmp b/bitmaps/n54s.bmp
new file mode 100644 (file)
index 0000000..1c3c3fa
Binary files /dev/null and b/bitmaps/n54s.bmp differ
diff --git a/bitmaps/n54w.bmp b/bitmaps/n54w.bmp
new file mode 100644 (file)
index 0000000..da912e7
Binary files /dev/null and b/bitmaps/n54w.bmp differ
diff --git a/bitmaps/n58o.bmp b/bitmaps/n58o.bmp
new file mode 100644 (file)
index 0000000..b551c1c
Binary files /dev/null and b/bitmaps/n58o.bmp differ
diff --git a/bitmaps/n58s.bmp b/bitmaps/n58s.bmp
new file mode 100644 (file)
index 0000000..39bf412
Binary files /dev/null and b/bitmaps/n58s.bmp differ
diff --git a/bitmaps/n58w.bmp b/bitmaps/n58w.bmp
new file mode 100644 (file)
index 0000000..b6ba799
Binary files /dev/null and b/bitmaps/n58w.bmp differ
diff --git a/bitmaps/n64o.bmp b/bitmaps/n64o.bmp
new file mode 100644 (file)
index 0000000..a932bce
Binary files /dev/null and b/bitmaps/n64o.bmp differ
diff --git a/bitmaps/n64s.bmp b/bitmaps/n64s.bmp
new file mode 100644 (file)
index 0000000..e0a25e1
Binary files /dev/null and b/bitmaps/n64s.bmp differ
diff --git a/bitmaps/n64w.bmp b/bitmaps/n64w.bmp
new file mode 100644 (file)
index 0000000..1c20506
Binary files /dev/null and b/bitmaps/n64w.bmp differ
diff --git a/bitmaps/n72o.bmp b/bitmaps/n72o.bmp
new file mode 100644 (file)
index 0000000..be3f303
Binary files /dev/null and b/bitmaps/n72o.bmp differ
diff --git a/bitmaps/n72s.bmp b/bitmaps/n72s.bmp
new file mode 100644 (file)
index 0000000..d641b8e
Binary files /dev/null and b/bitmaps/n72s.bmp differ
diff --git a/bitmaps/n72w.bmp b/bitmaps/n72w.bmp
new file mode 100644 (file)
index 0000000..ba9552b
Binary files /dev/null and b/bitmaps/n72w.bmp differ
diff --git a/bitmaps/n80o.bmp b/bitmaps/n80o.bmp
new file mode 100644 (file)
index 0000000..05b1a33
Binary files /dev/null and b/bitmaps/n80o.bmp differ
diff --git a/bitmaps/n80s.bmp b/bitmaps/n80s.bmp
new file mode 100644 (file)
index 0000000..873c833
Binary files /dev/null and b/bitmaps/n80s.bmp differ
diff --git a/bitmaps/n80w.bmp b/bitmaps/n80w.bmp
new file mode 100644 (file)
index 0000000..ff874d4
Binary files /dev/null and b/bitmaps/n80w.bmp differ
diff --git a/bitmaps/n87o.bmp b/bitmaps/n87o.bmp
new file mode 100644 (file)
index 0000000..3466d4d
Binary files /dev/null and b/bitmaps/n87o.bmp differ
diff --git a/bitmaps/n87s.bmp b/bitmaps/n87s.bmp
new file mode 100644 (file)
index 0000000..59b715b
Binary files /dev/null and b/bitmaps/n87s.bmp differ
diff --git a/bitmaps/n87w.bmp b/bitmaps/n87w.bmp
new file mode 100644 (file)
index 0000000..f63f28f
Binary files /dev/null and b/bitmaps/n87w.bmp differ
diff --git a/bitmaps/n95o.bmp b/bitmaps/n95o.bmp
new file mode 100644 (file)
index 0000000..f826a19
Binary files /dev/null and b/bitmaps/n95o.bmp differ
diff --git a/bitmaps/n95s.bmp b/bitmaps/n95s.bmp
new file mode 100644 (file)
index 0000000..6104c31
Binary files /dev/null and b/bitmaps/n95s.bmp differ
diff --git a/bitmaps/n95w.bmp b/bitmaps/n95w.bmp
new file mode 100644 (file)
index 0000000..68f7488
Binary files /dev/null and b/bitmaps/n95w.bmp differ
diff --git a/bitmaps/ni49o.bmp b/bitmaps/ni49o.bmp
new file mode 100644 (file)
index 0000000..42f9021
Binary files /dev/null and b/bitmaps/ni49o.bmp differ
diff --git a/bitmaps/ni49s.bmp b/bitmaps/ni49s.bmp
new file mode 100644 (file)
index 0000000..dbb4397
Binary files /dev/null and b/bitmaps/ni49s.bmp differ
diff --git a/bitmaps/ni49w.bmp b/bitmaps/ni49w.bmp
new file mode 100644 (file)
index 0000000..7964c14
Binary files /dev/null and b/bitmaps/ni49w.bmp differ
diff --git a/bitmaps/ni72o.bmp b/bitmaps/ni72o.bmp
new file mode 100644 (file)
index 0000000..fe4bd69
Binary files /dev/null and b/bitmaps/ni72o.bmp differ
diff --git a/bitmaps/ni72s.bmp b/bitmaps/ni72s.bmp
new file mode 100644 (file)
index 0000000..644a54b
Binary files /dev/null and b/bitmaps/ni72s.bmp differ
diff --git a/bitmaps/ni72w.bmp b/bitmaps/ni72w.bmp
new file mode 100644 (file)
index 0000000..81cc086
Binary files /dev/null and b/bitmaps/ni72w.bmp differ
diff --git a/bitmaps/p108o.bmp b/bitmaps/p108o.bmp
new file mode 100644 (file)
index 0000000..08fe730
Binary files /dev/null and b/bitmaps/p108o.bmp differ
diff --git a/bitmaps/p108s.bmp b/bitmaps/p108s.bmp
new file mode 100644 (file)
index 0000000..099f9ee
Binary files /dev/null and b/bitmaps/p108s.bmp differ
diff --git a/bitmaps/p108w.bmp b/bitmaps/p108w.bmp
new file mode 100644 (file)
index 0000000..2e28c9c
Binary files /dev/null and b/bitmaps/p108w.bmp differ
diff --git a/bitmaps/p116o.bmp b/bitmaps/p116o.bmp
new file mode 100644 (file)
index 0000000..d9950a3
Binary files /dev/null and b/bitmaps/p116o.bmp differ
diff --git a/bitmaps/p116s.bmp b/bitmaps/p116s.bmp
new file mode 100644 (file)
index 0000000..7fcf7aa
Binary files /dev/null and b/bitmaps/p116s.bmp differ
diff --git a/bitmaps/p116w.bmp b/bitmaps/p116w.bmp
new file mode 100644 (file)
index 0000000..b24fc2a
Binary files /dev/null and b/bitmaps/p116w.bmp differ
diff --git a/bitmaps/p129o.bmp b/bitmaps/p129o.bmp
new file mode 100644 (file)
index 0000000..5a3713a
Binary files /dev/null and b/bitmaps/p129o.bmp differ
diff --git a/bitmaps/p129s.bmp b/bitmaps/p129s.bmp
new file mode 100644 (file)
index 0000000..83df042
Binary files /dev/null and b/bitmaps/p129s.bmp differ
diff --git a/bitmaps/p129w.bmp b/bitmaps/p129w.bmp
new file mode 100644 (file)
index 0000000..360735a
Binary files /dev/null and b/bitmaps/p129w.bmp differ
diff --git a/bitmaps/p21o.bmp b/bitmaps/p21o.bmp
new file mode 100644 (file)
index 0000000..ba739e5
Binary files /dev/null and b/bitmaps/p21o.bmp differ
diff --git a/bitmaps/p21s.bmp b/bitmaps/p21s.bmp
new file mode 100644 (file)
index 0000000..53fb5ab
Binary files /dev/null and b/bitmaps/p21s.bmp differ
diff --git a/bitmaps/p21w.bmp b/bitmaps/p21w.bmp
new file mode 100644 (file)
index 0000000..e47cc23
Binary files /dev/null and b/bitmaps/p21w.bmp differ
diff --git a/bitmaps/p25o.bmp b/bitmaps/p25o.bmp
new file mode 100644 (file)
index 0000000..7cf8014
Binary files /dev/null and b/bitmaps/p25o.bmp differ
diff --git a/bitmaps/p25s.bmp b/bitmaps/p25s.bmp
new file mode 100644 (file)
index 0000000..1a59190
Binary files /dev/null and b/bitmaps/p25s.bmp differ
diff --git a/bitmaps/p25w.bmp b/bitmaps/p25w.bmp
new file mode 100644 (file)
index 0000000..bd7b65b
Binary files /dev/null and b/bitmaps/p25w.bmp differ
diff --git a/bitmaps/p29o.bmp b/bitmaps/p29o.bmp
new file mode 100644 (file)
index 0000000..49b9985
Binary files /dev/null and b/bitmaps/p29o.bmp differ
diff --git a/bitmaps/p29s.bmp b/bitmaps/p29s.bmp
new file mode 100644 (file)
index 0000000..e3f5f87
Binary files /dev/null and b/bitmaps/p29s.bmp differ
diff --git a/bitmaps/p29w.bmp b/bitmaps/p29w.bmp
new file mode 100644 (file)
index 0000000..55169f6
Binary files /dev/null and b/bitmaps/p29w.bmp differ
diff --git a/bitmaps/p33o.bmp b/bitmaps/p33o.bmp
new file mode 100644 (file)
index 0000000..4ebb6f4
Binary files /dev/null and b/bitmaps/p33o.bmp differ
diff --git a/bitmaps/p33s.bmp b/bitmaps/p33s.bmp
new file mode 100644 (file)
index 0000000..88c9dd2
Binary files /dev/null and b/bitmaps/p33s.bmp differ
diff --git a/bitmaps/p33w.bmp b/bitmaps/p33w.bmp
new file mode 100644 (file)
index 0000000..0de8f7f
Binary files /dev/null and b/bitmaps/p33w.bmp differ
diff --git a/bitmaps/p37o.bmp b/bitmaps/p37o.bmp
new file mode 100644 (file)
index 0000000..0d165cf
Binary files /dev/null and b/bitmaps/p37o.bmp differ
diff --git a/bitmaps/p37s.bmp b/bitmaps/p37s.bmp
new file mode 100644 (file)
index 0000000..dd95792
Binary files /dev/null and b/bitmaps/p37s.bmp differ
diff --git a/bitmaps/p37w.bmp b/bitmaps/p37w.bmp
new file mode 100644 (file)
index 0000000..48e0dc7
Binary files /dev/null and b/bitmaps/p37w.bmp differ
diff --git a/bitmaps/p40o.bmp b/bitmaps/p40o.bmp
new file mode 100644 (file)
index 0000000..2164542
Binary files /dev/null and b/bitmaps/p40o.bmp differ
diff --git a/bitmaps/p40s.bmp b/bitmaps/p40s.bmp
new file mode 100644 (file)
index 0000000..438d142
Binary files /dev/null and b/bitmaps/p40s.bmp differ
diff --git a/bitmaps/p40w.bmp b/bitmaps/p40w.bmp
new file mode 100644 (file)
index 0000000..44567d9
Binary files /dev/null and b/bitmaps/p40w.bmp differ
diff --git a/bitmaps/p45o.bmp b/bitmaps/p45o.bmp
new file mode 100644 (file)
index 0000000..d878adb
Binary files /dev/null and b/bitmaps/p45o.bmp differ
diff --git a/bitmaps/p45s.bmp b/bitmaps/p45s.bmp
new file mode 100644 (file)
index 0000000..c44efa7
Binary files /dev/null and b/bitmaps/p45s.bmp differ
diff --git a/bitmaps/p45w.bmp b/bitmaps/p45w.bmp
new file mode 100644 (file)
index 0000000..d1cb668
Binary files /dev/null and b/bitmaps/p45w.bmp differ
diff --git a/bitmaps/p49o.bmp b/bitmaps/p49o.bmp
new file mode 100644 (file)
index 0000000..74fb233
Binary files /dev/null and b/bitmaps/p49o.bmp differ
diff --git a/bitmaps/p49s.bmp b/bitmaps/p49s.bmp
new file mode 100644 (file)
index 0000000..a76357c
Binary files /dev/null and b/bitmaps/p49s.bmp differ
diff --git a/bitmaps/p49w.bmp b/bitmaps/p49w.bmp
new file mode 100644 (file)
index 0000000..e34cb97
Binary files /dev/null and b/bitmaps/p49w.bmp differ
diff --git a/bitmaps/p54o.bmp b/bitmaps/p54o.bmp
new file mode 100644 (file)
index 0000000..fc0a928
Binary files /dev/null and b/bitmaps/p54o.bmp differ
diff --git a/bitmaps/p54s.bmp b/bitmaps/p54s.bmp
new file mode 100644 (file)
index 0000000..7bd3fba
Binary files /dev/null and b/bitmaps/p54s.bmp differ
diff --git a/bitmaps/p54w.bmp b/bitmaps/p54w.bmp
new file mode 100644 (file)
index 0000000..ca35eda
Binary files /dev/null and b/bitmaps/p54w.bmp differ
diff --git a/bitmaps/p58o.bmp b/bitmaps/p58o.bmp
new file mode 100644 (file)
index 0000000..6f1c81e
Binary files /dev/null and b/bitmaps/p58o.bmp differ
diff --git a/bitmaps/p58s.bmp b/bitmaps/p58s.bmp
new file mode 100644 (file)
index 0000000..3336583
Binary files /dev/null and b/bitmaps/p58s.bmp differ
diff --git a/bitmaps/p58w.bmp b/bitmaps/p58w.bmp
new file mode 100644 (file)
index 0000000..8a45650
Binary files /dev/null and b/bitmaps/p58w.bmp differ
diff --git a/bitmaps/p64o.bmp b/bitmaps/p64o.bmp
new file mode 100644 (file)
index 0000000..336c228
Binary files /dev/null and b/bitmaps/p64o.bmp differ
diff --git a/bitmaps/p64s.bmp b/bitmaps/p64s.bmp
new file mode 100644 (file)
index 0000000..a134e41
Binary files /dev/null and b/bitmaps/p64s.bmp differ
diff --git a/bitmaps/p64w.bmp b/bitmaps/p64w.bmp
new file mode 100644 (file)
index 0000000..ebdd7e4
Binary files /dev/null and b/bitmaps/p64w.bmp differ
diff --git a/bitmaps/p72o.bmp b/bitmaps/p72o.bmp
new file mode 100644 (file)
index 0000000..7436520
Binary files /dev/null and b/bitmaps/p72o.bmp differ
diff --git a/bitmaps/p72s.bmp b/bitmaps/p72s.bmp
new file mode 100644 (file)
index 0000000..c155645
Binary files /dev/null and b/bitmaps/p72s.bmp differ
diff --git a/bitmaps/p72w.bmp b/bitmaps/p72w.bmp
new file mode 100644 (file)
index 0000000..542a9e0
Binary files /dev/null and b/bitmaps/p72w.bmp differ
diff --git a/bitmaps/p80o.bmp b/bitmaps/p80o.bmp
new file mode 100644 (file)
index 0000000..096c445
Binary files /dev/null and b/bitmaps/p80o.bmp differ
diff --git a/bitmaps/p80s.bmp b/bitmaps/p80s.bmp
new file mode 100644 (file)
index 0000000..0883c08
Binary files /dev/null and b/bitmaps/p80s.bmp differ
diff --git a/bitmaps/p80w.bmp b/bitmaps/p80w.bmp
new file mode 100644 (file)
index 0000000..2168385
Binary files /dev/null and b/bitmaps/p80w.bmp differ
diff --git a/bitmaps/p87o.bmp b/bitmaps/p87o.bmp
new file mode 100644 (file)
index 0000000..de4374c
Binary files /dev/null and b/bitmaps/p87o.bmp differ
diff --git a/bitmaps/p87s.bmp b/bitmaps/p87s.bmp
new file mode 100644 (file)
index 0000000..c8b6e3a
Binary files /dev/null and b/bitmaps/p87s.bmp differ
diff --git a/bitmaps/p87w.bmp b/bitmaps/p87w.bmp
new file mode 100644 (file)
index 0000000..15d9ea8
Binary files /dev/null and b/bitmaps/p87w.bmp differ
diff --git a/bitmaps/p95o.bmp b/bitmaps/p95o.bmp
new file mode 100644 (file)
index 0000000..d8d1acd
Binary files /dev/null and b/bitmaps/p95o.bmp differ
diff --git a/bitmaps/p95s.bmp b/bitmaps/p95s.bmp
new file mode 100644 (file)
index 0000000..637365f
Binary files /dev/null and b/bitmaps/p95s.bmp differ
diff --git a/bitmaps/p95w.bmp b/bitmaps/p95w.bmp
new file mode 100644 (file)
index 0000000..274c521
Binary files /dev/null and b/bitmaps/p95w.bmp differ
diff --git a/bitmaps/q108o.bmp b/bitmaps/q108o.bmp
new file mode 100644 (file)
index 0000000..e11a741
Binary files /dev/null and b/bitmaps/q108o.bmp differ
diff --git a/bitmaps/q108s.bmp b/bitmaps/q108s.bmp
new file mode 100644 (file)
index 0000000..0840506
Binary files /dev/null and b/bitmaps/q108s.bmp differ
diff --git a/bitmaps/q108w.bmp b/bitmaps/q108w.bmp
new file mode 100644 (file)
index 0000000..3cfe3fc
Binary files /dev/null and b/bitmaps/q108w.bmp differ
diff --git a/bitmaps/q116o.bmp b/bitmaps/q116o.bmp
new file mode 100644 (file)
index 0000000..8d884cd
Binary files /dev/null and b/bitmaps/q116o.bmp differ
diff --git a/bitmaps/q116s.bmp b/bitmaps/q116s.bmp
new file mode 100644 (file)
index 0000000..e526362
Binary files /dev/null and b/bitmaps/q116s.bmp differ
diff --git a/bitmaps/q116w.bmp b/bitmaps/q116w.bmp
new file mode 100644 (file)
index 0000000..ea987cc
Binary files /dev/null and b/bitmaps/q116w.bmp differ
diff --git a/bitmaps/q129o.bmp b/bitmaps/q129o.bmp
new file mode 100644 (file)
index 0000000..f6393bf
Binary files /dev/null and b/bitmaps/q129o.bmp differ
diff --git a/bitmaps/q129s.bmp b/bitmaps/q129s.bmp
new file mode 100644 (file)
index 0000000..e058bf6
Binary files /dev/null and b/bitmaps/q129s.bmp differ
diff --git a/bitmaps/q129w.bmp b/bitmaps/q129w.bmp
new file mode 100644 (file)
index 0000000..bbb98f5
Binary files /dev/null and b/bitmaps/q129w.bmp differ
diff --git a/bitmaps/q21o.bmp b/bitmaps/q21o.bmp
new file mode 100644 (file)
index 0000000..85f3359
Binary files /dev/null and b/bitmaps/q21o.bmp differ
diff --git a/bitmaps/q21s.bmp b/bitmaps/q21s.bmp
new file mode 100644 (file)
index 0000000..ee9ad79
Binary files /dev/null and b/bitmaps/q21s.bmp differ
diff --git a/bitmaps/q21w.bmp b/bitmaps/q21w.bmp
new file mode 100644 (file)
index 0000000..e3c9213
Binary files /dev/null and b/bitmaps/q21w.bmp differ
diff --git a/bitmaps/q25o.bmp b/bitmaps/q25o.bmp
new file mode 100644 (file)
index 0000000..caf5bee
Binary files /dev/null and b/bitmaps/q25o.bmp differ
diff --git a/bitmaps/q25s.bmp b/bitmaps/q25s.bmp
new file mode 100644 (file)
index 0000000..b3dadda
Binary files /dev/null and b/bitmaps/q25s.bmp differ
diff --git a/bitmaps/q25w.bmp b/bitmaps/q25w.bmp
new file mode 100644 (file)
index 0000000..565bab2
Binary files /dev/null and b/bitmaps/q25w.bmp differ
diff --git a/bitmaps/q29o.bmp b/bitmaps/q29o.bmp
new file mode 100644 (file)
index 0000000..bd08feb
Binary files /dev/null and b/bitmaps/q29o.bmp differ
diff --git a/bitmaps/q29s.bmp b/bitmaps/q29s.bmp
new file mode 100644 (file)
index 0000000..f97f190
Binary files /dev/null and b/bitmaps/q29s.bmp differ
diff --git a/bitmaps/q29w.bmp b/bitmaps/q29w.bmp
new file mode 100644 (file)
index 0000000..929c7d4
Binary files /dev/null and b/bitmaps/q29w.bmp differ
diff --git a/bitmaps/q33o.bmp b/bitmaps/q33o.bmp
new file mode 100644 (file)
index 0000000..d1c7e0a
Binary files /dev/null and b/bitmaps/q33o.bmp differ
diff --git a/bitmaps/q33s.bmp b/bitmaps/q33s.bmp
new file mode 100644 (file)
index 0000000..34798a2
Binary files /dev/null and b/bitmaps/q33s.bmp differ
diff --git a/bitmaps/q33w.bmp b/bitmaps/q33w.bmp
new file mode 100644 (file)
index 0000000..90a18a8
Binary files /dev/null and b/bitmaps/q33w.bmp differ
diff --git a/bitmaps/q37o.bmp b/bitmaps/q37o.bmp
new file mode 100644 (file)
index 0000000..972d9b5
Binary files /dev/null and b/bitmaps/q37o.bmp differ
diff --git a/bitmaps/q37s.bmp b/bitmaps/q37s.bmp
new file mode 100644 (file)
index 0000000..76f7282
Binary files /dev/null and b/bitmaps/q37s.bmp differ
diff --git a/bitmaps/q37w.bmp b/bitmaps/q37w.bmp
new file mode 100644 (file)
index 0000000..4ef25b0
Binary files /dev/null and b/bitmaps/q37w.bmp differ
diff --git a/bitmaps/q40o.bmp b/bitmaps/q40o.bmp
new file mode 100644 (file)
index 0000000..2777d46
Binary files /dev/null and b/bitmaps/q40o.bmp differ
diff --git a/bitmaps/q40s.bmp b/bitmaps/q40s.bmp
new file mode 100644 (file)
index 0000000..2952764
Binary files /dev/null and b/bitmaps/q40s.bmp differ
diff --git a/bitmaps/q40w.bmp b/bitmaps/q40w.bmp
new file mode 100644 (file)
index 0000000..2238f1d
Binary files /dev/null and b/bitmaps/q40w.bmp differ
diff --git a/bitmaps/q45o.bmp b/bitmaps/q45o.bmp
new file mode 100644 (file)
index 0000000..e04239e
Binary files /dev/null and b/bitmaps/q45o.bmp differ
diff --git a/bitmaps/q45s.bmp b/bitmaps/q45s.bmp
new file mode 100644 (file)
index 0000000..4a0b728
Binary files /dev/null and b/bitmaps/q45s.bmp differ
diff --git a/bitmaps/q45w.bmp b/bitmaps/q45w.bmp
new file mode 100644 (file)
index 0000000..30b954b
Binary files /dev/null and b/bitmaps/q45w.bmp differ
diff --git a/bitmaps/q49o.bmp b/bitmaps/q49o.bmp
new file mode 100644 (file)
index 0000000..f0d9395
Binary files /dev/null and b/bitmaps/q49o.bmp differ
diff --git a/bitmaps/q49s.bmp b/bitmaps/q49s.bmp
new file mode 100644 (file)
index 0000000..a4baae5
Binary files /dev/null and b/bitmaps/q49s.bmp differ
diff --git a/bitmaps/q49w.bmp b/bitmaps/q49w.bmp
new file mode 100644 (file)
index 0000000..460f23f
Binary files /dev/null and b/bitmaps/q49w.bmp differ
diff --git a/bitmaps/q54o.bmp b/bitmaps/q54o.bmp
new file mode 100644 (file)
index 0000000..7319504
Binary files /dev/null and b/bitmaps/q54o.bmp differ
diff --git a/bitmaps/q54s.bmp b/bitmaps/q54s.bmp
new file mode 100644 (file)
index 0000000..62245ff
Binary files /dev/null and b/bitmaps/q54s.bmp differ
diff --git a/bitmaps/q54w.bmp b/bitmaps/q54w.bmp
new file mode 100644 (file)
index 0000000..8ecbfff
Binary files /dev/null and b/bitmaps/q54w.bmp differ
diff --git a/bitmaps/q58o.bmp b/bitmaps/q58o.bmp
new file mode 100644 (file)
index 0000000..9f9ad7b
Binary files /dev/null and b/bitmaps/q58o.bmp differ
diff --git a/bitmaps/q58s.bmp b/bitmaps/q58s.bmp
new file mode 100644 (file)
index 0000000..ff10ec8
Binary files /dev/null and b/bitmaps/q58s.bmp differ
diff --git a/bitmaps/q58w.bmp b/bitmaps/q58w.bmp
new file mode 100644 (file)
index 0000000..9370ff4
Binary files /dev/null and b/bitmaps/q58w.bmp differ
diff --git a/bitmaps/q64o.bmp b/bitmaps/q64o.bmp
new file mode 100644 (file)
index 0000000..0285e9b
Binary files /dev/null and b/bitmaps/q64o.bmp differ
diff --git a/bitmaps/q64s.bmp b/bitmaps/q64s.bmp
new file mode 100644 (file)
index 0000000..23408ab
Binary files /dev/null and b/bitmaps/q64s.bmp differ
diff --git a/bitmaps/q64w.bmp b/bitmaps/q64w.bmp
new file mode 100644 (file)
index 0000000..4aeba74
Binary files /dev/null and b/bitmaps/q64w.bmp differ
diff --git a/bitmaps/q72o.bmp b/bitmaps/q72o.bmp
new file mode 100644 (file)
index 0000000..2349650
Binary files /dev/null and b/bitmaps/q72o.bmp differ
diff --git a/bitmaps/q72s.bmp b/bitmaps/q72s.bmp
new file mode 100644 (file)
index 0000000..71ed548
Binary files /dev/null and b/bitmaps/q72s.bmp differ
diff --git a/bitmaps/q72w.bmp b/bitmaps/q72w.bmp
new file mode 100644 (file)
index 0000000..8c95eba
Binary files /dev/null and b/bitmaps/q72w.bmp differ
diff --git a/bitmaps/q80o.bmp b/bitmaps/q80o.bmp
new file mode 100644 (file)
index 0000000..d462bae
Binary files /dev/null and b/bitmaps/q80o.bmp differ
diff --git a/bitmaps/q80s.bmp b/bitmaps/q80s.bmp
new file mode 100644 (file)
index 0000000..456c99a
Binary files /dev/null and b/bitmaps/q80s.bmp differ
diff --git a/bitmaps/q80w.bmp b/bitmaps/q80w.bmp
new file mode 100644 (file)
index 0000000..7004bc8
Binary files /dev/null and b/bitmaps/q80w.bmp differ
diff --git a/bitmaps/q87o.bmp b/bitmaps/q87o.bmp
new file mode 100644 (file)
index 0000000..4c702ac
Binary files /dev/null and b/bitmaps/q87o.bmp differ
diff --git a/bitmaps/q87s.bmp b/bitmaps/q87s.bmp
new file mode 100644 (file)
index 0000000..a7f2e6a
Binary files /dev/null and b/bitmaps/q87s.bmp differ
diff --git a/bitmaps/q87w.bmp b/bitmaps/q87w.bmp
new file mode 100644 (file)
index 0000000..9ee8e91
Binary files /dev/null and b/bitmaps/q87w.bmp differ
diff --git a/bitmaps/q95o.bmp b/bitmaps/q95o.bmp
new file mode 100644 (file)
index 0000000..9789e10
Binary files /dev/null and b/bitmaps/q95o.bmp differ
diff --git a/bitmaps/q95s.bmp b/bitmaps/q95s.bmp
new file mode 100644 (file)
index 0000000..69eac49
Binary files /dev/null and b/bitmaps/q95s.bmp differ
diff --git a/bitmaps/q95w.bmp b/bitmaps/q95w.bmp
new file mode 100644 (file)
index 0000000..bb4a847
Binary files /dev/null and b/bitmaps/q95w.bmp differ
diff --git a/bitmaps/r108o.bmp b/bitmaps/r108o.bmp
new file mode 100644 (file)
index 0000000..bb23012
Binary files /dev/null and b/bitmaps/r108o.bmp differ
diff --git a/bitmaps/r108s.bmp b/bitmaps/r108s.bmp
new file mode 100644 (file)
index 0000000..809111d
Binary files /dev/null and b/bitmaps/r108s.bmp differ
diff --git a/bitmaps/r108w.bmp b/bitmaps/r108w.bmp
new file mode 100644 (file)
index 0000000..196f913
Binary files /dev/null and b/bitmaps/r108w.bmp differ
diff --git a/bitmaps/r116o.bmp b/bitmaps/r116o.bmp
new file mode 100644 (file)
index 0000000..2207e9b
Binary files /dev/null and b/bitmaps/r116o.bmp differ
diff --git a/bitmaps/r116s.bmp b/bitmaps/r116s.bmp
new file mode 100644 (file)
index 0000000..d728062
Binary files /dev/null and b/bitmaps/r116s.bmp differ
diff --git a/bitmaps/r116w.bmp b/bitmaps/r116w.bmp
new file mode 100644 (file)
index 0000000..918d8d7
Binary files /dev/null and b/bitmaps/r116w.bmp differ
diff --git a/bitmaps/r129o.bmp b/bitmaps/r129o.bmp
new file mode 100644 (file)
index 0000000..e76cd84
Binary files /dev/null and b/bitmaps/r129o.bmp differ
diff --git a/bitmaps/r129s.bmp b/bitmaps/r129s.bmp
new file mode 100644 (file)
index 0000000..93b2c39
Binary files /dev/null and b/bitmaps/r129s.bmp differ
diff --git a/bitmaps/r129w.bmp b/bitmaps/r129w.bmp
new file mode 100644 (file)
index 0000000..cc3ad72
Binary files /dev/null and b/bitmaps/r129w.bmp differ
diff --git a/bitmaps/r21o.bmp b/bitmaps/r21o.bmp
new file mode 100644 (file)
index 0000000..3dd5f09
Binary files /dev/null and b/bitmaps/r21o.bmp differ
diff --git a/bitmaps/r21s.bmp b/bitmaps/r21s.bmp
new file mode 100644 (file)
index 0000000..3e731ea
Binary files /dev/null and b/bitmaps/r21s.bmp differ
diff --git a/bitmaps/r21w.bmp b/bitmaps/r21w.bmp
new file mode 100644 (file)
index 0000000..6f01a85
Binary files /dev/null and b/bitmaps/r21w.bmp differ
diff --git a/bitmaps/r25o.bmp b/bitmaps/r25o.bmp
new file mode 100644 (file)
index 0000000..ddde075
Binary files /dev/null and b/bitmaps/r25o.bmp differ
diff --git a/bitmaps/r25s.bmp b/bitmaps/r25s.bmp
new file mode 100644 (file)
index 0000000..91b184e
Binary files /dev/null and b/bitmaps/r25s.bmp differ
diff --git a/bitmaps/r25w.bmp b/bitmaps/r25w.bmp
new file mode 100644 (file)
index 0000000..cc4ee6f
Binary files /dev/null and b/bitmaps/r25w.bmp differ
diff --git a/bitmaps/r29o.bmp b/bitmaps/r29o.bmp
new file mode 100644 (file)
index 0000000..6b725f6
Binary files /dev/null and b/bitmaps/r29o.bmp differ
diff --git a/bitmaps/r29s.bmp b/bitmaps/r29s.bmp
new file mode 100644 (file)
index 0000000..f8e2a12
Binary files /dev/null and b/bitmaps/r29s.bmp differ
diff --git a/bitmaps/r29w.bmp b/bitmaps/r29w.bmp
new file mode 100644 (file)
index 0000000..49d7640
Binary files /dev/null and b/bitmaps/r29w.bmp differ
diff --git a/bitmaps/r33o.bmp b/bitmaps/r33o.bmp
new file mode 100644 (file)
index 0000000..92e47c3
Binary files /dev/null and b/bitmaps/r33o.bmp differ
diff --git a/bitmaps/r33s.bmp b/bitmaps/r33s.bmp
new file mode 100644 (file)
index 0000000..da4d221
Binary files /dev/null and b/bitmaps/r33s.bmp differ
diff --git a/bitmaps/r33w.bmp b/bitmaps/r33w.bmp
new file mode 100644 (file)
index 0000000..4afebd1
Binary files /dev/null and b/bitmaps/r33w.bmp differ
diff --git a/bitmaps/r37o.bmp b/bitmaps/r37o.bmp
new file mode 100644 (file)
index 0000000..58139d7
Binary files /dev/null and b/bitmaps/r37o.bmp differ
diff --git a/bitmaps/r37s.bmp b/bitmaps/r37s.bmp
new file mode 100644 (file)
index 0000000..c461384
Binary files /dev/null and b/bitmaps/r37s.bmp differ
diff --git a/bitmaps/r37w.bmp b/bitmaps/r37w.bmp
new file mode 100644 (file)
index 0000000..528e2ff
Binary files /dev/null and b/bitmaps/r37w.bmp differ
diff --git a/bitmaps/r40o.bmp b/bitmaps/r40o.bmp
new file mode 100644 (file)
index 0000000..000fc3e
Binary files /dev/null and b/bitmaps/r40o.bmp differ
diff --git a/bitmaps/r40s.bmp b/bitmaps/r40s.bmp
new file mode 100644 (file)
index 0000000..e67094a
Binary files /dev/null and b/bitmaps/r40s.bmp differ
diff --git a/bitmaps/r40w.bmp b/bitmaps/r40w.bmp
new file mode 100644 (file)
index 0000000..1af962c
Binary files /dev/null and b/bitmaps/r40w.bmp differ
diff --git a/bitmaps/r45o.bmp b/bitmaps/r45o.bmp
new file mode 100644 (file)
index 0000000..3a84672
Binary files /dev/null and b/bitmaps/r45o.bmp differ
diff --git a/bitmaps/r45s.bmp b/bitmaps/r45s.bmp
new file mode 100644 (file)
index 0000000..2d8fe11
Binary files /dev/null and b/bitmaps/r45s.bmp differ
diff --git a/bitmaps/r45w.bmp b/bitmaps/r45w.bmp
new file mode 100644 (file)
index 0000000..b81d18e
Binary files /dev/null and b/bitmaps/r45w.bmp differ
diff --git a/bitmaps/r49o.bmp b/bitmaps/r49o.bmp
new file mode 100644 (file)
index 0000000..e90e522
Binary files /dev/null and b/bitmaps/r49o.bmp differ
diff --git a/bitmaps/r49s.bmp b/bitmaps/r49s.bmp
new file mode 100644 (file)
index 0000000..2ad664e
Binary files /dev/null and b/bitmaps/r49s.bmp differ
diff --git a/bitmaps/r49w.bmp b/bitmaps/r49w.bmp
new file mode 100644 (file)
index 0000000..f9aa784
Binary files /dev/null and b/bitmaps/r49w.bmp differ
diff --git a/bitmaps/r54o.bmp b/bitmaps/r54o.bmp
new file mode 100644 (file)
index 0000000..7d26cd7
Binary files /dev/null and b/bitmaps/r54o.bmp differ
diff --git a/bitmaps/r54s.bmp b/bitmaps/r54s.bmp
new file mode 100644 (file)
index 0000000..1b25f53
Binary files /dev/null and b/bitmaps/r54s.bmp differ
diff --git a/bitmaps/r54w.bmp b/bitmaps/r54w.bmp
new file mode 100644 (file)
index 0000000..44123f0
Binary files /dev/null and b/bitmaps/r54w.bmp differ
diff --git a/bitmaps/r58o.bmp b/bitmaps/r58o.bmp
new file mode 100644 (file)
index 0000000..0f8f018
Binary files /dev/null and b/bitmaps/r58o.bmp differ
diff --git a/bitmaps/r58s.bmp b/bitmaps/r58s.bmp
new file mode 100644 (file)
index 0000000..eaad170
Binary files /dev/null and b/bitmaps/r58s.bmp differ
diff --git a/bitmaps/r58w.bmp b/bitmaps/r58w.bmp
new file mode 100644 (file)
index 0000000..11f1ac7
Binary files /dev/null and b/bitmaps/r58w.bmp differ
diff --git a/bitmaps/r64o.bmp b/bitmaps/r64o.bmp
new file mode 100644 (file)
index 0000000..38e6ffe
Binary files /dev/null and b/bitmaps/r64o.bmp differ
diff --git a/bitmaps/r64s.bmp b/bitmaps/r64s.bmp
new file mode 100644 (file)
index 0000000..940ebe9
Binary files /dev/null and b/bitmaps/r64s.bmp differ
diff --git a/bitmaps/r64w.bmp b/bitmaps/r64w.bmp
new file mode 100644 (file)
index 0000000..564c882
Binary files /dev/null and b/bitmaps/r64w.bmp differ
diff --git a/bitmaps/r72o.bmp b/bitmaps/r72o.bmp
new file mode 100644 (file)
index 0000000..2a53da7
Binary files /dev/null and b/bitmaps/r72o.bmp differ
diff --git a/bitmaps/r72s.bmp b/bitmaps/r72s.bmp
new file mode 100644 (file)
index 0000000..b438967
Binary files /dev/null and b/bitmaps/r72s.bmp differ
diff --git a/bitmaps/r72w.bmp b/bitmaps/r72w.bmp
new file mode 100644 (file)
index 0000000..bc615cc
Binary files /dev/null and b/bitmaps/r72w.bmp differ
diff --git a/bitmaps/r80o.bmp b/bitmaps/r80o.bmp
new file mode 100644 (file)
index 0000000..6019342
Binary files /dev/null and b/bitmaps/r80o.bmp differ
diff --git a/bitmaps/r80s.bmp b/bitmaps/r80s.bmp
new file mode 100644 (file)
index 0000000..be2a5b6
Binary files /dev/null and b/bitmaps/r80s.bmp differ
diff --git a/bitmaps/r80w.bmp b/bitmaps/r80w.bmp
new file mode 100644 (file)
index 0000000..5964098
Binary files /dev/null and b/bitmaps/r80w.bmp differ
diff --git a/bitmaps/r87o.bmp b/bitmaps/r87o.bmp
new file mode 100644 (file)
index 0000000..e331f47
Binary files /dev/null and b/bitmaps/r87o.bmp differ
diff --git a/bitmaps/r87s.bmp b/bitmaps/r87s.bmp
new file mode 100644 (file)
index 0000000..8644fd9
Binary files /dev/null and b/bitmaps/r87s.bmp differ
diff --git a/bitmaps/r87w.bmp b/bitmaps/r87w.bmp
new file mode 100644 (file)
index 0000000..bafd3c4
Binary files /dev/null and b/bitmaps/r87w.bmp differ
diff --git a/bitmaps/r95o.bmp b/bitmaps/r95o.bmp
new file mode 100644 (file)
index 0000000..5395cf8
Binary files /dev/null and b/bitmaps/r95o.bmp differ
diff --git a/bitmaps/r95s.bmp b/bitmaps/r95s.bmp
new file mode 100644 (file)
index 0000000..adf44a0
Binary files /dev/null and b/bitmaps/r95s.bmp differ
diff --git a/bitmaps/r95w.bmp b/bitmaps/r95w.bmp
new file mode 100644 (file)
index 0000000..cfbd7c7
Binary files /dev/null and b/bitmaps/r95w.bmp differ
diff --git a/bitmaps/tim.bmp b/bitmaps/tim.bmp
new file mode 100644 (file)
index 0000000..0de2550
Binary files /dev/null and b/bitmaps/tim.bmp differ
index 722b7f5..3ff1ce4 100644 (file)
Binary files a/bitmaps/w49o.bmp and b/bitmaps/w49o.bmp differ
index 0dcd4f1..d51a73c 100644 (file)
Binary files a/bitmaps/w49s.bmp and b/bitmaps/w49s.bmp differ
diff --git a/bitmaps/w54o.bmp b/bitmaps/w54o.bmp
new file mode 100644 (file)
index 0000000..ee12647
Binary files /dev/null and b/bitmaps/w54o.bmp differ
diff --git a/bitmaps/w54s.bmp b/bitmaps/w54s.bmp
new file mode 100644 (file)
index 0000000..1984975
Binary files /dev/null and b/bitmaps/w54s.bmp differ
diff --git a/bitmaps/w54w.bmp b/bitmaps/w54w.bmp
new file mode 100644 (file)
index 0000000..8db2f9e
Binary files /dev/null and b/bitmaps/w54w.bmp differ
index 31d4be9..693e36c 100644 (file)
Binary files a/bitmaps/w72s.bmp and b/bitmaps/w72s.bmp differ
diff --git a/bitmaps/wl49o.bmp b/bitmaps/wl49o.bmp
new file mode 100644 (file)
index 0000000..b405ea9
Binary files /dev/null and b/bitmaps/wl49o.bmp differ
diff --git a/bitmaps/wl49s.bmp b/bitmaps/wl49s.bmp
new file mode 100644 (file)
index 0000000..d1a737a
Binary files /dev/null and b/bitmaps/wl49s.bmp differ
diff --git a/bitmaps/wl72o.bmp b/bitmaps/wl72o.bmp
new file mode 100644 (file)
index 0000000..e45f0ac
Binary files /dev/null and b/bitmaps/wl72o.bmp differ
diff --git a/bitmaps/wl72s.bmp b/bitmaps/wl72s.bmp
new file mode 100644 (file)
index 0000000..a64f466
Binary files /dev/null and b/bitmaps/wl72s.bmp differ
diff --git a/bitmaps/wn49o.bmp b/bitmaps/wn49o.bmp
new file mode 100644 (file)
index 0000000..e89eb7a
Binary files /dev/null and b/bitmaps/wn49o.bmp differ
diff --git a/bitmaps/wn49s.bmp b/bitmaps/wn49s.bmp
new file mode 100644 (file)
index 0000000..0ab191a
Binary files /dev/null and b/bitmaps/wn49s.bmp differ
diff --git a/bitmaps/wn72o.bmp b/bitmaps/wn72o.bmp
new file mode 100644 (file)
index 0000000..24f2a33
Binary files /dev/null and b/bitmaps/wn72o.bmp differ
diff --git a/bitmaps/wn72s.bmp b/bitmaps/wn72s.bmp
new file mode 100644 (file)
index 0000000..7a91eff
Binary files /dev/null and b/bitmaps/wn72s.bmp differ
diff --git a/bitmaps/wp49o.bmp b/bitmaps/wp49o.bmp
new file mode 100644 (file)
index 0000000..f6e90fa
Binary files /dev/null and b/bitmaps/wp49o.bmp differ
diff --git a/bitmaps/wp49s.bmp b/bitmaps/wp49s.bmp
new file mode 100644 (file)
index 0000000..88f96aa
Binary files /dev/null and b/bitmaps/wp49s.bmp differ
diff --git a/bitmaps/wp72o.bmp b/bitmaps/wp72o.bmp
new file mode 100644 (file)
index 0000000..7c359be
Binary files /dev/null and b/bitmaps/wp72o.bmp differ
diff --git a/bitmaps/wp72s.bmp b/bitmaps/wp72s.bmp
new file mode 100644 (file)
index 0000000..933f377
Binary files /dev/null and b/bitmaps/wp72s.bmp differ
diff --git a/bitmaps/ws49o.bmp b/bitmaps/ws49o.bmp
new file mode 100644 (file)
index 0000000..fe77467
Binary files /dev/null and b/bitmaps/ws49o.bmp differ
diff --git a/bitmaps/ws49s.bmp b/bitmaps/ws49s.bmp
new file mode 100644 (file)
index 0000000..5d2ad69
Binary files /dev/null and b/bitmaps/ws49s.bmp differ
diff --git a/bitmaps/ws72o.bmp b/bitmaps/ws72o.bmp
new file mode 100644 (file)
index 0000000..316da61
Binary files /dev/null and b/bitmaps/ws72o.bmp differ
diff --git a/bitmaps/ws72s.bmp b/bitmaps/ws72s.bmp
new file mode 100644 (file)
index 0000000..382b4dc
Binary files /dev/null and b/bitmaps/ws72s.bmp differ
index be6d4e8..9d3fd41 100644 (file)
--- a/common.h
+++ b/common.h
@@ -185,29 +185,26 @@ typedef enum {
   } GameMode;\r
 \r
 typedef enum {\r
-    WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, \r
-#ifdef FAIRY\r
     /* [HGM] the order here is crucial for Crazyhouse & Shogi: */\r
     /* only the first N pieces can go into the holdings, and   */\r
-    /* promotions in those variants shift P-W to E-M           */\r
-    WhiteFerz, WhiteWazir, WhiteAlfil, WhiteNightrider, WhiteCardinal,\r
-    WhiteMarshall, WhiteGrasshopper, WhiteCannon, WhiteMan, WhiteUnicorn,\r
-#endif\r
-    WhiteKing, BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen, \r
-#ifdef FAIRY\r
-    BlackFerz, BlackWazir, BlackAlfil, BlackNightrider, BlackCardinal,\r
-    BlackMarshall, BlackGrasshopper, BlackCannon, BlackMan, BlackUnicorn,\r
-#endif\r
-    BlackKing,\r
+    /* promotions in those variants shift P-W to U-S           */\r
+    WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, \r
+    WhiteFerz, WhiteWazir, WhiteAlfil, WhiteMan, WhiteCannon, WhiteUnicorn,\r
+    WhiteNightrider, WhiteCardinal, WhiteMarshall, WhiteGrasshopper,\r
+    WhiteSilver, WhiteKing,\r
+    BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen,\r
+    BlackFerz, BlackWazir, BlackAlfil, BlackMan, BlackCannon, BlackUnicorn,\r
+    BlackNightrider, BlackCardinal, BlackMarshall, BlackGrasshopper,\r
+    BlackSilver, BlackKing,\r
     EmptySquare, \r
-    ClearBoard, WhitePlay, BlackPlay /*for use on EditPosition menus*/\r
+    ClearBoard, WhitePlay, BlackPlay, PromotePiece, DemotePiece /*for use on EditPosition menus*/\r
   } ChessSquare;\r
 \r
 /* [HGM] some macros that can be used as prefixes to convert piece types */\r
 #define WHITE_TO_BLACK (int)BlackPawn - (int)WhitePawn + (int)\r
 #define BLACK_TO_WHITE (int)WhitePawn - (int)BlackPawn + (int)\r
-#define PROMOTED       (int)WhiteAlfil - (int)WhitePawn + (int)\r
-#define DEMOTED        (int)WhitePawn - (int)WhiteAlfil + (int)\r
+#define PROMOTED       (int)WhiteUnicorn - (int)WhitePawn + (int)\r
+#define DEMOTED        (int)WhitePawn - (int)WhiteUnicorn + (int)\r
 #define SHOGI          (int)EmptySquare + (int)\r
 \r
 \r
@@ -222,14 +219,10 @@ typedef enum {
     BlackHSideCastleFR, BlackASideCastleFR, \r
     WhitePromotionKnight, WhitePromotionBishop,\r
     WhitePromotionRook, WhitePromotionQueen, WhitePromotionKing,\r
-#ifdef FAIRY\r
     WhitePromotionChancellor, WhitePromotionArchbishop,\r
-#endif\r
     BlackPromotionKnight, BlackPromotionBishop,\r
     BlackPromotionRook, BlackPromotionQueen, BlackPromotionKing,\r
-#ifdef FAIRY\r
     BlackPromotionChancellor, BlackPromotionArchbishop,\r
-#endif\r
     WhiteCapturesEnPassant, BlackCapturesEnPassant,\r
     WhiteDrop, BlackDrop, \r
     NormalMove, AmbiguousMove, IllegalMove, ImpossibleMove,\r
@@ -521,6 +514,9 @@ typedef struct {
     int NrRanks;\r
     int holdingsSize;\r
     int matchPause;\r
+    char * pieceToCharTable;\r
+    Boolean allWhite;\r
+    Boolean upsideDown;\r
     Boolean alphaRank;\r
     Boolean testClaims;\r
     Boolean checkMates;\r
@@ -528,7 +524,6 @@ typedef struct {
     Boolean trivialDraws;\r
     int ruleMoves;\r
     int drawRepeats;\r
-    char * pieceToCharTable;\r
 \r
 #if ZIPPY\r
     char *zippyLines;\r
@@ -599,6 +594,3 @@ typedef struct {
 \r
 #endif\r
 \r
-/* extern int holdingsWidth;  \r
-extern int holdingsHeight; \r
-/*extern int holdings[(int) EmptySquare];*/\r
index ec3ac90..7f3a083 100644 (file)
--- a/config.h
+++ b/config.h
@@ -47,7 +47,7 @@
 \r
 #define LAST_PTY_LETTER 'q'\r
 \r
-#define PATCHLEVEL "4"\r
+#define PATCHLEVEL "7"\r
 \r
 #define PRODUCT "WinBoard"\r
 \r
diff --git a/moves.c b/moves.c
index 2070ef3..9aff915 100644 (file)
--- a/moves.c
+++ b/moves.c
@@ -196,23 +196,30 @@ ChessMove PromoCharToMoveType(whiteOnMove, promoChar)
 }\r
 \r
 char pieceToChar[] = {\r
-              'P', 'N', 'B', 'R', 'Q', \r
-#ifdef FAIRY\r
-    'F', 'W', 'E', 'H', 'A', 'C', 'G', 'O', 'M', 'U', \r
-#endif\r
-    'K',      'p', 'n', 'b', 'r', 'q', \r
-#ifdef FAIRY            \r
-    'f', 'w', 'e', 'h', 'a', 'c', 'g', 'o', 'm', 'u',\r
-#endif\r
+                        'P', 'N', 'B', 'R', 'Q', 'F', \r
+    'W', 'E', 'M', 'O', 'U', 'H', 'A', 'C', 'G', 'S',\r
+    'K',                'p', 'n', 'b', 'r', 'q', 'f', \r
+    'w', 'e', 'm', 'o', 'u', 'h', 'a', 'c', 'g', 's',\r
     'k', 'x'\r
   };\r
 \r
 char PieceToChar(p)\r
      ChessSquare p;\r
 {\r
+    if((int)p < 0 || (int)p >= (int)EmptySquare) return('x'); /* [HGM] for safety */\r
     return pieceToChar[(int) p];\r
 }\r
 \r
+int PieceToNumber(p)\r
+     ChessSquare p;\r
+{\r
+    int i=0;\r
+    ChessSquare start = (int)p >= (int)BlackPawn ? BlackPawn : WhitePawn;\r
+\r
+    while(start++ != p) if(pieceToChar[(int)start-1] != '.') i++;\r
+    return i;\r
+}\r
+\r
 ChessSquare CharToPiece(c)\r
      int c;\r
 {\r
@@ -220,48 +227,6 @@ ChessSquare CharToPiece(c)
      for(i=0; i< (int) EmptySquare; i++)\r
           if(pieceToChar[i] == c) return (ChessSquare) i;\r
      return EmptySquare;\r
-/* [HGM] code marked for deletion\r
-     switch (c) {\r
-      default:\r
-      case 'x':        return EmptySquare;\r
-      case 'P':        return WhitePawn;\r
-      case 'R':        return WhiteRook;\r
-      case 'N':        return WhiteKnight;\r
-      case 'B':        return WhiteBishop;\r
-      case 'Q':        return WhiteQueen;\r
-      case 'K':        return WhiteKing;\r
-      case 'p':        return BlackPawn;\r
-      case 'r':        return BlackRook;\r
-      case 'n':        return BlackKnight;\r
-      case 'b':        return BlackBishop;\r
-      case 'q':        return BlackQueen;\r
-      case 'k':        return BlackKing;\r
-#ifdef FAIRY\r
-      case 'A': return WhiteCardinal;\r
-      case 'C': return WhiteMarshall;\r
-      case 'F': return WhiteFerz;\r
-      case 'H': return WhiteNightrider;\r
-      case 'E': return WhiteAlfil;\r
-      case 'W': return WhiteWazir;\r
-      case 'U': return WhiteUnicorn;\r
-      case 'O': return WhiteCannon;\r
-      case 'G': return WhiteGrasshopper;\r
-      case 'M': return WhiteMan;\r
-                \r
-      case 'a': return BlackCardinal;\r
-      case 'c': return BlackMarshall;\r
-      case 'f': return BlackFerz;\r
-      case 'h': return BlackNightrider;\r
-      case 'e': return BlackAlfil;\r
-      case 'w': return BlackWazir;\r
-      case 'u': return BlackUnicorn;\r
-      case 'o': return BlackCannon;\r
-      case 'g': return BlackGrasshopper;\r
-      case 'm': return BlackMan;\r
-                \r
-#endif\r
-    }\r
-*/\r
 }\r
 \r
 void CopyBoard(to, from)\r
@@ -330,7 +295,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
              break;\r
 \r
            case WhitePawn:\r
-#ifdef FAIRY\r
               if(gameInfo.variant == VariantXiangqi) {\r
                   /* [HGM] capture and move straight ahead in Xiangqi */\r
                   if (rf < BOARD_HEIGHT-1 &&\r
@@ -349,7 +313,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
                   }\r
                   break;\r
               }\r
-#endif\r
               if (rf < BOARD_HEIGHT-1 && board[rf + 1][ff] == EmptySquare) {\r
                  callback(board, flags,\r
                           rf == BOARD_HEIGHT-2 ? WhitePromotionQueen : NormalMove,\r
@@ -383,7 +346,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
              break;\r
 \r
            case BlackPawn:\r
-#ifdef FAIRY\r
               if(gameInfo.variant == VariantXiangqi) {\r
                   /* [HGM] capture straight ahead in Xiangqi */\r
                   if (rf > 0 && !SameColor(board[rf][ff], board[rf - 1][ff]) ) {\r
@@ -401,7 +363,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
                   }\r
                   break;\r
               }\r
-#endif\r
              if (rf > 0 && board[rf - 1][ff] == EmptySquare) {\r
                  callback(board, flags, \r
                           rf == 1 ? BlackPromotionQueen : NormalMove,\r
@@ -434,10 +395,8 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
              }             \r
              break;\r
 \r
-#ifdef FAIRY\r
             case WhiteUnicorn:\r
             case BlackUnicorn:\r
-#endif\r
            case WhiteKnight:\r
            case BlackKnight:\r
             mounted:\r
@@ -454,13 +413,11 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
                  }\r
              break;\r
 \r
-#ifdef FAIRY\r
             case SHOGI WhiteKnight:\r
              for (s = -1; s <= 1; s += 2) {\r
                   if (rf < BOARD_HEIGHT-2 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&\r
                       !SameColor(board[rf][ff], board[rf + 2][ff + s])) {\r
-                     callback(board, flags, \r
-                              rf == BOARD_HEIGHT-2 ? WhitePromotionQueen : NormalMove,\r
+                      callback(board, flags, NormalMove,\r
                                rf, ff, rf + 2, ff + s, closure);\r
                  }\r
               }\r
@@ -470,8 +427,7 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
              for (s = -1; s <= 1; s += 2) {\r
                   if (rf > 1 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&\r
                       !SameColor(board[rf][ff], board[rf - 2][ff + s])) {\r
-                     callback(board, flags, \r
-                              rf == 1 ? BlackPromotionQueen : NormalMove,\r
+                      callback(board, flags, NormalMove,\r
                                rf, ff, rf - 2, ff + s, closure);\r
                  }\r
              }             \r
@@ -508,8 +464,7 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
              for (s = -1; s <= 1; s += 2) {\r
                   if (rf < BOARD_HEIGHT-1 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&\r
                       !SameColor(board[rf][ff], board[rf + 1][ff + s])) {\r
-                     callback(board, flags, \r
-                              rf == BOARD_HEIGHT-2 ? WhitePromotionQueen : NormalMove,\r
+                      callback(board, flags, NormalMove,\r
                               rf, ff, rf + 1, ff + s, closure);\r
                  }\r
               }\r
@@ -523,8 +478,7 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
              for (s = -1; s <= 1; s += 2) {\r
                   if (rf > 0 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&\r
                       !SameColor(board[rf][ff], board[rf - 1][ff + s])) {\r
-                     callback(board, flags, \r
-                              rf == 1 ? BlackPromotionQueen : NormalMove,\r
+                      callback(board, flags, NormalMove,\r
                               rf, ff, rf - 1, ff + s, closure);\r
                  }\r
              }             \r
@@ -574,7 +528,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
             /* Shogi Bishops are ordinary Bishops */\r
             case SHOGI WhiteBishop:\r
             case SHOGI BlackBishop:\r
-#endif\r
            case WhiteBishop:\r
            case BlackBishop:\r
              for (rs = -1; rs <= 1; rs += 2) \r
@@ -593,7 +546,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
                 /* Bishop falls through */\r
              break;\r
 \r
-#ifdef FAIRY\r
             /* Shogi Lance is unlike anything, and asymmetric at that */\r
             case SHOGI WhiteQueen:\r
               for(i = 1;; i++) {\r
@@ -632,7 +584,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
             /* Shogi Rooks are ordinary Rooks */\r
             case SHOGI WhiteRook:\r
             case SHOGI BlackRook:\r
-#endif\r
            case WhiteRook:\r
            case BlackRook:\r
               for (d = 0; d <= 1; d++)\r
@@ -667,7 +618,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
                }\r
              break;\r
 \r
-#ifdef FAIRY\r
             /* Shogi Pawn and Silver General: first the Pawn move,    */\r
             /* then the General continues like a Ferz                 */\r
             case SHOGI WhitePawn:\r
@@ -707,7 +657,6 @@ void GenPseudoLegal(board, flags, epfile, callback, closure)
             case BlackMan:\r
             case SHOGI WhiteKing:\r
             case SHOGI BlackKing:\r
-#endif\r
            case WhiteKing:\r
            case BlackKing:\r
             walking:\r
@@ -817,7 +766,7 @@ int GenLegal(board, flags, epfile, castlingRights, callback, closure)
              !CheckTest(board, flags, 0, ff, 0, ff + 2, FALSE)))) {\r
 \r
            callback(board, flags,\r
-                    ff==4 ? WhiteKingSideCastle : WhiteKingSideCastleWild,\r
+                     ff==BOARD_WIDTH>>1 ? WhiteKingSideCastle : WhiteKingSideCastleWild,\r
                      0, ff, 0, ff + ((gameInfo.boardWidth+2)>>2), closure);\r
        }\r
        if ((flags & F_WHITE_ON_MOVE) &&\r
@@ -1039,6 +988,41 @@ ChessMove LegalityTest(board, flags, epfile, castlingRights, rf, ff, rt, ft, pro
     cl.ft = ft;\r
     cl.kind = IllegalMove;\r
     GenLegal(board, flags, epfile, castlingRights, LegalityTestCallback, (VOIDSTAR) &cl);\r
+\r
+    if(gameInfo.variant == VariantShogi) {\r
+        /* [HGM] Shogi promotions. '=' means defer */\r
+        if(rf != DROP_RANK && cl.kind == NormalMove) {\r
+            ChessSquare piece = board[rf][ff];\r
+\r
+            if(promoChar == PieceToChar(BlackQueen)) promoChar = NULLCHAR; /* [HGM] Kludge */\r
+            if(promoChar != NULLCHAR && promoChar != 'x' &&\r
+               promoChar != '+' && promoChar != '=' &&\r
+               ToUpper(PieceToChar(PROMOTED piece)) != ToUpper(promoChar) )\r
+                    cl.kind = IllegalMove;\r
+            else if(flags & F_WHITE_ON_MOVE) {\r
+                if( (int) piece < (int) WhiteWazir &&\r
+                     (rf > BOARD_HEIGHT-4 || rt > BOARD_HEIGHT-4) ) {\r
+                    if( (piece == WhitePawn || piece == WhiteQueen) && rt > BOARD_HEIGHT-2 ||\r
+                         piece == WhiteKnight && rt > BOARD_HEIGHT-3) /* promotion mandatory */\r
+                             cl.kind = promoChar == '=' ? IllegalMove : WhitePromotionKnight;\r
+                    else /* promotion optional, default is promote */\r
+                             cl.kind = promoChar == '=' ? NormalMove  : WhitePromotionQueen;\r
+                   \r
+                } else cl.kind = (promoChar == NULLCHAR || promoChar == 'x' || promoChar == '=') ?\r
+                                            NormalMove : IllegalMove;\r
+            } else {\r
+                if( (int) piece < (int) BlackWazir && (rf < 3 || rt < 3) ) {\r
+                    if( (piece == BlackPawn || piece == BlackQueen) && rt < 1 ||\r
+                         piece == BlackKnight && rt < 2 ) /* promotion obligatory */\r
+                             cl.kind = promoChar == '=' ? IllegalMove : BlackPromotionKnight;\r
+                    else /* promotion optional, default is promote */\r
+                             cl.kind = promoChar == '=' ? NormalMove  : BlackPromotionQueen;\r
+\r
+                } else cl.kind = (promoChar == NULLCHAR || promoChar == 'x' || promoChar == '=') ?\r
+                                            NormalMove : IllegalMove;\r
+            }\r
+        }\r
+    } else\r
     if (promoChar != NULLCHAR && promoChar != 'x') {\r
        if (cl.kind == WhitePromotionQueen || cl.kind == BlackPromotionQueen) {\r
            cl.kind = \r
@@ -1047,6 +1031,7 @@ ChessMove LegalityTest(board, flags, epfile, castlingRights, rf, ff, rt, ft, pro
            cl.kind = IllegalMove;\r
        }\r
     }\r
+    /* [HGM] For promotions, 'ToQueen' = optional, 'ToKnight' = mandatory */\r
     return cl.kind;\r
 }\r
 \r
@@ -1110,7 +1095,7 @@ void DisambiguateCallback(board, flags, kind, rf, ff, rt, ft, closure)
        (cl->ftIn == -1 || cl->ftIn == ft)) {\r
 \r
        cl->count++;\r
-       cl->piece = board[rf][ff];\r
+        cl->piece = board[rf][ff];\r
        cl->rf = rf;\r
        cl->ff = ff;\r
        cl->rt = rt;\r
@@ -1124,7 +1109,7 @@ void Disambiguate(board, flags, epfile, closure)
      int flags, epfile;\r
      DisambiguateClosure *closure;\r
 {\r
-    int illegal = 0;\r
+    int illegal = 0; char c = closure->promoCharIn;\r
     closure->count = 0;\r
     closure->rf = closure->ff = closure->rt = closure->ft = 0;\r
     closure->kind = ImpossibleMove;\r
@@ -1139,6 +1124,51 @@ void Disambiguate(board, flags, epfile, closure)
            return;\r
        }\r
     }\r
+\r
+    if (appData.debugMode) {\r
+        fprintf(debugFP, "Disambiguate in:  %d(%d,%d)-(%d,%d) = %d (%c)\n",\r
+        closure->pieceIn,closure->ffIn,closure->rfIn,closure->ftIn,closure->rtIn,closure->promoCharIn,closure->promoCharIn);\r
+    }\r
+    if(gameInfo.variant == VariantShogi) {\r
+        /* [HGM] Shogi promotions. '=' means defer */\r
+        if(closure->rfIn != DROP_RANK && closure->kind == NormalMove) {\r
+            ChessSquare piece = closure->piece;\r
+\r
+    if (appData.debugMode) {\r
+        fprintf(debugFP, "Disambiguate A:   %d(%d,%d)-(%d,%d) = %d (%c)\n",\r
+        closure->pieceIn,closure->ffIn,closure->rfIn,closure->ftIn,closure->rtIn,closure->promoCharIn,closure->promoCharIn);\r
+    }\r
+            if(c != NULLCHAR && c != 'x' && c != '+' && c != '=' &&\r
+               ToUpper(PieceToChar(PROMOTED piece)) != ToUpper(c) ) \r
+                    closure->kind = IllegalMove;\r
+            else if(flags & F_WHITE_ON_MOVE) {\r
+    if (appData.debugMode) {\r
+        fprintf(debugFP, "Disambiguate B:   %d(%d,%d)-(%d,%d) = %d (%c)\n",\r
+        closure->pieceIn,closure->ffIn,closure->rfIn,closure->ftIn,closure->rtIn,closure->promoCharIn,closure->promoCharIn);\r
+    }\r
+                if( (int) piece < (int) WhiteWazir &&\r
+                     (closure->rf > BOARD_HEIGHT-4 || closure->rt > BOARD_HEIGHT-4) ) {\r
+                    if( (piece == WhitePawn || piece == WhiteQueen) && closure->rt > BOARD_HEIGHT-2 ||\r
+                         piece == WhiteKnight && closure->rt > BOARD_HEIGHT-3) /* promotion mandatory */\r
+                             closure->kind = c == '=' ? IllegalMove : WhitePromotionKnight;\r
+                    else /* promotion optional, default is promote */\r
+                             closure->kind = c == '=' ? NormalMove  : WhitePromotionQueen;\r
+                   \r
+                } else closure->kind = (c == NULLCHAR || c == 'x' || c == '=') ?\r
+                                            NormalMove : IllegalMove;\r
+            } else {\r
+                if( (int) piece < (int) BlackWazir && (closure->rf < 3 || closure->rt < 3) ) {\r
+                    if( (piece == BlackPawn || piece == BlackQueen) && closure->rt < 1 ||\r
+                         piece == BlackKnight && closure->rt < 2 ) /* promotion obligatory */\r
+                             closure->kind = c == '=' ? IllegalMove : BlackPromotionKnight;\r
+                    else /* promotion optional, default is promote */\r
+                             closure->kind = c == '=' ? NormalMove  : BlackPromotionQueen;\r
+\r
+                } else closure->kind = (c == NULLCHAR || c == 'x' || c == '=') ?\r
+                                            NormalMove : IllegalMove;\r
+            }\r
+        }\r
+    } else\r
     if (closure->promoCharIn != NULLCHAR && closure->promoCharIn != 'x') {\r
        if (closure->kind == WhitePromotionQueen\r
            || closure->kind == BlackPromotionQueen) {\r
@@ -1149,7 +1179,14 @@ void Disambiguate(board, flags, epfile, closure)
            closure->kind = IllegalMove;\r
        }\r
     }\r
-    closure->promoChar = ToLower(PieceToChar(PromoPiece(closure->kind)));\r
+    if (appData.debugMode) {\r
+        fprintf(debugFP, "Disambiguate C:   %d(%d,%d)-(%d,%d) = %d (%c)\n",\r
+        closure->pieceIn,closure->ffIn,closure->rfIn,closure->ftIn,closure->rtIn,closure->promoCharIn,closure->promoCharIn);\r
+    }\r
+    /* [HGM] returns 'q' for optional promotion, 'n' for mandatory */\r
+    if(closure->promoCharIn != '=')\r
+        closure->promoChar = ToLower(PieceToChar(PromoPiece(closure->kind)));\r
+    else closure->promoChar = '=';\r
     if (closure->promoChar == 'x') closure->promoChar = NULLCHAR;\r
     if (closure->count > 1) {\r
        closure->kind = AmbiguousMove;\r
@@ -1161,6 +1198,13 @@ void Disambiguate(board, flags, epfile, closure)
        */\r
        closure->kind = IllegalMove;\r
     }\r
+    if(closure->kind == IllegalMove)\r
+    /* [HGM] might be a variant we don't understand, pass on promotion info */\r
+        closure->promoChar = closure->promoCharIn;\r
+    if (appData.debugMode) {\r
+        fprintf(debugFP, "Disambiguate out: %d(%d,%d)-(%d,%d) = %d (%c)\n",\r
+        closure->piece,closure->ff,closure->rf,closure->ft,closure->rt,closure->promoChar,closure->promoChar);\r
+    }\r
 }\r
 \r
 \r
@@ -1238,9 +1282,14 @@ ChessMove CoordsToAlgebraic(board, flags, epfile,
 \r
     if (promoChar == 'x') promoChar = NULLCHAR;\r
     piece = board[rf][ff];\r
+\r
+  if (appData.debugMode)\r
+          fprintf(debugFP, "CoordsToAlgebraic, piece=%d\n", (int)piece);\r
     switch (piece) {\r
       case WhitePawn:\r
       case BlackPawn:\r
+  if (appData.debugMode)\r
+          fprintf(debugFP, "CoordsToAlgebraic, Pawn\n");\r
         kind = LegalityTest(board, flags, epfile, initialRights, rf, ff, rt, ft, promoChar);\r
        if (kind == IllegalMove && !(flags&F_IGNORE_CHECK)) {\r
            /* Keep short notation if move is illegal only because it\r
@@ -1267,11 +1316,17 @@ ChessMove CoordsToAlgebraic(board, flags, epfile,
             else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }\r
        }\r
        /* Use promotion suffix style "=Q" */\r
-       if (promoChar != NULLCHAR && promoChar != 'x') {\r
-           *outp++ = '=';\r
-           *outp++ = ToUpper(promoChar);\r
-       }\r
        *outp = NULLCHAR;\r
+        if (promoChar != NULLCHAR) {\r
+            if(gameInfo.variant == VariantShogi) {\r
+                /* [HGM] ... but not in Shogi! */\r
+                *outp++ = promoChar == '=' ? '=' : '+';\r
+            } else {\r
+                *outp++ = '=';\r
+                *outp++ = ToUpper(promoChar);\r
+            }\r
+            *outp = NULLCHAR;\r
+       }\r
         AlphaRank(out, 10);\r
         return kind;\r
 \r
@@ -1338,8 +1393,13 @@ ChessMove CoordsToAlgebraic(board, flags, epfile,
           else "N1f3" or "N5xf7",\r
           else "Ng1f3" or "Ng5xf7".\r
        */\r
-       *outp++ = ToUpper(PieceToChar(piece));\r
-       \r
+        if(PieceToChar(piece) == '.') {\r
+           /* [HGM] print nonexistent piece as its demoted version */\r
+           piece = (ChessSquare) (DEMOTED piece);\r
+           if( gameInfo.variant == VariantShogi )\r
+                *outp++ = '+';\r
+        }\r
+        *outp++ = ToUpper(PieceToChar(piece));\r
        if (cl.file || (cl.either && !cl.rank)) {\r
             *outp++ = ff + AAA;\r
        }\r
@@ -1357,16 +1417,51 @@ ChessMove CoordsToAlgebraic(board, flags, epfile,
            *outp++ = rt + ONE;\r
         else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }\r
        *outp = NULLCHAR;\r
+        if (gameInfo.variant == VariantShogi) {\r
+            /* [HGM] in Shogi non-pawns can promote */\r
+            if(flags & F_WHITE_ON_MOVE) {\r
+                if( (int) cl.piece < (int) WhiteWazir &&\r
+                     (rf > BOARD_HEIGHT-4 || rt > BOARD_HEIGHT-4) ) {\r
+                    if( (piece == WhitePawn || piece == WhiteQueen) && rt > BOARD_HEIGHT-2 ||\r
+                         piece == WhiteKnight && rt > BOARD_HEIGHT-3) /* promotion mandatory */\r
+                             cl.kind = promoChar == '=' ? IllegalMove : WhitePromotionKnight;\r
+                    else cl.kind =  WhitePromotionQueen; /* promotion optional */\r
+                   \r
+                } else cl.kind = (promoChar == NULLCHAR || promoChar == 'x' || promoChar == '=') ?\r
+                                            NormalMove : IllegalMove;\r
+            } else {\r
+                if( (int) cl.piece < (int) BlackWazir && (rf < 3 || rt < 3) ) {\r
+                    if( (piece == BlackPawn || piece == BlackQueen) && rt < 1 ||\r
+                         piece == BlackKnight && rt < 2 ) /* promotion obligatory */\r
+                             cl.kind = promoChar == '=' ? IllegalMove : BlackPromotionKnight;\r
+                    else cl.kind =  BlackPromotionQueen; /* promotion optional */\r
+                } else cl.kind = (promoChar == NULLCHAR || promoChar == 'x' || promoChar == '=') ?\r
+                                            NormalMove : IllegalMove;\r
+            }\r
+            if(cl.kind == WhitePromotionQueen || cl.kind == BlackPromotionQueen) {\r
+                /* for optional promotions append '+' or '=' */\r
+                if(promoChar == '=') {\r
+                    *outp++ = '=';\r
+                    cl.kind = NormalMove;\r
+                } else *outp++ = '+';\r
+                *outp = NULLCHAR;\r
+            } else if(cl.kind == IllegalMove) {\r
+                /* Illegal move specifies any given promotion */\r
+                if(promoChar != NULLCHAR && promoChar != 'x') {\r
+                    *outp++ = '=';\r
+                    *outp++ = ToUpper(promoChar);\r
+                    *outp = NULLCHAR;\r
+                }\r
+            }\r
+        }\r
         AlphaRank(out, 10);\r
         return cl.kind;\r
        \r
-#ifdef FAIRY\r
-      /* [HGM] Always long notation for fairies, don't know how they move */\r
+      /* [HGM] Always long notation for fairies we don't know */\r
       case WhiteNightrider:\r
       case BlackNightrider:\r
       case WhiteGrasshopper:\r
       case BlackGrasshopper:\r
-#endif\r
       case EmptySquare:\r
        /* Moving a nonexistent piece */\r
        break;\r
diff --git a/moves.h b/moves.h
index 8324ef6..cc70260 100644 (file)
--- a/moves.h
+++ b/moves.h
@@ -50,6 +50,7 @@ extern ChessSquare PromoPiece P((ChessMove moveType));
 extern ChessMove PromoCharToMoveType P((int whiteOnMove, int promoChar));\r
 extern char PieceToChar P((ChessSquare p));\r
 extern ChessSquare CharToPiece P((int c));\r
+extern int PieceToNumber P((ChessSquare p));\r
 \r
 extern void CopyBoard P((Board to, Board from));\r
 extern int CompareBoards P((Board board1, Board board2));\r
index 03e0adc..da4cbc7 100644 (file)
--- a/parser.l
+++ b/parser.l
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <errno.h>
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else  /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_PROTOS
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define YY_BUF_SIZE 16384
-
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-
-extern int yyleng;
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator).  This
- * avoids problems with code like:
- *
- *     if ( condition_holds )
- *             yyless( 5 );
- *     else
- *             do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define yyless(n) \
-       do \
-               { \
-               /* Undo effects of setting up yytext. */ \
-               *yy_cp = yy_hold_char; \
-               YY_RESTORE_YY_MORE_OFFSET \
-               yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-               } \
-       while ( 0 )
-
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int yy_size_t;
-
-
-struct yy_buffer_state
-       {
-       FILE *yy_input_file;
-
-       char *yy_ch_buf;                /* input buffer */
-       char *yy_buf_pos;               /* current position in input buffer */
-
-       /* Size of input buffer in bytes, not including room for EOB
-        * characters.
-        */
-       yy_size_t yy_buf_size;
-
-       /* Number of characters read into yy_ch_buf, not including EOB
-        * characters.
-        */
-       int yy_n_chars;
-
-       /* Whether we "own" the buffer - i.e., we know we created it,
-        * and can realloc() it to grow it, and should free() it to
-        * delete it.
-        */
-       int yy_is_our_buffer;
-
-       /* Whether this is an "interactive" input source; if so, and
-        * if we're using stdio for input, then we want to use getc()
-        * instead of fread(), to make sure we stop fetching input after
-        * each newline.
-        */
-       int yy_is_interactive;
-
-       /* Whether we're considered to be at the beginning of a line.
-        * If so, '^' rules will be active on the next match, otherwise
-        * not.
-        */
-       int yy_at_bol;
-
-       /* Whether to try to fill the input buffer when we reach the
-        * end of it.
-        */
-       int yy_fill_buffer;
-
-       int yy_buffer_status;
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-       /* When an EOF's been seen but there's still some text to process
-        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-        * shouldn't try reading from the input source any more.  We might
-        * still have a bunch of tokens to match, though, because of
-        * possible backing-up.
-        *
-        * When we actually see the EOF, we change the status to "new"
-        * (via yyrestart()), so that the user can continue scanning by
-        * just pointing yyin at a new input file.
-        */
-#define YY_BUFFER_EOF_PENDING 2
-       };
-
-static YY_BUFFER_STATE yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define YY_CURRENT_BUFFER yy_current_buffer
-
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-
-
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;                /* whether we need to initialize */
-static int yy_start = 0;       /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart YY_PROTO(( FILE *input_file ));
-
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
-
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
-static void yy_flex_free YY_PROTO(( void * ));
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-       { \
-       if ( ! yy_current_buffer ) \
-               yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-       yy_current_buffer->yy_is_interactive = is_interactive; \
-       }
-
-#define yy_set_bol(at_bol) \
-       { \
-       if ( ! yy_current_buffer ) \
-               yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-       yy_current_buffer->yy_at_bol = at_bol; \
-       }
-
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
-
-#define YY_USES_REJECT
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-       yytext_ptr = yy_bp; \
-       yyleng = (int) (yy_cp - yy_bp); \
-       yy_hold_char = *yy_cp; \
-       *yy_cp = '\0'; \
-       yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 42
-#define YY_END_OF_BUFFER 43
-static yyconst short int yy_acclist[709] =
-    {   0,
-       43,   41,   42,   41,   42,   41,   42,   40,   41,   42,
-       41,   42,   25,   41,   42,   41,   42,   40,   41,   42,
-       40,   41,   42,16410,   40,   41,   42,16410,   41,   42,
-       40,   41,   42,   40,   41,   42,   40,   41,   42,   40,
-       41,   42,   40,   41,   42,   40,   41,   42,   40,   41,
-       42,   40,   41,   42,   40,   41,   42,   40,   41,   42,
-       40,   41,   42,   40,   41,   42,   40,   41,   42,   41,
-       42,   40,   41,   42,   40,   41,   42,   40,   41,   42,
-       40,   41,   42,   40,   41,   42,   40,   41,   42,   40,
-       41,   42,   40,   41,   42,   40,   41,   42,   40,   41,
-
-       42,   40,   41,   42,   40,   41,   42,   40,   41,   42,
-       40,   41,   42,   40,   41,   42,   41,   42,   41,   42,
-       40,   41,   42,   40,   41,   42,   40,   41,   42,16410,
-       40,   41,   42,16410,   41,   42,   40,   41,   42,   40,
-       41,   42,   40,   41,   42,   40,   41,   42,   40,   41,
-       42,   40,   41,   42,   40,   41,   42,   40,   41,   42,
-       40,   41,   42,   40,   41,   42,   40,   41,   42,   40,
-       41,   42,   40,   41,   42,   40,   41,   42,   40,   41,
-       42,   40,   41,   42,   40,   41,   42,   40,   41,   42,
-       40,   41,   42,   40,   41,   42,   40,   41,   42,   40,
-
-       41,   42,   40,   41,   42,   40,   41,   42,   40,   41,
-       42,   40,   41,   42,   40,   41,   42,   40,   41,   42,
-       41,   42,   33,   40,   17,   40,    9,   40,   40,   40,
-    16410, 8218,   40,   35,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,    9,   40,   40,   40,   40,
-       40,   40,   40,   36,   40,    3,   40,   40,    4,   40,
-       40,   40,    3,   40,   40,    4,   40,   40,   40,   40,
-       40,   40,    9,   40,   40,   34,   40,   40,    9,   40,
-       40,   40,16410, 8218,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,    9,   40,   40,   40,
-
-       40,   40,   40,   40,   40,    3,   40,   40,    4,   40,
-       40,   40,    3,   40,   40,    4,   40,   40,   40,   40,
-       40,   40,    9,   40,   40,   15,    9,   40,   23,   40,
-       23,    8,   40, 8218,   22,   40,   22,   24,   40,   40,
-       40,    6,   40,   40,   40,   40,   40,   40,   40,    9,
-       40,   40,   40,   40,   40,   20,   40,    4,   40,   40,
-        3,   40,    3,   40,   40,    4,    5,   40,    4,   40,
-       40,    4,   40,   40,    3,   40,   40,    4,    4,   40,
-        5,    6,   40,    4,   40,   40,   40,    9,   40,   40,
-       34,   39,    9,   40,   23,   40,    8,   40,   22,   40,
-
-       35,   40,   40,   40,    6,   40,   40,   40,   40,   40,
-       40,   40,    9,   40,   40,   40,   40,   40,   20,   40,
-        4,   40,   40,    3,   40,    3,   40,   40,    5,   40,
-        4,   40,   40,    4,   40,   40,    3,   40,   40,    4,
-       40,    5,    6,   40,    4,   40,   40,   40,    9,   40,
-       40,   38,   38,   37,   25,   25,   40,    6,   40,    7,
-       40,    6,   10,   40,   40,   40,   40,   19,   40,   40,
-       21,   40,   16,   40,   40,   40,   40,   40,   20,   20,
-       40,   20,   40,   36,    3,    3,    2,   40,    5,    4,
-        5,   40,   40,    4,    4,   40,    2,    7,   40,    5,
-
-        6,    5,    6,   40,    5,   40,   40,   40,   25,   39,
-       40,    6,   40,    7,   40,   40,   40,   40,   40,   19,
-       40,   40,   21,   40,   16,   40,   40,   40,   40,   40,
-       20,   40,   20,   20,   40,    2,   40,    5,   40,   40,
-        4,   40,    2,    7,   40,    5,    6,   40,    5,   40,
-       40,   40,    7,    1,   40,   40,   40,   19,   40,   40,
-       40,   21,   21,   40,   21,   40,   40,   40,   40,   30,
-       36,    2,    2,   40,    5,    4,    5,    5,   40,    2,
-        7,   39,    1,   40,   40,   40,   19,   40,   40,   40,
-       21,   40,   21,   21,   40,   40,   40,   40,   20,   39,
-
-        2,   40,    5,   40,   27,   38,   23,   23,   22,   22,
-       24,   24,    1,    1,   40,   20,   21,   40,   40,   40,
-       11,   40,   40,   28,   36,   30,    2,    2,    5,   27,
-       34,   39,   39,    1,   40,   40,   40,   40,   21,   39,
-       11,   40,   40,   20,   39,   18,   24,    1,    1,   20,
-       21,   19,   40,   40,   40,   11,   40,   40,   40,   40,
-       21,   39,   40,   11,   40,   40,   12,   40,   40,   40,
-       40,   12,   40,   40,   14,   40,   40,   40,   14,   40,
-       40,   40,   39,   40,   40,   40,   40,   39,   39,   40,
-       40,   31,   40,   39,   39,   31,   40,   13,   31,   32,
-
-       32,   35,   39,   39,   31,   39,   34,   29
-    } ;
-
-static yyconst short int yy_accept[736] =
-    {   0,
-        1,    1,    1,    2,    4,    6,    8,   11,   13,   16,
-       18,   21,   25,   29,   31,   34,   37,   40,   43,   46,
-       49,   52,   55,   58,   61,   64,   67,   70,   72,   75,
-       78,   81,   84,   87,   90,   93,   96,   99,  102,  105,
-      108,  111,  114,  117,  119,  121,  124,  127,  131,  135,
-      137,  140,  143,  146,  149,  152,  155,  158,  161,  164,
-      167,  170,  173,  176,  179,  182,  185,  188,  191,  194,
-      197,  200,  203,  206,  209,  212,  215,  218,  221,  223,
-      223,  224,  225,  225,  225,  225,  225,  226,  226,  226,
-      227,  227,  229,  229,  229,  229,  230,  230,  230,  232,
-
-      232,  234,  234,  235,  236,  236,  237,  237,  237,  238,
-      238,  239,  240,  241,  242,  243,  244,  245,  246,  248,
-      249,  250,  251,  252,  253,  254,  254,  254,  254,  254,
-      255,  256,  258,  258,  259,  261,  262,  263,  265,  265,
-      266,  268,  269,  270,  271,  272,  273,  275,  276,  276,
-      276,  276,  277,  277,  278,  278,  279,  281,  281,  282,
-      284,  284,  286,  286,  287,  288,  288,  289,  290,  291,
-      292,  293,  294,  295,  296,  297,  299,  300,  301,  302,
-      303,  304,  305,  306,  308,  308,  309,  311,  312,  313,
-      315,  315,  316,  318,  319,  320,  321,  322,  323,  325,
-
-      326,  326,  326,  326,  326,  326,  326,  326,  326,  326,
-      326,  326,  327,  327,  327,  327,  329,  331,  332,  334,
-      335,  335,  335,  335,  337,  338,  339,  340,  340,  341,
-      341,  342,  342,  342,  344,  344,  344,  344,  344,  345,
-      346,  347,  348,  349,  350,  352,  353,  354,  355,  356,
-      358,  358,  358,  358,  358,  360,  360,  361,  361,  361,
-      363,  365,  366,  367,  367,  369,  369,  371,  372,  374,
-      375,  375,  377,  378,  379,  381,  384,  386,  387,  388,
-      390,  391,  392,  392,  392,  392,  392,  393,  395,  397,
-      399,  401,  401,  402,  402,  403,  404,  404,  405,  407,
-
-      408,  409,  410,  411,  412,  413,  415,  416,  417,  418,
-      419,  421,  423,  424,  424,  426,  428,  429,  431,  433,
-      434,  436,  437,  437,  439,  440,  442,  445,  447,  448,
-      449,  451,  452,  452,  452,  453,  454,  454,  454,  455,
-      455,  455,  456,  456,  457,  457,  457,  457,  458,  458,
-      458,  458,  458,  458,  458,  458,  460,  460,  460,  462,
-      463,  464,  465,  465,  466,  466,  466,  466,  466,  467,
-      468,  470,  470,  471,  473,  475,  476,  477,  478,  479,
-      480,  482,  484,  484,  484,  484,  484,  485,  486,  486,
-      487,  489,  490,  491,  491,  491,  491,  493,  494,  495,
-
-      495,  497,  497,  500,  502,  505,  507,  508,  509,  509,
-      510,  510,  510,  510,  510,  511,  511,  512,  512,  512,
-      514,  516,  517,  517,  518,  519,  520,  522,  523,  525,
-      527,  528,  529,  530,  531,  533,  534,  536,  538,  540,
-      541,  543,  546,  549,  551,  552,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      554,  556,  556,  556,  556,  556,  557,  558,  558,  560,
-      560,  561,  562,  563,  565,  567,  568,  569,  570,  570,
-      570,  572,  572,  572,  573,  573,  573,  575,  576,  576,
-      577,  578,  578,  580,  580,  582,  582,  582,  582,  582,
-
-      582,  582,  583,  583,  583,  585,  586,  587,  589,  590,
-      591,  593,  594,  596,  597,  598,  599,  601,  603,  605,
-      605,  605,  607,  607,  607,  608,  608,  609,  609,  610,
-      610,  611,  611,  612,  612,  613,  613,  613,  614,  614,
-      614,  616,  616,  616,  618,  618,  619,  619,  619,  619,
-      619,  619,  620,  621,  623,  624,  626,  626,  627,  628,
-      629,  630,  630,  630,  632,  632,  632,  633,  634,  634,
-      634,  636,  637,  638,  639,  641,  643,  644,  646,  646,
-      647,  647,  647,  647,  648,  649,  650,  650,  650,  650,
-      652,  652,  652,  653,  653,  653,  653,  653,  654,  655,
-
-      656,  658,  659,  659,  659,  659,  659,  659,  660,  661,
-      663,  664,  666,  667,  667,  667,  667,  667,  667,  667,
-      668,  668,  668,  668,  668,  669,  670,  670,  670,  670,
-      670,  671,  672,  672,  672,  672,  672,  673,  673,  673,
-      673,  674,  675,  677,  677,  677,  677,  677,  678,  678,
-      679,  681,  681,  681,  681,  681,  682,  683,  683,  683,
-      683,  683,  684,  685,  686,  686,  686,  686,  686,  686,
-      687,  688,  688,  688,  688,  688,  689,  690,  691,  692,
-      692,  692,  692,  692,  692,  694,  694,  694,  694,  694,
-      695,  696,  698,  698,  698,  699,  699,  700,  700,  701,
-
-      701,  701,  703,  703,  704,  705,  705,  705,  705,  705,
-      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
-      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
-      707,  707,  708,  709,  709
-    } ;
-
-static yyconst int yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    4,    1,    5,    6,    7,    8,    1,    9,   10,
-       11,   12,   13,    1,   14,   15,   16,   17,   18,   19,
-       20,   20,   20,   20,   20,   20,   20,   21,   22,    1,
-       23,    1,    1,   24,   25,   26,   27,   28,   29,   30,
-       31,   32,   33,   33,   34,   35,   36,   37,   38,   39,
-       40,   41,   42,   33,   43,   33,   44,   45,   33,   33,
-       46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
-
-       53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
-       63,   64,   40,   65,   66,   67,   68,   33,   69,   45,
-       70,   33,   71,    1,   72,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst int yy_meta[73] =
-    {   0,
-        1,    2,    3,    2,    1,    1,    1,    1,    4,    5,
-        6,    1,    1,    7,    1,    1,    8,    8,    8,    8,
-        9,    1,   10,    1,   11,   11,   11,   12,   12,   12,
-       12,   12,    4,   11,    4,    4,   11,   12,   12,   11,
-       11,    4,    4,   12,    7,    1,    1,    1,   13,   13,
-       13,   14,   15,   14,   14,   14,   14,   14,   13,   14,
-        4,   11,   12,   12,   11,    4,    4,    4,    4,    4,
-        1,    1
-    } ;
-
-static yyconst short int yy_base[824] =
-    {   0,
-        0,   72, 2710, 5057,  120,  129,    0,  140, 2705,  138,
-      149,  169,  160, 2705,  226,  157, 2651,  151, 2679,  130,
-     2639,  131,  227,  271, 2648, 2633,  244,  331,  390,  447,
-      203,  239,  332,  338,  375,  340,  370,  428,  430,  249,
-     2650,  201,  254,  397, 2694,  147,  253,  506,  344,  257,
-      568,  189, 2641,  229, 2672,  339,  294,  248,  335,  620,
-     2642,  284,  574,  667,  724,  318,  640,  555,  608,  709,
-      590,  610,  690,  746,  761,  462,  449,  644,  577, 2639,
-      455,    0, 2683,  303,  781,  309, 5057, 2679,  439,  354,
-     2673, 2673, 2671,  419,  692, 2671,  491,  160,  809, 2670,
-
-        0, 2683, 5057,  782,    0,  829,    0,    0,  499,  862,
-      712,  582, 2636, 2641, 2615, 2616,  736, 2640, 2639,  717,
-      797, 2627,  769,  829, 2613, 2627,  927,  336,  999, 5057,
-     1023, 1074,    0, 1091, 1142,  834, 1159, 1206,    0, 1218,
-     1265,  838,  847,  842, 2606, 2609, 2608, 2613,  303, 2597,
-      890, 2664, 2663,  572, 2662,  594,  633,  298,  634, 1324,
-      401,  688,  429, 1386, 1433, 2661,  851,  927,  900,  903,
-      751,  689,  892,  946, 2626,  946,  951,  960,  973,  968,
-      972,  690, 1445, 1496, 2659, 1513, 1565, 1010, 1582, 1629,
-     2658, 1641, 1688, 1018, 1036, 1040,  972, 1003, 1023,  694,
-
-      804, 2596,  446,  503,  518, 2649,  542, 1153, 1167, 2648,
-     2586, 5057, 2649, 2648, 2647, 2636, 2643, 2638,    0, 5057,
-     2632, 2627, 2626, 2625, 2624,  808, 1023, 1045, 1073,    0,
-     1072, 1085, 1136, 1735, 2570, 2563, 2576, 2571, 1179, 1229,
-     2554, 1154,  930, 2569, 2607,    0, 2563, 2559, 1214, 1795,
-      569, 1240,  605, 1867, 1930,    0, 1947,    0, 2608, 2606,
-     1218, 1204, 1278,    0, 1998, 2606,  755,  398, 1272, 2015,
-        0, 1288, 1317, 1395, 1379, 2062, 1405, 1391, 2564, 2600,
-     2546, 5057, 1446,  750, 2608,  127, 2608,  885, 1185,  996,
-     1447,  789, 2606, 1238, 1410, 2114, 2602, 1452, 2161, 1602,
-
-     1652, 1181, 1707, 1458, 1506, 1412,    0, 1100, 1179, 1637,
-     2221, 2285, 2302, 2601, 1101, 1701, 1706, 2353, 1523, 1580,
-     1383, 2370, 2600, 1742, 1748, 1457, 2417, 1803, 1816, 1411,
-     1499, 1608, 1103, 2550, 5057,  817,  834, 2591, 5057, 1828,
-     2590, 2589, 2527, 2526, 2579, 2578, 2577, 2577,  388, 2576,
-      349, 2575,  890, 1761, 1029,    0, 1326, 1560,    0, 5057,
-     5057, 2429, 1436, 1590, 2525, 2525, 2522, 2522, 2528, 2522,
-      815,  503,  841, 2489,    0, 2542, 2524, 2525, 2522,    0,
-     2561, 2633,  858,  907,  910, 1727, 2565, 2553, 1645, 5057,
-     2696, 1760, 1085,  618, 1805, 2549, 1241, 1003, 2505, 2493,
-
-        0, 1759,    0, 1834, 2752, 1875, 1834, 2491, 1882, 2549,
-     1901, 1902, 2503, 2488, 2547,  434, 1522,  653,  953, 1219,
-     1291, 2809, 2545, 1912, 1875, 1888, 1899, 1572, 2869, 1505,
-     1519, 1604, 1898, 1915, 2941, 2544, 3013, 3077, 1916, 1951,
-     1591,    0, 3133, 1967, 2025, 1841, 1663, 2494, 2535, 1637,
-     2534, 2472, 2532, 2469, 2529, 2467, 2520, 1748, 1924, 5057,
-     3189, 2483, 2479, 2479, 2474, 2526, 1268, 1972, 2525,  870,
-     2498, 2473,    0, 3254, 3326, 2463, 2463, 2519, 1299, 1946,
-     5057, 2515, 1971, 1097, 1394, 1506, 2508, 1319, 1239, 5057,
-     2454, 2439,    0, 2483, 1817, 2013, 2474, 1582, 2448, 2400,
-
-     2393, 1048, 1250, 1594, 3389, 2005, 2020, 2073, 2069, 1937,
-     3454, 2440, 3526, 2041, 1956, 2075, 2440, 2084, 2010, 2077,
-      430, 5057, 2114, 2425, 2424, 2360, 2345, 2405, 2403, 2341,
-     2339, 2397, 2394, 2328, 2326, 2379, 2373, 1850, 2076, 2077,
-     2380, 2325, 2315, 2035, 2311, 2293, 2330, 2286, 2267, 2304,
-     2279, 2288, 2263, 2044, 2278, 5057, 2008, 5057, 2312, 5057,
-     5057, 2306, 2123, 2296, 2238, 2232, 2283, 1861,  872, 1450,
-     2118, 2127, 2135, 2136, 2278, 2137, 2129, 2273, 2177, 5057,
-     2187, 2142, 2203, 2200, 2177, 5057, 2125, 2129, 2103, 5057,
-     2089, 2136, 2126, 2064, 2105, 2066, 1992, 2011, 1986, 1984,
-
-        0, 1960, 2180, 1990, 1924, 1065, 1113, 2229, 2175, 1960,
-     2172, 2083, 2180, 2191, 1900, 1933, 1299, 1883, 1859, 2126,
-     1806, 1072, 1787, 1760, 3598, 1728, 1719, 1697, 1506, 1747,
-     3670, 2230, 2232, 1665, 1664, 1616, 5057, 1582, 1880, 1999,
-     3742, 2081,    0, 1530, 1479, 1752, 1163, 3814, 2244, 2160,
-     2244, 2252, 1487, 1478, 2229, 1476, 1419, 1392, 1372, 1591,
-     1710, 2254, 1312, 1271, 2256, 1158, 1136, 2225, 2227, 1106,
-      942,  906,  918, 1045, 1456, 2259, 2315,  875,  756, 2293,
-     2211,  733, 2243, 2248,    0,  701,  584,  603, 1827, 2312,
-     2314,    0, 2299,  538, 5057,  421, 2242,  473, 5057,  304,
-
-      315, 5057, 2151, 2378, 2346, 2302,  234,  206, 1795, 2379,
-     2317,  203, 1623, 1642, 1664, 1887, 2369, 2370, 2382, 2383,
-     2434, 2436, 2437, 2442, 2443, 2444, 2446, 2449, 2450, 2514,
-     2030,  159, 5057, 5057, 3883, 3898, 3913, 3928, 3943, 3955,
-     3970, 3985, 3999, 4002, 4005, 4008, 4023, 4038, 4041, 4044,
-     4059, 4074, 4086, 4101, 4116, 4131, 4146, 4161, 4176, 4191,
-     4194, 4209, 4224, 4239, 4254, 4269, 1899, 4272, 4283, 2048,
-     4286, 4301, 4316, 4328, 4343, 4358, 4373, 4388, 4403, 4418,
-     4433, 4448, 4457, 4472, 4487, 4502, 4517, 4532, 4547, 4562,
-     4573, 4588, 4603, 4618, 4633, 4648, 4663, 4678, 4693, 4708,
-
-     4723, 4738, 4753, 4768, 4783, 4798, 4813, 4828, 4839, 4852,
-     4867, 4882, 4897, 4908, 4921, 4936, 4951, 4966, 4981, 4996,
-     5011, 5026, 5041
-    } ;
-
-static yyconst short int yy_def[824] =
-    {   0,
-      734,  734,  734,  734,  734,  734,  735,  736,  734,  734,
-      735,  734,   12,  737,  735,   15,   15,   15,   15,   15,
-      735,   15,   15,  735,   15,  735,   15,  738,   15,   15,
-       29,   29,   29,   29,   29,   29,   29,   29,   30,   29,
-      735,  735,  735,  739,  734,  740,  740,  734,   48,  737,
-      740,   51,   51,   51,   51,   51,  740,   51,   51,  740,
-       51,  740,   51,   51,   51,   64,   64,   64,   64,   64,
-       64,   64,   64,   65,   64,  740,  740,  740,  739,  734,
-      734,  735,  741,  742,  741,  734,  734,  734,  734,  735,
-      734,  735,  734,  743,  743,  735,  743,  734,   12,  734,
-
-      735,  737,  734,  735,  744,  735,  745,  746,  106,  734,
-      106,  106,  735,  735,  735,  735,  106,  104,  735,  735,
-      106,  735,  106,  106,  735,  747,  738,  747,  748,  734,
-      735,  735,  749,  735,  735,  735,  735,  132,  750,  735,
-      135,  106,  106,  735,  735,  735,  735,  735,  739,  751,
-      739,  734,  752,  753,  734,  753,  753,  734,  753,  734,
-      734,  753,  754,  753,  164,  745,  165,  165,  165,  753,
-      753,  753,  753,  165,  164,  753,  753,  165,  753,  165,
-      165,  753,  164,  164,  749,  164,  753,  753,  164,  184,
-      750,  164,  187,  165,  165,  753,  753,  753,  753,  753,
-
-      739,  734,  755,  756,  756,  757,  758,  755,  755,  759,
-      760,  734,  734,  734,  734,  735,  735,  734,  735,  734,
-      734,  734,  734,  735,  734,  734,  735,  734,  106,  761,
-      735,  734,  734,  735,  734,  734,  734,  734,  735,  735,
-      735,  735,  735,  735,  735,  234,  735,  735,  735,  762,
-      763,  764,  765,  766,  735,  767,  735,  768,  767,  735,
-      735,  735,  769,  770,  735,  770,  735,  735,  255,  735,
-      771,  735,  735,  770,  255,  265,  735,  735,  735,  735,
-      735,  734,  739,  734,  772,  734,  773,  774,  774,  774,
-      774,  775,  772,  776,  774,  774,  761,  774,  296,  774,
-
-      774,  774,  774,  774,  774,  774,  299,  774,  774,  774,
-      777,  774,  296,  768,  774,  774,  774,  312,  774,  774,
-      312,  296,  771,  774,  774,  312,  318,  774,  774,  774,
-      774,  774,  739,  734,  734,  778,  778,  779,  734,  780,
-      781,  781,  782,  782,  734,  734,  734,  735,  734,  734,
-      734,  734,  734,  734,  734,  735,  783,  734,  735,  734,
-      734,  735,  783,  735,  734,  734,  734,  734,  735,  735,
-      735,  734,  735,  784,  735,  735,  735,  735,  735,  785,
-      786,  786,  787,  787,  788,  789,  790,  734,  734,  734,
-      735,  791,  734,  734,  791,  395,  735,  735,  734,  734,
-
-      735,  734,  391,  395,  391,  735,  735,  735,  739,  734,
-      734,  734,  734,  734,  792,  734,  774,  793,  793,  774,
-      774,  774,  363,  774,  774,  774,  774,  774,  794,  774,
-      774,  774,  774,  774,  795,  785,  795,  774,  774,  774,
-      774,  438,  438,  774,  774,  774,  739,  734,  796,  797,
-      798,  799,  800,  801,  802,  803,  734,  734,  734,  734,
-      735,  734,  734,  734,  734,  735,  735,  734,  735,  734,
-      735,  735,  804,  805,  805,  735,  735,  735,  806,  807,
-      734,  808,  734,  809,  809,  809,  735,  734,  734,  734,
-      734,  734,  735,  734,  809,  739,  734,  734,  734,  734,
-
-      734,  810,  811,  811,  438,  774,  774,  774,  774,  774,
-      812,  804,  812,  774,  774,  774,  813,  774,  774,  739,
-      734,  734,  797,  798,  798,  799,  799,  800,  800,  801,
-      801,  802,  802,  803,  803,  734,  734,  814,  814,  814,
-      735,  734,  734,  734,  734,  735,  815,  734,  734,  734,
-      734,  735,  735,  735,  735,  734,  734,  734,  734,  734,
-      734,  734,  739,  734,  734,  734,  810,  810,  811,  811,
-      774,  774,  774,  774,  816,  774,  774,  813,  739,  734,
-      734,  797,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  815,  815,  734,  734,  734,  734,  735,  735,  735,
-
-      735,  735,  739,  734,  734,  811,  811,  774,  774,  816,
-      774,  774,  774,  739,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  817,  735,  734,  734,  811,  811,
-      818,  774,  739,  734,  734,  734,  734,  734,  819,  819,
-      817,  641,  735,  734,  734,  811,  811,  818,  819,  648,
-      774,  739,  734,  734,  819,  641,  641,  734,  734,  811,
-      811,  820,  648,  648,  739,  734,  734,  819,  819,  641,
-      641,  734,  734,  811,  811,  820,  820,  648,  648,  739,
-      734,  734,  819,  819,  641,  821,  734,  822,  811,  820,
-      820,  648,  739,  734,  734,  734,  819,  821,  734,  734,
-
-      822,  734,  811,  820,  820,  739,  734,  734,  811,  820,
-      739,  734,  811,  739,  823,  823,  823,  823,  823,  823,
-      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
-      823,  734,  734,    0,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734
-    } ;
-
-static yyconst short int yy_nxt[5130] =
-    {   0,
-        4,    4,    4,    5,    4,    4,    6,    4,    7,    8,
-        4,    9,   10,    7,    4,    4,   11,   12,   13,   13,
-        4,   14,    4,    4,   15,   16,   17,   18,   19,   19,
-       20,   19,    7,   19,   21,   22,   15,   23,   24,   15,
-       25,   26,    7,   27,    7,   28,    4,    4,   29,   30,
-       31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
-       41,   15,   42,   24,   25,   26,    7,    7,   43,    7,
-       44,    4,    4,    4,    4,    5,    4,   45,    6,   45,
-        7,    8,    4,    9,   10,   46,    4,    4,   47,   48,
-       49,   49,    4,   50,    4,    4,   51,   52,   53,   54,
-
-       55,   55,   56,   55,   46,   55,   57,   58,   51,   59,
-       60,   51,   61,   62,   46,   63,   46,   28,    4,    4,
-       64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
-       74,   75,   76,   51,   77,   60,   61,   62,   46,   46,
-       78,   46,   79,    4,   80,   81,   81,   81,   81,   84,
-       87,   88,   89,  734,  734,   82,   85,   85,   85,   85,
-      110,  733,   90,   94,   91,   92,  114,  155,   80,   93,
-       94,   94,   95,   82,  734,  734,  225,   82,  226,  117,
-      734,  413,   96,   97,   98,   99,   99,   99,   99,  100,
-      414,  115,  110,  101,  101,  101,  101,  101,  101,  101,
-
-      101,   82,  101,   82,   82,  101,  101,  101,  101,  101,
-       82,   82,  101,   82,  146,  113,  111,  101,  101,  101,
-      101,  101,  101,  101,  101,  101,  101,  101,  101,   82,
-      101,  101,  101,  101,   82,   82,   82,   82,   82,  104,
-      118,  105,  106,  106,  106,  106,  107,  110,  168,  108,
-      734,  136,  734,  135,  135,  686,   89,  110,  144,  103,
-      163,   82,  734,  147,  119,  712,  156,  734,   91,  157,
-      104,  734,  734,  158,  109,  109,  109,  109,  109,  109,
-      109,  109,  109,  109,  109,  109,  105,  136,  136,  135,
-      135,  135,   82,  170,  108,  580,  174,  136,  136,  123,
-
-      124,  287,   82,  113,  155,  150,  125,  135,  135,  148,
-      125,  116,  206,  207,  155,  218,  125,  702,  210,  120,
-      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  126,  127,  127,  127,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  128,  126,  126,   94,  175,  251,
-      179,  126,  126,  126,  126,  734,  173,  154,  734,  734,
-      708,  734,  734,  734,  155,  225,  188,  226,  187,  187,
-      216,  217,  176,  196,  152,  171,  126,  130,  126,  211,
-      136,  136,  130,  135,  135,  135,  136,  136,  136,  136,
-      135,  135,  135,  734,  135,  135,  135,  451,  734,  150,
-
-      172,  126,  126,  131,  287,  734,  132,  132,  132,  132,
-      133,  114,  400,  151,  151,  151,  151,  225,  136,  136,
-       94,   94,   94,  136,  136,  135,  135,  135,  135,  135,
-      135,  293,  294,  734,  134,  502,  115,  502,  135,  135,
-      136,  136,  136,  136,  136,  136,  136,  136,  136,  136,
-      110,  734,  213,  734,  214,  204,  335,   82,  452,  215,
-      137,  401,  198,  138,  138,  138,  138,  139,  152,  155,
-       82,   81,   81,   81,   81,  699,  136,  136,  142,  142,
-      142,  580,  155,  707,  135,  135,  135,  141,  141,  141,
-      581,  140,   94,   94,   94,  141,  141,  141,  142,  142,
-
-      142,  142,  142,  142,  142,  142,  143,   94,   94,   95,
-      197,  199,  206,  336,   82,  234,  234,  234,  234,  159,
-       97,   98,  160,  160,  160,  160,  161,  206,  336,  470,
-      162,  162,  162,  162,  162,  162,  162,  162,  154,  162,
-      154,  154,  162,  162,  162,  162,  162,  154,  154,  162,
-      154,  338,  339,  470,  162,  162,  162,  162,  162,  162,
-      162,  162,  162,  162,  162,  162,  154,  162,  162,  162,
-      162,  154,  154,  154,  154,  154,   82,  110,  734,  150,
-       82,  164,  384,  105,  165,  165,  165,  165,  166,  695,
-      201,  108,  155,  151,  151,  151,  151,  734,  234,  234,
-
-      234,  234,   82,  188,  188,  702,  187,  187,  187,  386,
-      288,  289,  164,  734,  155,  130,  167,  167,  167,  167,
-      167,  167,  167,  167,  167,  167,  167,  167,   82,  180,
-      181,  734,  400,  734,  240,  105,  182,  700,  188,  188,
-      155,   82,   82,  108,  187,  187,  187,  110,  152,  290,
-      291,  387,   82,  155,  155,  103,  188,  188,  188,  188,
-      187,  187,  187,  734,  155,  187,  187,  187,  177,  177,
-      177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
-      183,  490,  734,  184,  184,  184,  184,  185,  188,  188,
-      187,  187,  187,   94,   94,   94,   82,   82,   82,  200,
-
-      182,  503,   82,  699,  170,  221,  182,  222,  155,  155,
-      155,  186,  223,  734,  155,  187,  187,  188,  188,  188,
-      188,  188,  188,  188,  188,  188,  188,  110,  234,  234,
-      234,  234,  734,  246,  246,  246,  246,  189,  188,  188,
-      190,  190,  190,  190,  191,  171,  187,  187,  187,  734,
-      332,  311,  234,  234,  234,  234,  303,  188,  188,   82,
-      239,  410,  187,  187,  187,  399,  411,  412,  192,  734,
-      172,  155,  193,  193,  193,  194,  194,  194,  194,  194,
-      194,  194,  194,  195,  734,  234,  234,  234,  234,  696,
-      204,  293,  294,  303,  194,  194,  194,  208,  208,  208,
-
-      208,  209,  244,  193,  193,  193,  150,  268,  692,  188,
-      188,  354,   94,  234,  234,  234,  234,  333,  468,  187,
-      187,  355,   82,  173,  734,  249,  338,  339,  355,  734,
-      227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
-      227,  227,  229,  338,  339,  234,  234,  234,  234,  230,
-      265,  265,  265,  265,  276,  276,  276,  276,  265,  265,
-      265,  265,  247,  276,  276,  276,  276,  299,  299,  299,
-      299,  384,  471,  229,  103,  152,  469,  231,  231,  231,
-      231,  231,  231,  231,  231,  231,  231,  231,  231,  235,
-      250,  236,  150,   82,  279,  239,  472,  237,  417,  453,
-
-       82,  550,  238,  692,  130,  155,  151,  151,  151,  151,
-      283,   82,  155,  235,  386,  236,  299,  299,  299,  299,
-      479,  687,  237,  155,  606,  551,  238,  126,  127,  127,
-      127,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  299,  299,  299,  299,  126,  126,  126,
-      126,  302,  301,  130,   82,  103,  387,  304,  686,   82,
-      454,  152,  299,  299,  299,  299,  155,  307,  307,  307,
-      307,  155,  126,  130,  126,  300,  299,  299,  299,  299,
-       82,   82,  374,  290,  299,  299,  299,  299,  299,  299,
-      299,  299,  155,  155,  685,  374,  374,  126,  126,  126,
-
-      252,  252,  252,  253,   82,  126,  126,  126,  126,  126,
-      126,   82,  305,  126,  126,  504,  155,  492,   82,  126,
-      126,  309,  126,  155,  310,  308,  318,  318,  318,  318,
-      155,   82,  457,  311,  327,  327,  327,  327,  305,  356,
-      356,  356,  356,  155,  126,  130,  458,  103,   82,  568,
-      416,  568,  327,  327,  327,  327,  318,  318,  318,  318,
-      155,  357,  357,  357,  357,  331,  493,  103,  629,  126,
-      126,  255,  255,  255,  255,  255,  255,  255,  255,  255,
-      255,  255,  255,  256,  300,  290,   82,  257,  359,  359,
-      359,  359,  330,  734,  258,  399,  259,  688,  260,  260,
-
-      260,  360,  360,  360,  360,  150,  485,  260,   82,   82,
-      260,  390,  548,  260,  260,  103,  447,   82,  257,  486,
-      155,  155,  261,  261,  261,  262,  262,  262,  262,  262,
-      262,  262,  261,  262,  685,  260,  548,  394,  260,  135,
-      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
-      135,  264,  361,  361,  361,  361,  432,  372,  265,  265,
-      265,  265,  204,  335,  266,  103,  267,  267,  267,  208,
-      208,  208,  208,  209,  152,  267,  204,  335,  267,  630,
-      373,  267,  267,  340,  340,  340,  340,   82,  349,   82,
-      267,  267,  267,   82,  268,  359,  359,  359,  359,  155,
-
-      267,  155,  682,  267,  373,  155,  267,  269,  269,  269,
-      269,  269,  269,  269,  269,  269,  269,  269,  269,  270,
-      391,  391,  391,  391,  681,  661,  271,   82,  390,  369,
-      359,  359,  359,  359,  391,  391,  391,  391,  433,  155,
-      103,  252,  252,  252,  253,  359,  359,  359,  359,  427,
-      270,  491,  103,  492,  272,  272,  272,  273,  273,  273,
-      273,  273,  273,  273,  272,  273,  275,  275,  275,  275,
-      275,  275,  275,  275,  275,  275,  275,  275,  229,  370,
-      379,  276,  276,  276,  276,  230,  130,  264,  356,  356,
-      356,  356,  418,  398,  392,  392,  392,  392,  390,   82,
-
-      266,  419,  561,  546,  403,  403,  403,  403,  455,  229,
-      569,  155,  479,  277,  277,  277,  231,  278,  231,  231,
-      231,  231,  231,  277,  231,   94,   94,   94,  546,  491,
-      394,  679,   82,  403,  403,  403,  403,  154,   97,  363,
-      160,  160,  160,  160,  155,  556,  363,  678,  162,  162,
-      162,  162,  162,  162,  162,  162,  154,  162,  154,  154,
-      162,  162,  162,  162,  162,  154,  154,  162,  154,  456,
-      363,  489,  162,  162,  162,  162,  162,  162,  162,  162,
-      162,  162,  162,  162,  154,  162,  162,  162,  162,  154,
-      154,  154,  154,  154,   82,  405,  405,  405,  405,  420,
-
-      420,  420,  420,  734,  264,  400,  155,  359,  359,  359,
-      359,  404,  404,  404,  404,  399,  734,  266,   82,   82,
-       82,  359,  359,  359,  359,  431,  420,  420,  420,  420,
-      155,  155,  155,  673,  295,  295,  295,  295,  295,  295,
-      295,  295,  295,  295,  295,  295,  296,  394,  150,  734,
-      353,  672,  103,  297,  401,   82,  734,  268,  103,  689,
-       82,  426,  409,  409,  409,  409,   82,  155,  421,  421,
-      421,  421,  155,  443,  443,  443,  443,  296,  155,  671,
-      734,  298,  298,  298,  298,  298,  298,  298,  298,  298,
-      298,  298,  298,  312,  312,  312,  312,  312,  312,  312,
-
-      312,  312,  312,  312,  312,  256,  607,   82,  103,  313,
-      429,  670,  446,   82,   82,  485,  314,  152,  259,  155,
-      315,  315,  315,  429,  429,  155,  155,   82,  734,  315,
-       82,   82,  315,  399,  667,  315,  315,  666,  290,  155,
-      313,  659,  155,  155,  316,  316,  316,  317,  317,  317,
-      317,  317,  317,  317,  316,  317,  290,  315,  430,  646,
-      315,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,   82,  264,  320,  460,  460,  460,  460,
-       82,  318,  318,  318,  318,  155,  658,  266,   82,  319,
-      319,  319,  155,  103,  400,  221,  103,  222,  319,   82,
-
-      155,  319,  223,  509,  319,  319,  461,  461,  461,  461,
-       82,  155,   82,  319,  319,  319,   82,  320,  421,  421,
-      421,  421,  155,  319,  155,  103,  319,  510,  155,  319,
-      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
-      321,  321,  322,  441,  715,   82,  204,  522,  654,  323,
-      674,  523,  425,  421,  421,  421,  421,  155,  514,  570,
-       82,  484,  484,  484,  484,  150,  717,  637,  421,  421,
-      421,  421,  155,  322,  434,  688,  520,  324,  324,  324,
-      325,  325,  325,  325,  325,  325,  325,  324,  325,  326,
-      326,  326,  326,  326,  326,  326,  326,  326,  326,  326,
-
-      326,  296,  426,  434,  327,  327,  327,  327,  297,   82,
-      372,  390,  103,  152,   82,   82,  653,  438,  438,  438,
-      438,  155,  438,  438,  438,  438,  155,  155,  480,  480,
-      480,  580,  296,  428,  152,  282,  328,  328,  328,  298,
-      329,  298,  298,  298,  298,  298,  328,  298,  362,  103,
-       82,  536,  390,  645,  103,  363,   82,  428,  442,  442,
-      442,  442,  155,  537,  442,  442,  442,  442,  155,  395,
-      455,  675,  644,  481,  355,  495,  495,  495,  495,  362,
-      643,  355,  396,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  380,  380,  103,  380,  380,
-
-      380,  380,  380,  647,  380,  380,  380,  380,  660,  380,
-      380,   82,  489,  399,  734,  380,  380,  380,  380,  421,
-      421,  421,  421,  155,   82,  639,  485,  734,  639,  103,
-      400,  456,  421,  421,  421,  421,  155,  204,  335,  486,
-      380,  380,  380,  395,  450,  450,  450,  450,  492,   82,
-      461,  461,  461,  461,  713,  320,  396,  734,  638,  539,
-      382,  155,  568,  416,  568,  380,  380,  126,  252,  252,
-      252,  253,  540,  126,  126,  126,  126,  126,  126,  441,
-      703,  126,  126,   82,  150,  491,  489,  126,  126,  717,
-      126,  461,  461,  461,  461,  155,   82,  493,  496,  496,
-
-      496,  496,  468,  290,   89,  498,   82,   82,  155,  388,
-      655,  388,  126,  130,  497,  499,   91,   98,  155,  155,
-       82,   93,  100,   82,   82,  620,  491,  398,  505,  505,
-      505,  505,  155,  506,  655,  155,  155,  126,  126,  264,
-      538,  538,  538,  538,  635,   82,  507,  480,  480,  480,
-      515,  584,  266,  152,  267,  267,  267,  155,  282,   82,
-      508,  634,  416,  267,   82,  492,  267,  516,  440,  267,
-      267,  155,  557,  557,  557,   82,  155,  491,  267,  267,
-      267,  547,  268,  505,  505,  505,  505,  155,  267,  574,
-      628,  267,  481,  627,  267,  262,  262,  262,  262,  262,
-
-      262,  262,  262,  262,  262,  262,  262,  395,  110,  557,
-      557,  557,  548,   82,  519,  150,  577,  558,   82,  440,
-      396,  549,  397,  397,  397,  155,  626,  563,   82,  655,
-      155,  397,  717,   82,  397,  601,  548,  397,  397,  492,
-      155,  505,  505,  505,  505,  155,  397,  397,  397,   82,
-      398,  625,  625,  655,  558,  572,  397,  624,  393,  397,
-      393,  155,  397,  273,  273,  273,  273,  273,  273,  273,
-      273,  273,  273,  273,  273,  362,  468,   82,  110,  150,
-      572,   82,  363,   82,  564,  734,  539,  589,  519,  155,
-      579,   82,   82,  155,  560,  155,  600,  573,  734,  734,
-
-      590,  732,  576,  155,  155,  656,  362,  623,  622,  601,
-      406,  406,  406,  364,  407,  364,  364,  364,  364,  364,
-      406,  364,   82,  204,  335,  150,   82,  621,  586,  657,
-      582,  582,  582,  582,  155,   82,  593,   82,  155,  603,
-      603,  603,  603,   82,   82,   82,  593,  155,  152,  155,
-      620,  204,  522,  103,  590,  155,  155,  155,  582,  582,
-      582,  582,  298,  298,  298,  298,  298,  298,  298,  298,
-      298,  298,  298,  298,  422,  197,  608,  613,  636,  150,
-       82,  423,  150,   82,  663,  619,  618,  586,   82,  611,
-      614,  637,  155,  150,  152,  155,  603,  603,  603,  603,
-
-      155,  609,  612,  617,  633,  422,  616,  709,  664,  424,
-      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
-      424,  380,  380,  612,  380,  380,  380,  380,  380,  381,
-      380,  380,  380,  380,  150,  380,  380,   82,   82,  615,
-      631,  436,  380,  380,  380,  652,  632,  662,  152,  155,
-      155,  564,   82,  668,  150,  655,  416,  655,  150,  655,
-      683,  416,  152,  694,  155,  665,  380,  380,  380,  680,
-      631,  697,  655,  655,  655,  416,  695,  669,  655,  655,
-      416,  655,  651,  655,  677,  416,  437,  684,  605,  677,
-      604,  380,  380,   82,  264,  150,  655,  655,  655,  284,
-
-      697,  150,  655,  152,  150,  155,  693,  266,  677,  319,
-      319,  319,  706,  677,  416,  711,  416,  416,  319,  150,
-      561,  319,  560,  152,  319,  319,  602,  152,  599,  598,
-      714,  597,  596,  319,  319,  319,  595,  320,  594,  690,
-      593,  145,  677,  319,  677,  677,  319,  704,  416,  319,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  395,  691,  152,  591,  677,  588,  677,  677,
-      152,  717,  717,  152,  705,  396,  677,  439,  439,  439,
-      416,  416,  718,  719,  717,  717,  439,  587,  152,  439,
-      586,  584,  439,  439,  583,  720,  721,  535,  710,  535,
-
-      677,  439,  439,  439,  533,  440,  710,  533,  677,  677,
-      531,  439,  531,  529,  439,  529,  527,  439,  325,  325,
-      325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
-      422,  527,  677,  677,  525,  525,  717,  423,  717,  717,
-      282,  282,  416,  575,  717,  717,  717,  722,  717,  723,
-      724,  717,  717,  282,  282,  725,  726,  727,  566,  728,
-      565,  422,  729,  730,  225,  444,  444,  444,  424,  445,
-      424,  424,  424,  424,  424,  444,  424,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  473,
-      473,  218,  473,  473,  473,  473,  473,  490,  473,  473,
-
-      473,  473,  562,  473,  473,  282,  489,  282,  282,  473,
-      473,  473,  473,  282,  282,  282,  717,  282,  560,  483,
-      282,  282,  110,  555,  554,  553,  552,  731,  468,  110,
-      545,  544,  543,  542,  473,  473,  473,  458,  535,  533,
-      531,  475,  529,  527,  525,  207,  521,  517,  287,  416,
-      501,  500,   86,  219,  475,  475,  494,  394,  395,  473,
-      473,  380,  380,  390,  380,  380,  380,  380,  380,  483,
-      380,  380,  380,  380,  478,  380,  380,  477,  476,  219,
-      467,  380,  380,  380,  380,  282,  466,  465,  464,  463,
-      462,  225,  225,  219,  218,  218,  218,  344,  344,  342,
-
-      342,  207,  448,  287,  287,  287,  380,  380,  380,  286,
-      416,  286,  379,  408,  370,  264,  390,  256,  378,  377,
-      376,  375,  371,  368,  367,  366,  365,  353,  353,  352,
-      351,  380,  380,  380,  380,  350,  380,  380,  380,  380,
-      380,  349,  380,  380,  380,  380,  349,  380,  380,  348,
-      347,  346,  345,  380,  380,  380,  380,  344,  342,  335,
-      334,  287,  287,  306,  287,  287,  286,  284,  282,  281,
-      219,  280,  244,  130,  250,  248,  219,  245,  380,  380,
-      380,  243,  242,  242,  241,  103,  225,  224,  218,  219,
-      218,  212,  204,  202,  178,  734,  169,  153,  145,  122,
-
-      121,  116,  734,  380,  380,  485,  112,  103,   86,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  486,  734,
-      487,  487,  487,  734,  734,  734,  734,  734,  734,  487,
-      734,  734,  487,  734,  734,  487,  487,  734,  734,  734,
-      734,  734,  734,  734,  487,  487,  487,  734,  734,  734,
-      734,  734,  734,  734,  487,  734,  734,  487,  734,  734,
-      487,  395,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  396,  734,  397,  397,  397,  734,
-      734,  734,  734,  734,  734,  397,  734,  734,  397,  734,
-      734,  397,  397,  734,  734,  734,  734,  734,  734,  734,
-
-      397,  397,  397,  734,  398,  734,  734,  734,  734,  734,
-      397,  734,  734,  397,  734,  734,  397,   82,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  155,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  424,  424,  424,
-      424,  424,  424,  424,  424,  424,  424,  424,  424,  473,
-      473,  734,  473,  473,  473,  473,  473,  474,  473,  473,
-      473,  473,  734,  473,  473,  734,  734,  734,  734,  512,
-      473,  473,  473,  734,  734,  734,  734,  734,  734,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  473,  473,  473,  734,  734,  734,
-      734,  513,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  513,  513,  734,  734,  734,  473,
-      473,  380,  380,  734,  380,  380,  380,  380,  380,  381,
-      380,  380,  380,  380,  734,  380,  380,  734,  734,  734,
-      734,  436,  380,  380,  380,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  380,  380,  380,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  380,  380,  380,  380,  734,  380,  380,  380,  380,
-      380,  381,  380,  380,  380,  380,  734,  380,  380,  734,
-      734,  734,  734,  436,  380,  380,  380,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  380,  380,
-      380,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  380,  380,   82,  485,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  155,  734,  486,
-
-      734,  518,  518,  518,  734,  734,  734,  734,  734,  734,
-      518,  734,  734,  518,  734,  734,  518,  518,  734,  734,
-      734,  734,  734,  734,  734,  518,  518,  518,  734,  734,
-      734,  734,  734,  734,  734,  518,  734,  734,  518,  734,
-      734,  518,  395,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  396,  734,  439,  439,  439,
-      734,  734,  734,  734,  734,  734,  439,  734,  734,  439,
-      734,  734,  439,  439,  734,  734,  734,  734,  734,  734,
-      734,  439,  439,  439,  734,  440,  734,  734,  734,  734,
-      734,  439,  734,  734,  439,  734,  734,  439,  539,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  540,  734,  541,  541,  541,  734,  734,  734,  734,
-      734,  734,  541,  734,  734,  541,  734,  734,  541,  541,
-      734,  734,  734,  734,  734,  734,  734,  541,  541,  541,
-      734,  734,  734,  734,  734,  734,  734,  541,  734,  734,
-      541,  734,  734,  541,  473,  473,  734,  473,  473,  473,
-      473,  473,  734,  473,  473,  473,  473,  734,  473,  473,
-      734,  734,  734,  734,  473,  473,  473,  473,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  473,
-
-      473,  473,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  473,  473,  473,  473,  734,  473,
-      473,  473,  473,  473,  734,  473,  473,  473,  473,  734,
-      473,  473,  734,  734,  734,  734,  473,  473,  473,  473,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  473,  473,  473,  734,  734,  734,  734,  475,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  475,  475,  734,  734,  734,  473,  473,  539,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  540,  734,  571,  571,  571,  734,  734,  734,  734,
-      734,  734,  571,  734,  734,  571,  734,  734,  571,  571,
-      734,  734,  734,  734,  734,  734,  734,  571,  571,  571,
-      734,  734,  734,  734,  734,  734,  734,  571,  734,  734,
-      571,  734,  734,  571,  473,  473,  734,  473,  473,  473,
-      473,  473,  474,  473,  473,  473,  473,  734,  473,  473,
-      734,  734,  734,  734,  512,  473,  473,  473,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  473,
-
-      473,  473,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  473,  473,  473,  473,  734,  473,
-      473,  473,  473,  473,  474,  473,  473,  473,  473,  734,
-      473,  473,  734,  734,  734,  734,  512,  473,  473,  473,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  473,  473,  473,  734,  734,  734,  734,  513,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  513,  513,  734,  734,  734,  473,  473,  640,  640,
-
-      734,  640,  640,  640,  640,  640,  734,  640,  640,  640,
-      640,  734,  640,  640,  734,  734,  734,  734,  640,  640,
-      640,  640,  734,  734,  734,  734,  734,  734,  642,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  640,  640,  640,  734,  734,  734,  734,
-      734,  734,  642,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  640,  640,
-      640,  640,  734,  640,  640,  640,  640,  640,  641,  640,
-      640,  640,  640,  734,  640,  640,  734,  734,  734,  734,
-      649,  640,  640,  640,  734,  734,  734,  734,  734,  734,
-
-      650,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  640,  640,  640,  734,  734,
-      734,  734,  734,  734,  650,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      640,  640,  640,  640,  734,  640,  640,  640,  640,  640,
-      734,  640,  640,  640,  640,  734,  640,  640,  734,  734,
-      734,  734,  640,  640,  640,  640,  734,  734,  734,  734,
-      734,  734,  642,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  640,  640,  640,
-      734,  734,  734,  734,  734,  734,  642,  734,  734,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  640,  640,  640,  640,  734,  640,  640,  640,
-      640,  640,  641,  640,  640,  640,  640,  734,  640,  640,
-      734,  734,  734,  734,  649,  640,  640,  640,  734,  734,
-      734,  734,  734,  734,  650,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  640,
-      640,  640,  734,  734,  734,  734,  734,  734,  650,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  640,  640,   82,  734,  734,   82,
-       82,  734,  734,   82,   82,   82,   82,   82,   83,   83,
-
-       83,   83,   83,  734,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  129,  129,
-      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
-      129,  129,  129,  149,  149,  149,  149,  149,  149,  149,
-      149,  149,  149,  149,  149,  149,  149,  149,  154,  734,
-      734,  154,  154,  154,  734,  154,  154,  154,  154,  154,
-      203,  203,  203,  203,  203,  734,  203,  203,  203,  203,
-      203,  203,  203,  203,  203,  205,  205,  205,  205,  205,
-      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
-
-      220,  220,  734,  734,  734,  734,  734,  734,  734,  220,
-      220,  220,  220,  220,  228,  228,  228,  232,  232,  232,
-      233,  233,  233,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  263,  263,  263,  274,  274,  274,  150,
-      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
-      150,  150,  150,  150,  285,  285,  285,  285,  285,  285,
-      285,  285,  285,  285,  285,  285,  285,  285,  285,  154,
-      734,  734,  154,  154,  154,  734,  154,  154,  154,  154,
-
-      154,  292,  292,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  203,  203,  203,  203,
-      203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
-      203,  205,  205,  205,  205,  205,  205,  205,  205,  205,
-      205,  205,  205,  205,  205,  205,  206,  206,  206,  206,
-      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
-      206,  337,  337,  337,  337,  337,  337,  337,  337,  337,
-      337,  337,  337,  337,  337,  337,  341,  341,  734,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      341,  343,  343,  734,  343,  343,  343,  343,  343,  343,
-
-      343,  343,  343,  343,  343,  343,  358,  358,  358,  381,
-      381,  734,  381,  381,  381,  381,  381,  381,  381,  381,
-      381,  381,  381,  381,  383,  383,  383,  383,  383,  383,
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  389,  389,  389,  393,  734,  734,
-      393,  734,  393,  393,  734,  393,  734,  393,  402,  402,
-
-      402,  285,  285,  285,  285,  285,  285,  285,  285,  285,
-      285,  285,  285,  285,  285,  285,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  154,  734,  734,  154,  154,  154,  734,  154,  154,
-      154,  154,  154,  292,  292,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  292,  292,  292,  292,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,  435,  435,  734,  435,  435,  435,  435,
-      435,  435,  435,  435,  435,  435,  435,  435,  337,  337,
-      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
-
-      337,  337,  337,  449,  449,  449,  449,  734,  449,  449,
-      449,  449,  449,  449,  449,  449,  449,  449,  203,  203,
-      203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
-      203,  203,  203,  341,  341,  734,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  343,  343,
-      734,  343,  343,  343,  343,  343,  343,  343,  343,  343,
-      343,  343,  343,  459,  734,  459,  734,  734,  734,  459,
-      459,  459,  474,  474,  734,  474,  474,  474,  474,  474,
-      474,  474,  474,  474,  474,  474,  474,  380,  380,  734,
-      380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
-
-      380,  380,  381,  381,  734,  381,  381,  381,  381,  381,
-      381,  381,  381,  381,  381,  381,  381,  383,  383,  383,
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
-      383,  383,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  482,  482,  482,  482,  482,  482,  482,  482,
-      482,  482,  482,  482,  482,  482,  482,  488,  734,  734,
-      734,  734,  488,  488,  734,  488,  734,  488,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-
-      415,  415,  415,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  511,  511,
-      734,  511,  511,  511,  511,  511,  511,  511,  511,  511,
-      511,  511,  511,  435,  435,  734,  435,  435,  435,  435,
-      435,  435,  435,  435,  435,  435,  435,  435,  449,  449,
-      449,  449,  734,  449,  449,  449,  449,  449,  449,  449,
-      449,  449,  449,  203,  203,  203,  203,  203,  203,  203,
-      203,  203,  203,  203,  203,  203,  203,  203,  524,  524,
-      734,  524,  524,  524,  524,  524,  524,  524,  524,  524,
-      524,  524,  524,  526,  526,  734,  526,  526,  526,  526,
-
-      526,  526,  526,  526,  526,  526,  526,  526,  528,  528,
-      734,  528,  528,  528,  528,  528,  528,  528,  528,  528,
-      528,  528,  528,  530,  530,  734,  530,  530,  530,  530,
-      530,  530,  530,  530,  530,  530,  530,  530,  532,  532,
-      734,  532,  532,  532,  532,  532,  532,  532,  532,  532,
-      532,  532,  532,  534,  534,  734,  534,  534,  534,  534,
-      534,  534,  534,  534,  534,  534,  534,  534,  473,  473,
-      734,  473,  473,  473,  473,  473,  473,  473,  473,  473,
-      473,  473,  473,  474,  474,  734,  474,  474,  474,  474,
-      474,  474,  474,  474,  474,  474,  474,  474,  383,  383,
-
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
-      383,  383,  383,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  482,  482,
-      482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
-      482,  482,  482,  559,  734,  734,  734,  734,  559,  559,
-      734,  559,  567,  567,  567,  567,  567,  567,  567,  567,
-      567,  567,  567,  567,  567,  567,  567,  102,  102,  102,
-      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-      102,  102,  511,  511,  734,  511,  511,  511,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  578,  578,  578,
-
-      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
-      578,  578,  585,  734,  734,  734,  734,  585,  585,  734,
-      585,  592,  592,  734,  592,  592,  592,  592,  592,  592,
-      592,  592,  592,  592,  592,  592,  610,  610,  610,  610,
-      610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
-      610,  641,  641,  734,  641,  641,  641,  641,  641,  641,
-      641,  641,  641,  641,  641,  641,  648,  648,  734,  648,
-      648,  648,  648,  648,  648,  648,  648,  648,  648,  648,
-      648,  640,  640,  734,  640,  640,  640,  640,  640,  640,
-      640,  640,  640,  640,  640,  640,  676,  676,  676,  676,
-
-      676,  676,  676,  676,  676,  676,  676,  676,  676,  676,
-      676,  698,  698,  698,  698,  698,  698,  698,  698,  698,
-      698,  698,  698,  698,  698,  698,  701,  701,  701,  701,
-      701,  701,  701,  701,  701,  701,  701,  701,  701,  701,
-      701,  716,  716,  716,  716,  716,  716,  716,  716,  716,
-      716,  716,  716,  716,  716,  716,    3,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
-      734,  734,  734,  734,  734,  734,  734,  734,  734
-    } ;
-
-static yyconst short int yy_chk[5130] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-
-        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2,    5,    6,    6,    6,    6,    8,
-       10,   10,   11,   20,   22,   46,    8,    8,    8,    8,
-       16,  732,   11,   13,   11,   11,   20,   46,    5,   11,
-       12,   12,   12,   13,   18,   13,   98,   12,   98,   22,
-       13,  286,   12,   12,   12,   12,   12,   12,   12,   12,
-      286,   20,   52,   12,   12,   12,   12,   12,   12,   12,
-
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   42,   18,   16,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   15,
-       23,   15,   15,   15,   15,   15,   15,   27,   52,   15,
-       23,   31,   54,   31,   31,  712,   47,   43,   31,   50,
-       50,   47,   32,   42,   23,  708,   47,   27,   47,   47,
-       15,   58,   40,   47,   15,   15,   15,   15,   15,   15,
-       15,   15,   15,   15,   15,   15,   24,   32,   32,   32,
-       32,   32,   62,   54,   24,  707,   58,   40,   40,   27,
-
-       27,  158,   57,   32,   62,  149,   27,   40,   40,   43,
-       43,   40,   84,   84,   57,  158,   43,  701,   86,   24,
-       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
-       24,   28,   28,   28,   28,   28,   28,   28,   28,   28,
-       28,   28,   28,   28,   28,   28,   28,   49,   59,  128,
-       62,   28,   28,   28,   28,   33,   57,   49,   59,   49,
-      700,   34,   56,   36,   49,  351,   66,  351,   66,   66,
-       90,   90,   59,   66,  149,   56,   28,   28,   28,   86,
-       33,   33,  128,   33,   33,   33,   34,   34,   36,   36,
-       34,   34,   34,   37,   36,   36,   36,  349,   35,   44,
-
-       56,   28,   28,   29,  161,   29,   29,   29,   29,   29,
-       29,   35,  268,   44,   44,   44,   44,  161,   37,   37,
-       94,   94,   94,   35,   35,   37,   37,   37,   35,   35,
-       35,  163,  163,   39,   29,  416,   35,  416,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       30,   38,   89,   39,   89,  203,  203,   77,  349,   89,
-       30,  268,   77,   30,   30,   30,   30,   30,   44,   77,
-       76,   81,   81,   81,   81,  698,   38,   38,   39,   39,
-       39,  521,   76,  696,   38,   38,   38,   39,   39,   39,
-      521,   30,   97,   97,   97,   30,   30,   30,   30,   30,
-
-       30,   30,   30,   30,   30,   30,   30,   48,   48,   48,
-       76,   77,  204,  204,   48,  109,  109,  109,  109,&n