Esolangs as Rule Tables

For discussion of other cellular automata.
Post Reply
M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Esolangs as Rule Tables

Post by M. I. Wright » February 19th, 2018, 12:36 am

Here's a thread for discussion of implementing esoteric languages in Golly, via the ruletable spec.

I am currently aware of two: zM_'s interpretation of Black, which I have added icons to and fixed a small error in...

Code: Select all

@RULE Black

1: block
2: IP south 
3: IP west
4: IP north
5: IP east
6: block south
7: block west
8: block north
9: block east

cr. 2018:
zM_ (original table)
Wright (icons + four-transition fix)

@TABLE

n_states: 10
neighborhood: Moore
symmetries: none

var ip = {2,3,4,5}
var block = {1,6,7,8,9}
var notblock = {0,2,3,4,5}
var a = {0,2,3,4,5,1,6,7,8,9}
var b = a
var c = a
var d = a
var e = a
var f = a
var g = a
var h = a

###
0,2,block,a,b,c,d,e,0,3
0,2,0,a,b,c,d,e,block,5
0,2,a,b,c,d,e,f,g,2

1,2,a,b,c,notblock,d,e,f,6
0,6,a,b,c,d,e,f,g,1

6,a,b,c,d,e,f,g,h,4
###

###
0,a,block,3,0,b,c,d,e,2
0,a,0,3,block,b,c,d,e,4
0,a,b,3,c,d,e,f,g,3

1,a,b,3,c,d,e,notblock,f,7
0,a,b,7,c,d,e,f,g,1

7,a,b,c,d,e,f,g,h,5
###

###
0,a,b,c,block,4,0,d,e,3
0,a,b,c,0,4,block,d,e,5
0,a,b,c,d,4,e,f,g,4

1,notblock,a,b,c,4,e,f,g,8
0,a,b,c,d,8,e,f,g,1

8,a,b,c,d,e,f,g,h,2
###

###
0,a,b,c,d,e,block,5,0,4
0,a,b,c,d,f,0,5,block,2
0,a,b,c,d,e,f,5,g,5

1,b,c,notblock,d,e,f,5,g,9
0,a,b,c,d,e,f,9,g,1

9,a,b,c,d,e,f,g,h,3
###

ip,a,b,c,d,e,f,g,h,0

@COLORS

0 48 48 48
1 0 127 255
2 224 224 224
3 224 224 224
4 224 224 224
5 224 224 224
6 55 155 255
7 55 155 255
8 55 155 255
9 55 155 255

@ICONS

XPM
/* width height num_colors chars_per_pixel */
"15 135 4 1"
/* colors */
". c #303030"
"B c #007FFF"
"C c #E0E0E0"
"D c #7FBFFF"
/* icon for state 1 */
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
"BBBBBBBBBBBBBBB"
/* icon for state 2 */
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
"CCCCCCCCCCCCCCC"
".CCCCCCCCCCCCC."
"..CCCCCCCCCCC.."
"...CCCCCCCCC..."
"....CCCCCCC...."
".....CCCCC....."
"......CCC......"
".......C......."
/* icon for state 3 */
".......C......."
"......CC......."
".....CCC......."
"....CCCC......."
"...CCCCC......."
"..CCCCCCCCCCCCC"
".CCCCCCCCCCCCCC"
"CCCCCCCCCCCCCCC"
".CCCCCCCCCCCCCC"
"..CCCCCCCCCCCCC"
"...CCCCC......."
"....CCCC......."
".....CCC......."
"......CC......."
".......C......."
/* icon for state 4 */
".......C......."
"......CCC......"
".....CCCCC....."
"....CCCCCCC...."
"...CCCCCCCCC..."
"..CCCCCCCCCCC.."
".CCCCCCCCCCCCC."
"CCCCCCCCCCCCCCC"
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
".....CCCCC....."
/* icon for state 5 */
".......C......."
".......CC......"
".......CCC....."
".......CCCC...."
".......CCCCC..."
"CCCCCCCCCCCCC.."
"CCCCCCCCCCCCCC."
"CCCCCCCCCCCCCCC"
"CCCCCCCCCCCCCC."
"CCCCCCCCCCCCC.."
".......CCCCC..."
".......CCCC...."
".......CCC....."
".......CC......"
".......C......."
/* icon for state 6 */
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"DDDDDDDDDDDDDDD"
"BDDDDDDDDDDDDDB"
"BBDDDDDDDDDDDBB"
"BBBDDDDDDDDDBBB"
"BBBBDDDDDDDBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBBDDDBBBBBB"
"BBBBBBBDBBBBBBB"
/* icon for state 7 */
"BBBBBBBDBBBBBBB"
"BBBBBBDDBBBBBBB"
"BBBBBDDDBBBBBBB"
"BBBBDDDDBBBBBBB"
"BBBDDDDDBBBBBBB"
"BBDDDDDDDDDDDDD"
"BDDDDDDDDDDDDDD"
"DDDDDDDDDDDDDDD"
"BDDDDDDDDDDDDDD"
"BBDDDDDDDDDDDDD"
"BBBDDDDDBBBBBBB"
"BBBBDDDDBBBBBBB"
"BBBBBDDDBBBBBBB"
"BBBBBBDDBBBBBBB"
"BBBBBBBDBBBBBBB"
/* icon for state 8 */
"BBBBBBBDBBBBBBB"
"BBBBBBDDDBBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBDDDDDDDBBBB"
"BBBDDDDDDDDDBBB"
"BBDDDDDDDDDDDBB"
"BDDDDDDDDDDDDDB"
"DDDDDDDDDDDDDDD"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
"BBBBBDDDDDBBBBB"
/* icon for state 9 */
"BBBBBBBDBBBBBBB"
"BBBBBBBDDBBBBBB"
"BBBBBBBDDDBBBBB"
"BBBBBBBDDDDBBBB"
"BBBBBBBDDDDDBBB"
"DDDDDDDDDDDDDBB"
"DDDDDDDDDDDDDDB"
"DDDDDDDDDDDDDDD"
"DDDDDDDDDDDDDDB"
"DDDDDDDDDDDDDBB"
"BBBBBBBDDDDDBBB"
"BBBBBBBDDDDBBBB"
"BBBBBBBDDDBBBBB"
"BBBBBBBDDBBBBBB"
"BBBBBBBDBBBBBBB"
...and my started-and-finished-today translation of Bitwise Cyclic Tag:

Code: Select all

@RULE bct

An implementation of bitwise cyclic tag.

state 0: Vacuum.

state 1: Data-tape 0.
state 2: Data-tape 1.

state 3: Program-tape 0.
state 4: Program-tape 1.

state 5: Shifter. Moves both itself and the data tape one unit down to render program execution cyclic.



state 6: Transitory program-tape 0.
state 7: Transitory program-tape 1.

state 8: Pre-copying program-tape 0. (Used when a prgm-tape bit is the x in a 1x instruction)
state 9: Pre-copying program-tape 1. (Ditto)

state 10: Transitory program-tape 0.
state 11: Transitory program-tape 1.

state 12: Rightward-moving data-tape 0.
state 13: Rightward-moving data-tape 1.

state 14: Transitory reflector.
state 15: Ditto but about to turn into normal reflector.

state 16: To-be-moved-down data-tape 0.
state 17: To-be-moved-down data-tape 1.

@COLORS
1  235 235 235  lighter gray
2   30  30  30  darker gray
12 235 235 235  lighter gray
13  30  30  30  darker gray
16 235 235 235  lighter gray
17  30  30  30  darker gray
3  200 200 200  light gray
4   90  90  90  dark gray
5    0 255 255  cyan
14   0 255 255  cyan
15   0 255 255  cyan

@TABLE
n_states:18
neighborhood:Moore
symmetries:none

var anya={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}
var anyb=anya
var anyc=anya
var anyd=anya
var anye=anya
var anyf=anya
var anyg=anya
var anyh=anya

var dataa={1,2}
var datab=dataa

var vacdataa={0,1,2}
var vacdatab=vacdataa

var rdataa={12,13}
var vacrdataa={0,12,13}

var ddataa={16,17}
var vacddataa={0,16,17}

# If a shifter is encountered, reflect + shift data tape down 2 cell
# go right
vacddataa,1,anya,anyb,anyc,anyd,anye,anyf,5,16
vacddataa,2,anya,anyb,anyc,anyd,anye,anyf,5,17
ddataa,0,anya,anyb,anyc,anyd,anye,anyf,5,0
# pull down
vacrdataa,16,anya,anyb,anyc,anyd,anye,anyf,anyg,12
vacrdataa,17,anya,anyb,anyc,anyd,anye,anyf,anyg,13
# go left
vacdataa,12,5,anya,anyb,anyc,anyd,anye,anyf,1
vacdataa,13,5,anya,anyb,anyc,anyd,anye,anyf,2

# Move rightward-moving data to the right
vacrdataa,anya,anyb,anyc,anyd,anye,anyf,rdataa,anyg,rdataa
rdataa,anya,anyb,anyc,anyd,anye,anyf,0,anyg,0

# shift the shifter down two as well
# right
0,5,anya,anyb,anyc,anyd,anye,0,rdataa,14
# left
0,5,dataa,0,anyb,anyc,anyd,anye,anyd,14
# finally
0,14,anya,anyb,anyc,anyd,anye,anyf,anyg,15
14,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,0
0,15,anya,anyb,anyc,anyd,anye,anyf,anyg,5
15,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,0
# delete shifter at end of its input stream
5,0,0,0,ddataa,0,0,0,0,0
5,0,0,0,0,0,dataa,0,0,0

# Shift prgm tape down 1 if rightward data above it
3,rdataa,anya,anyb,anyc,anyd,anye,anyf,anyg,10
4,rdataa,anya,anyb,anyc,anyd,anye,anyf,anyg,11

# If a data bit has a shifter to its right,don't attempt to copy it
dataa,anya,anyb,5,anyc,anyd,anye,anyf,anyg,0

# If a prgm-tape 1 is encountered, shift it downward
# and append the command to its left (by copying+shifting down) onto the right end of the data tape,
# if the leftmost bit is 1 -- otherwise just shift it down
# ----
# check the x in 1x
# leftmost bit 1?
3,anya,2,4,anyb,anyc,anyd,anye,anyf,8 # copy+shift down
4,anya,2,4,anyb,anyc,anyd,anye,anyf,9 # copy+shift down
# ----
# leftmost bit 0?
3,anya,1,4,anyb,anyc,anyd,anye,anyf,6 # just shift down
4,anya,1,4,anyb,anyc,anyd,anye,anyf,7 # just shift down
# ----
# shift the 1 in 1x down
4,dataa,anya,anyb,anyc,anyd,anye,anyf,anyg,7
0,7,anya,anyb,anyc,anyd,anye,anyf,anyg,11
# ----
# state 8 becomes state 1 and below it state 3
8,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,1
0,8,anya,anyb,anyc,anyd,anye,anyf,anyg,10
# state 9 becomes state 2 and below it state 4
9,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,2
0,9,anya,anyb,anyc,anyd,anye,anyf,anyg,11
# ----
# states 10 and 11 become 3 and 4 moving down
0,10,anya,anyb,anyc,anyd,anye,anyf,anyg,3
0,11,anya,anyb,anyc,anyd,anye,anyf,anyg,4
10,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,0
11,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,0

# If a bit of data has reached the right end of the tape,append it
# and delete the waiting data
dataa,anya,anyb,0,anyc,datab,anyd,anye,anyf,datab
# next line accounts for single-item data tape being appended to
dataa,anya,anyb,0,datab,anyd,anye,anyf,anyg,datab
dataa,datab,0,anya,anyb,anyc,anyd,anye,anyf,0
7,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,0

# If a prgm-tape 0 is encountered, shift it down and delete the leftmost data-tape bit
3,dataa,anya,anyb,anyc,anyd,anye,anyf,anyg,6
0,6,anya,anyb,anyc,anyd,anye,anyf,anyg,10 #3
6,anya,anyb,anyc,anyd,anye,anyf,anyg,anyh,0

# Delete the leftmost bit if a program-tape 0 is encountered
0,anya,anyb,dataa,3,anyc,anyd,anye,anyf,0

# Keep a data-tape bit in place if it's waiting below the data tape (to prepare for moving to the end)
dataa,datab,anya,anyb,anyc,anyd,anye,anyf,anyg,dataa
0,dataa,anya,datab,anyb,anyc,anyd,anye,anyf,0

# Move data tape to the left otherwise
0,anya,dataa,datab,anyb,anyc,anyd,anye,anyf,0
vacdataa,anya,anyb,vacdatab,anyc,anyd,anye,anyf,anyg,vacdatab
The latter is decidedly more opaque at first glance. See USAGE.md and bct_to_xrle.py in this Gist for details.

The number of esolangs expressible as ruletables is admittedly quite low (relative to the amount published); doing it this way doesn't afford an easy communication between the program tape/grid and a data-storage mechanism, for example. I'm still curious as to what others may be possibly implemented, however!

User avatar
_zM
Posts: 186
Joined: June 26th, 2016, 3:07 pm

Re: Esolangs as Rule Tables

Post by _zM » February 25th, 2018, 5:21 pm

bump

So, this is almost comically missing the point, but I'm adding it anyway:

Some time ago, on the Programming Puzzles and Code Golf StackExchange site, I participated in a contest to create a one instruction set computer, for which I created a language with very restricted 2D memory. You can probably see where this is going

So, I created an interpreter for the language which used Golly's cell grid to display the memory state as the program progresses; this makes the language one without a direct rule table implementation, but with an implementation using Golly nonetheless.

?
moment

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: Esolangs as Rule Tables

Post by M. I. Wright » May 30th, 2018, 3:09 am

Hot off the presses -- a 2D language by the name of "roie" popped up yesterday, and looking at its relative simplicity I couldn't resist. The below rule's name is "roe" (sans the i) because I left out the input/output instruction, i.

EDIT: I've since expanded it to include a delay instruction following Conwaylife Lounge feedback -- thus its new name is "roed".

In its original nutshell (née rueltabel) implementation:

Code: Select all

@NUTSHELL roed

http://esolangs.org/wiki/Roie
(sans i, plus a [d]elay instruction)

1: e {E_}

2-5: pointer 0 (n-w)
    2: n {P_N0}
    3: e {P_E0}
    4: s {P_S0}
    5: w {P_W0}
6-9: pointer 1 (n-w)
    6: n {P_N1}
    7: e {P_E1}
    8: s {P_S1}
    9: w {P_W1}

10: o {O}
11-15: o releasing two 1s (n-w)
    11: north {O_N1}
    12: east  {O_E1}
    13: south {O_S1}
    14: west  {O_W1}
16-19: o releasing two 0s (n-w)
    16: n {O_N0}
    17: e {O_E0}
    18: s {O_S0}
    19: w {O_W0}
20-23: o releasing 0s, but diagonally... sorted by diagonal direction of 'mouth'
    20: ne {O_NE0}
    21: se {O_SE0}
    22: sw {O_SW0}
    23: nw {O_NW0}
24-27: o releasing 1s, diagonally
    24: ne {O_NE1}
    25: se {O_SE1}
    26: sw {O_SW1}
    27: nw {O_NW1}

28: r (solid) {R}
29-32: r that will send a pointer 0 out (n-w)
    29: n {R_N0}
    30: e {R_E0}
    31: s {R_S0}
    32: w {R_W0}
33-34: r that will send a pointer 1 out (n-w)
    33: n {R_N1}
    34: e {R_E1}
    35: s {R_S1}
    36: w {R_W1}

37: d {D}
38-41: transitory d to release a pointer 0 (n-w)
    38: n {D_PRE_N0}
    39: e {D_PRE_E0}
    40: s {D_PRE_S0}
    41: w {D_PRE_W0}
42-45: transitory d to release a pointer 1 (n-w)
    42: n {D_PRE_N1}
    43: e {D_PRE_E1}
    44: s {D_PRE_S1}
    45: w {D_PRE_W1}

46-49: d releasing a pointer 0 (n-w)
    46: n {D_N0}
    47: e {D_E0}
    48: s {D_S0}
    49: w {D_W0}
42-53: d releasing a pointer 1 (n-w)
    50: n {D_N1}
    51: e {D_E1}
    52: s {D_S1}
    53: w {D_W1}
    
@TABLE
states: ?
neighborhood: Moore
symmetries: none

anyO = (O .. O_NW1)
anyR = (R .. R_W1)
anyD = (D, D_N0 .. D_W1)
notP = live-(P_N0 .. P_W1)

northZero = (P_N0, R_N0, D_N0, O_E0, O_W0, O_NW0, O_NE0)
eastZero = (P_E0, R_E0, D_E0, O_N0, O_S0, O_NE0, O_SE0)
southZero = (P_S0, R_S0, D_S0, O_E0, O_W0, O_SW0, O_SE0)
westZero = (P_W0, R_W0, D_W0, O_N0, O_S0, O_NW0, O_SW0)

north = (northZero, P_N1, R_N1, D_N1, O_E1, O_W1, O_NW1, O_NE1)
east = (eastZero, P_E1, R_E1, D_E1, O_N1, O_S1, O_NE1, O_SE1)
south = (southZero, P_S1, R_S1, D_S1, O_E1, O_W1, O_SW1, O_SE1)
west = (westZero, P_W1, R_W1, D_W1, O_N1, O_S1, O_NW1, O_SW1)

E_, N..NW any; E_

# OR instruction setup
# output-0 cases first to override later ones
anyO; N southZero, NE any, E any, SE..SW any, W eastZero, NW any; O_SE0
anyO; N southZero, NE any, E westZero, SE..SW any, W any, NW any; O_SW0
anyO; N..NE any, E any, SE any, S northZero, SW any, W eastZero, NW any; O_NE0
anyO; N..NE any, E P_W0, SE any, S northZero, SW any, W any, NW any; O_NW0
# the rest (output-1 cases)
anyO; N south, NE..SW any, W east, NW any; O_SE1
anyO; N south, NE any, E west, SE..NW any; O_SW1
anyO; N..SE any, S north, SW any, W east, NW any; O_NE1
anyO; N..NE any, E west, SE any, S north, SW..NW any; O_NW1

# NOT instruction setup
anyO; N south, NE..NW any; [N: (O_S1 * southZero, O_S0, ...)]
anyO; N..NE any, E west, SE..NW any; [E: (O_W1 * westZero, O_W0, ...)]
anyO; N..SE any, S north, SW..NW any; [S: (O_N1 * northZero, O_N0, ...)]
anyO; N..SW any, W east, NW any; [W: (O_E1 * eastZero, O_E0, ...)]

# Rotation setup
anyR; N south, NE..NW any; [N: (R_W0 * southZero, R_E1, ...)]
anyR; N..NE any, E west, SE..NW any; [E: (R_N0 * westZero, R_S1, ...)]
anyR; N..SE any, S north, SW..NW any; [S: (R_E0 * northZero, R_W1, ...)]
anyR; N..SW any, W east, NW any; [W: (R_S0 * eastZero, R_N1, ...)]

# Delay setup
anyD; N south, NE..NW any; [N: (D_PRE_S0 * southZero, D_PRE_S1, ...)]
anyD; N..NE any, E west, SE..NW any; [E: (D_PRE_W0 * westZero, D_PRE_W1, ...)]
anyD; N..SE any, S north, SW..NW any; [S: (D_PRE_N0 * northZero, D_PRE_N1, ...)]
anyD; N..SW any, W east, NW any; [W: (D_PRE_E0 * eastZero, D_PRE_E1, ...)]
# Actual delay
(D_PRE_N0 .. D_PRE_W1); N..NW any; [0: (D_N0 .. D_W1)]

# Pointers annihilate mutually on collision
# even
north; N south, NE..NW any; 0
east; N..NE any, E west, SE..NW any; 0
south; N..SE any, S north, SW..NW any; 0
west; N..SW any, W east, NW any; 0
# odd (meh)
0; N south, NE..SE any, S north, SW..NW any; 0
0; NW..NE any, E west, SE..SW any, W east; 0
0; N south, NE any, E (0 * west, west), SE..SW any, W [E: (east, 0, ...)], NW any; 0
0; NW..NE any, E (0 * west, west), SE any, S north, SW any, W [E: (east, 0, ...)]; 0

