On the Subject of Making Beanboozled Again Not Pain

Uhh

To decode a beanzleglyph, first convert its quarter component shapes into digits. Pair the top quarters, and the bottom quarters together. Then, look up the pairs in the right table, in clockwise fashion, as column and row, respectively. Use the contents to the left of the slash for the top pair, and to the right for the bottom pair. The first character of the content is a half-coordinate, while the second is a set value. Look up the two half-coordinates in the left table to obtain your decoded character.

ABCDEF
1S5ØJ8X
2OWZ1HF
3VMQ4EL
43DTC6U
5GN2RAY
6P9KIB7
Ø12345
ØA3/61C4/44E2/14D2/63C2/55
1F1/11B2/33D3/12F5/32F2/24
2A4/64D1/25B3/62E5/35F3/22
3C3/23C1/31A2/21F4/15B4/34D4/54
4D5/65C5/42E4/53A5/43E3/13B5/52
5B1/45E1/41A1/51
Ø
1
2
3
4
5

Convert the display to 8 base-36 characters using the process above. In the decryption table, eliminate any row that ends up on a red tile (Ø12456789QX) when cross-referenced with any of your encrypted characters, and any row that does not contain a blue tile (ABEILNORSTU) when cross-referenced with any of your duplicated characters (if any). Finally, check the remaining C values by looking for the displayed letters and reading off the cross-referenced letter with the respective C value. The C value is the number on the left of the table, the D value is the value corresponding to the message.

BEANBOOZLEDBEANEDAGAINBAMBOOZLINGTOOCOLOURFULBEANINGSHYPERBEANSULTRABEANSCOOLBEANS
1112131415161718
ROTTENBEANSJELLYBEANSLONGBEANSLOBEANTOMYNOTGOODBEANSAUCYBEANSBAKEDBEANSBEANOVERLOAD
2122232425262728
BEANCIPHERAMBEANGUOUSBURNEDBEANKILLERBEANINEDIBLESURELYNOTCORNBEANKRUPTSUPERMARKET
3132333435363738
GROCERIESROWANATKINSONMEANDTHEBOYSAT3AMLOOKINGFORBEANSDANSBEANSPOGBEANSBEANSANITY
4142434445464748
DecØ123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ØØ1ØDPZCH6G84RA9U32QYTJKLSMOF7BNX1VWI5E
ØØ2ØUFE9Y6Q8CBR41ZP75XJKLNSO2GAMIDVWTH3
Ø1ØYSLF3AWEBMTR1KN4JØXQUPZ7I2G8C5D6VOH9
Ø11YK291ØWJB38TMDFLGH5QUPCZI4ER7OS6VXAN
Ø12YD4NMHWGB1R83S92EAOQUP7CILJTZXK6V5ØF
Ø2ØHCP4FTVNRZ58SU73QYOGD29EXLJB1AKW6IØM
Ø21HULMSYVQRFB5ZK4PJØAGD219X3N8EICW6OT7
Ø22HK37ZØVJRS8BFCMLNTIGD2E1XPQ59OUW6AY4
1ØØ87DCSAWFOMTING412RYLJKZ3ØUPXE5Q6VHB9
1Ø18GU9NRW2OSXTMQCDPB5LJKEZØ1FI3H76VYA4
1Ø28Q14MBWPONIXS79UFAHLJK3EØD2TZYG6V5RC
11ØBEK1CTV4IZ5X7J3SL8HPQU9FYD2ONAGW6ØRM
111BJDM78VLICO5ZG1K2RAPQUN9YS4XFØEW6HT3
112BGS3ZRV2I7XOCEMD4TØPQUFNYKL59HJW6A81
12ØRNUS1563X9AOEQFCPBØ2GDM4HKLI7TJVWY8Z
121RQKZEB6PX1IA9JSUL8T2GD7MHC3O4YNVWØ5F
122RJCF986LXEOI1NZK35Y2GD47HUPAMØQVWTBS
2ØØOFGNETV1ØZ5Y32S7DXBKLJ9C8QUH4APW6RIM
2Ø1O2QM3XVDØEH5ZPNGUIAKLJ49871YCRFW6BTS
2Ø2OP7SZIVUØ3YHEFMQ1TRKLJC48GD59B2W6AXN
21ØI4J7N56SY9AHFLCEKORUPQM1BGDØ3T2VW8XZ
211ILGZFO6KYNØA927JDXTUPQ3MBESH184VWR5C
212I2EC9X6DYFHØN4ZGS58UPQ13BJKAMRLVWTO7
22ØX3QE7AWCHMTØ4P1NUI8D2GZSRJKYF5L6VBO9
221XPJ94IWUH7YTMLEQKO5D2GFZRNCØSB36V8A1
222XLN1MOWKH4ØY739JCABD2GSFRQUTZ8P6V5IE
EncØ123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ØØ1ØUFE9Y6Q8CBR41ZP75XJKLNSO2GAMIDVWTH3
ØØ2ØDPZCH6G84RA9U32QYTJKLSMOF7BNX1VWI5E
Ø1ØHCP4FTVNRZ58SU73QYOGD29EXLJB1AKW6IØM
Ø115429PIVSA3Y8MDQEGHO71FCZTLJRUBKW6XØN
Ø12Y9FC2XVMBEH8N1GZ75OQUP43ILJADRKW6TØS
Ø2ØYSLF3AWEBMTR1KN4JØXQUPZ7I2G8C5D6VOH9
Ø21HMLPEBWZRNIAUKS9JØTGD23QXF784Y16VO5C
Ø225NL2ZRW3ASXBDKMCJØI71FEGTPQ89HU6VOY4
1ØØOFGNETV1ØZ5Y32S7DXBKLJ9C8QUH4APW6RIM
1Ø1OP7SZIVUØ3YHEFMQ1TRKLJC48GD59B2W6AXN
1Ø2O2QM3XVDØEH5ZPNGUIAKLJ49871YCRFW6BTS
11ØX3QE7AWCHMTØ4P1NUI8D2GZSRJKYF5L6VBO9
111TEGZQBW45NIØ92USDX81F73MAJKHPYL6VROC
112IZ73GRW9YSXØCFDM1T8UPQENBJK52HL6VAO4
12ØI4J7N56SY9AHFLCEKORUPQM1BGDØ3T2VW8XZ
121X9JQSY6MHCB5PL4ZKOAD2GNUR71ØEIFVW8T3
122TCJGMH6N54RY2L93KOB1F7SDAQUØZXPVW8IE
2ØØ87DCSAWFOMTING412RYLJKZ3ØUPXE5Q6VHB9
2Ø18Q14MBWPONIXS79UFAHLJK3EØD2TZYG6V5RC
2Ø28GU9NRW2OSXTMQCDPB5LJKEZØ1FI3H76VYA4
21ØRNUS1563X9AOEQFCPBØ2GDM4HKLI7TJVWY8Z
211ASDMUY6ETCBOZGP42RØF71N95KLXQIJVWH83
212BM1NDH6ZI4RO3729FAØPQUSCYKLTGXJVW58E
22ØBEK1CTV4IZ5X7J3SL8HPQU9FYD2ONAGW6ØRM
221RZKU4IV9X3YTQJEML852GDCPH1FOSB7W6ØAN
222A3KD9XVCTEHIGJZNL8YF71425UPOMRQW6ØBS

