0000: 5c 20 72 65 61 64 61 62 6c 65 20 77 75 72 73 74 \ readable wurst
0010: 6b 65 73 73 65 6c 20 2d 20 36 34 20 62 69 74 20 kessel - 64 bit
0020: 6f 6e 6c 79 0a 0a 38 20 63 65 6c 6c 73 20 43 6f only..8 cells Co
0030: 6e 73 74 61 6e 74 20 73 74 61 74 65 23 0a 0a 24 nstant state#..$
0040: 31 30 20 68 65 72 65 20 24 46 20 61 6e 64 20 2d 10 here $F and -
0050: 20 61 6c 6c 6f 74 20 0a 68 65 72 65 20 73 74 61 allot .here sta
0060: 74 65 23 20 61 6c 6c 6f 74 20 5c 20 73 6f 75 72 te# allot \ sour
0070: 63 65 0a 68 65 72 65 20 73 74 61 74 65 23 20 61 ce.here state# a
0080: 6c 6c 6f 74 20 5c 20 73 74 61 74 65 0a 68 65 72 llot \ state.her
0090: 65 20 73 74 61 74 65 23 20 61 6c 6c 6f 74 20 5c e state# allot \
00a0: 20 6e 65 78 74 73 74 61 74 65 0a 68 65 72 65 20 nextstate.here
00b0: 73 74 61 74 65 23 20 38 20 2a 20 61 6c 6c 6f 74 state# 8 * allot
00c0: 20 5c 20 6d 65 73 73 61 67 65 0a 73 77 61 70 20 \ message.swap
00d0: 32 73 77 61 70 20 73 77 61 70 0a 0a 43 6f 6e 73 2swap swap..Cons
00e0: 74 61 6e 74 20 77 75 72 73 74 2d 73 6f 75 72 63 tant wurst-sourc
00f0: 65 0a 43 6f 6e 73 74 61 6e 74 20 77 75 72 73 74 e.Constant wurst
0100: 2d 73 74 61 74 65 0a 43 6f 6e 73 74 61 6e 74 20 -state.Constant
0110: 6e 65 78 74 73 74 61 74 65 0a 43 6f 6e 73 74 61 nextstate.Consta
0120: 6e 74 20 6d 65 73 73 61 67 65 0a 0a 43 72 65 61 nt message..Crea
0130: 74 65 20 27 72 6e 67 73 20 5c 20 74 68 69 73 20 te 'rngs \ this
0140: 69 73 20 65 73 73 65 6e 74 69 61 6c 6c 79 20 57 is essentially W
0150: 75 72 73 74 6b 65 73 73 65 6c 27 73 20 53 2d 62 urstkessel's S-b
0160: 6f 78 0a 24 45 41 35 37 36 42 31 35 41 37 41 46 ox.$EA576B15A7AF
0170: 42 41 30 38 20 2c 20 24 42 46 34 38 38 38 44 43 BA08 , $BF4888DC
0180: 30 32 31 33 31 45 46 37 20 2c 20 24 35 46 34 39 02131EF7 , $5F49
0190: 41 34 30 42 31 44 41 41 46 35 46 44 20 2c 20 24 A40B1DAAF5FD , $
01a0: 37 37 39 38 39 37 35 45 35 32 33 33 43 38 39 44 7798975E5233C89D
01b0: 20 2c 0a 24 41 37 30 41 31 42 44 35 31 38 42 33 ,.$A70A1BD518B3
01c0: 46 42 43 36 20 2c 20 24 38 45 33 31 44 35 34 45 FBC6 , $8E31D54E
01d0: 43 42 37 42 43 44 46 39 20 2c 20 24 39 34 39 44 CB7BCDF9 , $949D
01e0: 31 30 37 30 32 39 46 39 34 45 41 41 20 2c 20 24 107029F94EAA , $
01f0: 37 42 34 30 32 36 31 46 36 42 33 45 30 37 36 33 7B40261F6B3E0763
0200: 20 2c 0a 24 45 38 34 35 46 39 30 34 37 37 41 33 ,.$E845F90477A3
0210: 30 41 43 35 20 2c 20 24 36 42 46 35 43 44 43 30 0AC5 , $6BF5CDC0
0220: 39 34 42 37 41 36 35 37 20 2c 20 24 42 30 37 39 94B7A657 , $B079
0230: 36 43 39 46 36 31 46 39 39 30 46 39 20 2c 20 24 6C9F61F990F9 , $
0240: 43 31 34 39 46 41 42 41 35 30 30 31 34 42 46 43 C149FABA50014BFC
0250: 20 2c 0a 24 36 32 36 33 37 37 32 32 38 42 43 37 ,.$626377228BC7
0260: 36 32 45 46 20 2c 20 24 36 33 39 42 46 45 39 33 62EF , $639BFE93
0270: 30 39 34 45 37 42 38 34 20 2c 20 24 30 42 36 31 094E7B84 , $0B61
0280: 31 34 30 43 31 33 35 31 33 45 31 35 20 2c 20 24 140C13513E15 , $
0290: 41 44 42 38 30 30 34 36 30 44 38 42 37 41 33 46 ADB800460D8B7A3F
02a0: 20 2c 0a 24 32 30 44 33 38 37 33 31 31 30 38 38 ,.$20D387311088
02b0: 30 44 34 33 20 2c 20 24 31 34 34 42 38 36 32 46 0D43 , $144B862F
02c0: 34 37 35 35 44 38 45 46 20 2c 20 24 36 39 43 31 4755D8EF , $69C1
02d0: 32 37 46 33 35 30 45 43 44 37 30 39 20 2c 20 24 27F350ECD709 , $
02e0: 34 41 39 32 35 31 31 46 41 44 33 31 44 34 36 35 4A92511FAD31D465
02f0: 20 2c 0a 24 33 34 45 42 30 45 46 38 45 44 38 32 ,.$34EB0EF8ED82
0300: 33 30 42 32 20 2c 20 24 34 37 37 42 46 34 36 36 30B2 , $477BF466
0310: 45 33 33 32 44 44 42 38 20 2c 20 24 30 38 36 42 E332DDB8 , $086B
0320: 36 46 32 30 44 43 32 46 31 42 33 33 20 2c 20 24 6F20DC2F1B33 , $
0330: 45 30 32 30 43 38 30 31 32 45 31 45 42 43 34 41 E020C8012E1EBC4A
0340: 20 2c 0a 24 43 34 41 35 42 45 46 39 33 39 30 34 ,.$C4A5BEF93904
0350: 34 41 46 43 20 2c 20 24 43 35 43 35 42 30 33 46 4AFC , $C5C5B03F
0360: 38 30 46 41 46 37 33 39 20 2c 20 24 41 44 34 36 80FAF739 , $AD46
0370: 45 46 42 41 36 45 34 45 45 46 42 32 20 2c 20 24 EFBA6E4EEFB2 , $
0380: 45 41 44 30 34 45 45 46 32 31 41 44 35 43 43 41 EAD04EEF21AD5CCA
0390: 20 2c 0a 24 36 38 35 31 36 33 34 35 46 33 32 45 ,.$68516345F32E
03a0: 35 38 32 45 20 2c 20 24 46 45 44 45 32 30 36 37 582E , $FEDE2067
03b0: 41 33 33 35 42 31 46 36 20 2c 20 24 39 36 36 31 A335B1F6 , $9661
03c0: 31 44 31 33 31 37 32 42 41 30 34 34 20 2c 20 24 1D13172BA044 , $
03d0: 31 44 44 42 43 33 46 33 36 32 35 37 44 46 39 36 1DDBC3F36257DF96
03e0: 20 2c 0a 24 34 42 46 45 37 35 41 39 31 42 35 38 ,.$4BFE75A91B58
03f0: 32 44 30 37 20 2c 20 24 38 32 44 46 33 41 37 44 2D07 , $82DF3A7D
0400: 34 32 30 35 44 39 42 34 20 2c 20 24 43 44 43 37 4205D9B4 , $CDC7
0410: 43 32 43 37 36 39 42 31 30 31 36 33 20 2c 20 24 C2C769B10163 , $
0420: 32 42 39 45 46 42 33 41 34 30 36 43 31 43 32 32 2B9EFB3A406C1C22
0430: 20 2c 0a 24 44 41 37 33 32 46 31 37 42 42 35 46 ,.$DA732F17BB5F
0440: 41 38 31 39 20 2c 20 24 31 34 44 41 32 44 39 39 A819 , $14DA2D99
0450: 34 42 38 38 45 42 46 42 20 2c 20 24 45 39 45 38 4B88EBFB , $E9E8
0460: 44 41 33 37 31 38 36 36 38 31 38 45 20 2c 20 24 DA371866818E , $
0470: 36 41 41 46 45 41 41 42 38 30 44 37 32 37 35 38 6AAFEAAB80D72758
0480: 20 2c 0a 24 45 32 34 35 33 41 43 45 41 37 34 37 ,.$E2453ACEA747
0490: 31 39 44 42 20 2c 20 24 36 32 43 41 42 37 38 45 19DB , $62CAB78E
04a0: 38 32 31 33 37 45 37 38 20 2c 20 24 34 42 36 30 82137E78 , $4B60
04b0: 45 36 37 37 38 41 38 34 43 38 32 42 20 2c 20 24 E6778A84C82B , $
04c0: 34 31 42 46 32 34 31 37 42 30 30 37 30 37 36 34 41BF2417B0070764
04d0: 20 2c 0a 24 46 33 38 36 35 41 44 45 42 46 33 33 ,.$F3865ADEBF33
04e0: 37 41 39 39 20 2c 20 24 41 31 45 43 33 36 43 36 7A99 , $A1EC36C6
04f0: 39 36 34 39 32 42 45 30 20 2c 20 24 37 43 38 38 96492BE0 , $7C88
0500: 34 42 33 32 30 38 30 43 36 34 39 46 20 2c 20 24 4B32080C649F , $
0510: 41 41 45 39 39 42 44 41 44 43 33 37 36 38 35 41 AAE99BDADC37685A
0520: 20 2c 0a 24 44 43 41 34 43 35 39 44 39 38 42 45 ,.$DCA4C59D98BE
0530: 45 43 36 43 20 2c 20 24 44 44 38 38 38 36 46 45 EC6C , $DD8886FE
0540: 44 38 42 38 32 30 39 30 20 2c 20 24 46 38 39 34 D8B82090 , $F894
0550: 41 41 36 39 39 34 45 46 44 42 38 41 20 2c 20 24 AA6994EFDB8A , $
0560: 46 42 39 35 34 45 41 37 31 30 37 42 31 42 46 33 FB954EA7107B1BF3
0570: 20 2c 0a 24 38 30 45 35 36 39 35 38 31 37 37 33 ,.$80E569581773
0580: 43 46 35 46 20 2c 20 24 46 34 31 38 45 31 46 39 CF5F , $F418E1F9
0590: 37 45 36 30 31 44 39 34 20 2c 20 24 37 41 39 42 7E601D94 , $7A9B
05a0: 39 46 39 30 33 33 41 34 30 38 32 30 20 2c 20 24 9F9033A40820 , $
05b0: 30 30 45 30 36 44 37 43 34 46 35 30 37 32 36 42 00E06D7C4F50726B
05c0: 20 2c 0a 24 31 39 43 32 30 35 43 37 46 34 36 31 ,.$19C205C7F461
05d0: 45 42 36 35 20 2c 20 24 44 42 36 31 30 41 33 36 EB65 , $DB610A36
05e0: 44 45 34 30 41 45 37 43 20 2c 20 24 30 46 43 44 DE40AE7C , $0FCD
05f0: 32 30 31 41 46 33 45 36 35 46 35 46 20 2c 20 24 201AF3E65F5F , $
0600: 35 38 34 30 39 31 30 46 43 31 39 30 32 32 32 34 5840910FC1902224
0610: 20 2c 0a 24 31 32 31 30 39 37 35 32 34 30 42 45 ,.$1210975240BE
0620: 31 38 32 39 20 2c 20 24 37 31 42 39 37 33 30 37 1829 , $71B97307
0630: 45 38 45 39 30 33 46 39 20 2c 20 24 44 46 38 35 E8E903F9 , $DF85
0640: 43 36 43 33 34 36 44 46 34 46 46 32 20 2c 20 24 C6C346DF4FF2 , $
0650: 42 42 32 36 46 38 33 35 46 44 33 37 31 31 46 31 BB26F835FD3711F1
0660: 20 2c 0a 24 34 44 45 38 45 36 44 43 30 30 38 42 ,.$4DE8E6DC008B
0670: 44 32 34 39 20 2c 20 24 38 43 31 31 44 35 41 36 D249 , $8C11D5A6
0680: 34 37 43 41 36 32 33 31 20 2c 20 24 42 31 30 44 47CA6231 , $B10D
0690: 30 46 36 36 45 43 30 37 41 32 35 31 20 2c 20 24 0F66EC07A251 , $
06a0: 44 32 44 34 43 37 42 44 36 30 38 41 41 43 44 45 D2D4C7BD608AACDE
06b0: 20 2c 0a 24 31 37 43 37 35 36 30 44 36 32 31 45 ,.$17C7560D621E
06c0: 36 44 36 32 20 2c 20 24 41 31 38 32 35 39 31 42 6D62 , $A182591B
06d0: 43 35 33 44 37 43 38 41 20 2c 20 24 38 46 42 46 C53D7C8A , $8FBF
06e0: 37 32 36 30 43 31 36 30 35 38 44 37 20 2c 20 24 7260C16058D7 , $
06f0: 44 32 30 43 31 41 41 34 37 41 44 32 38 30 46 44 D20C1AA47AD280FD
0700: 20 2c 0a 24 34 43 33 34 41 42 43 36 34 36 32 37 ,.$4C34ABC64627
0710: 36 44 33 45 20 2c 20 24 44 46 39 33 32 38 32 32 6D3E , $DF932822
0720: 32 42 35 35 35 38 38 35 20 2c 20 24 35 46 43 45 2B555885 , $5FCE
0730: 41 43 36 38 42 39 31 41 41 37 35 46 20 2c 20 24 AC68B91AA75F , $
0740: 42 36 36 32 43 34 44 38 34 46 37 31 33 35 43 36 B662C4D84F7135C6
0750: 20 2c 0a 24 34 31 38 44 42 44 33 43 34 35 44 37 ,.$418DBD3C45D7
0760: 45 36 37 43 20 2c 20 24 35 45 30 37 44 42 39 37 E67C , $5E07DB97
0770: 41 32 38 44 32 41 33 41 20 2c 20 24 44 35 44 37 A28D2A3A , $D5D7
0780: 42 30 32 34 43 37 45 31 34 38 41 33 20 2c 20 24 B024C7E148A3 , $
0790: 33 46 33 30 32 33 36 33 39 45 34 45 44 39 31 44 3F3023639E4ED91D
07a0: 20 2c 0a 24 37 35 35 39 30 35 38 30 44 31 38 42 ,.$75590580D18B
07b0: 44 43 46 37 20 2c 20 24 32 39 33 36 43 34 34 35 DCF7 , $2936C445
07c0: 41 38 43 43 45 35 44 33 20 2c 20 24 31 43 39 42 A8CCE5D3 , $1C9B
07d0: 35 31 33 35 32 41 39 42 33 38 41 41 20 2c 20 24 51352A9B38AA , $
07e0: 31 45 43 36 37 42 30 45 36 33 45 41 36 42 39 43 1EC67B0E63EA6B9C
07f0: 20 2c 0a 24 33 30 41 41 34 32 46 34 34 34 44 44 ,.$30AA42F444DD
0800: 38 44 37 37 20 2c 20 24 35 34 39 30 43 37 35 46 8D77 , $5490C75F
0810: 31 41 35 30 42 33 44 34 20 2c 20 24 38 41 36 32 1A50B3D4 , $8A62
0820: 44 43 36 38 36 36 31 34 39 44 43 36 20 2c 20 24 DC6866149DC6 , $
0830: 34 35 45 37 31 43 41 35 38 41 33 41 31 41 30 33 45E71CA58A3A1A03
0840: 20 2c 0a 24 34 34 43 33 35 41 36 30 43 41 36 32 ,.$44C35A60CA62
0850: 45 46 34 43 20 2c 20 24 38 41 38 44 31 30 46 36 EF4C , $8A8D10F6
0860: 37 39 30 34 46 32 30 33 20 2c 20 24 37 33 46 42 7904F203 , $73FB
0870: 34 37 43 39 39 41 37 38 39 45 32 37 20 2c 20 24 47C99A789E27 , $
0880: 46 36 44 41 32 36 34 43 35 45 43 35 38 38 33 34 F6DA264C5EC58834
0890: 20 2c 0a 24 37 44 45 37 30 37 41 42 39 34 31 41 ,.$7DE707AB941A
08a0: 36 38 42 31 20 2c 20 24 38 45 35 46 43 31 35 41 68B1 , $8E5FC15A
08b0: 42 31 42 38 32 44 34 32 20 2c 20 24 31 36 39 46 B1B82D42 , $169F
08c0: 32 37 30 45 33 31 45 31 31 38 42 39 20 2c 20 24 270E31E118B9 , $
08d0: 38 39 44 37 37 44 32 43 41 32 32 38 46 31 41 31 89D77D2CA228F1A1
08e0: 20 2c 0a 24 46 37 33 42 46 43 44 30 37 36 45 41 ,.$F73BFCD076EA
08f0: 34 35 39 33 20 2c 20 24 33 46 43 32 35 39 34 45 4593 , $3FC2594E
0900: 41 38 36 38 41 41 36 42 20 2c 20 24 37 45 37 31 A868AA6B , $7E71
0910: 32 42 33 38 32 36 42 46 39 34 30 42 20 2c 20 24 2B3826BF940B , $
0920: 43 35 45 34 37 35 32 33 46 32 45 44 37 32 44 33 C5E47523F2ED72D3
0930: 20 2c 0a 24 42 31 37 44 35 45 32 42 34 30 44 39 ,.$B17D5E2B40D9
0940: 31 43 42 37 20 2c 20 24 37 41 34 36 43 41 39 38 1CB7 , $7A46CA98
0950: 39 42 36 42 35 34 35 43 20 2c 20 24 44 46 35 33 9B6B545C , $DF53
0960: 39 36 33 34 37 33 44 38 41 30 32 38 20 2c 20 24 963473D8A028 , $
0970: 31 43 32 42 30 35 45 39 35 42 36 41 32 33 36 31 1C2B05E95B6A2361
0980: 20 2c 0a 24 32 41 38 43 45 36 43 43 38 41 41 34 ,.$2A8CE6CC8AA4
0990: 36 32 34 30 20 2c 20 24 37 45 35 36 36 37 33 42 6240 , $7E56673B
09a0: 38 34 36 37 42 32 44 34 20 2c 20 24 35 43 43 30 8467B2D4 , $5CC0
09b0: 38 39 38 36 44 44 31 36 34 33 44 32 20 2c 20 24 8986DD1643D2 , $
09c0: 33 34 42 45 43 32 36 43 31 30 41 38 41 30 46 37 34BEC26C10A8A0F7
09d0: 20 2c 0a 24 35 41 31 30 36 35 35 30 38 33 34 34 ,.$5A1065508344
09e0: 44 39 42 46 20 2c 20 24 39 36 34 43 44 36 39 31 D9BF , $964CD691
09f0: 43 37 35 31 34 41 35 34 20 2c 20 24 44 41 36 36 C7514A54 , $DA66
0a00: 34 32 45 32 30 36 44 38 45 45 43 30 20 2c 20 24 42E206D8EEC0 , $
0a10: 46 45 35 30 36 34 30 45 41 43 43 35 37 37 33 36 FE50640EACC57736
0a20: 20 2c 0a 24 34 46 44 37 37 35 42 45 45 43 30 33 ,.$4FD775BEEC03
0a30: 45 30 30 43 20 2c 20 24 32 45 44 35 31 33 32 32 E00C , $2ED51322
0a40: 46 41 36 34 38 34 37 30 20 2c 20 24 44 31 32 36 FA648470 , $D126
0a50: 33 39 36 46 45 33 34 36 46 44 38 32 20 2c 20 24 396FE346FD82 , $
0a60: 33 32 31 46 38 45 36 32 36 36 30 41 35 33 35 38 321F8E62660A5358
0a70: 20 2c 0a 24 42 31 38 41 43 30 34 31 35 31 32 30 ,.$B18AC0415120
0a80: 41 39 37 30 20 2c 20 24 41 45 36 36 45 38 44 30 A970 , $AE66E8D0
0a90: 44 38 39 42 44 45 41 32 20 2c 20 24 38 46 46 33 D89BDEA2 , $8FF3
0aa0: 39 30 37 30 34 32 31 31 33 37 31 33 20 2c 20 24 907042113713 , $
0ab0: 33 45 44 31 41 35 41 46 34 35 42 39 42 44 32 31 3ED1A5AF45B9BD21
0ac0: 20 2c 0a 24 43 44 39 33 43 35 41 37 36 37 36 46 ,.$CD93C5A7676F
0ad0: 39 42 38 30 20 2c 20 24 42 36 33 39 30 41 33 44 9B80 , $B6390A3D
0ae0: 39 34 44 41 45 46 31 31 20 2c 20 24 38 36 38 39 94DAEF11 , $8689
0af0: 37 36 37 31 35 43 35 43 43 41 36 38 20 2c 20 24 76715C5CCA68 , $
0b00: 41 44 38 38 36 41 41 30 36 34 42 35 44 44 43 35 AD886AA064B5DDC5
0b10: 20 2c 0a 24 44 43 44 38 41 30 43 43 42 30 45 45 ,.$DCD8A0CCB0EE
0b20: 34 46 34 32 20 2c 20 24 35 45 38 32 35 42 35 41 4F42 , $5E825B5A
0b30: 46 32 36 39 36 42 34 38 20 2c 20 24 43 36 41 44 F2696B48 , $C6AD
0b40: 32 38 34 38 42 31 42 44 32 41 46 45 20 2c 20 24 2848B1BD2AFE , $
0b50: 34 44 45 35 41 32 30 41 44 33 33 30 42 36 45 34 4DE5A20AD330B6E4
0b60: 20 2c 0a 24 31 32 31 44 41 33 45 34 34 32 38 41 ,.$121DA3E4428A
0b70: 41 32 37 44 20 2c 20 24 41 44 37 33 34 41 46 36 A27D , $AD734AF6
0b80: 39 42 42 36 35 38 45 38 20 2c 20 24 41 32 33 39 9BB658E8 , $A239
0b90: 38 30 39 38 33 34 42 36 36 46 45 43 20 2c 20 24 809834B66FEC , $
0ba0: 34 45 30 41 46 46 32 35 43 31 36 32 30 32 34 43 4E0AFF25C162024C
0bb0: 20 2c 0a 24 31 32 41 44 41 42 31 42 38 43 44 42 ,.$12ADAB1B8CDB
0bc0: 41 41 34 39 20 2c 20 24 37 45 46 44 32 30 35 42 AA49 , $7EFD205B
0bd0: 38 41 32 44 37 31 34 32 20 2c 20 24 31 31 30 30 8A2D7142 , $1100
0be0: 44 33 36 39 35 31 43 43 36 41 43 44 20 2c 20 24 D36951CC6ACD , $
0bf0: 35 36 44 37 44 35 44 39 30 38 37 44 34 32 44 43 56D7D5D9087D42DC
0c00: 20 2c 0a 24 31 39 42 45 38 46 33 44 31 44 37 41 ,.$19BE8F3D1D7A
0c10: 31 30 33 46 20 2c 20 24 35 38 37 36 39 37 41 30 103F , $587697A0
0c20: 37 33 33 37 45 30 37 36 20 2c 20 24 46 31 33 34 7337E076 , $F134
0c30: 39 38 33 44 37 39 36 33 33 33 42 46 20 2c 20 24 983D796333BF , $
0c40: 38 41 36 37 42 34 46 33 38 43 35 36 32 34 43 35 8A67B4F38C5624C5
0c50: 20 2c 0a 24 35 44 38 41 39 37 33 36 41 44 32 45 ,.$5D8A9736AD2E
0c60: 45 44 45 33 20 2c 20 24 35 43 33 32 46 30 43 31 EDE3 , $5C32F0C1
0c70: 44 32 45 32 36 42 45 44 20 2c 20 24 30 32 39 41 D2E26BED , $029A
0c80: 44 38 36 30 38 30 41 31 39 36 30 41 20 2c 20 24 D86080A1960A , $
0c90: 45 44 35 46 37 36 44 31 44 42 32 37 36 45 44 39 ED5F76D1DB276ED9
0ca0: 20 2c 0a 24 33 33 43 42 35 38 31 30 36 31 38 30 ,.$33CB58106180
0cb0: 35 44 46 44 20 2c 20 24 41 35 44 46 32 35 32 32 5DFD , $A5DF2522
0cc0: 41 30 46 36 39 31 43 37 20 2c 20 24 41 34 41 44 A0F691C7 , $A4AD
0cd0: 45 44 46 37 38 32 46 44 36 42 44 32 20 2c 20 24 EDF782FD6BD2 , $
0ce0: 46 45 33 38 34 46 46 30 44 33 37 31 43 39 36 34 FE384FF0D371C964
0cf0: 20 2c 0a 24 46 35 43 46 45 46 39 45 34 41 34 43 ,.$F5CFEF9E4A4C
0d00: 44 32 37 33 20 2c 20 24 38 35 43 42 42 41 43 38 D273 , $85CBBAC8
0d10: 36 39 34 30 31 43 38 31 20 2c 20 24 44 35 31 31 69401C81 , $D511
0d20: 42 37 31 33 46 45 44 37 30 30 35 42 20 2c 20 24 B713FED7005B , $
0d30: 41 37 36 31 31 31 37 37 44 36 39 36 46 31 38 36 A7611177D696F186
0d40: 20 2c 0a 24 43 42 32 42 45 31 46 46 41 36 30 38 ,.$CB2BE1FFA608
0d50: 46 36 37 35 20 2c 20 24 32 35 30 33 31 30 34 36 F675 , $25031046
0d60: 43 38 35 43 34 36 35 31 20 2c 20 24 36 30 37 31 C85C4651 , $6071
0d70: 37 31 42 43 34 35 37 37 44 32 37 30 20 2c 20 24 71BC4577D270 , $
0d80: 41 37 42 44 38 38 38 34 32 39 39 38 36 33 41 36 A7BD8884299863A6
0d90: 20 2c 0a 24 42 42 30 39 46 42 37 32 38 30 39 39 ,.$BB09FB728099
0da0: 41 31 45 30 20 2c 20 24 32 35 37 31 34 35 45 35 A1E0 , $257145E5
0db0: 36 36 43 38 36 39 38 46 20 2c 20 24 36 35 36 42 66C8698F , $656B
0dc0: 44 42 36 42 39 31 38 34 35 33 35 46 20 2c 20 24 DB6B9184535F , $
0dd0: 32 36 38 32 41 41 45 32 43 41 38 33 41 45 39 31 2682AAE2CA83AE91
0de0: 20 2c 0a 24 46 37 41 34 34 43 43 34 30 30 33 41 ,.$F7A44CC4003A
0df0: 41 45 45 30 20 2c 20 24 38 38 38 41 39 41 39 33 AEE0 , $888A9A93
0e00: 37 30 44 41 34 36 30 41 20 2c 20 24 36 44 45 31 70DA460A , $6DE1
0e10: 46 37 46 43 46 46 36 34 41 38 39 35 20 2c 20 24 F7FCFF64A895 , $
0e20: 42 39 39 38 32 39 34 42 36 45 36 33 31 37 32 36 B998294B6E631726
0e30: 20 2c 0a 24 44 44 31 30 46 44 30 45 33 37 33 44 ,.$DD10FD0E373D
0e40: 45 31 37 34 20 2c 20 24 41 34 41 31 43 39 39 45 E174 , $A4A1C99E
0e50: 31 45 44 46 46 37 38 38 20 2c 20 24 41 42 46 38 1EDFF788 , $ABF8
0e60: 39 43 35 43 32 33 39 36 35 43 38 43 20 2c 20 24 9C5C23965C8C , $
0e70: 35 31 39 46 43 45 41 43 44 42 35 30 41 34 32 45 519FCEACDB50A42E
0e80: 20 2c 0a 24 43 38 37 45 45 30 36 42 30 34 41 33 ,.$C87EE06B04A3
0e90: 45 45 32 37 20 2c 20 24 42 33 42 38 34 38 33 36 EE27 , $B3B84836
0ea0: 46 35 32 45 46 45 34 41 20 2c 20 24 36 37 37 31 F52EFE4A , $6771
0eb0: 38 35 35 46 43 35 34 38 38 46 46 32 20 2c 20 24 855FC5488FF2 , $
0ec0: 30 32 39 46 32 37 33 35 37 42 46 37 39 41 37 42 029F27357BF79A7B
0ed0: 20 2c 0a 24 38 36 34 45 39 33 31 45 43 30 32 44 ,.$864E931EC02D
0ee0: 32 32 30 31 20 2c 20 24 39 44 46 41 34 31 43 30 2201 , $9DFA41C0
0ef0: 36 39 41 32 42 45 45 45 20 2c 20 24 32 32 41 35 69A2BEEE , $22A5
0f00: 44 42 34 42 35 30 34 36 34 30 39 31 20 2c 20 24 DB4B50464091 , $
0f10: 42 30 44 32 45 32 39 39 41 37 38 30 38 37 32 34 B0D2E299A7808724
0f20: 20 2c 0a 24 46 46 43 33 35 32 41 43 43 34 45 30 ,.$FFC352ACC4E0
0f30: 36 43 44 36 20 2c 20 24 39 35 37 38 42 45 42 42 6CD6 , $9578BEBB
0f40: 34 44 42 38 46 43 32 46 20 2c 20 24 44 43 36 45 4DB8FC2F , $DC6E
0f50: 33 34 39 42 32 44 36 44 41 35 34 38 20 2c 20 24 349B2D6DA548 , $
0f60: 32 30 39 34 44 41 42 36 43 36 34 36 43 32 44 37 2094DAB6C646C2D7
0f70: 20 2c 0a 24 33 42 30 41 46 33 44 32 46 44 38 45 ,.$3B0AF3D2FD8E
0f80: 46 31 44 30 20 2c 20 24 36 33 46 44 45 37 38 46 F1D0 , $63FDE78F
0f90: 32 45 30 46 42 36 33 34 20 2c 20 24 31 43 39 39 2E0FB634 , $1C99
0fa0: 35 30 33 42 43 36 30 34 46 30 39 37 20 2c 20 24 503BC604F097 , $
0fb0: 31 43 31 45 46 33 45 38 32 43 39 46 43 30 35 33 1C1EF3E82C9FC053
0fc0: 20 2c 0a 24 36 42 44 42 38 45 37 36 30 31 37 43 ,.$6BDB8E76017C
0fd0: 31 38 31 41 20 2c 20 24 32 36 44 38 38 34 30 34 181A , $26D88404
0fe0: 42 38 43 42 41 46 41 45 20 2c 20 24 31 38 37 33 B8CBAFAE , $1873
0ff0: 36 36 41 46 30 34 34 37 31 46 38 44 20 2c 20 24 66AF04471F8D , $
1000: 37 36 41 32 37 37 38 46 36 36 45 35 31 32 42 38 76A2778F66E512B8
1010: 20 2c 0a 24 45 35 42 41 32 39 35 31 41 46 32 31 ,.$E5BA2951AF21
1020: 31 46 38 30 20 2c 20 24 38 36 42 30 36 35 35 30 1F80 , $86B06550
1030: 37 42 33 33 46 32 30 35 20 2c 20 24 37 35 45 33 7B33F205 , $75E3
1040: 42 30 44 46 44 44 31 37 42 45 39 38 20 2c 20 24 B0DFDD17BE98 , $
1050: 30 39 45 44 41 37 37 42 36 30 41 42 46 45 30 41 09EDA77B60ABFE0A
1060: 20 2c 0a 24 39 37 42 45 41 30 34 45 38 46 41 33 ,.$97BEA04E8FA3
1070: 35 30 46 43 20 2c 20 24 42 43 36 45 36 34 31 44 50FC , $BC6E641D
1080: 38 41 35 44 31 41 32 38 20 2c 20 24 34 36 44 36 8A5D1A28 , $46D6
1090: 33 37 37 44 35 46 42 37 37 43 38 44 20 2c 20 24 377D5FB77C8D , $
10a0: 33 46 39 37 41 37 43 32 33 32 38 35 44 39 45 34 3F97A7C23285D9E4
10b0: 20 2c 0a 24 42 41 35 30 31 36 34 43 41 39 32 36 ,.$BA50164CA926
10c0: 43 32 35 44 20 2c 20 24 43 43 44 42 35 37 38 31 C25D , $CCDB5781
10d0: 33 45 32 32 30 34 35 31 20 2c 20 24 31 43 39 36 3E220451 , $1C96
10e0: 37 46 31 32 31 42 36 33 44 44 44 46 20 2c 20 24 7F121B63DDDF , $
10f0: 41 32 41 38 34 30 42 32 45 35 36 43 41 33 42 44 A2A840B2E56CA3BD
1100: 20 2c 0a 24 30 30 37 38 37 41 38 31 44 42 36 39 ,.$00787A81DB69
1110: 41 38 35 31 20 2c 20 24 41 42 37 42 45 38 33 35 A851 , $AB7BE835
1120: 42 46 43 31 39 46 45 38 20 2c 20 24 43 33 35 41 BFC19FE8 , $C35A
1130: 31 38 42 36 45 31 31 41 39 46 30 35 20 2c 20 24 18B6E11A9F05 , $
1140: 46 34 46 41 44 33 43 32 36 39 43 45 41 39 39 35 F4FAD3C269CEA995
1150: 20 2c 0a 24 43 35 32 42 34 46 39 46 42 35 46 37 ,.$C52B4F9FB5F7
1160: 45 42 38 37 20 2c 20 24 42 46 30 36 36 38 39 30 EB87 , $BF066890
1170: 42 34 39 34 44 46 30 45 20 2c 20 24 45 36 36 35 B494DF0E , $E665
1180: 45 35 34 42 44 35 37 42 46 30 37 44 20 2c 20 24 E54BD57BF07D , $
1190: 39 46 36 36 32 36 35 30 45 31 43 41 41 38 42 33 9F662650E1CAA8B3
11a0: 20 2c 0a 24 42 36 30 46 43 42 42 32 30 35 45 31 ,.$B60FCBB205E1
11b0: 42 33 44 34 20 2c 20 24 32 31 44 34 37 46 30 35 B3D4 , $21D47F05
11c0: 42 31 36 43 45 45 34 36 20 2c 20 24 41 37 37 30 B16CEE46 , $A770
11d0: 36 44 39 44 41 34 44 33 36 42 33 31 20 2c 20 24 6D9DA4D36B31 , $
11e0: 32 33 30 32 38 44 31 43 38 38 36 35 37 38 33 39 23028D1C88657839
11f0: 20 2c 0a 24 45 30 46 33 42 45 39 38 43 30 44 38 ,.$E0F3BE98C0D8
1200: 45 39 32 45 20 2c 20 24 39 44 41 35 44 35 43 44 E92E , $9DA5D5CD
1210: 45 44 38 43 34 44 41 32 20 2c 20 24 38 32 37 31 ED8C4DA2 , $8271
1220: 30 39 42 46 41 37 35 34 43 45 41 34 20 2c 20 24 09BFA754CEA4 , $
1230: 34 33 35 35 37 31 46 38 38 45 34 32 42 43 31 46 435571F88E42BC1F
1240: 20 2c 0a 24 33 43 45 30 36 30 39 34 43 42 42 39 ,.$3CE06094CBB9
1250: 45 46 43 42 20 2c 20 24 32 43 30 33 34 34 37 44 EFCB , $2C03447D
1260: 39 35 42 30 30 39 37 37 20 2c 20 24 44 33 45 36 95B00977 , $D3E6
1270: 33 42 36 35 44 39 36 41 33 36 38 36 20 2c 20 24 3B65D96A3686 , $
1280: 41 35 30 43 37 32 44 37 34 33 37 42 43 37 46 45 A50C72D7437BC7FE
1290: 20 2c 0a 24 35 37 33 37 45 34 37 36 33 38 39 43 ,.$5737E476389C
12a0: 41 39 46 44 20 2c 20 24 33 43 38 46 38 34 39 35 A9FD , $3C8F8495
12b0: 45 44 39 46 42 36 42 42 20 2c 20 24 37 45 36 36 ED9FB6BB , $7E66
12c0: 42 46 30 31 42 44 44 45 38 41 43 39 20 2c 20 24 BF01BDDE8AC9 , $
12d0: 34 32 46 46 36 35 30 43 39 34 37 46 31 42 37 33 42FF650C947F1B73
12e0: 20 2c 0a 24 38 33 31 41 44 34 43 30 31 41 33 37 ,.$831AD4C01A37
12f0: 34 35 38 41 20 2c 20 24 41 42 38 36 32 39 36 39 458A , $AB862969
1300: 32 34 46 39 44 34 34 45 20 2c 20 24 44 30 34 35 24F9D44E , $D045
1310: 33 34 39 33 34 35 32 37 46 45 31 31 20 2c 20 24 34934527FE11 , $
1320: 41 44 36 37 42 31 38 44 33 32 36 42 41 30 35 36 AD67B18D326BA056
1330: 20 2c 0a 24 43 44 43 38 35 42 43 32 31 38 45 35 ,.$CDC85BC218E5
1340: 39 36 43 33 20 2c 20 24 39 37 35 33 36 43 44 36 96C3 , $97536CD6
1350: 35 30 38 32 41 35 38 38 20 2c 20 24 34 31 38 33 5082A588 , $4183
1360: 38 31 31 31 41 33 37 43 38 39 42 35 20 2c 20 24 8111A37C89B5 , $
1370: 31 45 36 37 30 41 43 37 41 35 39 30 35 36 34 38 1E670AC7A5905648
1380: 20 2c 0a 24 37 45 42 36 37 44 32 36 33 36 41 44 ,.$7EB67D2636AD
1390: 45 44 46 36 20 2c 20 24 30 35 36 30 35 31 34 46 EDF6 , $0560514F
13a0: 37 38 30 44 44 31 33 45 20 2c 20 24 38 42 37 38 780DD13E , $8B78
13b0: 41 39 34 42 36 43 39 39 30 37 30 38 20 2c 20 24 A94B6C990708 , $
13c0: 37 43 31 35 39 37 37 42 41 38 45 41 36 32 31 33 7C15977BA8EA6213
13d0: 20 2c 0a 24 38 43 38 45 38 39 38 44 33 35 46 38 ,.$8C8E898D35F8
13e0: 39 35 46 45 20 2c 20 24 31 41 32 43 41 38 45 45 95FE , $1A2CA8EE
13f0: 39 31 37 46 33 32 34 42 20 2c 20 24 32 43 44 33 917F324B , $2CD3
1400: 30 36 37 42 31 32 36 32 41 38 34 44 20 2c 20 24 067B1262A84D , $
1410: 31 36 39 43 30 39 35 36 44 36 30 31 31 32 34 31 169C0956D6011241
1420: 20 2c 0a 24 33 32 31 33 46 39 31 39 33 42 44 42 ,.$3213F9193BDB
1430: 33 43 36 39 20 2c 20 24 37 42 43 32 46 30 38 36 3C69 , $7BC2F086
1440: 34 45 37 43 34 38 30 45 20 2c 20 24 35 33 39 46 4E7C480E , $539F
1450: 38 32 30 30 36 41 42 30 35 42 32 43 20 2c 20 24 82006AB05B2C , $
1460: 44 36 38 34 44 44 35 43 36 39 41 37 36 46 37 33 D684DD5C69A76F73
1470: 20 2c 0a 24 31 36 38 41 34 34 45 34 45 30 46 41 ,.$168A44E4E0FA
1480: 30 35 30 34 20 2c 20 24 34 32 41 37 35 46 44 44 0504 , $42A75FDD
1490: 45 33 42 41 38 43 30 31 20 2c 20 24 46 42 34 38 E3BA8C01 , $FB48
14a0: 41 39 32 41 45 32 44 41 44 34 44 31 20 2c 20 24 A92AE2DAD4D1 , $
14b0: 38 36 31 32 31 38 39 39 44 43 37 34 32 39 43 37 86121899DC7429C7
14c0: 20 2c 0a 24 31 30 46 37 32 41 41 35 42 34 30 41 ,.$10F72AA5B40A
14d0: 33 34 34 41 20 2c 20 24 45 34 39 32 36 42 31 37 344A , $E4926B17
14e0: 38 31 46 38 43 39 30 43 20 2c 20 24 34 46 34 43 81F8C90C , $4F4C
14f0: 33 46 32 38 45 44 41 44 37 35 31 38 20 2c 20 24 3F28EDAD7518 , $
1500: 37 34 34 43 35 37 43 34 44 42 31 34 41 30 31 33 744C57C4DB14A013
1510: 20 2c 0a 24 34 35 30 46 43 32 34 42 33 30 36 31 ,.$450FC24B3061
1520: 33 36 41 45 20 2c 20 24 44 42 45 38 36 31 34 42 36AE , $DBE8614B
1530: 37 45 31 38 31 31 35 43 20 2c 20 24 41 34 43 44 7E18115C , $A4CD
1540: 36 36 38 31 31 42 30 46 38 37 46 43 20 2c 20 24 66811B0F87FC , $
1550: 33 31 39 38 34 35 30 30 30 39 39 44 30 36 46 35 31984500099D06F5
1560: 20 2c 0a 0a 3a 20 77 75 72 73 74 20 28 20 78 31 ,..: wurst ( x1
1570: 20 69 20 2d 2d 20 78 32 20 29 0a 20 20 20 20 63 i -- x2 ). c
1580: 65 6c 6c 73 20 27 72 6e 67 73 20 2b 20 40 20 3e ells 'rngs + @ >
1590: 72 20 64 75 70 20 32 2a 20 73 77 61 70 20 30 3c r dup 2* swap 0<
15a0: 20 2d 20 72 3e 20 78 6f 72 20 3b 0a 0a 3a 20 6d - r> xor ;..: m
15b0: 69 78 32 62 79 74 65 73 20 28 20 69 6e 64 65 78 ix2bytes ( index
15c0: 20 6e 20 6b 20 2d 2d 20 62 31 20 2e 2e 20 62 38 n k -- b1 .. b8
15d0: 20 69 6e 64 65 78 27 20 6e 20 29 20 77 75 72 73 index' n ) wurs
15e0: 74 2d 73 74 61 74 65 20 2b 20 38 20 30 20 44 4f t-state + 8 0 DO
15f0: 0a 09 3e 72 20 6f 76 65 72 20 77 75 72 73 74 2d ..>r over wurst-
1600: 73 6f 75 72 63 65 20 2b 20 63 40 20 72 40 20 63 source + c@ r@ c
1610: 40 20 78 6f 72 20 2d 72 6f 74 20 64 75 70 20 3e @ xor -rot dup >
1620: 72 20 2b 20 24 33 46 20 61 6e 64 20 72 3e 20 72 r + $3F and r> r
1630: 3e 20 38 20 2b 20 4c 4f 4f 50 0a 20 20 20 20 64 > 8 + LOOP. d
1640: 72 6f 70 20 3b 0a 0a 3a 20 62 79 74 65 73 32 73 rop ;..: bytes2s
1650: 75 6d 20 28 20 78 20 62 31 20 2e 2e 20 62 38 20 um ( x b1 .. b8
1660: 2d 2d 20 78 27 20 29 20 3e 72 20 3e 72 20 3e 72 -- x' ) >r >r >r
1670: 20 3e 72 20 20 3e 72 20 3e 72 20 3e 72 20 3e 72 >r >r >r >r >r
1680: 0a 20 20 20 20 72 3e 20 77 75 72 73 74 20 20 72 . r> wurst r
1690: 3e 20 77 75 72 73 74 20 20 72 3e 20 77 75 72 73 > wurst r> wurs
16a0: 74 20 20 72 3e 20 77 75 72 73 74 0a 20 20 20 20 t r> wurst.
16b0: 72 3e 20 77 75 72 73 74 20 20 72 3e 20 77 75 72 r> wurst r> wur
16c0: 73 74 20 20 72 3e 20 77 75 72 73 74 20 20 72 3e st r> wurst r>
16d0: 20 77 75 72 73 74 20 3b 0a 0a 43 72 65 61 74 65 wurst ;..Create
16e0: 20 72 6f 75 6e 64 23 20 31 33 20 63 2c 20 32 39 round# 13 c, 29
16f0: 20 63 2c 20 31 39 20 63 2c 20 32 33 20 63 2c 20 c, 19 c, 23 c,
1700: 33 31 20 63 2c 20 34 37 20 63 2c 20 31 37 20 63 31 c, 47 c, 17 c
1710: 2c 20 33 37 20 63 2c 20 5c 20 72 6f 75 6e 64 73 , 37 c, \ rounds
1720: 0a 43 72 65 61 74 65 20 70 65 72 6d 75 74 23 20 .Create permut#
1730: 32 20 63 2c 20 36 20 63 2c 20 31 20 63 2c 20 34 2 c, 6 c, 1 c, 4
1740: 20 63 2c 20 37 20 63 2c 20 30 20 63 2c 20 35 20 c, 7 c, 0 c, 5
1750: 63 2c 20 33 20 63 2c 20 5c 20 70 65 72 6d 75 74 c, 3 c, \ permut
1760: 20 6c 65 6e 67 74 68 20 31 35 0a 0a 3a 20 78 6f length 15..: xo
1770: 72 73 20 28 20 61 64 64 72 31 20 61 64 64 72 32 rs ( addr1 addr2
1780: 20 6e 20 2d 2d 20 29 20 62 6f 75 6e 64 73 20 3f n -- ) bounds ?
1790: 44 4f 0a 20 20 20 20 64 75 70 20 40 20 49 20 40 DO. dup @ I @
17a0: 20 78 6f 72 20 49 20 21 20 63 65 6c 6c 2b 20 20 xor I ! cell+
17b0: 63 65 6c 6c 20 2b 4c 4f 4f 50 20 20 64 72 6f 70 cell +LOOP drop
17c0: 20 3b 0a 3a 20 2b 21 73 20 28 20 61 64 64 72 31 ;.: +!s ( addr1
17d0: 20 61 64 64 72 32 20 6e 20 2d 2d 20 29 20 62 6f addr2 n -- ) bo
17e0: 75 6e 64 73 20 3f 44 4f 0a 20 20 20 20 64 75 70 unds ?DO. dup
17f0: 20 40 20 49 20 40 20 2b 20 49 20 21 20 63 65 6c @ I @ + I ! cel
1800: 6c 2b 20 20 31 20 63 65 6c 6c 73 20 2b 4c 4f 4f l+ 1 cells +LOO
1810: 50 20 20 64 72 6f 70 20 3b 0a 0a 3a 20 75 70 64 P drop ;..: upd
1820: 61 74 65 2d 73 74 61 74 65 20 28 20 2d 2d 20 29 ate-state ( -- )
1830: 0a 20 20 20 20 77 75 72 73 74 2d 73 74 61 74 65 . wurst-state
1840: 20 77 75 72 73 74 2d 73 6f 75 72 63 65 20 73 74 wurst-source st
1850: 61 74 65 23 20 78 6f 72 73 0a 20 20 20 20 6e 65 ate# xors. ne
1860: 78 74 73 74 61 74 65 20 77 75 72 73 74 2d 73 74 xtstate wurst-st
1870: 61 74 65 20 73 74 61 74 65 23 20 2b 21 73 20 3b ate state# +!s ;
1880: 0a 3a 20 72 6f 75 6e 64 20 28 20 6e 20 2d 2d 20 .: round ( n --
1890: 29 20 64 75 70 20 31 2d 20 73 77 61 70 20 20 38 ) dup 1- swap 8
18a0: 20 30 20 44 4f 0a 09 77 75 72 73 74 2d 73 74 61 0 DO..wurst-sta
18b0: 74 65 20 49 20 70 65 72 6d 75 74 23 20 2b 20 63 te I permut# + c
18c0: 40 20 63 65 6c 6c 73 20 2b 20 40 20 2d 72 6f 74 @ cells + @ -rot
18d0: 0a 09 49 20 6d 69 78 32 62 79 74 65 73 20 32 3e ..I mix2bytes 2>
18e0: 72 20 62 79 74 65 73 32 73 75 6d 20 32 72 3e 20 r bytes2sum 2r>
18f0: 72 6f 74 20 6e 65 78 74 73 74 61 74 65 20 49 20 rot nextstate I
1900: 63 65 6c 6c 73 20 2b 20 21 0a 20 20 20 20 4c 4f cells + !. LO
1910: 4f 50 20 32 64 72 6f 70 20 75 70 64 61 74 65 2d OP 2drop update-
1920: 73 74 61 74 65 20 3b 0a 0a 43 72 65 61 74 65 20 state ;..Create
1930: 27 72 6f 75 6e 64 2d 66 6c 61 67 73 0a 20 20 20 'round-flags.
1940: 20 24 31 30 20 63 2c 20 24 33 30 20 63 2c 20 24 $10 c, $30 c, $
1950: 31 30 20 63 2c 20 24 37 30 20 63 2c 20 24 31 30 10 c, $70 c, $10
1960: 20 63 2c 20 24 33 30 20 63 2c 20 24 31 30 20 63 c, $30 c, $10 c
1970: 2c 20 24 46 30 20 63 2c 0a 0a 3a 20 2b 65 6e 74 , $F0 c,..: +ent
1980: 72 6f 70 79 20 28 20 6d 65 73 73 61 67 65 20 2d ropy ( message -
1990: 2d 20 6d 65 73 73 61 67 65 27 20 29 0a 20 20 20 - message' ).
19a0: 20 64 75 70 20 77 75 72 73 74 2d 73 6f 75 72 63 dup wurst-sourc
19b0: 65 20 73 74 61 74 65 23 20 78 6f 72 73 0a 20 20 e state# xors.
19c0: 20 20 77 75 72 73 74 2d 73 74 61 74 65 20 6f 76 wurst-state ov
19d0: 65 72 20 73 74 61 74 65 23 20 78 6f 72 73 0a 20 er state# xors.
19e0: 20 20 20 73 74 61 74 65 23 20 2b 20 3b 0a 3a 20 state# + ;.:
19f0: 2d 65 6e 74 72 6f 70 79 20 28 20 6d 65 73 73 61 -entropy ( messa
1a00: 67 65 20 2d 2d 20 6d 65 73 73 61 67 65 27 20 29 ge -- message' )
1a10: 0a 20 20 20 20 77 75 72 73 74 2d 73 74 61 74 65 . wurst-state
1a20: 20 6f 76 65 72 20 73 74 61 74 65 23 20 78 6f 72 over state# xor
1a30: 73 0a 20 20 20 20 64 75 70 20 77 75 72 73 74 2d s. dup wurst-
1a40: 73 6f 75 72 63 65 20 73 74 61 74 65 23 20 78 6f source state# xo
1a50: 72 73 0a 20 20 20 20 73 74 61 74 65 23 20 2b 20 rs. state# +
1a60: 3b 0a 0a 3a 20 72 6f 75 6e 64 73 20 28 20 61 64 ;..: rounds ( ad
1a70: 64 72 20 6e 20 2d 2d 20 29 20 20 64 75 70 20 24 dr n -- ) dup $
1a80: 46 30 20 61 6e 64 20 3f 44 4f 0a 09 49 20 24 46 F0 and ?DO..I $F
1a90: 20 61 6e 64 20 72 6f 75 6e 64 23 20 2b 20 63 40 and round# + c@
1aa0: 20 72 6f 75 6e 64 0a 09 49 20 27 72 6f 75 6e 64 round..I 'round
1ab0: 2d 66 6c 61 67 73 20 49 20 24 46 20 61 6e 64 20 -flags I $F and
1ac0: 2b 20 63 40 20 61 6e 64 20 49 46 20 20 2b 65 6e + c@ and IF +en
1ad0: 74 72 6f 70 79 20 20 54 48 45 4e 0a 20 20 20 20 tropy THEN.
1ae0: 4c 4f 4f 50 20 64 72 6f 70 20 3b 0a 0a 3a 20 72 LOOP drop ;..: r
1af0: 6f 75 6e 64 73 2d 64 65 63 72 79 70 74 20 28 20 ounds-decrypt (
1b00: 61 64 64 72 20 6e 20 2d 2d 20 29 20 20 64 75 70 addr n -- ) dup
1b10: 20 24 46 30 20 61 6e 64 20 3f 44 4f 0a 09 49 20 $F0 and ?DO..I
1b20: 24 46 20 61 6e 64 20 72 6f 75 6e 64 23 20 2b 20 $F and round# +
1b30: 63 40 20 72 6f 75 6e 64 0a 09 49 20 27 72 6f 75 c@ round..I 'rou
1b40: 6e 64 2d 66 6c 61 67 73 20 49 20 24 46 20 61 6e nd-flags I $F an
1b50: 64 20 2b 20 63 40 20 61 6e 64 20 49 46 20 20 2d d + c@ and IF -
1b60: 65 6e 74 72 6f 70 79 20 20 54 48 45 4e 0a 20 20 entropy THEN.
1b70: 20 20 4c 4f 4f 50 20 64 72 6f 70 20 3b 0a LOOP drop ;.