# Pointer movement
(P_N0, P_E0, P_S0, P_W0); N..NW any; 0  ->  N[0: (P_N0, _, ...)]  E[0: (_, P_E0, _, _)]  S[0: (_, _, P_S0, _)]  W[0: (_, _, _, P_W0)]
(P_N1, P_E1, P_S1, P_W1); N..NW any; 0  ->  N[0: (P_N1, _, ...)]  E[0: (_, P_E1, _, _)]  S[0: (_, _, P_S1, _)]  W[0: (_, _, _, P_W1)]

# Output from rotation
(R_N0, R_E0, R_S0, R_W0); N..NW any; R  ->  N[0: (P_N0, _, ...)]  E[0: (_, P_E0, _, _)]  S[0: (_, _, P_S0, _)]  W[0: (_, _, _, P_W0)]
(R_N1, R_E1, R_S1, R_W1); N..NW any; R  ->  N[0: (P_N1, _, ...)]  E[0: (_, P_E1, _, _)]  S[0: (_, _, P_S1, _)]  W[0: (_, _, _, P_W1)]

# Output from delay
(D_N0, D_E0, D_S0, D_W0); N..NW any; D  ->  N[0: (P_N0, _, ...)]  E[0: (_, P_E0, _, _)]  S[0: (_, _, P_S0, _)]  W[0: (_, _, _, P_W0)]
(D_N1, D_E1, D_S1, D_W1); N..NW any; D  ->  N[0: (P_N1, _, ...)]  E[0: (_, P_E1, _, _)]  S[0: (_, _, P_S1, _)]  W[0: (_, _, _, P_W1)]

# Doubled output from OR
(O_NE0, O_SE0, O_SW0, O_NW0); N..NW any; O  ->  N[0: (P_N0, _, _, P_N0)]  E[0: (P_E0, P_E0, _, _)]  S[0: (_, P_S0, P_S0, _)]  W[0: (_, _, P_W0, P_W0)]
(O_NE1, O_SE1, O_SW1, O_NW1); N..NW any; O  ->  N[0: (P_N1, _, _, P_N1)]  E[0: (P_E1, P_E1, _, _)]  S[0: (_, P_S1, P_S1, _)]  W[0: (_, _, P_W1, P_W1)]

# Doubled output from NOT
(O_N0, O_E0, O_S0, O_W0); N..NW any; O  ->  N[0: (_, P_E0, _, P_W0)]  E[0: (P_N0, _, P_S0, _)]  S[0: (_, P_E0, _, P_W0)]  W[0: (P_N0, _, P_S0, _)]
(O_N1, O_E1, O_S1, O_W1); N..NW any; O  ->  N[0: (_, P_E1, _, P_W1)]  E[0: (P_N1, _, P_S1, _)]  S[0: (_, P_E1, _, P_W1)]  W[0: (P_N1, _, P_S1, _)]

@COLORS
FF0011: 1       # e, reddish
00AAFF: 2..5    # pointer, light blue
0055BB: 6..9    # 1 pointer, darker blue
A50000: 10..27  # o, darker red
008A00: 28..36  # r, green
FF6000: 37..53  # d, yellow


@ICONS
?  000 FFF [38]
0: 303030
1: FF0011
2: 00AAFF
3: 1400BB
4: 008A00
5: FF6000

#C 1 (e)
x = 9, y = 14, rule = roed
2.5A$2.5A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$9A$9A$2A$2A$2A5.2A$2A5.2A$2.5A$
2.5A!

#C 2 (pointer "0", n..w)
x = 15, y = 15, rule = roed
7.B$6.3B$6.3B$5.2B.2B$5.2B.2B$4.2B3.2B$4.2B3.2B$3.2B5.2B$3.2B5.2B$2.
2B7.2B$2.2B7.2B$.2B9.2B$.2B9.2B$2B11.2B$2B11.2B!

#C 3
x = 15, y = 15, rule = roed
2B$4B$2.4B$4.4B$6.4B$8.4B$10.4B$12.3B$10.4B$8.4B$6.4B$4.4B$2.4B$4B$2B
!

#C 4
x = 15, y = 15, rule = roed
2B11.2B$2B11.2B$.2B9.2B$.2B9.2B$2.2B7.2B$2.2B7.2B$3.2B5.2B$3.2B5.2B$
4.2B3.2B$4.2B3.2B$5.2B.2B$5.2B.2B$6.3B$6.3B$7.B!

#C 5
x = 15, y = 15, rule = roed
13.2B$11.4B$9.4B$7.4B$5.4B$3.4B$.4B$3B$.4B$3.4B$5.4B$7.4B$9.4B$11.4B$
13.2B!

#C 6 (pointer "1", n..w)
x = 15, y = 15, rule = roed
7.C$6.3C$6.3C$5.2C.2C$5.2C.2C$4.2C3.2C$4.2C3.2C$3.2C5.2C$3.2C5.2C$2.
2C7.2C$2.2C7.2C$.2C9.2C$.2C9.2C$CC11.2C$2C11.2C!

#C 7
x = 15, y = 15, rule = roed
CC$4C$2.4C$4.4C$6.4C$8.4C$10.4C$12.3C$10.4C$8.4C$6.4C$4.4C$2.4C$4C$2C
!

#C 8
x = 15, y = 15, rule = roed
2C11.2C$2C11.CC$.2C9.2C$.2C9.2C$2.2C7.2C$2.2C7.2C$3.2C5.2C$3.2C5.2C$
4.2C3.2C$4.2C3.2C$5.2C.2C$5.2C.2C$6.3C$6.3C$7.C!

#C 9
x = 15, y = 15, rule = roed
13.2C$11.4C$9.4C$7.4C$5.4C$3.4C$.4C$3C$.4C$3.4C$5.4C$7.4C$9.4C$11.4C$
13.CC!

#C 28 (r)
x = 9, y = 12, rule = roed
8D$9D$2D5.2D$2D5.2D$2D$2D$2D$2D$2D$2D$2D$2D!

#C 37 (d)
x = 9, y = 12, rule = roed
7.2E$7.2E$7.2E$7.2E$2.7E$2.7E$2E5.2E$2E5.2E$2E5.2E$2E5.2E$2.7E$2.7E_

#C 10 (o)
x = 9, y = 14, rule = roed
2.5A$2.5A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A
5.2A$2A5.2A$2.5A$2.5A!
Sent through the transpiler (this one's pastable into Golly):

Code: Select all

@RULE roed
********************************
**** COMPILED FROM NUTSHELL ****
********************************

http://esolangs.org/wiki/Roie
(sans i, plus a [d]elay instruction)

1: e

2-5: pointer 0 (n-w)
2: n
3: e
4: s
5: w
6-9: pointer 1 (n-w)
6: n
7: e
8: s
9: w

10: o
11-15: o releasing two 1s (n-w)
11: north
12: east
13: south
14: west
16-19: o releasing two 0s (n-w)
16: n
17: e
18: s
19: w
20-23: o releasing 0s, but diagonally... sorted by diagonal direction of 'mouth'
20: ne
21: se
22: sw
23: nw
24-27: o releasing 1s, diagonally
24: ne
25: se
26: sw
27: nw

28: r (solid)
29-32: r that will send a pointer 0 out (n-w)
29: n
30: e
31: s
32: w
33-34: r that will send a pointer 1 out (n-w)
33: n
34: e
35: s
36: w

37: d
38-41: transitory d to release a pointer 0 (n-w)
38: n
39: e
40: s
41: w
42-45: transitory d to release a pointer 1 (n-w)
42: n
43: e
44: s
45: w

46-49: d releasing a pointer 0 (n-w)
46: n
47: e
48: s
49: w
42-53: d releasing a pointer 1 (n-w)
50: n
51: e
52: s
53: w

@TABLE
neighborhood: Moore
symmetries: none
n_states: 54

var any_0 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}
var any_1 = any_0
var any_2 = any_0
var any_3 = any_0
var any_4 = any_0
var any_5 = any_0
var any_6 = any_0
var any_7 = any_0
var live_0 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}
var anyO_0 = {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}
var anyR_0 = {32, 33, 34, 35, 36, 28, 29, 30, 31}
var anyD_0 = {37, 46, 47, 48, 49, 50, 51, 52, 53}
var notP_0 = {1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}
var northZero_0 = {2, 46, 17, 19, 20, 23, 29}
var eastZero_0 = {3, 47, 16, 18, 20, 21, 30}
var southZero_0 = {4, 48, 17, 19, 21, 22, 31}
var westZero_0 = {32, 5, 16, 49, 18, 22, 23}
var north_0 = {33, 2, 6, 12, 46, 14, 17, 50, 19, 20, 23, 24, 27, 29}
var east_0 = {34, 3, 7, 11, 13, 47, 16, 18, 51, 20, 21, 24, 25, 30}
var south_0 = {35, 4, 8, 12, 14, 48, 17, 19, 52, 21, 22, 25, 26, 31}
var west_0 = {32, 36, 5, 9, 11, 13, 16, 49, 18, 53, 22, 23, 26, 27}
var _556658519650401_0 = {38, 39, 40, 41, 42, 43, 44, 45}
var _674011333405727_0 = {0, 32, 36, 5, 9, 11, 13, 16, 49, 18, 53, 22, 23, 26, 27}
var _24455532072414_0 = {2, 3, 4, 5}
var _77439351857031_0 = {8, 9, 6, 7}
var _820678702620846_0 = {32, 29, 30, 31}
var _441103169529714_0 = {33, 34, 35, 36}
var _180183896560688_0 = {48, 49, 46, 47}
var _623670995688374_0 = {50, 51, 52, 53}
var _915274305106726_0 = {20, 21, 22, 23}
var _663079713365770_0 = {24, 25, 26, 27}
var _596870748849273_0 = {16, 17, 18, 19}
var _560404242838439_0 = {11, 12, 13, 14}
var _585033124496865_0 = {35, 8, 12, 14, 52, 25, 26}
var _649465413752289_0 = {36, 9, 11, 13, 53, 26, 27}
var _32694797894017_0 = {33, 6, 12, 14, 50, 24, 27}
var _888736591856652_0 = {34, 7, 11, 13, 51, 24, 25}

1, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 1
anyO_0, southZero_0, any_0, any_1, any_2, any_3, any_4, eastZero_0, any_5, 21
anyO_0, southZero_0, any_0, westZero_0, any_1, any_2, any_3, any_4, any_5, 22
anyO_0, any_0, any_1, any_2, any_3, northZero_0, any_4, eastZero_0, any_5, 20
anyO_0, any_0, any_1, 5, any_2, northZero_0, any_3, any_4, any_5, 23
anyO_0, south_0, any_0, any_1, any_2, any_3, any_4, east_0, any_5, 25
anyO_0, south_0, any_0, west_0, any_1, any_2, any_3, any_4, any_5, 26
anyO_0, any_0, any_1, any_2, any_3, north_0, any_4, east_0, any_5, 24
anyO_0, any_0, any_1, west_0, any_2, north_0, any_3, any_4, any_5, 27
anyO_0, 4, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, 31, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, 48, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, 17, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, 19, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, 22, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, 21, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13
anyO_0, _585033124496865_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 18
anyO_0, any_0, any_1, 5, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, 32, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, 49, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, 16, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, 18, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, 23, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, 22, any_2, any_3, any_4, any_5, any_6, 14
anyO_0, any_0, any_1, _649465413752289_0, any_2, any_3, any_4, any_5, any_6, 19
anyO_0, any_0, any_1, any_2, any_3, 2, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, 29, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, 46, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, 17, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, 19, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, 23, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, 20, any_4, any_5, any_6, 11
anyO_0, any_0, any_1, any_2, any_3, _32694797894017_0, any_4, any_5, any_6, 16
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 3, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 30, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 47, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 16, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 18, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 20, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, 21, any_6, 12
anyO_0, any_0, any_1, any_2, any_3, any_4, any_5, _888736591856652_0, any_6, 17
anyR_0, 4, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, 31, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, 48, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, 17, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, 19, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, 22, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, 21, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 32
anyR_0, _585033124496865_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 34
anyR_0, any_0, any_1, 5, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, 32, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, 49, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, 16, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, 18, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, 23, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, 22, any_2, any_3, any_4, any_5, any_6, 29
anyR_0, any_0, any_1, _649465413752289_0, any_2, any_3, any_4, any_5, any_6, 35
anyR_0, any_0, any_1, any_2, any_3, 2, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, 29, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, 46, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, 17, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, 19, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, 23, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, 20, any_4, any_5, any_6, 30
anyR_0, any_0, any_1, any_2, any_3, _32694797894017_0, any_4, any_5, any_6, 36
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 3, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 30, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 47, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 16, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 18, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 20, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, 21, any_6, 31
anyR_0, any_0, any_1, any_2, any_3, any_4, any_5, _888736591856652_0, any_6, 33
anyD_0, 4, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, 31, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, 48, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, 17, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, 19, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, 22, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, 21, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 40
anyD_0, _585033124496865_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 44
anyD_0, any_0, any_1, 5, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, 32, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, 49, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, 16, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, 18, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, 23, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, 22, any_2, any_3, any_4, any_5, any_6, 41
anyD_0, any_0, any_1, _649465413752289_0, any_2, any_3, any_4, any_5, any_6, 45
anyD_0, any_0, any_1, any_2, any_3, 2, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, 29, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, 46, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, 17, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, 19, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, 23, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, 20, any_4, any_5, any_6, 38
anyD_0, any_0, any_1, any_2, any_3, _32694797894017_0, any_4, any_5, any_6, 42
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 3, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 30, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 47, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 16, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 18, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 20, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, 21, any_6, 39
anyD_0, any_0, any_1, any_2, any_3, any_4, any_5, _888736591856652_0, any_6, 43
38, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 46
39, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 47
40, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 48
41, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 49
42, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 50
43, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 51
44, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 52
45, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 53
north_0, south_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, 0
east_0, any_0, any_1, west_0, any_2, any_3, any_4, any_5, any_6, 0
south_0, any_0, any_1, any_2, any_3, north_0, any_4, any_5, any_6, 0
west_0, any_0, any_1, any_2, any_3, any_4, any_5, east_0, any_6, 0
0, south_0, any_0, any_1, any_2, north_0, any_3, any_4, any_5, 0
0, any_0, any_1, west_0, any_2, any_3, any_4, east_0, any_5, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 3, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 30, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 47, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 16, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 18, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 20, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 21, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 7, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 34, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 51, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 11, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 13, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 24, any_4, 0
0, south_0, any_0, 0, any_1, any_2, any_3, 25, any_4, 0
0, south_0, any_0, west_0, any_1, any_2, any_3, 0, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 3, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 30, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 47, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 16, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 18, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 20, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 21, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 7, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 34, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 51, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 11, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 13, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 24, any_4, 0
0, any_0, any_1, 0, any_2, north_0, any_3, 25, any_4, 0
0, any_0, any_1, west_0, any_2, north_0, any_3, 0, any_4, 0
_24455532072414_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 0
any_0, any_1, any_2, any_3, any_4, 2, any_5, any_6, any_7, 2
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 3, any_7, 3
any_0, 4, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 4
any_0, any_1, any_2, 5, any_3, any_4, any_5, any_6, any_7, 5
_77439351857031_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 0
any_0, any_1, any_2, any_3, any_4, 6, any_5, any_6, any_7, 6
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 7, any_7, 7
any_0, 8, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 8
any_0, any_1, any_2, 9, any_3, any_4, any_5, any_6, any_7, 9
_820678702620846_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 28
any_0, any_1, any_2, any_3, any_4, 29, any_5, any_6, any_7, 2
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 30, any_7, 3
any_0, 31, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 4
any_0, any_1, any_2, 32, any_3, any_4, any_5, any_6, any_7, 5
_441103169529714_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 28
any_0, any_1, any_2, any_3, any_4, 33, any_5, any_6, any_7, 6
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 34, any_7, 7
any_0, 35, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 8
any_0, any_1, any_2, 36, any_3, any_4, any_5, any_6, any_7, 9
_180183896560688_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 37
any_0, any_1, any_2, any_3, any_4, 46, any_5, any_6, any_7, 2
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 47, any_7, 3
any_0, 48, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 4
any_0, any_1, any_2, 49, any_3, any_4, any_5, any_6, any_7, 5
_623670995688374_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 37
any_0, any_1, any_2, any_3, any_4, 50, any_5, any_6, any_7, 6
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 51, any_7, 7
any_0, 52, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 8
any_0, any_1, any_2, 53, any_3, any_4, any_5, any_6, any_7, 9
_915274305106726_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 10
any_0, any_1, any_2, any_3, any_4, 20, any_5, any_6, any_7, 2
any_0, any_1, any_2, any_3, any_4, 23, any_5, any_6, any_7, 2
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 20, any_7, 3
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 21, any_7, 3
any_0, 21, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 4
any_0, 22, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 4
any_0, any_1, any_2, 22, any_3, any_4, any_5, any_6, any_7, 5
any_0, any_1, any_2, 23, any_3, any_4, any_5, any_6, any_7, 5
_663079713365770_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 10
any_0, any_1, any_2, any_3, any_4, 24, any_5, any_6, any_7, 6
any_0, any_1, any_2, any_3, any_4, 27, any_5, any_6, any_7, 6
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 24, any_7, 7
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 25, any_7, 7
any_0, 25, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 8
any_0, 26, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 8
any_0, any_1, any_2, 26, any_3, any_4, any_5, any_6, any_7, 9
any_0, any_1, any_2, 27, any_3, any_4, any_5, any_6, any_7, 9
_596870748849273_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 10
any_0, any_1, any_2, any_3, any_4, 17, any_5, any_6, any_7, 3
any_0, any_1, any_2, any_3, any_4, 19, any_5, any_6, any_7, 5
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 16, any_7, 2
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 18, any_7, 4
any_0, 17, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 3
any_0, 19, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 5
any_0, any_1, any_2, 16, any_3, any_4, any_5, any_6, any_7, 2
any_0, any_1, any_2, 18, any_3, any_4, any_5, any_6, any_7, 4
_560404242838439_0, any_0, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 10
any_0, any_1, any_2, any_3, any_4, 12, any_5, any_6, any_7, 7
any_0, any_1, any_2, any_3, any_4, 14, any_5, any_6, any_7, 9
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 11, any_7, 6
any_0, any_1, any_2, any_3, any_4, any_5, any_6, 13, any_7, 8
any_0, 12, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 7
any_0, 14, any_1, any_2, any_3, any_4, any_5, any_6, any_7, 9
any_0, any_1, any_2, 11, any_3, any_4, any_5, any_6, any_7, 6
any_0, any_1, any_2, 13, any_3, any_4, any_5, any_6, any_7, 8

@COLORS
1 255 0 17
2 0 170 255
3 0 170 255
4 0 170 255
5 0 170 255
6 0 85 187
7 0 85 187
8 0 85 187
9 0 85 187
10 165 0 0
11 165 0 0
12 165 0 0
13 165 0 0
14 165 0 0
15 165 0 0
16 165 0 0
17 165 0 0
18 165 0 0
19 165 0 0
20 165 0 0
21 165 0 0
22 165 0 0
23 165 0 0
24 165 0 0
25 165 0 0
26 165 0 0
27 165 0 0
28 0 138 0
29 0 138 0
30 0 138 0
31 0 138 0
32 0 138 0
33 0 138 0
34 0 138 0
35 0 138 0
36 0 138 0
37 255 96 0
38 255 96 0
39 255 96 0
40 255 96 0
41 255 96 0
42 255 96 0
43 255 96 0
44 255 96 0
45 255 96 0
46 255 96 0
47 255 96 0
48 255 96 0
49 255 96 0
50 255 96 0
51 255 96 0
52 255 96 0
53 255 96 0