For each bean read off its character normally and upside-down. Interpret these values as base-36 and add them together. Then modulo this value by 36 to get the nth item in a new array, labelled I. Highlighting a bean will show 5 colours. BCn will refer to the nth colour shown on a bean. For each bean in reading order use the row corresponding to its index and the column corresponding to BC4. Repeat this using BC5. Then execute the commands on I as ordered by the instruction table. The pointer starts at the index corresponding to the last digit of the D value. Call the final array B. Note: Black is assigned a value of Ø.

OlBnLfYkAcLiGdPeYlBdBeMiLeWeWt
1<>+-[],.*
2>,-]+*.<[
3-*.<+>][,
4[>],*+<-.
5.+-*>[,<]
6]>[*.+-,<
7,>*<[].-+
8-+>*.<][,
Value123456789123456
< Moves left 1 in the array, looping around.
> Moves right 1 in the array, looping around.
+ Adds 1 at the current position.
- Subtracts 1 at the current position.
[ Start of a loop. Runs the loop code twice.
] End of a loop.
, Retrieves the value at the current position and puts it in memory.
. Sets current position to the stored value (doesn’t if there is none).
Applies < if going there lands the pointer at a smaller number.
Applies > if going there lands the pointer at a larger number.
Applies + if the item 4 steps left/right from the pointer shares odd-even parity with this one.
Applies - if the item 4 steps left/right from the pointer does not share odd-even parity with this one.
* Stores the position in memory. Swaps the values at the stored position and the current position when it appears a second time, then resets the stored position.
Encrypts the current value using C.
Decrypts the current value using C.
Note: If adding or subtracting 1 takes the current position outside of the Ø-35 range, add or subtract 36 to get back within this range.

For each character on the display, concatenate the set numbers corresponding to the top and bottom halves and concatenate that with the sum of the 4 set numbers of the glyph on the corresponding bean (2 set numbers for each orientation). Modulo this by (Bn + 1) where n corresponds to the index of the character. Call the obtained value Sn. Now calculate the total values T:

Tn = Sn * C + Bn

Assign all the beans a number from 1 through 8, going from lowest to highest T value, sorting ties in reading order. For any amount of already pressed beans P, press the bean that was assigned the number (P + 3). Use n as its index, t as the total bomb time in seconds and DR() as digital root. If P is not 4, press this bean when the following condition is true:

DR(t % (Sn + D)) = DR(7 * BC1 + BC2 * BC3)

If this press turned P into the first digit of D, note R = Ø if the pressed bean turns counterclockwise or R = 1 if it turns clockwise.

If P is 4, instead press this bean when the following condition is true:

t % 2 = R

If you have defused the module using this manual, congratulations! You don’t fully deserve it, but we’re going to be generous. You can now safely eat all of the remaining beans.

Appendix BnFkS: BeanF--- Shortcuts

In this table, 'variable groups' refers to S, E, and X. These groups can contain any number of commands, including none. S needs to begin at the start of the command set, and E needs to finish at the end of the command set. The conditions that cover an entire set of sub-conditions span across all columns, and apply, in addition to the sub-conditions (if any), until the next.

fromtocondition
+-
-+
<>
><
∴∵
∵∴
EE only contains '<>←→'
no ',.' in variable groups
S.S
X..X contains no movement
,EE
.X.X.X ends at the same place as it starts
,X,X,
X.XX ends at the same place as it starts and does not change the current position’s value
no '[]' in variable groups
[X]XX
S]S
[EE
X ends at the same place as it starts or 4 away from it; if in X the parity between the starting position and the position 4 away from it always changes use true; if it never changes use false
↑-
↓+
↑X↑↑Xfalse
↑X↑↑X+true
↓X↓↓Xfalse
↓X↓↓X-true
↑X↓↑Xtrue
↑X↓↑X-false
↓X↑↓Xtrue
↓X↑↓X+false
S has an even amount of '*'
S*X*SXX ends at the same place as it starts
S*ESEE has no '*'