@ICONS
XPM
"15 570 32 2"
".. c #303030"
"AA c #FF0011"
"BB c #00AAFF"
"CC c #1400BB"
"DD c #008A00"
"EE c #FF6000"
"vc c #494949"
"t+ c #505050"
"_? c #575757"
"/7 c #5D5D5D"
""\ c #646464"
"re c #6B6B6B"
"$u c #727272"
"{@ c #787878"
"c6 c #7F7F7F"
"it c #868686"
"': c #8C8C8C"
"'u c #939393"
"29 c #9A9A9A"
"9{ c #A1A1A1"
"~[ c #A7A7A7"
")d c #AEAEAE"
"on c #B5B5B5"
"~p c #C2C2C2"
"p{ c #C9C9C9"
"]z c #D0D0D0"
"ig c #D6D6D6"
"p8 c #DDDDDD"
"=9 c #E4E4E4"
"~& c #EAEAEA"
",5 c #F1F1F1"
";n c #FFFFFF"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"......AAAA...................."
"......AAAA...................."
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
".............................."
"..............BB.............."
"............BBBBBB............"
"............BBBBBB............"
"..........BBBB..BBBB.........."
"..........BBBB..BBBB.........."
"........BBBB......BBBB........"
"........BBBB......BBBB........"
"......BBBB..........BBBB......"
"......BBBB..........BBBB......"
"....BBBB..............BBBB...."
"....BBBB..............BBBB...."
"..BBBB..................BBBB.."
"..BBBB..................BBBB.."
"BBBB......................BBBB"
"BBBB......................BBBB"
"BBBB.........................."
"BBBBBBBB......................"
"....BBBBBBBB.................."
"........BBBBBBBB.............."
"............BBBBBBBB.........."
"................BBBBBBBB......"
"....................BBBBBBBB.."
"........................BBBBBB"
"....................BBBBBBBB.."
"................BBBBBBBB......"
"............BBBBBBBB.........."
"........BBBBBBBB.............."
"....BBBBBBBB.................."
"BBBBBBBB......................"
"BBBB.........................."
"BBBB......................BBBB"
"BBBB......................BBBB"
"..BBBB..................BBBB.."
"..BBBB..................BBBB.."
"....BBBB..............BBBB...."
"....BBBB..............BBBB...."
"......BBBB..........BBBB......"
"......BBBB..........BBBB......"
"........BBBB......BBBB........"
"........BBBB......BBBB........"
"..........BBBB..BBBB.........."
"..........BBBB..BBBB.........."
"............BBBBBB............"
"............BBBBBB............"
"..............BB.............."
"..........................BBBB"
"......................BBBBBBBB"
"..................BBBBBBBB...."
"..............BBBBBBBB........"
"..........BBBBBBBB............"
"......BBBBBBBB................"
"..BBBBBBBB...................."
"BBBBBB........................"
"..BBBBBBBB...................."
"......BBBBBBBB................"
"..........BBBBBBBB............"
"..............BBBBBBBB........"
"..................BBBBBBBB...."
"......................BBBBBBBB"
"..........................BBBB"
"..............CC.............."
"............CCCCCC............"
"............CCCCCC............"
"..........CCCC..CCCC.........."
"..........CCCC..CCCC.........."
"........CCCC......CCCC........"
"........CCCC......CCCC........"
"......CCCC..........CCCC......"
"......CCCC..........CCCC......"
"....CCCC..............CCCC...."
"....CCCC..............CCCC...."
"..CCCC..................CCCC.."
"..CCCC..................CCCC.."
"CCCC......................CCCC"
"CCCC......................CCCC"
"CCCC.........................."
"CCCCCCCC......................"
"....CCCCCCCC.................."
"........CCCCCCCC.............."
"............CCCCCCCC.........."
"................CCCCCCCC......"
"....................CCCCCCCC.."
"........................CCCCCC"
"....................CCCCCCCC.."
"................CCCCCCCC......"
"............CCCCCCCC.........."
"........CCCCCCCC.............."
"....CCCCCCCC.................."
"CCCCCCCC......................"
"CCCC.........................."
"CCCC......................CCCC"
"CCCC......................CCCC"
"..CCCC..................CCCC.."
"..CCCC..................CCCC.."
"....CCCC..............CCCC...."
"....CCCC..............CCCC...."
"......CCCC..........CCCC......"
"......CCCC..........CCCC......"
"........CCCC......CCCC........"
"........CCCC......CCCC........"
"..........CCCC..CCCC.........."
"..........CCCC..CCCC.........."
"............CCCCCC............"
"............CCCCCC............"
"..............CC.............."
"..........................CCCC"
"......................CCCCCCCC"
"..................CCCCCCCC...."
"..............CCCCCCCC........"
"..........CCCCCCCC............"
"......CCCCCCCC................"
"..CCCCCCCC...................."
"CCCCCC........................"
"..CCCCCCCC...................."
"......CCCCCCCC................"
"..........CCCCCCCC............"
"..............CCCCCCCC........"
"..................CCCCCCCC...."
"......................CCCCCCCC"
"..........................CCCC"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"......AAAA..........AAAA......"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
".............................."
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"t+t+t+t+t+t+t+t+t+t+t+t+t+t+t+"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"$u$u$u$u$u$u$u$u$u$u$u$u$u$u$u"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"{@{@{@{@{@{@{@{@{@{@{@{@{@{@{@"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"ititititititititititititititit"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"':':':':':':':':':':':':':':':"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"'u'u'u'u'u'u'u'u'u'u'u'u'u'u'u"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"292929292929292929292929292929"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"9{9{9{9{9{9{9{9{9{9{9{9{9{9{9{"
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
"~[~[~[~[~[~[~[~[~[~[~[~[~[~[~["
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
")d)d)d)d)d)d)d)d)d)d)d)d)d)d)d"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
"ononononononononononononononon"
".............................."
"......DDDDDDDDDDDDDDDD........"
"......DDDDDDDDDDDDDDDDDD......"
"......DDDD..........DDDD......"
"......DDDD..........DDDD......"
"......DDDD...................."
"......DDDD...................."
"......DDDD...................."
"......DDDD...................."
"......DDDD...................."
"......DDDD...................."
"......DDDD...................."
"......DDDD...................."
".............................."
".............................."
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"~p~p~p~p~p~p~p~p~p~p~p~p~p~p~p"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"p{p{p{p{p{p{p{p{p{p{p{p{p{p{p{"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"]z]z]z]z]z]z]z]z]z]z]z]z]z]z]z"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"igigigigigigigigigigigigigigig"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
"~&~&~&~&~&~&~&~&~&~&~&~&~&~&~&"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
",5,5,5,5,5,5,5,5,5,5,5,5,5,5,5"
".............................."
"....................EEEE......"
"....................EEEE......"
"....................EEEE......"
"....................EEEE......"
"..........EEEEEEEEEEEEEE......"
"..........EEEEEEEEEEEEEE......"
"......EEEE..........EEEE......"
"......EEEE..........EEEE......"
"......EEEE..........EEEE......"
"......EEEE..........EEEE......"
"..........EEEEEEEEEEEEEE......"
"..........EEEEEEEEEEEEEE......"
".............................."
".............................."
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
";n;n;n;n;n;n;n;n;n;n;n;n;n;n;n"
original "roe" table as a rueltabel:

Code: Select all

@RUEL roe
http://esolangs.org/wiki/Roie
(without I)

1: e {_E}

2-5: pointer 0 (n-w)
    2: {P_N0}
    3: {P_E0}
    4: {P_S0}
    5: {P_W0}
6-9: pointer 1 (n-w)
    6: {P_N1}
    7: {P_E1}
    8: {P_S1}
    9: {P_W1}

10: o (solid)  {O}
11-15: o that will send two 1s out (n-w)
    11: north {O_N1}
    12: east  {O_E1}
    13: south {O_S1}
    14: west  {O_W1}
16-19: o that will send two 0s out (n-w)
    16: n {O_N0}
    17: e {O_E0}
    18: s {O_S0}
    19: w {O_W0}
20-23: o releasing 0s, but diagonally... sorted by diagonal direction of 'mouth'
    20: ne {O_NE0}
    21: se {O_SE0}
    22: sw {O_SW0}
    23: nw {O_NW0}
24-27: o releasing 1s, diagonally
    24: ne {O_NE1}
    25: se {O_SE1}
    26: sw {O_SW1}
    27: nw {O_NW1}

28: r (solid) {R}
29-32: r that will send a pointer 0 out (n-w)
    29: n {R_N0}
    30: e {R_E0}
    31: s {R_S0}
    32: w {R_W0}
33-34: r that will send a pointer 1 out (n-w)
    33: n {R_N1}
    34: e {R_E1}
    35: s {R_S1}
    36: w {R_W1}

@TABEL
states: 37
neighborhood: Moore
symmetries: none

anyO = (O .. O_NW1)
anyR = (R .. R_W1)
notP = any-(P_N0 .. P_W1)

north = (P_N0, R_N0, O_N0, O_NW0, O_NE0, P_N1, R_N1, O_N1, O_NW1, O_NE1)
east = (P_E0, R_E0, O_E0, O_NE0, O_SE0, P_E1, R_E1, O_E1, O_NE1, O_SE1)
south = (P_S0, R_S0, O_S0, O_SW0, O_SE0, P_S1, R_S1, O_S1, O_SW1, O_SE1)
west = (P_W0, R_W0, O_W0, O_NW0, O_SW0, P_W1, R_W1, O_W1, O_NW1, O_SW1)

northZero = (P_N0, R_N0, O_N0, O_NW0, O_NE0)
eastZero = (P_E0, R_E0, O_E0, O_NE0, O_SE0)
southZero = (P_S0, R_S0, O_S0, O_SW0, O_SE0)
westZero = (P_W0, R_W0, O_W0, O_NW0, O_SW0)


# NOT instruction setup
anyO, N south, NE..NW notP, [N: (O_S1 * 5, O_S0, ...)]
anyO, N..NE notP, E west, SE..NW notP, [E: (O_W1 * 5, O_W0, ...)]
anyO, N..SE notP, S north, SW..NW notP, [S: (O_N1 * 5, O_N0, ...)]
anyO, N..SW notP, W east, NW notP, [W: (O_E1 * 5, O_E0, ...)]

# OR instruction setup
# output-0 cases first to override later ones
anyO, N southZero, NE notP, E 0, SE..SW notP, W eastZero, NW notP, O_SE0
anyO, N southZero, NE notP, E westZero, SE..SW notP, W 0, NW notP, O_SW0
anyO, N..NE notP, E 0, SE notP, S northZero, SW notP, W eastZero, NW notP, O_NE0
anyO, N..NE notP, E P_W0, SE notP, S northZero, SW notP, W 0, NW notP, O_NW0
# the rest (output-1 cases)
anyO, N south, NE..SW notP, W east, NW notP, O_SE1
anyO, N south, NE notP, E west, SE..NW notP, O_SW1
anyO, N..SE notP, S north, SW notP, W east, NW notP, O_NE1
anyO, N..NE notP, E west, SE notP, S north, SW..NW notP, O_NW1

# Output from OR
(O_NE0, O_SE0, O_SW0, O_NW0), N..NW any, O  ->  N[0: (P_N0, _, _, P_N0)]  E[0: (P_E0, P_E0, _, _)]  S[0: (_, P_S0, P_S0, _)]  W[0: (_, _, P_W0, P_W0)]
(O_NE1, O_SE1, O_SW1, O_NW1), N..NW any, O  ->  N[0: (P_N1, _, _, P_N1)]  E[0: (P_E1, P_E1, _, _)]  S[0: (_, P_S1, P_S1, _)]  W[0: (_, _, P_W1, P_W1)]

# Coubled output from NOT
(O_N0, O_E0, O_S0, O_W0), N..NW any, O  ->  N[0: (_, P_E0, _, P_W0)]  E[0: (P_N0, _, P_S0, _)]  S[0: (_, P_E0, _, P_W0)]  W[0: (P_N0, _, P_S0, _)]
(O_N1, O_E1, O_S1, O_W1), N..NW any, O  ->  N[0: (_, P_E1, _, P_W1)]  E[0: (P_N1, _, P_S1, _)]  S[0: (_, P_E1, _, P_W1)]  W[0: (P_N1, _, P_S1, _)]

# Rotation setup
anyR, N south, NE..NW notP, [N: (R_W0 * 5, R_W1, ...)]
anyR, N..NE notP, E west, SE..NW notP, [E: (R_N0 * 5, R_N1, ...)]
anyR, N..SE notP, S north, SW..NW notP, [S: (R_E0 * 5, R_E1, ...)]
anyR, N..SW notP, W east, NW notP, [W: (R_S0 * 5, R_S1, ...)]

# Output from rotation
(R_N0, R_E0, R_S0, R_W0), N..NW any, R  ->  N[0: (P_N0, _, ...)]  E[0: (_, P_E0, _, _)]  S[0: (_, _, P_S0, _)]  W[0: (_, _, _, P_W0)]
(R_N1, R_E1, R_S1, R_W1), N..NW any, R  ->  N[0: (P_N1, _, ...)]  E[0: (_, P_E1, _, _)]  S[0: (_, _, P_S1, _)]  W[0: (_, _, _, P_W1)]

# e instruction should delete, not be deleted (by the below)
_E, N..NW any, _E

# pointer movement
(P_N0, P_E0, P_S0, P_W0), N..NW any, 0  ->  N[0: (P_N0, _, ...)]  E[0: (_, P_E0, _, _)]  S[0: (_, _, P_S0, _)]  W[0: (_, _, _, P_W0)]
(P_N1, P_E1, P_S1, P_W1), N..NW any, 0  ->  N[0: (P_N1, _, ...)]  E[0: (_, P_E1, _, _)]  S[0: (_, _, P_S1, _)]  W[0: (_, _, _, P_W1)]

@COLORS
1: FF0011  # e, reddish
2 3 4 5 6 7 8 9: 00AAFF  # pointer, light blue
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27: A50000  # o, darker red
28 29 30 31 32 33 34 35 36: 008A00  # r, green

@ICONS
?  000 FFF # 29
0: 303030
1: FF0011
2: 00AAFF
3: 1400BB
4: 008A00

#C 1 (e)
x = 9, y = 14, rule = roe
2.5A$2.5A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$9A$9A$2A$2A$2A5.2A$2A5.2A$2.5A$
2.5A!

#C 2 (pointer "0", n..w)
x = 15, y = 15, rule = roe
7.B$6.3B$6.3B$5.2B.2B$5.2B.2B$4.2B3.2B$4.2B3.2B$3.2B5.2B$3.2B5.2B$2.
2B7.2B$2.2B7.2B$.2B9.2B$.2B9.2B$2B11.2B$2B11.2B!

#C 3
x = 15, y = 15, rule = roe
2B$4B$2.4B$4.4B$6.4B$8.4B$10.4B$12.3B$10.4B$8.4B$6.4B$4.4B$2.4B$4B$2B
!

#C 4
x = 15, y = 15, rule = roe
2B11.2B$2B11.2B$.2B9.2B$.2B9.2B$2.2B7.2B$2.2B7.2B$3.2B5.2B$3.2B5.2B$
4.2B3.2B$4.2B3.2B$5.2B.2B$5.2B.2B$6.3B$6.3B$7.B!

#C 5
x = 15, y = 15, rule = roe
13.2B$11.4B$9.4B$7.4B$5.4B$3.4B$.4B$3B$.4B$3.4B$5.4B$7.4B$9.4B$11.4B$
13.2B!

#C 6 (pointer "1", n..w)
x = 15, y = 15, rule = roe
7.C$6.3C$6.3C$5.2C.2C$5.2C.2C$4.2C3.2C$4.2C3.2C$3.2C5.2C$3.2C5.2C$2.
2C7.2C$2.2C7.2C$.2C9.2C$.2C9.2C$CC11.2C$2C11.2C!

#C 7
x = 15, y = 15, rule = roe
CC$4C$2.4C$4.4C$6.4C$8.4C$10.4C$12.3C$10.4C$8.4C$6.4C$4.4C$2.4C$4C$2C
!

#C 8
x = 15, y = 15, rule = roe
2C11.2C$2C11.CC$.2C9.2C$.2C9.2C$2.2C7.2C$2.2C7.2C$3.2C5.2C$3.2C5.2C$
4.2C3.2C$4.2C3.2C$5.2C.2C$5.2C.2C$6.3C$6.3C$7.C!

#C 9
x = 15, y = 15, rule = roe
13.2C$11.4C$9.4C$7.4C$5.4C$3.4C$.4C$3C$.4C$3.4C$5.4C$7.4C$9.4C$11.4C$
13.CC!

#C 28 (r)
x = 9, y = 12, rule = roe
8D$9D$2D5.2D$2D5.2D$2D$2D$2D$2D$2D$2D$2D$2D!

#C 10 (o)
x = 9, y = 14, rule = roe
2.5A$2.5A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A5.2A$2A
5.2A$2A5.2A$2.5A$2.5A!
[/size]

M. I. Wright
Posts: 372
Joined: June 13th, 2015, 12:04 pm

Re: Esolangs as Rule Tables

Post by M. I. Wright » August 8th, 2018, 8:12 pm

Finished brainfuck. Data is stored in unary & everything is non-wrapping and of course unbounded.

Code: Select all

@RULE bf
********************************
**** COMPILED FROM NUTSHELL ****
****        v0.6.0a         ****
********************************

Brainfuck.

1: +
2: -
3: ]
4: [
5: <
6: >
7: .
8: ,

9: Plain pointer
10: Pointer +
11: Pointer -
12: Pointer [
13: Pointer <
14: Pointer >
15: Pointer .
16: Pointer ,
17: Westbound backtracking pointer

18: Northbound no-op

19: Northbound +
20: Northbound -
21: Northbound ]
22: Northbound <
23: Northbound >
24: Northbound .
25: Northbound ,

26: Westbound +
27: Westbound -
28: Westbound ]
29: Westbound <
30: Westbound >
31: Westbound .
32: Westbound ,

33: Eastbound +
34: Eastbound -
35: Eastbound ]
36: Eastbound <
37: Eastbound >
38: Eastbound .
39: Eastbound ,

40: Southbound ,

41: Eastward-pointing shadow cell
42: Westward-pointing shadow cell

43: Westbound shadow +
44: Westbound shadow -
45: Westbound shadow ]
46: Westbound shadow <
47: Westbound shadow >
48: Westbound shadow .
49: Westbound shadow ,

50: Eastbound shadow +
51: Eastbound shadow -
52: Eastbound shadow ]
53: Eastbound shadow <
54: Eastbound shadow >
55: Eastbound shadow .
56: Eastbound shadow ,

57: Pointer delay state

58: Data pointer
59: Data-pointer + == "data-output prompter"
60: Data-pointer -
61: Data-pointer ]
62: Data-pointer <
63: Data-pointer >
64: Data-pointer .
65: Data-pointer ,

66:  Data
67:  Data turned output signal; reverts to data on next generation
68:  Data-born output signal that will not extend westward anymore
69:  Vacuum turned output signal; reverts to vacuum on next
70:  Vacuum-born output signal that will not extend westward anymore

71:  Plus sign (incrementor) moving through data
72:  Minus sign (decrementor) moving through data

73: Second pointer delay state  (down here b/c poor planning lol)

74: eastbound YES signal (not 0, keep looping) from data pointer after testing for r-bracket
75: westbound YES signal
76: southbound YES signal
77: eastbound NO signal (is 0, continue)
78: westbound NO signal
79: southbound NO signal
80: west shadow holding southbound NO
81: west shadow holding southbound YES
82: east shadow holding southound NO
83: east shadow holding southbound YES

84: Input
85: Input head, which covers the input tape & directs input toward the data pointer
86: Input traveling east

87: misc state
88: misc state
89: eastbound misc state

90: blank input
91: "Uninitialized" input data; this is only here for ease of storage in RLE format,
because otherwise the vertical input tape is very unfriendly to Golly. It moves diagonally to
the southeast until there’s something above it
92:  Uninitialized \x00 input, same as above
93: Uninitialized input head, same as above

94: Yet another pointer delay state just to absolutely be sure of no timing conflicts
95: Loop-skipping pointer (opposite of WestPointer)


+ To use:
Start with this template.
x = 5, y = 4, rule = bf
2.qJ$4.pR$rM$4.I!
- Enter a BF program from left to right, using cellstates 1-8, starting in the dead cell immediately southeast of
the bottommost live one.
- Initialize data as diagonal, northwest-leaning unary stacks of state-66 cells, starting each stack in the row
immediately above the topmost live cell.
- Initialize input as vertically-stacked vertical stacks of state-84 cells, starting in and going south from the
cell immediately below the westmost live one and with individual inputs delimited by state-85 cells.
An input of \x00 can be represented using a single state-90 cell in lieu of the state-84 ones.
- (Alternatively, should you wish to make your program friendlier to RLE encoding, you may initialize input as
horizontal (west-pointing) stacks of state-91 cells, delimited by state-93 cells and using state 92 for \x00;
the input tape will right itself automatically once the simulation starts.)

+ An example:
x = 19, y = 5, rule = bf
4.qJ$6.pR$2rSrM$6.I$7.H2DF2AEBCFGC!



@TABLE
neighborhood: Moore
symmetries: none
n_states: 96

var any.0 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95}
var any.1 = any.0
var any.2 = any.0
var any.3 = any.0
var any.4 = any.0
var any.5 = any.0
var any.6 = any.0
var any.7 = any.0
var live.0 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95}
var anyPrgm.0 = {1,2,3,4,5,6,7,8}
var prgm.0 = {1,2,5,6,7,8}
var prgm.1 = prgm.0
var vac.0 = {0,1,2,3,4,5,6,7,8}
var vac.1 = vac.0
var vac.2 = vac.0
var vac.3 = vac.0
var vac.4 = vac.0
var vac.5 = vac.0
var vac.6 = vac.0
var northbound.0 = {19,20,21,22,23,24,25}
var northboundNOP.0 = {18,19,20,21,22,23,24,25}
var pointerOps.0 = {10,11,13,14,15,16}
var westshadows.0 = {42,43,44,45,46,47,48,49}
var eastshadows.0 = {41,50,51,52,53,54,55,56}
var data.0 = {66,67,68,69,70,71,72}
var _a0.0 = {91,92,93}
var _b0.0 = {1,2,3,5,6,7,8}
var _c0.0 = {1,2,4,5,6,7,8}
var _d0.0 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95}
var _d0.1 = _d0.0
var _d0.2 = _d0.0
var _d0.3 = _d0.0
var _d0.4 = _d0.0
var _d0.5 = _d0.0
var _d0.6 = _d0.0
var _d0.7 = _d0.0
var _e0.0 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95}
var _f0.0 = {62,63}
var _g0.0 = {0,41,42}
var _h0.0 = {41,42}
var _i0.0 = {80,81,82,83}
var _j0.0 = {74,75,77,78}
var _k0.0 = {81,83}
var _l0.0 = {76,79}
var _m0.0 = {1,2,4,5,6,7,8}
var _n0.0 = {75,78}
var _o0.0 = {74,77}
var _p0.0 = {88,87}
var _q0.0 = {41,42}
var _r0.0 = {90,84}
var _s0.0 = {32,84}
var _t0.0 = {0,1,2,3,5,6,7,8}
var _u0.0 = {67,69}
var _v0.0 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95}
var _v0.1 = _v0.0
var _v0.2 = _v0.0
var _v0.3 = _v0.0
var _v0.4 = _v0.0
var _v0.5 = _v0.0
var _v0.6 = _v0.0
var _v0.7 = _v0.0
var _w0.0 = {68,70}
var _x0.0 = {72,71}
var _y0.0 = {0,1,2,3,4,5,6,7,8}
var _z0.0 = {9,10,11,13,14,15,16}
var _a1.0 = {1,2,3,4,5,6,7}
var _b1.0 = {76,79}
var _c1.0 = {0,3}
var _d1.0 = {0}
var _e1.0 = {0,1,2,3,4,5,6,7,8}
var _f1.0 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95}
var _g1.0 = {18,19,20,21,22,23,24,25}
var _h1.0 = {32,26,27,28,29,30,31}
var _i1.0 = {33,34,35,36,37,38,39}
var _j1.0 = {40,76,79}
var _k1.0 = {9,10,11,12,13,14,15,16}
var _l1.0 = {1,2,3,5,6,7,8}

# Move uninitialized input data into proper position
#### line 164: (91, 92, 93), E live, SE..NE any; 0 ####
_a0.0, any.0, any.1, live.0, any.2, any.3, any.4, any.5, any.6, 0
#### line 164: SE[0] ####
any.0, live.0, any.1, any.2, any.3, any.4, any.5, any.6, _a0.0, _a0.0
#### line 165: (91, 92, 93), N live, NE..NW any; [0: (84, 90, 85)] ####
91, live.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 84
92, live.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 90
93, live.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 85
#########################################################
##### INITIAL TELESCOPING OF BRACKET-ENCLOSED STUFF #####
#########################################################
# move program cell down if it has a closing bracket to its east
#### line 172: (prgm, 3), E 3, SE..NW vac, N..NE 0; 0 ####
_b0.0, 0, 0, 3, vac.0, vac.1, vac.2, vac.3, vac.4, 0
#### line 172: S[0] ####
vac.0, _b0.0, 3, vac.1, any.0, any.1, any.2, vac.2, vac.3, _b0.0
# move program cell down if the cell to its east is below it
#### line 175: (prgm, 3), SE anyPrgm, S..E vac; 0 ####
_b0.0, vac.0, vac.1, vac.2, anyPrgm.0, vac.3, vac.4, vac.5, vac.6, 0
#### line 175: S[0] ####
vac.0, _b0.0, vac.1, anyPrgm.0, any.0, any.1, any.2, vac.2, vac.3, _b0.0
## (NOTE: The above two groups aren't even necessary but symmetry finishes sooner) ##
# move program cell down if it has an opening bracket to its west
#### line 180: (prgm, 4), W 4, any, 0, NE..SW vac; 0 ####
_c0.0, 0, vac.0, vac.1, vac.2, vac.3, vac.4, 4, any.0, 0
#### line 180: S[0] ####
vac.0, _c0.0, vac.1, vac.2, any.0, any.1, any.2, vac.3, 4, _c0.0
# move program cell down if the cell to its west is below it
#### line 183: (prgm, 4), SW anyPrgm, W..S vac; 0 ####
_c0.0, vac.0, vac.1, vac.2, vac.3, vac.4, anyPrgm.0, vac.5, vac.6, 0
#### line 183: S[0] ####
vac.0, _c0.0, vac.1, vac.2, any.0, any.1, any.2, anyPrgm.0, vac.3, _c0.0
# special-casing for ][, but could probably be handled above
#### line 186: 4, E..SE vac, S 0, SW 3, W..NE 0; 0 ####
4, 0, 0, vac.0, vac.1, 0, 3, 0, 0, 0
#### line 186: S:4 ####
0, 4, vac.0, vac.1, any.0, any.1, any.2, 3, 0, 4
#### line 187: 3, SE 4, 0, vac, vac, NW..E 0; 0 ####
3, 0, 0, 0, 4, 0, vac.0, vac.1, 0, 0
#### line 187: S:3 ####
0, 3, 0, 4, any.0, any.1, any.2, vac.0, vac.1, 3
# if a bracket has nothing in its mouth, assume it needs to travel south
# to catch up to a different level
# In the same vein, spawn a bracket if there's an empty cell between a bracket (N) and
# a prgm tape bit (SW/SE)
#### line 193: 4, N..SW 0, W vac, NW vac; 0 ####
4, 0, 0, 0, 0, 0, 0, vac.0, vac.1, 0
#### line 193: S:4 ####
0, 4, 0, 0, any.0, any.1, any.2, 0, vac.0, 4
#### line 194: 3, NE..E vac, SE..N 0; 0 ####
3, 0, vac.0, vac.1, 0, 0, 0, 0, 0, 0
#### line 194: S:3 ####
0, 3, vac.0, 0, any.0, any.1, any.2, 0, 0, 3
# if the above happens, move the now-hanging-one-lvl-too-high prgm-tape data south
#### line 197: prgm, E prgm, 0, 0, SW 3, 0, NW..NE 0; 0 ####
prgm.0, 0, 0, prgm.1, 0, 0, 3, 0, 0, 0  # ]x
#### line 197: S[0] ####
0, prgm.0, prgm.1, 0, any.0, any.1, any.2, 3, 0, prgm.0  # ]x
#### line 198: prgm, SE 4, 0, 0, W prgm, NW..E 0; 0 ####
prgm.0, 0, 0, 0, 4, 0, 0, prgm.1, 0, 0  # x[
#### line 198: S[0] ####
0, prgm.0, 0, 4, any.0, any.1, any.2, 0, prgm.1, prgm.0  # x[
################
##### 66 #####
################
### 66-pointer transformations ###
#### line 206: 58, W eastbound, NW..SW any; [W: datapointers] ####
58, any.0, any.1, any.2, any.3, any.4, any.5, 33, any.6, 59
58, any.0, any.1, any.2, any.3, any.4, any.5, 34, any.6, 60
58, any.0, any.1, any.2, any.3, any.4, any.5, 35, any.6, 61
58, any.0, any.1, any.2, any.3, any.4, any.5, 36, any.6, 62
58, any.0, any.1, any.2, any.3, any.4, any.5, 37, any.6, 63
58, any.0, any.1, any.2, any.3, any.4, any.5, 38, any.6, 64
58, any.0, any.1, any.2, any.3, any.4, any.5, 39, any.6, 65
#### line 207: 58, E westbound, SE..NE any; [E: datapointers] ####
58, any.0, any.1, 26, any.2, any.3, any.4, any.5, any.6, 59
58, any.0, any.1, 27, any.2, any.3, any.4, any.5, any.6, 60
58, any.0, any.1, 28, any.2, any.3, any.4, any.5, any.6, 61
58, any.0, any.1, 29, any.2, any.3, any.4, any.5, any.6, 62
58, any.0, any.1, 30, any.2, any.3, any.4, any.5, any.6, 63
58, any.0, any.1, 31, any.2, any.3, any.4, any.5, any.6, 64
58, any.0, any.1, 32, any.2, any.3, any.4, any.5, any.6, 65
# If a loaded shadow is directly below data pointer, pretend it's the same as a signal
#### line 209: 58, S (westshadows-42, eastshadows-41), SW..SE any; [S: datapointers*2] ####
58, any.0, any.1, any.2, any.3, 43, any.4, any.5, any.6, 59
58, any.0, any.1, any.2, any.3, 44, any.4, any.5, any.6, 60
58, any.0, any.1, any.2, any.3, 45, any.4, any.5, any.6, 61
58, any.0, any.1, any.2, any.3, 46, any.4, any.5, any.6, 62
58, any.0, any.1, any.2, any.3, 47, any.4, any.5, any.6, 63
58, any.0, any.1, any.2, any.3, 48, any.4, any.5, any.6, 64
58, any.0, any.1, any.2, any.3, 49, any.4, any.5, any.6, 65
58, any.0, any.1, any.2, any.3, 50, any.4, any.5, any.6, 59
58, any.0, any.1, any.2, any.3, 51, any.4, any.5, any.6, 60
58, any.0, any.1, any.2, any.3, 52, any.4, any.5, any.6, 61
58, any.0, any.1, any.2, any.3, 53, any.4, any.5, any.6, 62
58, any.0, any.1, any.2, any.3, 54, any.4, any.5, any.6, 63
58, any.0, any.1, any.2, any.3, 55, any.4, any.5, any.6, 64
58, any.0, any.1, any.2, any.3, 56, any.4, any.5, any.6, 65
#### line 211: 60, N..NW any; 58 ####
60, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 58
#### line 211: N:72 ####
any.0, any.1, any.2, any.3, any.4, 60, any.5, any.6, any.7, 72
#### line 212: 59, N..NW (66, any-66); 58 ####
59, _d0.0, _d0.1, _d0.2, _d0.3, _d0.4, _d0.5, _d0.6, _d0.7, 58
#### line 212: N[(71, 66, ...)] ####
66, any.0, any.1, _d0.0, _d0.1, 59, _d0.2, _d0.3, any.2, 71
_e0.0, any.0, any.1, _d0.0, _d0.1, 59, _d0.2, _d0.3, any.2, 66
#### line 213: (63, 62), N..NW any; 0 ####
_f0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 213: E[0: (58, _)] ####
any.0, any.1, any.2, any.3, any.4, any.5, any.6, 63, any.7, 58
#### line 213: W[0: (_, 58)] ####
any.0, any.1, any.2, 62, any.3, any.4, any.5, any.6, any.7, 58
# Test to see whether there is data above the data pointer -- if yes, send back a LOOP signal ('keep looping'), and if no, send a BREAK ('stop looping')
#### line 216: 61, N 0, NE..SE any, S (0, 42, 41), SW..NW any; 58 ####
61, 0, any.0, any.1, any.2, _g0.0, any.3, any.4, any.5, 58
#### line 216: W[S: (_, 80, 82)] ####
any.0, any.1, 0, 61, 42, any.2, any.3, any.4, any.5, 80
any.0, any.1, 0, 61, 41, any.2, any.3, any.4, any.5, 82
#### line 217: 61, N live, NE..SE any, S (0, 42, 41), SW..NW any; 58 ####
61, live.0, any.0, any.1, any.2, _g0.0, any.3, any.4, any.5, 58
#### line 217: W[S: (_, 81, 83)] ####
any.0, any.1, live.0, 61, 42, any.2, any.3, any.4, any.5, 81
any.0, any.1, live.0, 61, 41, any.2, any.3, any.4, any.5, 83
# we can't send a signal from north to south directly (would exceed lightspeed) so we put it to the west first as a two-step sort of thing; this does delay things by one gen however
#### line 219: (42, 41), NW (80, 82, 81, 83), N 58, NE..W any; [NW] ####
_h0.0, 58, any.0, any.1, any.2, any.3, any.4, any.5, _i0.0, _i0.0
#### line 219: NW:0 ####
_i0.0, any.0, any.1, 58, _h0.0, any.2, any.3, any.4, any.5, 0
#### line 219: W:0 ####
any.0, _i0.0, 58, _h0.0, any.1, any.2, any.3, any.4, any.5, 0
# continue on
#### line 221: 28, W 58, NW (0, data), N..SW any; [NW: (77, 74, ...)] ####
28, any.0, any.1, any.2, any.3, any.4, any.5, 58, 0, 77
28, any.0, any.1, any.2, any.3, any.4, any.5, 58, data.0, 74
#### line 222: 35, NE (0, data), E 58, SE..N any; [NE: (78, 75, ...)] ####
35, any.0, 0, 58, any.1, any.2, any.3, any.4, any.5, 78
35, any.0, data.0, 58, any.1, any.2, any.3, any.4, any.5, 75
# Reroute west-/eastbound yes/no signals to the south because we need to get them to the program-tape pointer
# ((not relevant at all but i am so proud of how nutshell just takes this and spits out a working translation with no issue))
#### line 226: (42, 41), N (78, 77, 75, 74), NE..NW any; [N: (80, 82, 81, 83)] ####
_h0.0, 78, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 80
_h0.0, 77, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 82
_h0.0, 75, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 81
_h0.0, 74, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 83
#### line 226: N:0 ####
_j0.0, any.0, any.1, any.2, any.3, _h0.0, any.4, any.5, any.6, 0
#### line 226: NW[N: (0, _, 0, _)] ####
any.0, any.1, any.2, 78, _h0.0, any.3, any.4, any.5, any.6, 0
any.0, any.1, any.2, 75, _h0.0, any.3, any.4, any.5, any.6, 0
#### line 226: NE[N: (_, 0, _, 0)] ####
any.0, any.1, any.2, any.3, any.4, any.5, _h0.0, 77, any.6, 0
any.0, any.1, any.2, any.3, any.4, any.5, _h0.0, 74, any.6, 0
#### line 227: (80, 82, 81, 83), N..NW any; [0: (41, 42, 41, 42)] ####
80, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 41
82, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 42
81, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 41
83, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 42
#### line 227: S[0: (79, 79, 76, ...)] ####
any.0, 80, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 79
any.0, 82, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 79
any.0, _k0.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 76
# Finally, the r-brack receives the southbound yes/no signal from above
# If it's BREAK ('yes'), delete the waiting pointer and move it up to where it can continue traveling
# if it's LOOP ('no'), turn the waiting pointer into a westbound one to send it back to the appropriate l-brack
#### line 232: 3, N (79, 76), NE..NW any; [0] ####
3, _l0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 3
#### line 232: N[(12, 0)] ####
79, any.0, any.1, any.2, any.3, 3, any.4, any.5, any.6, 12
76, any.0, any.1, any.2, any.3, 3, any.4, any.5, any.6, 0
#### line 232: W[N: (0, 17)] ####
any.0, any.1, 79, 3, any.2, any.3, any.4, any.5, any.6, 0
any.0, any.1, 76, 3, any.2, any.3, any.4, any.5, any.6, 17
#### line 234: any, SW 4, W 87, NW..S any; 21 ####
any.0, any.1, any.2, any.3, any.4, any.5, 4, 87, any.6, 21
#### line 234: W:88 ####
87, any.0, any.1, any.2, any.3, 4, any.4, any.5, any.6, 88
#### line 235: 17, W 4, NW..SE any, S (4, prgm), SW any; [S: (87, pointerOps)] ####
17, any.0, any.1, any.2, any.3, 4, any.4, 4, any.5, 87
17, any.0, any.1, any.2, any.3, 1, any.4, 4, any.5, 10
17, any.0, any.1, any.2, any.3, 2, any.4, 4, any.5, 11
17, any.0, any.1, any.2, any.3, 5, any.4, 4, any.5, 13
17, any.0, any.1, any.2, any.3, 6, any.4, 4, any.5, 14
17, any.0, any.1, any.2, any.3, 7, any.4, 4, any.5, 15
17, any.0, any.1, any.2, any.3, 8, any.4, 4, any.5, 16
#### line 235: W:4 ####
4, any.0, any.1, 17, _m0.0, any.2, any.3, any.4, any.5, 4
#### line 236: 17, N..NW any; 0 ####
17, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 236: W:17 ####
any.0, any.1, any.2, 17, any.3, any.4, any.5, any.6, any.7, 17
#### line 236: N:18 ####
any.0, any.1, any.2, any.3, any.4, 17, any.5, any.6, any.7, 18
#### line 238: (78, 75), N..NW any; 0 ####
_n0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 238: W[0] ####
any.0, any.1, any.2, _n0.0, any.3, any.4, any.5, any.6, any.7, _n0.0
#### line 239: (77, 74), N..NW any; 0 ####
_o0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 239: E[0] ####
any.0, any.1, any.2, any.3, any.4, any.5, any.6, _o0.0, any.7, _o0.0
# Input
# make the comma signal stay put so the data pointer knows where to send the go-poll-for-input request (to have it reach the shadow cell)
#### line 243: 32, E 0, SE..SW any, W 58, NW..NE any; 87 ####
32, any.0, any.1, 0, any.2, any.3, any.4, 58, any.5, 87  # just need a random nonmoving state
#### line 244: 39, E 58, SE..SW any, W 0, NW..NE any; 88 ####
39, any.0, any.1, 58, any.2, any.3, any.4, 0, any.5, 88  # just need a random nonmoving state
# when input is requested, get the data pointer to zero the current cell,
#### line 246: 65, N 66, NE..NW any; [0] ####
65, 66, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 65
#### line 246: N:72 ####
66, any.0, any.1, any.2, any.3, 65, any.4, any.5, any.6, 72
#### line 247: 65, N 0, NE..NW any; 58 ####
65, 0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 58  # blank cell's cue
# then once done tell the shadow cell to go poll for input
## if nothing to south, send it in appropriate direction
#### line 250: 87, W 58, NW 0, N..S any, SW 0; 0 ####
87, any.0, any.1, any.2, any.3, any.4, 0, 58, 0, 0
#### line 250: S:39 ####
any.0, 87, any.1, any.2, any.3, any.4, any.5, 0, 58, 39
#### line 251: 88, NE 0, E 58, SE 0, S..N any; 0 ####
88, any.0, 0, 58, 0, any.1, any.2, any.3, any.4, 0
#### line 251: S:32 ####
any.0, 88, 58, 0, any.1, any.2, any.3, any.4, any.5, 32
## elif shadow cell to south, stay put and do something stupid to give it the signal regardless
#### (this could be merged into the above transition but I'm lazy)
#### line 254: 65, N 0, NE..SE any, S (42, 41), SW..NW any; 58 ####
65, 0, any.0, any.1, any.2, _h0.0, any.3, any.4, any.5, 58
#### line 254: SW:39 ####
any.0, any.1, 65, _h0.0, any.2, any.3, any.4, any.5, any.6, 39
# Also have these misc cells not destroy the shadow if it's to their south
#### line 256: (87, 88), S 42, SW..SE any; 0 ####
_p0.0, any.0, any.1, any.2, any.3, 42, any.4, any.5, any.6, 0
#### line 256: S:42 ####
42, _p0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 42
#### line 256: SW:39 ####
any.0, any.1, _p0.0, 42, any.2, any.3, any.4, any.5, any.6, 39
#### line 257: (87, 88), S 41, SW..SE any; 0 ####
_p0.0, any.0, any.1, any.2, any.3, 41, any.4, any.5, any.6, 0
#### line 257: S:41 ####
41, _p0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 41
#### line 257: SW:39 ####
any.0, any.1, _p0.0, 41, any.2, any.3, any.4, any.5, any.6, 39
## shadow cell receiving go-poll-for-input signal: (none of those commas would ever appear above it otherwise so we can always assume this'll be the cause)
## on receiving the signal it stays put and sends a comma to the west to ask the input-tape head for its stuff
#### line 260: (41, 42), N..NE any, E 32, SE..SW any, W 0, any; [0] ####
_q0.0, any.0, any.1, 32, any.2, any.3, any.4, 0, any.5, _q0.0
#### line 260: S:32 ####
any.0, _q0.0, 32, any.1, any.2, any.3, any.4, any.5, 0, 32
#### line 261: (41, 42), N..NE any, E 0, SE..SW any, W 39, any; [0] ####
_q0.0, any.0, any.1, 0, any.2, any.3, any.4, 39, any.5, _q0.0
#### line 261: S:32 ####
any.0, _q0.0, 0, any.1, any.2, any.3, any.4, any.5, 39, 32
# Input head doubles as data delimiter so have it move east appropriately to move data with
#### line 263: 85, N 0, NE 84, E..NW any; 0 ####
85, 0, 84, any.0, any.1, any.2, any.3, any.4, any.5, 0  # if it's the next up
#### line 263: N:85 ####
0, any.0, any.1, 84, any.2, 85, any.3, any.4, any.5, 85  # if it's the next up
#### line 264: 0, (84, 90), NE..SE any, 85, SW..NW any; 85 ####
0, _r0.0, any.0, any.1, any.2, 85, any.3, any.4, any.5, 85  # if it's farther down
#### line 265: 85, N 85, NE..NW any; 0 ####
85, 85, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 0
# Input head is otherwise invincible
#### line 267: 85, N..NW any; [0] ####
85, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 85
# When the west comma finds the input head,
# move the comma down one to let the input (if any) know it's there
#### line 270: 85, NE 32, E..N any; [0] ####
85, any.0, 32, any.1, any.2, any.3, any.4, any.5, any.6, 85
#### line 270: N:0 ####
any.0, any.1, any.2, 32, any.3, 85, any.4, any.5, any.6, 0
#### line 270: E:32 ####
any.0, 32, any.1, any.2, any.3, any.4, any.5, 85, any.6, 32
#### line 271: 90, NE 32, E..N any; 85 ####
90, any.0, 32, any.1, any.2, any.3, any.4, any.5, any.6, 85
# Move input up and then send it back to the shadow cell
#### line 273: 84, NE (32, 84), E..SE any, S..N any; 0 ####
84, any.0, _s0.0, any.1, any.2, any.3, any.4, any.5, any.6, 0
#### line 273: E:84 ####
any.0, _s0.0, any.1, any.2, any.3, any.4, any.5, 84, any.6, 84
#### line 274: 84, W 85, NW..SW any; 0 ####
84, any.0, any.1, any.2, any.3, any.4, any.5, 85, any.6, 0
#### line 274: N:86 ####
any.0, any.1, any.2, any.3, any.4, 84, 85, any.5, any.6, 86
#### line 275: (84, 90), N..SE 0, S any, SW..NW any; 0 ####
_r0.0, 0, 0, 0, 0, any.0, any.1, any.2, any.3, 0
#### line 275: N[0] ####
0, any.0, any.1, 0, 0, _r0.0, any.2, any.3, any.4, _r0.0
# When shadow cell receives eastbound input, relay it as an "inc" signal
#### line 277: 58, S (42, 41), SW 86, W..SE any; 59 ####
58, any.0, any.1, any.2, any.3, _h0.0, 86, any.4, any.5, 59
#### line 278: (41, 42), W 86, NW..SW any; [0] ####
_q0.0, any.0, any.1, any.2, any.3, any.4, any.5, 86, any.6, _q0.0
#### line 278: N[0: (33, 26)] ####
any.0, any.1, any.2, any.3, any.4, 41, 86, any.5, any.6, 33
any.0, any.1, any.2, any.3, any.4, 42, 86, any.5, any.6, 26
# When it receives the "we're done" signal, restore the program-tape pointer & send it on its way
#### line 280: (41, 42), W 89, NW..SW any; [0] ####
_q0.0, any.0, any.1, any.2, any.3, any.4, any.5, 89, any.6, _q0.0
#### line 280: S:40 ####
any.0, _q0.0, any.1, any.2, any.3, any.4, any.5, any.6, 89, 40
#### line 281: 0, W 87, NW 40, N..SE any, S 4, SW 8; 88 ####
0, any.0, any.1, any.2, any.3, 4, 8, 87, 40, 88  # emulate l-brack test from below
#### line 281: W:21 ####
87, 40, any.0, 0, 4, 8, any.1, any.2, any.3, 21  # emulate l-brack test from below
#### line 282: 87, N 40, NE any, E (3, prgm, 0), SE..NW vac; 9 ####
87, 40, any.0, _t0.0, vac.0, vac.1, vac.2, vac.3, vac.4, 9
#### line 282: NE[E: (21, _, ...)] ####
any.0, any.1, any.2, any.3, any.4, 3, 87, 40, any.5, 21
# Also move eastbound input eastward
#### line 284: 86, N..NW any; 0 ####
86, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 284: E:86 ####
any.0, any.1, any.2, any.3, any.4, any.5, any.6, 86, any.7, 86
# Send a "we're done" signal when there's no data or none left
#### line 286: 85, E (32, 84), SE..NE any; [0] ####
85, any.0, any.1, _s0.0, any.2, any.3, any.4, any.5, any.6, 85
#### line 286: SE:87 ####
any.0, _s0.0, any.1, any.2, any.3, any.4, any.5, any.6, 85, 87
# Move "we're done" signal
#### line 288: 87, W 0, NW 85, N..SW any; 0 ####
87, any.0, any.1, any.2, any.3, any.4, any.5, 0, 85, 0
#### line 288: N:87 ####
any.0, any.1, any.2, any.3, any.4, 87, 0, 85, any.5, 87
#### line 289: 87, W 85, NW 0, N..SW any; 0 ####
87, any.0, any.1, any.2, any.3, any.4, any.5, 85, 0, 0
#### line 289: N:89 ####
any.0, any.1, any.2, any.3, any.4, 87, 85, 0, any.5, 89
#### line 290: 89, N..NW any; 0 ####
89, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 290: E:89 ####
any.0, any.1, any.2, any.3, any.4, any.5, any.6, 89, any.7, 89
### Actual handling of data ###
#### line 293: 64, N..NW any; 58 ####
64, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 58  # don't output if there's nothing to output
#### line 293: N[(0, _, ...)] ####
0, any.0, any.1, any.2, any.3, 64, any.4, any.5, any.6, 0  # don't output if there's nothing to output
# Output
#### line 295: 66, S 64, SW..SE any; 67 ####
66, any.0, any.1, any.2, any.3, 64, any.4, any.5, any.6, 67
#### line 296: vacdata, E 0, SE any, S (69, 67), SW..NE any; [0: (70, 68)] ####
0, any.0, any.1, 0, any.2, _u0.0, any.3, any.4, any.5, 70
66, any.0, any.1, 0, any.2, _u0.0, any.3, any.4, any.5, 68
#### line 297: (70, 68), N..NW (vacdata, any-vacdata); [0: vacdata] ####
70, _v0.0, _v0.1, _v0.2, _v0.3, _v0.4, _v0.5, _v0.6, _v0.7, 0
68, _v0.0, _v0.1, _v0.2, _v0.3, _v0.4, _v0.5, _v0.6, _v0.7, 66
#### line 297: N[(70, 68, _, ...)] ####
0, any.0, any.1, _v0.0, _v0.1, _w0.0, _v0.2, _v0.3, any.2, 70
66, any.0, any.1, _v0.0, _v0.1, _w0.0, _v0.2, _v0.3, any.2, 68
#### line 299: 67, N..NW (vacdata, any-vacdata); 66 ####
67, _v0.0, _v0.1, _v0.2, _v0.3, _v0.4, _v0.5, _v0.6, _v0.7, 66
#### line 299: N[(69, 67, _, ...)] ####
0, any.0, any.1, _v0.0, _v0.1, 67, _v0.2, _v0.3, any.2, 69
66, any.0, any.1, _v0.0, _v0.1, 67, _v0.2, _v0.3, any.2, 67
#### line 300: (69, 67), N..NW (vacdata, any-vacdata); [0: vacdata] ####
69, _v0.0, _v0.1, _v0.2, _v0.3, _v0.4, _v0.5, _v0.6, _v0.7, 0
67, _v0.0, _v0.1, _v0.2, _v0.3, _v0.4, _v0.5, _v0.6, _v0.7, 66
#### line 300: N[(69, 67, _, ...)] ####
0, any.0, any.1, _v0.0, _v0.1, _u0.0, _v0.2, _v0.3, any.2, 69
66, any.0, any.1, _v0.0, _v0.1, _u0.0, _v0.2, _v0.3, any.2, 67
#### line 300: NE[(_, 67, _, ...)] ####
66, any.0, any.1, any.2, any.3, _v0.0, _u0.0, _v0.1, any.4, 67
# inc/dec instructions
#### line 303: 66, SW 72, W..S any; [NE: (0, 72, ...)] ####
66, any.0, 0, any.1, any.2, any.3, 72, any.4, any.5, 0
66, any.0, live.0, any.1, any.2, any.3, 72, any.4, any.5, 72
#### line 304: vacdata, SW 71, W..S any; [0: (66, 71)] ####
0, any.0, any.1, any.2, any.3, any.4, 71, any.5, any.6, 66
66, any.0, any.1, any.2, any.3, any.4, 71, any.5, any.6, 71
#### line 305: 0, SW 71, W..S any; [NE: (66, 71, ...)] ####
0, any.0, 0, any.1, any.2, any.3, 71, any.4, any.5, 66
0, any.0, live.0, any.1, any.2, any.3, 71, any.4, any.5, 71
#### line 307: 72, SW 0, W..S any; [NE: (0, 66, ...)] ####
72, any.0, 0, any.1, any.2, any.3, 0, any.4, any.5, 0
72, any.0, live.0, any.1, any.2, any.3, 0, any.4, any.5, 66
#### line 308: 72, NE 0, E..N any; 0 ####
72, any.0, 0, any.1, any.2, any.3, any.4, any.5, any.6, 0
#### line 309: (71, 72), N..NW any; 66 ####
_x0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 66
#######################
##### SHADOW CELL #####
#######################
# If shadow is touching data pointer, flip direction before moving to it
#### line 317: 41, NW 58, N..W any; 42 ####
41, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 58, 42
#### line 318: 42, NE 58, E..N any; 41 ####
42, any.0, 58, any.1, any.2, any.3, any.4, any.5, any.6, 41
#### line 319: eastshadows, SE northboundNOP, S..NW any, N 58, NE..E any; 0 ####
eastshadows.0, 58, any.0, any.1, northboundNOP.0, any.2, any.3, any.4, any.5, 0
#### line 319: E[SE: westshadows] ####
any.0, any.1, any.2, any.3, any.4, 19, any.5, eastshadows.0, 58, 43
any.0, any.1, any.2, any.3, any.4, 20, any.5, eastshadows.0, 58, 44
any.0, any.1, any.2, any.3, any.4, 21, any.5, eastshadows.0, 58, 45
any.0, any.1, any.2, any.3, any.4, 22, any.5, eastshadows.0, 58, 46
any.0, any.1, any.2, any.3, any.4, 23, any.5, eastshadows.0, 58, 47
any.0, any.1, any.2, any.3, any.4, 24, any.5, eastshadows.0, 58, 48
any.0, any.1, any.2, any.3, any.4, 25, any.5, eastshadows.0, 58, 49
any.0, any.1, any.2, any.3, any.4, 18, any.5, eastshadows.0, 58, 42
#### line 320: westshadows, SW northboundNOP, W..NW any, N 58, NE..S any; 0 ####
westshadows.0, 58, any.0, any.1, any.2, any.3, northboundNOP.0, any.4, any.5, 0
#### line 320: W[SW: eastshadows] ####
any.0, any.1, 58, westshadows.0, any.2, 19, any.3, any.4, any.5, 50
any.0, any.1, 58, westshadows.0, any.2, 20, any.3, any.4, any.5, 51
any.0, any.1, 58, westshadows.0, any.2, 21, any.3, any.4, any.5, 52
any.0, any.1, 58, westshadows.0, any.2, 22, any.3, any.4, any.5, 53
any.0, any.1, 58, westshadows.0, any.2, 23, any.3, any.4, any.5, 54
any.0, any.1, 58, westshadows.0, any.2, 24, any.3, any.4, any.5, 55
any.0, any.1, 58, westshadows.0, any.2, 25, any.3, any.4, any.5, 56
any.0, any.1, 58, westshadows.0, any.2, 18, any.3, any.4, any.5, 41
# If a northbound cell is coming at shadow from a corner, move toward it & load self with it
#### line 323: eastshadows, SW northboundNOP, W..S any; 0 ####
eastshadows.0, any.0, any.1, any.2, any.3, any.4, northboundNOP.0, any.5, any.6, 0
#### line 323: W[SW: eastshadows] ####
any.0, any.1, any.2, eastshadows.0, any.3, 19, any.4, any.5, any.6, 50
any.0, any.1, any.2, eastshadows.0, any.3, 20, any.4, any.5, any.6, 51
any.0, any.1, any.2, eastshadows.0, any.3, 21, any.4, any.5, any.6, 52
any.0, any.1, any.2, eastshadows.0, any.3, 22, any.4, any.5, any.6, 53
any.0, any.1, any.2, eastshadows.0, any.3, 23, any.4, any.5, any.6, 54
any.0, any.1, any.2, eastshadows.0, any.3, 24, any.4, any.5, any.6, 55
any.0, any.1, any.2, eastshadows.0, any.3, 25, any.4, any.5, any.6, 56
any.0, any.1, any.2, eastshadows.0, any.3, 18, any.4, any.5, any.6, 41
#### line 324: westshadows, SW northboundNOP, W..S any; 0 ####
westshadows.0, any.0, any.1, any.2, any.3, any.4, northboundNOP.0, any.5, any.6, 0
#### line 324: W[SW: westshadows] ####
any.0, any.1, any.2, westshadows.0, any.3, 19, any.4, any.5, any.6, 43
any.0, any.1, any.2, westshadows.0, any.3, 20, any.4, any.5, any.6, 44
any.0, any.1, any.2, westshadows.0, any.3, 21, any.4, any.5, any.6, 45
any.0, any.1, any.2, westshadows.0, any.3, 22, any.4, any.5, any.6, 46
any.0, any.1, any.2, westshadows.0, any.3, 23, any.4, any.5, any.6, 47
any.0, any.1, any.2, westshadows.0, any.3, 24, any.4, any.5, any.6, 48
any.0, any.1, any.2, westshadows.0, any.3, 25, any.4, any.5, any.6, 49
any.0, any.1, any.2, westshadows.0, any.3, 18, any.4, any.5, any.6, 42
#### line 326: eastshadows, SE northboundNOP, S..E any; 0 ####
eastshadows.0, any.0, any.1, any.2, northboundNOP.0, any.3, any.4, any.5, any.6, 0
#### line 326: E[SE: eastshadows] ####
any.0, any.1, any.2, any.3, any.4, 19, any.5, eastshadows.0, any.6, 50
any.0, any.1, any.2, any.3, any.4, 20, any.5, eastshadows.0, any.6, 51
any.0, any.1, any.2, any.3, any.4, 21, any.5, eastshadows.0, any.6, 52
any.0, any.1, any.2, any.3, any.4, 22, any.5, eastshadows.0, any.6, 53
any.0, any.1, any.2, any.3, any.4, 23, any.5, eastshadows.0, any.6, 54
any.0, any.1, any.2, any.3, any.4, 24, any.5, eastshadows.0, any.6, 55
any.0, any.1, any.2, any.3, any.4, 25, any.5, eastshadows.0, any.6, 56
any.0, any.1, any.2, any.3, any.4, 18, any.5, eastshadows.0, any.6, 41
#### line 327: westshadows, SE northboundNOP, S..E any; 0 ####
westshadows.0, any.0, any.1, any.2, northboundNOP.0, any.3, any.4, any.5, any.6, 0
#### line 327: E[SE: westshadows] ####
any.0, any.1, any.2, any.3, any.4, 19, any.5, westshadows.0, any.6, 43
any.0, any.1, any.2, any.3, any.4, 20, any.5, westshadows.0, any.6, 44
any.0, any.1, any.2, any.3, any.4, 21, any.5, westshadows.0, any.6, 45
any.0, any.1, any.2, any.3, any.4, 22, any.5, westshadows.0, any.6, 46
any.0, any.1, any.2, any.3, any.4, 23, any.5, westshadows.0, any.6, 47
any.0, any.1, any.2, any.3, any.4, 24, any.5, westshadows.0, any.6, 48
any.0, any.1, any.2, any.3, any.4, 25, any.5, westshadows.0, any.6, 49
any.0, any.1, any.2, any.3, any.4, 18, any.5, westshadows.0, any.6, 42
# If it's coming from right below, just load without moving
#### line 330: eastshadows, S northboundNOP, SW..SE any; [S: eastshadows] ####
eastshadows.0, any.0, any.1, any.2, any.3, 19, any.4, any.5, any.6, 50
eastshadows.0, any.0, any.1, any.2, any.3, 20, any.4, any.5, any.6, 51
eastshadows.0, any.0, any.1, any.2, any.3, 21, any.4, any.5, any.6, 52
eastshadows.0, any.0, any.1, any.2, any.3, 22, any.4, any.5, any.6, 53
eastshadows.0, any.0, any.1, any.2, any.3, 23, any.4, any.5, any.6, 54
eastshadows.0, any.0, any.1, any.2, any.3, 24, any.4, any.5, any.6, 55
eastshadows.0, any.0, any.1, any.2, any.3, 25, any.4, any.5, any.6, 56
eastshadows.0, any.0, any.1, any.2, any.3, 18, any.4, any.5, any.6, 41
#### line 331: westshadows, S northboundNOP, SW..SE any; [S: westshadows] ####
westshadows.0, any.0, any.1, any.2, any.3, 19, any.4, any.5, any.6, 43
westshadows.0, any.0, any.1, any.2, any.3, 20, any.4, any.5, any.6, 44
westshadows.0, any.0, any.1, any.2, any.3, 21, any.4, any.5, any.6, 45
westshadows.0, any.0, any.1, any.2, any.3, 22, any.4, any.5, any.6, 46
westshadows.0, any.0, any.1, any.2, any.3, 23, any.4, any.5, any.6, 47
westshadows.0, any.0, any.1, any.2, any.3, 24, any.4, any.5, any.6, 48
westshadows.0, any.0, any.1, any.2, any.3, 25, any.4, any.5, any.6, 49
westshadows.0, any.0, any.1, any.2, any.3, 18, any.4, any.5, any.6, 42
# A "loaded" shadow cell turns into a normal one and releases its signal
#### line 334: eastshadows, N..NW any; 41 ####
eastshadows.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 41
#### line 334: N[0: (eastbound, _)] ####
any.0, any.1, any.2, any.3, any.4, 50, any.5, any.6, any.7, 33
any.0, any.1, any.2, any.3, any.4, 51, any.5, any.6, any.7, 34
any.0, any.1, any.2, any.3, any.4, 52, any.5, any.6, any.7, 35
any.0, any.1, any.2, any.3, any.4, 53, any.5, any.6, any.7, 36
any.0, any.1, any.2, any.3, any.4, 54, any.5, any.6, any.7, 37
any.0, any.1, any.2, any.3, any.4, 55, any.5, any.6, any.7, 38
any.0, any.1, any.2, any.3, any.4, 56, any.5, any.6, any.7, 39
#### line 335: westshadows, N..NW any; 42 ####
westshadows.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 42
#### line 335: N[0: (westbound, _)] ####
any.0, any.1, any.2, any.3, any.4, 43, any.5, any.6, any.7, 26
any.0, any.1, any.2, any.3, any.4, 44, any.5, any.6, any.7, 27
any.0, any.1, any.2, any.3, any.4, 45, any.5, any.6, any.7, 28
any.0, any.1, any.2, any.3, any.4, 46, any.5, any.6, any.7, 29
any.0, any.1, any.2, any.3, any.4, 47, any.5, any.6, any.7, 30
any.0, any.1, any.2, any.3, any.4, 48, any.5, any.6, any.7, 31
any.0, any.1, any.2, any.3, any.4, 49, any.5, any.6, any.7, 32
# override northbound-signal transitions from ptr-movement section
#### line 338: (41, 42), N..NW any; [0] ####
_q0.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, _q0.0
############################
##### 9 MOVEMENT #####
############################
# Stop moving after reaching a comma or l-brack
#### line 346: 16, E (3, vac), SE..NE any; 87 ####
16, any.0, any.1, _y0.0, any.2, any.3, any.4, any.5, any.6, 87  # just needs a random non-moving state, so blank_1 works
#### line 346: NE:0 ####
any.0, any.1, any.2, any.3, any.4, _y0.0, 16, any.5, any.6, 0  # just needs a random non-moving state, so blank_1 works
## l-brack test stuff
#### line 348: (9, pointerOps), SE 4, S anyPrgm-8, SW..E any; 21 ####
_z0.0, any.0, any.1, any.2, 4, _a1.0, any.3, any.4, any.5, 21  # send out a test signal
#### line 348: E:88 ####
any.0, any.1, any.2, any.3, any.4, 4, _a1.0, _z0.0, any.5, 88  # send out a test signal
#### line 349: 21, N northbound, NE..NW any; 87 ####
21, northbound.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, 87
#### line 349: N:0 ####
northbound.0, any.0, any.1, any.2, any.3, 21, any.4, any.5, any.6, 0
#### line 350: (87, 88), E 88, SE..NE any; [0: (88, 21)] ####
87, any.0, any.1, 88, any.2, any.3, any.4, any.5, any.6, 88
88, any.0, any.1, 88, any.2, any.3, any.4, any.5, any.6, 21
### for most cases:
#### line 352: 88, NW (76, 79), N..SE any, S 4, SW..W any; [NW: (9, 95)] ####
88, any.0, any.1, any.2, any.3, 4, any.4, any.5, 76, 9
88, any.0, any.1, any.2, any.3, 4, any.4, any.5, 79, 95
#### line 352: W:0 ####
any.0, _b1.0, any.1, 88, 4, any.2, any.3, any.4, any.5, 0
#### line 352: N:18 ####
any.0, any.1, any.2, any.3, any.4, 88, any.5, _b1.0, any.6, 18
### and for when it's on an l-brack that's right after a first l-brack:
#### line 354: 88, N (76, 79), NE..SE any, S 4, SW..NW any; [N: (9, 95)] ####
88, 76, any.0, any.1, any.2, 4, any.3, any.4, any.5, 9
88, 79, any.0, any.1, any.2, 4, any.3, any.4, any.5, 95
### and one more edge case:
#### line 356: 88, NE (76, 79), E..SE any, S 4, SW..N any; [NE: (9, 95)] ####
88, any.0, 76, any.1, any.2, 4, any.3, any.4, any.5, 9
88, any.0, 79, any.1, any.2, 4, any.3, any.4, any.5, 95
#### line 356: E:0 ####
any.0, _b1.0, any.1, any.2, any.3, any.4, 4, 88, any.5, 0
## keep moving eastward till pointer_skip finds an r-brack
#### line 358: 95, SE (3, 0), S..E any; 0 ####
95, any.0, any.1, any.2, _c1.0, any.3, any.4, any.5, any.6, 0
#### line 358: E[SE: (9, 95, ...)] ####
any.0, any.1, any.2, any.3, any.4, 3, any.5, 95, any.6, 9
any.0, any.1, any.2, any.3, any.4, _d1.0, any.5, 95, any.6, 95
#### line 358: NE:18 ####
any.0, any.1, any.2, any.3, any.4, any.5, 95, any.6, any.7, 18
# Also don't put out north-bound signals after hitting r-brack
#### line 360: pointerOps, N..NE any, E 3, SE..NW any; 9 ####
pointerOps.0, any.0, any.1, 3, any.2, any.3, any.4, any.5, any.6, 9
#### line 360: NE:21 ####
any.0, any.1, any.2, any.3, any.4, 3, pointerOps.0, any.5, any.6, 21
# But elsewhere do so as normal
#### line 362: (9, pointerOps), any, 0, vac, SE (4, prgm), S..SW vac, (4, vac), any; 57 ####
_z0.0, any.0, 0, vac.0, _m0.0, vac.1, vac.2, _e1.0, any.1, 57
#### line 362: N[0: (_, northboundOps)] ####
any.0, any.1, any.2, 0, vac.0, 10, _e1.0, any.3, any.4, 19
any.0, any.1, any.2, 0, vac.0, 11, _e1.0, any.3, any.4, 20
any.0, any.1, any.2, 0, vac.0, 13, _e1.0, any.3, any.4, 22
any.0, any.1, any.2, 0, vac.0, 14, _e1.0, any.3, any.4, 23
any.0, any.1, any.2, 0, vac.0, 15, _e1.0, any.3, any.4, 24
any.0, any.1, any.2, 0, vac.0, 16, _e1.0, any.3, any.4, 25
#### line 363: 57, N..NW any; 73 ####
57, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 73
#### line 364: 73, N..NW any; 94 ####
73, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 94  # need 3 delay states to give data pointer breathing room from both sides
#### line 365: 94, any, 0, vac, SE (4, prgm), S..SW vac, (4, vac), any; 0 ####
94, any.0, 0, vac.0, _m0.0, vac.1, vac.2, _e1.0, any.1, 0
#### line 365: E[SE: (9, pointerOps)] ####
vac.0, 0, any.0, any.1, any.2, 4, vac.1, 94, any.3, 9
vac.0, 0, any.0, any.1, any.2, 1, vac.1, 94, any.3, 10
vac.0, 0, any.0, any.1, any.2, 2, vac.1, 94, any.3, 11
vac.0, 0, any.0, any.1, any.2, 5, vac.1, 94, any.3, 13
vac.0, 0, any.0, any.1, any.2, 6, vac.1, 94, any.3, 14
vac.0, 0, any.0, any.1, any.2, 7, vac.1, 94, any.3, 15
vac.0, 0, any.0, any.1, any.2, 8, vac.1, 94, any.3, 16
#### line 366: 4, N 9, NE..E 0, SE (4, prgm), S..NW any; 4 ####
4, 9, 0, 0, _m0.0, any.0, any.1, any.2, any.3, 4
#### line 366: N:18 ####
9, any.0, any.1, 0, 0, 4, any.2, any.3, any.4, 18
#### line 366: E[SE: (88, pointerOps)] ####
0, 0, any.0, any.1, any.2, 4, any.3, 4, 9, 88
0, 0, any.0, any.1, any.2, 1, any.3, 4, 9, 10
0, 0, any.0, any.1, any.2, 2, any.3, 4, 9, 11
0, 0, any.0, any.1, any.2, 5, any.3, 4, 9, 13
0, 0, any.0, any.1, any.2, 6, any.3, 4, 9, 14
0, 0, any.0, any.1, any.2, 7, any.3, 4, 9, 15
0, 0, any.0, any.1, any.2, 8, any.3, 4, 9, 16
#### line 367: 0, S 88, SW 4, W 18, NW..SE 0; 21 ####
0, 0, 0, 0, 0, 88, 4, 18, 0, 21
#### line 368: 0, S 21, SW 0, W 18, NW..SE any; 21 ####
0, any.0, any.1, any.2, any.3, 21, 0, 18, any.4, 21
#### line 368: S:0 ####
21, 0, any.0, any.1, any.2, any.3, any.4, 0, 18, 0
# Replicate the above NE-output behavior if a bare pointer is on top of an 3 with another to its east
# (this needs a special case; nothing happens otherwise)
#### line 371: 12, E (3, any), SE..NE any; 9 ####
12, any.0, any.1, _f1.0, any.2, any.3, any.4, any.5, any.6, 9
#### line 371: NE[E: (21, _, ...)] ####
any.0, any.1, any.2, any.3, any.4, 3, 12, any.5, any.6, 21
# Make north_r_brack wait 4 generations before going up to absolutely make sure it won't collide badly with the data pointer
#### line 374: 21, W northbound, NW..SW any; [0] ####
21, any.0, any.1, any.2, any.3, any.4, any.5, northbound.0, any.6, 21
#### line 374: N:0 ####
any.0, any.1, any.2, any.3, any.4, 21, northbound.0, any.5, any.6, 0
#### line 375: 21, NW northbound, N..W any; 87 ####
21, any.0, any.1, any.2, any.3, any.4, any.5, any.6, northbound.0, 87  # random non-interfering state (any would do)
#### line 375: N:0 ####
any.0, any.1, any.2, any.3, any.4, 21, any.5, northbound.0, any.6, 0  # random non-interfering state (any would do)
#### line 376: 87, S 3, SW..SE any; 3 ####
87, any.0, any.1, any.2, any.3, 3, any.4, any.5, any.6, 3
#### line 377: 3, S 3, SW..SE any; 21 ####
3, any.0, any.1, any.2, any.3, 3, any.4, any.5, any.6, 21
# Move signals
#### line 379: N[0] ####
any.0, any.1, any.2, any.3, any.4, _g1.0, any.5, any.6, any.7, _g1.0
#### line 379: (21, northboundNOP), N..NW any; 0 ####
_g1.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 380: W[0] ####
any.0, any.1, any.2, _h1.0, any.3, any.4, any.5, any.6, any.7, _h1.0
#### line 380: (28, westbound), N..NW any; 0 ####
_h1.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 381: E[0] ####
any.0, any.1, any.2, any.3, any.4, any.5, any.6, _i1.0, any.7, _i1.0
#### line 381: (35, eastbound), N..NW any; 0 ####
_i1.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 382: (40, 79, 76), N..NW any; 0 ####
_j1.0, any.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, 0
#### line 382: S[0] ####
any.0, _j1.0, any.1, any.2, any.3, any.4, any.5, any.6, any.7, _j1.0
# 9 stops after reaching end
#### line 385: (9, 12, pointerOps), E..SE 0, S anyPrgm-4, SW..NE any; 0 ####
_k1.0, any.0, any.1, 0, 0, _l1.0, any.2, any.3, any.4, 0
#### line 385: E:9 ####
0, any.0, any.1, any.2, any.3, 0, _l1.0, _k1.0, any.4, 9
# ...with some edge-case handling
#### line 387: 9, E 9, SE 0, S 3, SW..NE any; 0 ####
9, any.0, any.1, 9, 0, 3, any.2, any.3, any.4, 0  # avoid double pointer if r-brack is the last character
#### line 388: 9, W 87, NW..S 0, SW any; 0 ####
9, 0, 0, 0, 0, 0, any.0, 87, 0, 0  # avoid punching through the prgm tape if comma is the last character

@COLORS
0 0 0 0
70 255 255 255
85 255 255 0
93 255 255 0

@ICONS
XPM
"15 1440 12 2"
".. c #000000"
"AA c #FFFFFF"
"BB c #00AA00"
"CC c #CC0000"
"DD c #666666"
"EE c #CCBB00"
"FF c #00AAFF"
"vc c #B7FFFF"
"_? c #DFFFFF"
"/7 c #FFFF00"
""\ c #E4FFFF"
"re c #F1FFFF"
/* #C Plus sign */
/* icon for state 1 */
"..........DDDDDDDDDD.........."
"........DDDDDDDDDDDDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
/* #C Minus sign */
/* icon for state 2 */
".............................."
".............................."
".............................."
".............................."
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
".............................."
".............................."
".............................."
".............................."
/* #C Right bracket */
/* icon for state 3 */
"......DDDDDDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDD........"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDDDDDDDDDDDDD........"
"......DDDDDDDDDDDDDD.........."
/* #C Left bracket */
/* icon for state 4 */
"..........DDDDDDDDDDDDDD......"
"........DDDDDDDDDDDDDDDD......"
"......DDDDDDAAAAAAAADDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDAAAADDDDDDDDDD......"
"......DDDDAAAADDDDDDDDDD......"
"......DDDDAAAADDDD............"
"......DDDDAAAADDDD............"
"......DDDDAAAADDDD............"
"......DDDDAAAADDDDDDDDDD......"
"......DDDDAAAADDDDDDDDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDDDAAAAAAAADDDD......"
"........DDDDDDDDDDDDDDDD......"
"..........DDDDDDDDDDDDDD......"
/* #C Left angle bracket */
/* icon for state 5 */
".............................."
"....................DDDDDDDDDD"
"................DDDDDDDDDDDDDD"
"............DDDDDDDDDDAAAADDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"DDDDDDAAAAAAAADDDDDDDDDDDD...."
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"............DDDDDDDDDDAAAADDDD"
"................DDDDDDDDDDDDDD"
"....................DDDDDDDDDD"
".............................."
/* #C Right angle bracket */
/* icon for state 6 */
".............................."
"DDDDDDDDDD...................."
"DDDDDDDDDDDDDD................"
"DDDDAAAADDDDDDDDDD............"
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"....DDDDDDDDDDDDAAAAAAAADDDDDD"
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDAAAADDDDDDDDDD............"
"DDDDDDDDDDDDDD................"
"DDDDDDDDDD...................."
".............................."
/* #C Period */
/* icon for state 7 */
".............................."
"..........DDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDAAAAAADDDDDDDD...."
"....DDDDAAAAAAAAAAAAAADDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAAAADDDD...."
"....DDDDDDDDAAAAAADDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
"..........DDDDDDDDDD.........."
".............................."
/* #C Comma */
/* icon for state 8 */
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDDDDDDDDDDDDDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAAAADDDD.."
"....DDDDDDDDDDDDAAAAAAAADDDD.."
"........DDDDDDDDAAAAAAAADDDD.."
"....DDDDDDDDDDAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAADDDDDDDD.."
"....DDDDDDDDDDDDDDDDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
/* #C "V" shape; instruction pointer */
/* icon for state 9 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 10 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 11 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 12 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 13 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 14 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 15 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 16 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 17 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* #C empty space/shadow */
/* icon for state 18 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C Plus sign */
/* icon for state 19 */
"..........DDDDDDDDDD.........."
"........DDDDDDDDDDDDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
/* #C Minus sign */
/* icon for state 20 */
".............................."
".............................."
".............................."
".............................."
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
".............................."
".............................."
".............................."
".............................."
/* #C Right bracket */
/* icon for state 21 */
"......DDDDDDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDD........"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDDDDDDDDDDDDD........"
"......DDDDDDDDDDDDDD.........."
/* #C Left angle bracket */
/* icon for state 22 */
".............................."
"....................DDDDDDDDDD"
"................DDDDDDDDDDDDDD"
"............DDDDDDDDDDAAAADDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"DDDDDDAAAAAAAADDDDDDDDDDDD...."
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"............DDDDDDDDDDAAAADDDD"
"................DDDDDDDDDDDDDD"
"....................DDDDDDDDDD"
".............................."
/* #C Right angle bracket */
/* icon for state 23 */
".............................."
"DDDDDDDDDD...................."
"DDDDDDDDDDDDDD................"
"DDDDAAAADDDDDDDDDD............"
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"....DDDDDDDDDDDDAAAAAAAADDDDDD"
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDAAAADDDDDDDDDD............"
"DDDDDDDDDDDDDD................"
"DDDDDDDDDD...................."
".............................."
/* #C Period */
/* icon for state 24 */
".............................."
"..........DDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDAAAAAADDDDDDDD...."
"....DDDDAAAAAAAAAAAAAADDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAAAADDDD...."
"....DDDDDDDDAAAAAADDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
"..........DDDDDDDDDD.........."
".............................."
/* #C Comma */
/* icon for state 25 */
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDDDDDDDDDDDDDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAAAADDDD.."
"....DDDDDDDDDDDDAAAAAAAADDDD.."
"........DDDDDDDDAAAAAAAADDDD.."
"....DDDDDDDDDDAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAADDDDDDDD.."
"....DDDDDDDDDDDDDDDDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
/* #C Plus sign */
/* icon for state 26 */
"..........DDDDDDDDDD.........."
"........DDDDDDDDDDDDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
/* #C Minus sign */
/* icon for state 27 */
".............................."
".............................."
".............................."
".............................."
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
".............................."
".............................."
".............................."
".............................."
/* #C Right bracket */
/* icon for state 28 */
"......DDDDDDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDD........"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDDDDDDDDDDDDD........"
"......DDDDDDDDDDDDDD.........."
/* #C Left angle bracket */
/* icon for state 29 */
".............................."
"....................DDDDDDDDDD"
"................DDDDDDDDDDDDDD"
"............DDDDDDDDDDAAAADDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"DDDDDDAAAAAAAADDDDDDDDDDDD...."
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"............DDDDDDDDDDAAAADDDD"
"................DDDDDDDDDDDDDD"
"....................DDDDDDDDDD"
".............................."
/* #C Right angle bracket */
/* icon for state 30 */
".............................."
"DDDDDDDDDD...................."
"DDDDDDDDDDDDDD................"
"DDDDAAAADDDDDDDDDD............"
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"....DDDDDDDDDDDDAAAAAAAADDDDDD"
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDAAAADDDDDDDDDD............"
"DDDDDDDDDDDDDD................"
"DDDDDDDDDD...................."
".............................."
/* #C Period */
/* icon for state 31 */
".............................."
"..........DDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDAAAAAADDDDDDDD...."
"....DDDDAAAAAAAAAAAAAADDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAAAADDDD...."
"....DDDDDDDDAAAAAADDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
"..........DDDDDDDDDD.........."
".............................."
/* #C Comma */
/* icon for state 32 */
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDDDDDDDDDDDDDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAAAADDDD.."
"....DDDDDDDDDDDDAAAAAAAADDDD.."
"........DDDDDDDDAAAAAAAADDDD.."
"....DDDDDDDDDDAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAADDDDDDDD.."
"....DDDDDDDDDDDDDDDDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
/* #C Plus sign */
/* icon for state 33 */
"..........DDDDDDDDDD.........."
"........DDDDDDDDDDDDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDAAAAAADDDDDDDDDDDD"
"..DDDDDDDDDDAAAAAADDDDDDDDDD.."
"........DDDDAAAAAADDDD........"
"........DDDDAAAAAADDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
/* #C Minus sign */
/* icon for state 34 */
".............................."
".............................."
".............................."
".............................."
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDAAAAAAAAAAAAAAAAAAAAAADDDD"
"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
"..DDDDDDDDDDDDDDDDDDDDDDDDDD.."
".............................."
".............................."
".............................."
".............................."
/* #C Right bracket */
/* icon for state 35 */
"......DDDDDDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDD........"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"............DDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDDDDDDDAAAADDDD......"
"......DDDDAAAAAAAAAADDDD......"
"......DDDDAAAAAAAADDDDDD......"
"......DDDDDDDDDDDDDDDD........"
"......DDDDDDDDDDDDDD.........."
/* #C Left angle bracket */
/* icon for state 36 */
".............................."
"....................DDDDDDDDDD"
"................DDDDDDDDDDDDDD"
"............DDDDDDDDDDAAAADDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"DDDDDDAAAAAAAADDDDDDDDDDDD...."
"DDDDDDDDDDAAAAAAAADDDDDDDDDDDD"
"....DDDDDDDDDDAAAAAAAADDDDDDDD"
"........DDDDDDDDDDAAAAAAAADDDD"
"............DDDDDDDDDDAAAADDDD"
"................DDDDDDDDDDDDDD"
"....................DDDDDDDDDD"
".............................."
/* #C Right angle bracket */
/* icon for state 37 */
".............................."
"DDDDDDDDDD...................."
"DDDDDDDDDDDDDD................"
"DDDDAAAADDDDDDDDDD............"
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"....DDDDDDDDDDDDAAAAAAAADDDDDD"
"DDDDDDDDDDDDAAAAAAAADDDDDDDDDD"
"DDDDDDDDAAAAAAAADDDDDDDDDD...."
"DDDDAAAAAAAADDDDDDDDDD........"
"DDDDAAAADDDDDDDDDD............"
"DDDDDDDDDDDDDD................"
"DDDDDDDDDD...................."
".............................."
/* #C Period */
/* icon for state 38 */
".............................."
"..........DDDDDDDDDD.........."
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDAAAAAADDDDDDDD...."
"....DDDDAAAAAAAAAAAAAADDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAAAADDDD...."
"....DDDDDDDDAAAAAADDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
"..........DDDDDDDDDD.........."
".............................."
/* #C Comma */
/* icon for state 39 */
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDDDDDDDDDDDDDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAAAADDDD.."
"....DDDDDDDDDDDDAAAAAAAADDDD.."
"........DDDDDDDDAAAAAAAADDDD.."
"....DDDDDDDDDDAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAADDDDDDDD.."
"....DDDDDDDDDDDDDDDDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
/* #C Comma */
/* icon for state 40 */
"......DDDDDDDDDDDDDDDDDD......"
"....DDDDDDDDDDDDDDDDDDDDDD...."
"..DDDDDDAAAAAAAAAAAAAADDDDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDAAAAAAAAAAAAAAAAAADDDD.."
"..DDDDDDAAAAAAAAAAAAAAAADDDD.."
"....DDDDDDDDDDDDAAAAAAAADDDD.."
"........DDDDDDDDAAAAAAAADDDD.."
"....DDDDDDDDDDAAAAAAAADDDDDD.."
"....DDDDAAAAAAAAAAAADDDDDDDD.."
"....DDDDDDDDDDDDDDDDDDDDDD...."
"......DDDDDDDDDDDDDDDDDD......"
/* #C empty space/shadow */
/* icon for state 41 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 42 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 43 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 44 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 45 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 46 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 47 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 48 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 49 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 50 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 51 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 52 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 53 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 54 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 55 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 56 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C Darker "V" shape; delayed pointer */
/* icon for state 57 */
".............................."
"....DDDDDDDD......DDDDDDDD...."
"....DDDDDDDD......DDDDDDDD...."
"....DDDDDDDDDD..DDDDDDDDDD...."
"......DDDDDDDD..DDDDDDDD......"
"......DDDDDDDDDDDDDDDDDD......"
"........DDDDDDDDDDDDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
"..........DDDDDDDDDD.........."
"............DDDDDD............"
"............DDDDDD............"
"..............DD.............."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 58 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 59 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 60 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 61 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 62 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 63 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 64 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Data pointer */
/* icon for state 65 */
".............................."
".............................."
"............EEEEEE............"
"............EEEEEE............"
"..........EEEEEEEEEE.........."
"..........EEEEEEEEEE.........."
"........EEEEEEEEEEEEEE........"
"........EEEEEEEEEEEEEE........"
"......EEEEEEEEEEEEEEEEEE......"
"......EEEEEEEE..EEEEEEEE......"
"....EEEEEEEEEE..EEEEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
"....EEEEEEEE......EEEEEEEE...."
".............................."
".............................."
/* #C Inert data */
/* icon for state 66 */
".............................."
"................EEEEEEEE......"
"..............EEEEEEEEEEEE...."
"............EEEEEEEEEEEEEEEE.."
"..........EEEEEEEEEEEEEEEEEE.."
"........EEEEEEEEEEEEEEEEEEEE.."
"......EEEEEEEEEEEEEEEEEEEEEE.."
"....EEEEEEEEEEEEEEEEEEEEEE...."
"..EEEEEEEEEEEEEEEEEEEEEE......"
"..EEEEEEEEEEEEEEEEEEEE........"
"..EEEEEEEEEEEEEEEEEE.........."
"..EEEEEEEEEEEEEEEE............"
"....EEEEEEEEEEEE.............."
"......EEEEEEEE................"
".............................."
/* #C Active forward-moving data */
/* icon for state 67 */
"....AAAAAAAAAAAAAAAAAAAAAAAAAA"
"......AABBBBBBBBBBBBBBBBBBBBAA"
"........AABBBBBBBBBBBBBBBBBBAA"
"........AABBBBBBBBBBBBBBBBBBAA"
"......AABBBBBBBBBBBBBBBBBBBBAA"
"....AABBBBBBBBBBBBBBBBBBBBBBAA"
"..AABBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"..AABBBBBBBBBBBBBBBBBBAAAABBAA"
"....AABBBBBBBBBBBBBBAA....AAAA"
"......AABBBBBBBBBBAA........AA"
"........AABBBBBBAA............"
"..........AAAAAA.............."
/* #C Active forward-moving data */
/* icon for state 68 */
"....AAAAAAAAAAAAAAAAAAAAAAAAAA"
"......AABBBBBBBBBBBBBBBBBBBBAA"
"........AABBBBBBBBBBBBBBBBBBAA"
"........AABBBBBBBBBBBBBBBBBBAA"
"......AABBBBBBBBBBBBBBBBBBBBAA"
"....AABBBBBBBBBBBBBBBBBBBBBBAA"
"..AABBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"..AABBBBBBBBBBBBBBBBBBAAAABBAA"
"....AABBBBBBBBBBBBBBAA....AAAA"
"......AABBBBBBBBBBAA........AA"
"........AABBBBBBAA............"
"..........AAAAAA.............."
/* icon for state 69 */
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
"vcvcvcvcvcvcvcvcvcvcvcvcvcvcvc"
/* icon for state 70 */
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
/* #C Active forward-moving data */
/* icon for state 71 */
"....AAAAAAAAAAAAAAAAAAAAAAAAAA"
"......AABBBBBBBBBBBBBBBBBBBBAA"
"........AABBBBBBBBBBBBBBBBBBAA"
"........AABBBBBBBBBBBBBBBBBBAA"
"......AABBBBBBBBBBBBBBBBBBBBAA"
"....AABBBBBBBBBBBBBBBBBBBBBBAA"
"..AABBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"AABBBBBBBBBBBBBBBBBBBBBBBBBBAA"
"..AABBBBBBBBBBBBBBBBBBAAAABBAA"
"....AABBBBBBBBBBBBBBAA....AAAA"
"......AABBBBBBBBBBAA........AA"
"........AABBBBBBAA............"
"..........AAAAAA.............."
/* #C Active backward-moving data */
/* icon for state 72 */
"..............AAAAAA.........."
"............AAFFFFFFAA........"
"AA........AAFFFFFFFFFFAA......"
"AAAA....AAFFFFFFFFFFFFFFAA...."
"AAFFAAAAFFFFFFFFFFFFFFFFFFAA.."
"AAFFFFFFFFFFFFFFFFFFFFFFFFFFAA"
"AAFFFFFFFFFFFFFFFFFFFFFFFFFFAA"
"AAFFFFFFFFFFFFFFFFFFFFFFFFFFAA"
"AAFFFFFFFFFFFFFFFFFFFFFFFFAA.."
"AAFFFFFFFFFFFFFFFFFFFFFFAA...."
"AAFFFFFFFFFFFFFFFFFFFFAA......"
"AAFFFFFFFFFFFFFFFFFFAA........"
"AAFFFFFFFFFFFFFFFFFFAA........"
"AAFFFFFFFFFFFFFFFFFFFFAA......"
"AAAAAAAAAAAAAAAAAAAAAAAAAA...."
/* #C Darker "V" shape; delayed pointer */
/* icon for state 73 */
".............................."
"....DDDDDDDD......DDDDDDDD...."
"....DDDDDDDD......DDDDDDDD...."
"....DDDDDDDDDD..DDDDDDDDDD...."
"......DDDDDDDD..DDDDDDDD......"
"......DDDDDDDDDDDDDDDDDD......"
"........DDDDDDDDDDDDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
"..........DDDDDDDDDD.........."
"............DDDDDD............"
"............DDDDDD............"
"..............DD.............."
".............................."
".............................."
/* #C Check mark ('yes', aka 'loop') */
/* icon for state 74 */
".............................."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBAABB.."
"..BBBBBBBBBBBBBBBBBBBBAAAABB.."
"..BBBBBBBBBBBBBBBBBBAAAAAABB.."
"..BBBBBBBBBBBBBBBBAAAAAABBBB.."
"..BBBBAABBBBBBBBAAAAAABBBBBB.."
"..BBBBAAAABBBBAAAAAABBBBBBBB.."
"..BBBBAAAAAAAAAAAABBBBBBBBBB.."
"..BBBBBBAAAAAAAABBBBBBBBBBBB.."
"..BBBBBBBBAAAABBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
".............................."
/* #C Check mark ('yes', aka 'loop') */
/* icon for state 75 */
".............................."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBAABB.."
"..BBBBBBBBBBBBBBBBBBBBAAAABB.."
"..BBBBBBBBBBBBBBBBBBAAAAAABB.."
"..BBBBBBBBBBBBBBBBAAAAAABBBB.."
"..BBBBAABBBBBBBBAAAAAABBBBBB.."
"..BBBBAAAABBBBAAAAAABBBBBBBB.."
"..BBBBAAAAAAAAAAAABBBBBBBBBB.."
"..BBBBBBAAAAAAAABBBBBBBBBBBB.."
"..BBBBBBBBAAAABBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
".............................."
/* #C Check mark ('yes', aka 'loop') */
/* icon for state 76 */
".............................."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBAABB.."
"..BBBBBBBBBBBBBBBBBBBBAAAABB.."
"..BBBBBBBBBBBBBBBBBBAAAAAABB.."
"..BBBBBBBBBBBBBBBBAAAAAABBBB.."
"..BBBBAABBBBBBBBAAAAAABBBBBB.."
"..BBBBAAAABBBBAAAAAABBBBBBBB.."
"..BBBBAAAAAAAAAAAABBBBBBBBBB.."
"..BBBBBBAAAAAAAABBBBBBBBBBBB.."
"..BBBBBBBBAAAABBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
"..BBBBBBBBBBBBBBBBBBBBBBBBBB.."
".............................."
/* #C X sign ('no', aka 'break') */
/* icon for state 77 */
".............................."
"..CCCCCCCCCCCCCCCCCCCCCCCCCC.."
"..CCAAAACCCCCCCCCCCCCCAAAACC.."
"..CCAAAAAACCCCCCCCCCAAAAAACC.."
"..CCCCAAAAAACCCCCCAAAAAACCCC.."
"..CCCCCCAAAAAACCAAAAAACCCCCC.."
"..CCCCCCCCAAAAAAAAAACCCCCCCC.."
"..CCCCCCCCCCAAAAAACCCCCCCCCC.."
"..CCCCCCCCAAAAAAAAAACCCCCCCC.."
"..CCCCCCAAAAAACCAAAAAACCCCCC.."
"..CCCCAAAAAACCCCCCAAAAAACCCC.."
"..CCAAAAAACCCCCCCCCCAAAAAACC.."
"..CCAAAACCCCCCCCCCCCCCAAAACC.."
"..CCCCCCCCCCCCCCCCCCCCCCCCCC.."
".............................."
/* #C X sign ('no', aka 'break') */
/* icon for state 78 */
".............................."
"..CCCCCCCCCCCCCCCCCCCCCCCCCC.."
"..CCAAAACCCCCCCCCCCCCCAAAACC.."
"..CCAAAAAACCCCCCCCCCAAAAAACC.."
"..CCCCAAAAAACCCCCCAAAAAACCCC.."
"..CCCCCCAAAAAACCAAAAAACCCCCC.."
"..CCCCCCCCAAAAAAAAAACCCCCCCC.."
"..CCCCCCCCCCAAAAAACCCCCCCCCC.."
"..CCCCCCCCAAAAAAAAAACCCCCCCC.."
"..CCCCCCAAAAAACCAAAAAACCCCCC.."
"..CCCCAAAAAACCCCCCAAAAAACCCC.."
"..CCAAAAAACCCCCCCCCCAAAAAACC.."
"..CCAAAACCCCCCCCCCCCCCAAAACC.."
"..CCCCCCCCCCCCCCCCCCCCCCCCCC.."
".............................."
/* #C X sign ('no', aka 'break') */
/* icon for state 79 */
".............................."
"..CCCCCCCCCCCCCCCCCCCCCCCCCC.."
"..CCAAAACCCCCCCCCCCCCCAAAACC.."
"..CCAAAAAACCCCCCCCCCAAAAAACC.."
"..CCCCAAAAAACCCCCCAAAAAACCCC.."
"..CCCCCCAAAAAACCAAAAAACCCCCC.."
"..CCCCCCCCAAAAAAAAAACCCCCCCC.."
"..CCCCCCCCCCAAAAAACCCCCCCCCC.."
"..CCCCCCCCAAAAAAAAAACCCCCCCC.."
"..CCCCCCAAAAAACCAAAAAACCCCCC.."
"..CCCCAAAAAACCCCCCAAAAAACCCC.."
"..CCAAAAAACCCCCCCCCCAAAAAACC.."
"..CCAAAACCCCCCCCCCCCCCAAAACC.."
"..CCCCCCCCCCCCCCCCCCCCCCCCCC.."
".............................."
/* #C empty space/shadow */
/* icon for state 80 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 81 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 82 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 83 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* icon for state 84 */
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
"_?_?_?_?_?_?_?_?_?_?_?_?_?_?_?"
/* icon for state 85 */
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
/* icon for state 86 */
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
/* #C empty space/shadow */
/* icon for state 87 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 88 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C empty space/shadow */
/* icon for state 89 */
".............................."
"........AAAAAAAAAAAAAA........"
"....AAAAAADDDDDDDDDDAAAAAA...."
"....AADDDDDDDDDDDDDDDDDDAA...."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"..AADDDD......DD......DDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDDDDDD......DDDDDDDDAA.."
"..AADDDDDD..........DDDDDDAA.."
"..AADDDD......DD......DDDDAA.."
"..AAAADDDD..DDDDDD..DDDDAAAA.."
"....AADDDDDDDDDDDDDDDDDDAA...."
"....AAAAAADDDDDDDDDDAAAAAA...."
"........AAAAAAAAAAAAAA........"
".............................."
/* #C Digit zero */
/* icon for state 90 */
".............................."
"..........CCCCCCCCCC.........."
"........CCAAAAAAAAAACC........"
"......CCAAAAAAAAAAAAAACC......"
"......CCAAAACCCCCCAAAACC......"
"......CCAAAACCCCAAAAAACC......"
"......CCAAAACCAAAAAAAACC......"
"......CCAAAAAAAAAAAAAACC......"
"......CCAAAAAAAACCAAAACC......"
"......CCAAAAAACCCCAAAACC......"
"......CCAAAACCCCCCAAAACC......"
"......CCAAAAAAAAAAAAAACC......"
"........CCAAAAAAAAAACC........"
"..........CCCCCCCCCC.........."
".............................."
/* icon for state 91 */
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
"rerererererererererererererere"
/* #C Digit zero */
/* icon for state 92 */
".............................."
"..........CCCCCCCCCC.........."
"........CCAAAAAAAAAACC........"
"......CCAAAAAAAAAAAAAACC......"
"......CCAAAACCCCCCAAAACC......"
"......CCAAAACCCCAAAAAACC......"
"......CCAAAACCAAAAAAAACC......"
"......CCAAAAAAAAAAAAAACC......"
"......CCAAAAAAAACCAAAACC......"
"......CCAAAAAACCCCAAAACC......"
"......CCAAAACCCCCCAAAACC......"
"......CCAAAAAAAAAAAAAACC......"
"........CCAAAAAAAAAACC........"
"..........CCCCCCCCCC.........."
".............................."
/* icon for state 93 */
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
"/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7"
/* #C Darker "V" shape; delayed pointer */
/* icon for state 94 */
".............................."
"....DDDDDDDD......DDDDDDDD...."
"....DDDDDDDD......DDDDDDDD...."
"....DDDDDDDDDD..DDDDDDDDDD...."
"......DDDDDDDD..DDDDDDDD......"
"......DDDDDDDDDDDDDDDDDD......"
"........DDDDDDDDDDDDDD........"
"........DDDDDDDDDDDDDD........"
"..........DDDDDDDDDD.........."
"..........DDDDDDDDDD.........."
"............DDDDDD............"
"............DDDDDD............"
"..............DD.............."
".............................."
".............................."
/* #C "V" shape; instruction pointer */
/* icon for state 95 */
".............................."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAA......AAAAAAAA...."
"....AAAAAAAAAA..AAAAAAAAAA...."
"......AAAAAAAA..AAAAAAAA......"
"......AAAAAAAAAAAAAAAAAA......"
"........AAAAAAAAAAAAAA........"
"........AAAAAAAAAAAAAA........"
"..........AAAAAAAAAA.........."
"..........AAAAAAAAAA.........."
"............AAAAAA............"
"............AAAAAA............"
"..............AA.............."
".............................."
".............................."
/* icon for state 96 */
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
(EDIT: new look)

Here's a Python 3.5+ script, also hosted online on repl.it, that generates RLEs for it, given a program tape and optionally an input tape + initial data-tape configuration. (If running the repl.it version, just hit enter without typing anything to indicate no input or no initial data stacks)

Code: Select all

# Python 3.5 or above
# Check the `if __name__ == '__main__'` at the bottom for how to run this from command
# line -- or, alternatively, run it without arguments and just follow the input prompts
# (the 'numeric' flag is to determine whether an input of, say, '1,20' should be
# understood as `[1, 20]` or as `[ord('1'), ord(','), ord('2'), ord('0')]`)

import sys
import itertools

SYMBOLS = {
  '+': 'A',
  '-': 'B',
  ']': 'C',
  '[': 'D',
  '>': 'F',
  '<': 'E',
  '.': 'G',
  ',': 'H',
  }


def _encode(seqs):
    """
    Encode given string into Golly-compatible RLE.
    """
    ret = '$'.join(
      ''.join(
        '{}{}'.format(len(s), s[0]) if len(s) > 1 else ''.join(s)
        for s in (
          list(g)
          for _, g in itertools.groupby(s)
          )
        )
      for s in seqs
      )
    return _encode([ret]) if '$$' in ret else ret.rstrip('$23456789') + '!'


def _offset(n):
    while n >= 0:
        n -= 1
        yield n


def convert(prgm, data=None, inp=None):
    inp, data = inp[::-1] or [], data or []
    prgm = list(map(SYMBOLS.get, filter(SYMBOLS.__contains__, prgm)))
    inp = [j for i in inp for j in (['rS']*i or ['rT']) + ['rU']][:-1] + ['rM']  # rS: 91, rT: 92, rU: 93, rM: 85
    pad = ['.'] * (1 + len(inp))  # + 1 because the input tape ends one cell east of (one cell before) data-tape cell 0
    offset = _offset(max(data) if data else 0)
    data = [
      [*pad, *['.']*off, *i]
      for off, i in
      zip(offset, list(itertools.zip_longest(*map(['qR'].__mul__, data), fillvalue='.'))[::-1])  # qR: 66
      ]
    # header = 'x = {}, y = {}, rule = bf'.format(..., len(data) + 5)
    # ...but we actually don't need to bother calculating dimensions for Golly!
    header = 'x = 0, y = 0, rule = bf'
    rle = [
      *data,
      pad + ['qJ'],                 # Data pointer
      pad + ['.', '.', 'pR'],       # Shadow cell
      inp,
      pad + ['.', '.', 'I'],        # Program-tape pointer
      pad + ['.', '.', '.'] + prgm  # Program tape
      ]
    return '{}\n{}'.format(header, _encode(rle))


if __name__ == '__main__':
    if sys.argv[1:]:
        numeric = '--numeric' in sys.argv or '-n' in sys.argv
        argv = [i for i in sys.argv[1:] if i not in ('--numeric', '-n')]
        prgm, inp, data, *_ = argv + ['', '', ''][len(argv):]
    else:
        numeric = False
        prgm, inp, data = input('Program tape: '), input('Input tape: '), input('Initial data-tape configuration: ')
        if (inp or data) and all(seq.replace(',', '').isdigit() or not seq for seq in (inp, data)):
          numeric = input(
            '\nWere your data tape & input tape just sequences of Unicode/ASCII characters (c), or numeric values delimited by commas (n)?\nRespond c/n: '
            ).lower().startswith('n')
    if numeric:
        inp, data = list(map(int, inp.split(','))), list(map(int, data.split(',')))
    else:
        inp, data = list(map(ord, inp)), list(map(ord, data))
    print('', convert(prgm, data, inp), sep='\n')
If you really do want to enter patterns yourself, though, refer to the bottom of the rule-file's @RULE segment.

Note that the script doesn't bother calculating its patterns' dimensions; "x = 0, y = 0" is good enough for Golly.

————

A simple meaningless example, showing how data is read/output/stored, that reads input until "EOL" and then goes back to output each data cell's value then zero it:

Code: Select all

x = 61, y = 13, rule = bf
52.qR$51.qR$50.qR$49.qR$48.qR$47.2qR$42.qR3.2qR$41.qR3.2qR$41.qJ$43.pR
$7rSrU12rSrU10rSrUrTrU5rSrM$43.I$44.AB2DFHCHCEDGDBCEC!
(Can be generated from script by entering [[>,],]<[.[-]<] as the program, 5,0,10,12,7 for the input tape, 2,0,0,0,8,3 for data, and indicating that input is numeric)
Note that the input tape is only initialized horizontally here for the sake of being friendly to RLE encoding.

Two "Hello, world!"s -- the first reads it out of preinitialized input, and the second (from Esowiki) builds the letters itself.

Code: Select all

x = 1192, y = 5, rule = bf
1175.qJ$1177.pR$33rSrU100rSrU108rSrU114rSrU111rSrU119rSrU32rSrU44rSrU
111rSrU108rSrU108rSrU101rSrU72rSrM$1177.I$1178.HDFHCEDECFDGFC!
(Program tape ,[>,][<][>.], input tape Hello, world!)

Code: Select all

x = 111, y = 5, rule = bf
2.qJ$4.pR$rM$4.I$5.8ADF4ADF2AF3AF3AFA4EBCFAFAFB2FADECEBC2FGF3BG7A2G3A
G2FGEBGEG3AG6BG8BG2FAGF2AG!
(generable by entering ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. for the program tape)

————

This is the rule I made nutshell for, BTW! The "bf.ruel" source file can be seen here.
Last edited by M. I. Wright on January 2nd, 2019, 2:08 am, edited 3 times in total.

dani
Posts: 1222
Joined: October 27th, 2017, 3:43 pm

Re: Esolangs as Rule Tables

Post by dani » August 17th, 2018, 8:06 pm

Cool! I just wrote a Fibonacci sequence generator, although it doesn't output yet since I'm not good at it lolz

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Esolangs as Rule Tables

Post by Saka » August 18th, 2018, 7:51 am

Wright,

Code: Select all

++++++++
[>>[>]+[<]<-]
This doesn't seem to work. It's supposed to "spread out" the digits.
What it's supposed to do:
8 -> 1,1,1,1,1,1,1,1
(The program adds 8 to the first cell and then it turns it into 8 1s)
But in the CA it just doesn't work.

It seems to not work because something is causing the pointer to move 1 cell to the left.

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Esolangs as Rule Tables

Post by Saka » August 21st, 2018, 9:34 pm

Saka wrote:problems
Ah, I seem to have an older version of the rule. :oops:

User avatar
Redstoneboi
Posts: 429
Joined: May 14th, 2018, 3:57 am

Re: Esolangs as Rule Tables

Post by Redstoneboi » October 27th, 2018, 9:47 pm

MiniPerrier, manipulating bits and goto ifs.
Remember Patterns/Loops/Perrier-Loop.rle?
I minified it to 4 instructions and made it in 2 columns.
should’ve used 2 rows, cause rle.

Code: Select all

@RULE MiniPerrier
#0:space
#1:0 bit
#2:1 bit
#3:ptr up cmd
#4:ptr dn & tgl cmd
#5:if 1 jmp fw cmd
#6:jmp bk sig
#7:ptr
#8:ptr up
#9:ptr dwn
#10:ptr read
#11:ptr jmp
#12:ptr wait
#13:jmp fw sig
#14:shft off
#15:shft on

@TABLE
n_states:16
neighborhood:Moore
symmetries:none

var a{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a

var s{14,15}
var m{3,4}
var n{m,5}
var l{8,9}
var j{5,6}
var v{1,2}
var w{0,10,12}
var x{9,11,13}
var p{m,j}
var q=p
var r=p

#SPACE
#Data
#extend
0,a,b,c,d,e,f,15,h,2
0,a,b,c,d,e,8,g,h,1

#Program
#read
5,7,v,c,d,e,f,g,h,v
#jump
0,13,b,c,d,x,f,g,h,13
0,9,j,j,d,e,f,g,h,9
0,9,b,c,d,e,f,g,h,11
#receive
0,a,j,j,d,8,f,g,h,8
0,a,b,p,d,8,f,g,h,11
0,a,b,c,d,8,f,g,h,7
#send
0,7,j,j,d,e,f,g,h,7
0,7,5,c,d,e,f,g,h,10
0,7,6,c,d,e,f,g,h,0
0,7,p,c,d,e,f,g,h,7

#Physics
#rise
0,a,b,c,1,s,f,g,h,14
0,a,b,c,2,s,f,g,h,15
0,a,b,c,d,p,f,g,h,p
#fall
0,v,b,c,d,e,f,g,h,v

#SHIFT
15,a,b,v,p,e,f,g,h,7
s,a,b,c,d,e,f,g,h,0

#JUMP
#forward
s,a,b,c,d,e,f,g,h,0

10,13,b,c,d,e,f,g,h,9
10,1,b,c,d,e,f,g,h,7

11,a,b,c,d,e,f,g,h,12

12,13,b,c,d,e,f,g,h,9
12,a,b,c,d,6,f,g,h,8
12,a,b,c,d,e,f,g,h,7

13,a,b,c,d,w,f,g,h,0

#POINTER
#Receive
#push
7,a,b,c,d,3,f,g,h,8
l,a,b,c,d,e,f,g,h,0
#pull
7,a,b,v,p,4,f,g,h,15
7,a,b,c,v,4,f,g,h,0

#Send
#jump
7,a,n,6,d,e,f,g,h,8
7,a,5,5,d,e,f,g,h,0
#move
7,a,b,p,d,e,f,g,h,p

#VARIABLES
#shift
v,a,b,c,d,e,f,14,h,1
v,a,b,c,d,e,f,15,h,2
#read
2,a,b,5,d,e,f,g,h,13
v,a,b,c,d,10,f,g,h,0
#toggle
1,a,b,c,d,e,f,4,7,2
2,a,b,c,d,e,f,4,7,1
#fall
1,0,b,c,d,e,f,0,0,0
v,a,b,c,d,0,f,g,h,0

#PROGRAM
#jump back
6,12,b,c,d,e,f,g,h,0
#execute
4,7,b,v,d,e,f,g,h,7
p,7,b,c,d,e,f,g,h,0
#rise
p,0,b,c,d,e,f,g,h,0

@COLORS
0 0 0 0
1 255 0 0
2 0 255 0
3 0 0 255
4 0 255 255
5 255 0 255
6 255 255 0
7 255 255 255
8 192 192 0
9 192 0 192
10 96 96 96
11 128 128 128
12 192 192 192
13 128 0 128
14 128 0 0
15 0 128 0
A demo pattern demonstrating pointer operations and conditional jumps, kinda hard to follow.

Code: Select all

x = 2, y = 90, rule = MiniPerrier
.B$.A$.A$.A$.B$.A$.A$GA$.A$.B$.A$GE$.E$.E$.E$.E$.E$.E$.C$.C$.C$.E$.E$
.E$.E$.E$.E$.C$.C$.E$.E$.E$.E$.E$.C$.C$.C$.C$.C$.D$.D$.D$.D$.D$.D$.D$
.D$.D$.D$.D$.D$.C$.C$.C$.C$.C$.C$.C$.C$.E$.F$.F$.F$.F$.F$.F$.F$.F$.F$
.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.C$.D$.E$.F$.F$.F$.F!
To make it a slight bit easier to understand:
  • 0:space
    1:bit:on
    2:bit:off
    3:cmd:move data pointer up by 1 cell
    4:cmd:move data pointer down by 1 cell and then toggle bit on pointer
    5:cmd:if bit on pointer is 1, jump as many instructions forward as the number of jumps in this stream
    6:cmd:jump as many instructions backward as the number of jumps in this stream
    7:ptr:is data pointer when next to bits, is program pointer when next to cmds
More demo patterns:
binary counter

Code: Select all

x = 2, y = 29, rule = MiniPerrier
GA$GD$.C$.C$.D$.E$.F$.F$.F$.F$.D$.C$.D$.E$.F$.F$.F$.F$.C$.F$.F$.F$.F$
.F$.F$.F$.F$.F$.F!
sqrt bounding box (push ends outward)

Code: Select all

x = 2, y = 41, rule = MiniPerrier
.B$GB$.A$.A$.A$.A$.A$GC$.E$.F$.F$.C$.D$.C$.C$.D$.D$.C$.D$.E$.F$.F$.F$
.F$.C$.D$.D$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F!
kick bits 8 cells up

Code: Select all

x = 2, y = 80, rule = MiniPerrier
.B$.B$.A$.B$.A$.B$.A$GA$GE$.E$.C$.F$.F$.C$.D$.C$.C$.C$.C$.C$.C$.C$.C$
.C$.D$.D$.C$.D$.D$.C$.D$.D$.C$.D$.D$.C$.D$.D$.C$.D$.D$.C$.D$.D$.C$.D$
.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$
.F$.F$.F$.F$.F$.F$.F$.F$.F$.F$.F!
c(>^w^<c)~*
This is 「Fluffy」
「Fluffy」is my sutando.
「Fluffy」has the ability to engineer r e p l i c a t o r s.
「Fluffy」likes to watch spaceship guns in Golly.
「Fluffy」knows Natsuki best girl.

User avatar
Redstoneboi
Posts: 429
Joined: May 14th, 2018, 3:57 am

Re: Esolangs as Rule Tables

Post by Redstoneboi » October 27th, 2018, 10:33 pm

Before I made MiniPerrier, I wanted to make a bitwise cyclic tag ruletable, before knowing about Wright’s.
Once I finished it, it was in 2 column fashion.

Code: Select all

@RULE BCTRSBoi
#2 column bitwise cyclic tag interpreter
#0:space
#1:bit 0
#2:bit 1
#3:border
#4:border destroy
#5:prog 0
#6:prog 1

@TABLE
n_states:7
neighborhood:Moore
symmetries:none

var a{0,1,2,3,4,5,6}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a

var v{1,2}
var va=v
var s{3,4}
var t{s,v}
var k{0,4}
var l{0,s}
var p{5,6}

#loop
0,s,b,c,d,0,f,1,h,5
0,s,b,c,d,0,f,2,h,6

0,p,b,c,d,0,f,1,h,5
0,p,b,c,d,0,f,2,h,6

0,0,s,5,c,d,e,f,g,1
0,0,s,6,c,d,e,f,g,2

#append
0,0,b,c,d,e,v,3,0,v

0,3,0,v,d,5,f,g,h,1
0,3,0,v,d,6,f,g,h,2

0,0,0,0,v,6,f,g,h,3

3,a,b,c,d,v,f,g,h,0

#shift
0,6,b,4,p,e,f,g,h,p
0,a,b,0,s,6,f,g,h,0
0,a,b,1,4,6,f,g,h,3
0,3,b,4,6,e,f,g,h,0
0,a,b,s,6,e,f,g,h,6

#rise
0,0,1,c,3,6,f,g,h,0
0,a,b,c,d,p,f,g,h,p

#program
p,l,b,c,d,e,f,g,h,0

#data
v,0,b,c,d,e,5,g,0,0

v,a,b,c,d,4,f,va,h,v
v,a,b,c,d,4,f,p,h,v
v,a,b,c,d,4,p,g,h,v

v,a,b,c,d,k,f,3,h,v
v,a,b,c,d,k,f,g,h,0

#divider
3,a,b,c,d,p,f,g,6,4

3,a,b,c,4,e,f,g,h,0
3,a,b,c,d,p,f,g,3,4
3,a,b,c,d,p,f,g,h,4

4,a,b,c,d,e,f,6,h,4
4,a,b,c,d,e,f,g,h,3

#fall
0,v,b,0,d,0,f,g,h,0
0,v,va,c,d,e,f,g,h,0
0,v,b,c,d,e,f,g,h,v

@COLORS
0 0 0 0
1 255 0 0
2 0 255 0
3 255 255 255
4 128 128 128
5 128 0 0
6 0 128 0
example program:
infinite string of 1’s

Code: Select all

x = 1, y = 3, rule = BCTRSBoi
B$C$F!
10 and 01 repeatedly get removed and appended (basis for cyclic tag alphabet)

Code: Select all

x = 2, y = 15, rule = BCTRSBoi
.B$.A$.A$.B$.C$.F$.F$.F$.E$.E$.F$.E$.F$.F$.E!
c(>^w^<c)~*
This is 「Fluffy」
「Fluffy」is my sutando.
「Fluffy」has the ability to engineer r e p l i c a t o r s.
「Fluffy」likes to watch spaceship guns in Golly.
「Fluffy」knows Natsuki best girl.

User avatar
Redstoneboi
Posts: 429
Joined: May 14th, 2018, 3:57 am

Re: Esolangs as Rule Tables

Post by Redstoneboi » December 18th, 2022, 8:23 am

Remember BCTRSBoi?
Yeah, apparently on January 3, 2021, I remade it in guess how many states:

Code: Select all

@RULE BCTRSBoiMin
# Pain.

@COLORS
0   0   0   0
1 255   0   0
2   0 255   0

@TABLE
n_states:3
neighborhood:Moore
symmetries:none

var a{0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a

var A{1,2}
var B=A
var C=A
var D=A

var X=1
var Y=2

# Last Bit True Append
  2 A,0,0,0,0,0,0,Y 0 #pause
  0 0,0,A,0,0,0,X,X 2 #append
  0 0,0,0,A,0,0,X,0 1 #shift

# Instructions
  # Append
    Y 0,0,A,d,0,1,2,0 1 #init
    0 Y,A,c,0,0,0,1,2 1 #init
    1 0,0,0,A,1,1,2,0 2 #prime

    Y 0,0,0,2,0,2,A,0 A #send
    0 Y,0,2,0,0,0,2,A 2 #send
    1 0,0,0,2,2,A,B,0 Y #hold
    A 0,0,0,B,2,0,2,0 0 #remove

    2 A,0,2,0,0,0,B,C 0 #cleanup
    A 0,0,0,0,2,0,2,0 0 #cleanup

  # Shift
    Y 0,0,A,d,0,1,1,0 X #init
    Y 0,0,0,A,0,1,1,0 X #init

    0 X,0,A,0,0,0,1,B 0 #delete
    X 0,0,0,d,0,1,1,0 Y #hold

    #end
      1 0,0,0,0,0,A,0,0 0

  # Cleanup
    1 0,0,c,A,1,B,C,0 2 #top
    1 1,b,c,0,0,0,B,C 0 #bottom
  #hold
    0 Y,A,Y,0,0,0,1,B 0
    A B,0,C,0,0,0,0,Y A

    0 0,0,0,A,B,0,Y,0 0
    0 Y,0,A,0,0,0,B,C 0
    A 0,0,B,0,0,0,0,Y A
    Y 0,0,c,A,0,B,C,0 Y

# FSM
  A a,b,c,d,B,f,C,h C
  1 A,C,c,d,e,f,g,B A
  2 A,b,c,d,e,f,g,B 1

# Data
  A 0,0,0,0,0,0,0,2 A #hold
  0 0,0,0,0,A,0,2,0 0 #hold
  0 0,0,0,d,A,f,B,0 B #move
  A 0,0,0,d,B,f,g,0 0 #remove

  #1 A,0,0,0,0,0,B,0 A #append
  0 0,0,0,0,0,0,A,B B #extend

# Loop
  # Singleton
    0 0,0,A,B,C,0,0,0 C
    A 0,B,C,0,0,0,0,0 0
  # Head
    A 0,0,B,C,0,f,g,0 0
    0 A,B,C,0,0,0,g,h A
  # Tail
    A 0,B,0,0,0,0,0,0 0
    0 0,0,A,0,B,0,0,0 B
  # Top
    A 0,0,0,B,0,f,g,0 0
    0 0,0,c,d,A,0,B,0 B
  # Bottom
    A 0,b,c,0,0,0,0,B 0
    0 A,0,B,0,0,0,g,h B
Demo:

Code: Select all

x = 55, y = 31, rule = BCTRSBoiMin
33.2B3A$36.A.AB2AB2ABA2B6A4$5ABA3BABA3B2ABA3BA4BABA3BAB2A$36.A.AB2AB
2AB2A4$31.A3B3A$36.A.3A2B3A2$26.A2BAB2A3B2A$36.A.2A3B3A4$35.B2A$34.A.
A.AB2$35.B2A$36.A.AB4$33.A2B2A$36.A.ABA2B2ABA2$31.2A3B2A$36.A.AB7A!
The same demo in the previous version:

Code: Select all

x = 30, y = 54, rule = BCTRSBoi
A$A$A$A$A$A$B$B4.A$A4.A20.A2.A$B4.B4.A2.A12.B2.A$A4.A4.A2.A12.A2.A$A
4.A4.A2.A12.A2.A$B4.B4.B2.B12.B2.A$A4.A4.B2.B12.B2.A$A4.A4.A2.B12.A2.
A$B4.B4.A2.A4.B2.B4.B2.B$A4.A4.A2.A4.A2.A4.A2.A$C4.C4.C2.C4.C2.C4.C2.
C$E4.F4.E2.F4.F2.F4.F2.F$F4.E4.F2.F3.A8.F2.F$F4.F4.F2.F12.E2.F$5.F4.F
2.E15.E$5.F4.E2.E15.E$5.E7.F$5.F7.E$5.E7.F$5.F7.F$5.F7.E$5.F$5.F$5.E$
5.F$5.F$5.F$5.E$5.F$5.E$5.E$5.F$5.F$5.F$5.E$5.F$5.E$5.F$5.F$5.F$5.E$
5.F$5.E$5.E$5.E$5.E$5.E!
And even earlier, July 7, 2018, I made a version of Black but isotropic:

Code: Select all

@RULE BlackIso

@COLORS
0   0   0   0 Space
1   0 128 255 Block
2 128 128 128 Tail
3  64 128 192 Block+Tail
4 255 255 255 Head
5 192 192 192 Head2
6 128 192 255 Push

@TABLE
n_states:7
neighborhood:Moore
symmetries:rotate4reflect
var a={0,1,2,3,4,5,6}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a

var block={1,3}
var tail={2,3}
var S={4,5}

#Through
  var A=block
  var B=A
  var C=tail 
  0 A,C,S,d,B,f,g,h 0
  0 A,1,S,d,B,f,g,1 S
  0 A,b,S,d,B,f,g,h 5

#Push
  var A={0,1}
  0 S,A,c,d,1,f,g,A 5

  var A=tail
  var B=A
  6 1,b,c,d,1,f,g,h 5
  0 6,A,c,d,e,f,g,B 3
  0 6,A,c,d,e,f,g,h 0
  0 6,b,c,d,e,f,g,h 3

  6 1,b,2,d,2,f,2,h 1

  var C=block
  1 S,b,c,d,C,f,g,h 1
  1 S,A,c,d,e,f,g,h 1
  1 S,b,c,d,e,f,g,h 6

#Reflect
  var A=tail
  S A,b,1,d,0,f,0,h 0

  1 1,4,A,d,e,f,g,h 1
  1 1,4,c,d,e,f,g,h 3

  0 1,4,A,d,e,f,g,h 0
  0 1,4,c,d,e,f,g,h 2

#Moving
  0 S,A,c,d,e,f,g,h 0
  0 S,b,c,d,e,f,g,h 4

#General
  6 a,b,c,d,e,f,g,h 4
  S a,b,c,d,e,f,g,h 2
  3 a,b,c,d,e,f,g,h 1

  # the tail persists without a head, marking the halt location
  var A={S, 6}
  2 A,b,c,d,e,f,g,h 0
I made it leave a tail where the instruction pointer encountered a halt.

Code: Select all

x = 67, y = 38, rule = BlackIso
50.A7.A2$6.A2.A2.A2.A2.A2.A21.A7.A3.A3.A3.2A$.A50.A7.A$.A.A2.A2.A2.A
2.A2.A2.A21.A11.A7.A$48.A2.A4.A2.A2$51.A.A5.A.A$43.A.A2.A7.A$42.A$48.
A7.A9.A$39.A25.DB$41.A6.A7.A2$44.A2$21.A.A3$18.A.A3$15.A.A3$12.A.A3$
9.A.A3$6.A.A3$3.A.A3$A.A!
Last edited by Redstoneboi on December 25th, 2022, 12:24 am, edited 1 time in total.
c(>^w^<c)~*
This is 「Fluffy」
「Fluffy」is my sutando.
「Fluffy」has the ability to engineer r e p l i c a t o r s.
「Fluffy」likes to watch spaceship guns in Golly.
「Fluffy」knows Natsuki best girl.

Yoel
Posts: 384
Joined: July 2nd, 2020, 1:02 am
Location: Electronic jungle
Contact:

Re: Esolangs as Rule Tables

Post by Yoel » December 18th, 2022, 12:07 pm

I would like to point out something, perhaps, completely obvious: that CA are by definition massively parallel esolangs. At least, Turing-complete ones. Unless someone produces a rule that is so easy to deal with that would even count as a relatively high-level language.

Post Reply