Hex Artifact Content
Not logged in

Artifact 237e7328bf90a9477aee923f9c47844f159dd187:


0000: 2f 2a 0a 43 6f 64 65 20 61 75 74 6f 6d 61 74 69  /*.Code automati
0010: 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20  cally generated 
0020: 62 79 20 4b 65 63 63 61 6b 54 6f 6f 6c 73 21 0a  by KeccakTools!.
0030: 0a 54 68 65 20 4b 65 63 63 61 6b 20 73 70 6f 6e  .The Keccak spon
0040: 67 65 20 66 75 6e 63 74 69 6f 6e 2c 20 64 65 73  ge function, des
0050: 69 67 6e 65 64 20 62 79 20 47 75 69 64 6f 20 42  igned by Guido B
0060: 65 72 74 6f 6e 69 2c 20 4a 6f 61 6e 20 44 61 65  ertoni, Joan Dae
0070: 6d 65 6e 2c 0a 4d 69 63 68 61 c3 ab 6c 20 50 65  men,.Micha..l Pe
0080: 65 74 65 72 73 20 61 6e 64 20 47 69 6c 6c 65 73  eters and Gilles
0090: 20 56 61 6e 20 41 73 73 63 68 65 2e 20 46 6f 72   Van Assche. For
00a0: 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f   more informatio
00b0: 6e 2c 20 66 65 65 64 62 61 63 6b 20 6f 72 0a 71  n, feedback or.q
00c0: 75 65 73 74 69 6f 6e 73 2c 20 70 6c 65 61 73 65  uestions, please
00d0: 20 72 65 66 65 72 20 74 6f 20 6f 75 72 20 77 65   refer to our we
00e0: 62 73 69 74 65 3a 20 68 74 74 70 3a 2f 2f 6b 65  bsite: http://ke
00f0: 63 63 61 6b 2e 6e 6f 65 6b 65 6f 6e 2e 6f 72 67  ccak.noekeon.org
0100: 2f 0a 0a 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  /..Implementatio
0110: 6e 20 62 79 20 74 68 65 20 64 65 73 69 67 6e 65  n by the designe
0120: 72 73 2c 0a 68 65 72 65 62 79 20 64 65 6e 6f 74  rs,.hereby denot
0130: 65 64 20 61 73 20 22 74 68 65 20 69 6d 70 6c 65  ed as "the imple
0140: 6d 65 6e 74 65 72 22 2e 0a 0a 54 6f 20 74 68 65  menter"...To the
0150: 20 65 78 74 65 6e 74 20 70 6f 73 73 69 62 6c 65   extent possible
0160: 20 75 6e 64 65 72 20 6c 61 77 2c 20 74 68 65 20   under law, the 
0170: 69 6d 70 6c 65 6d 65 6e 74 65 72 20 68 61 73 20  implementer has 
0180: 77 61 69 76 65 64 20 61 6c 6c 20 63 6f 70 79 72  waived all copyr
0190: 69 67 68 74 0a 61 6e 64 20 72 65 6c 61 74 65 64  ight.and related
01a0: 20 6f 72 20 6e 65 69 67 68 62 6f 72 69 6e 67 20   or neighboring 
01b0: 72 69 67 68 74 73 20 74 6f 20 74 68 65 20 73 6f  rights to the so
01c0: 75 72 63 65 20 63 6f 64 65 20 69 6e 20 74 68 69  urce code in thi
01d0: 73 20 66 69 6c 65 2e 0a 68 74 74 70 3a 2f 2f 63  s file..http://c
01e0: 72 65 61 74 69 76 65 63 6f 6d 6d 6f 6e 73 2e 6f  reativecommons.o
01f0: 72 67 2f 70 75 62 6c 69 63 64 6f 6d 61 69 6e 2f  rg/publicdomain/
0200: 7a 65 72 6f 2f 31 2e 30 2f 0a 2a 2f 0a 0a 23 64  zero/1.0/.*/..#d
0210: 65 66 69 6e 65 20 64 65 63 6c 61 72 65 41 42 43  efine declareABC
0220: 44 45 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20  DE \.    UINT32 
0230: 41 62 61 30 2c 20 41 62 65 30 2c 20 41 62 69 30  Aba0, Abe0, Abi0
0240: 2c 20 41 62 6f 30 2c 20 41 62 75 30 3b 20 5c 0a  , Abo0, Abu0; \.
0250: 20 20 20 20 55 49 4e 54 33 32 20 41 62 61 31 2c      UINT32 Aba1,
0260: 20 41 62 65 31 2c 20 41 62 69 31 2c 20 41 62 6f   Abe1, Abi1, Abo
0270: 31 2c 20 41 62 75 31 3b 20 5c 0a 20 20 20 20 55  1, Abu1; \.    U
0280: 49 4e 54 33 32 20 41 67 61 30 2c 20 41 67 65 30  INT32 Aga0, Age0
0290: 2c 20 41 67 69 30 2c 20 41 67 6f 30 2c 20 41 67  , Agi0, Ago0, Ag
02a0: 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32  u0; \.    UINT32
02b0: 20 41 67 61 31 2c 20 41 67 65 31 2c 20 41 67 69   Aga1, Age1, Agi
02c0: 31 2c 20 41 67 6f 31 2c 20 41 67 75 31 3b 20 5c  1, Ago1, Agu1; \
02d0: 0a 20 20 20 20 55 49 4e 54 33 32 20 41 6b 61 30  .    UINT32 Aka0
02e0: 2c 20 41 6b 65 30 2c 20 41 6b 69 30 2c 20 41 6b  , Ake0, Aki0, Ak
02f0: 6f 30 2c 20 41 6b 75 30 3b 20 5c 0a 20 20 20 20  o0, Aku0; \.    
0300: 55 49 4e 54 33 32 20 41 6b 61 31 2c 20 41 6b 65  UINT32 Aka1, Ake
0310: 31 2c 20 41 6b 69 31 2c 20 41 6b 6f 31 2c 20 41  1, Aki1, Ako1, A
0320: 6b 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33  ku1; \.    UINT3
0330: 32 20 41 6d 61 30 2c 20 41 6d 65 30 2c 20 41 6d  2 Ama0, Ame0, Am
0340: 69 30 2c 20 41 6d 6f 30 2c 20 41 6d 75 30 3b 20  i0, Amo0, Amu0; 
0350: 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 41 6d 61  \.    UINT32 Ama
0360: 31 2c 20 41 6d 65 31 2c 20 41 6d 69 31 2c 20 41  1, Ame1, Ami1, A
0370: 6d 6f 31 2c 20 41 6d 75 31 3b 20 5c 0a 20 20 20  mo1, Amu1; \.   
0380: 20 55 49 4e 54 33 32 20 41 73 61 30 2c 20 41 73   UINT32 Asa0, As
0390: 65 30 2c 20 41 73 69 30 2c 20 41 73 6f 30 2c 20  e0, Asi0, Aso0, 
03a0: 41 73 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54  Asu0; \.    UINT
03b0: 33 32 20 41 73 61 31 2c 20 41 73 65 31 2c 20 41  32 Asa1, Ase1, A
03c0: 73 69 31 2c 20 41 73 6f 31 2c 20 41 73 75 31 3b  si1, Aso1, Asu1;
03d0: 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 42 62   \.    UINT32 Bb
03e0: 61 30 2c 20 42 62 65 30 2c 20 42 62 69 30 2c 20  a0, Bbe0, Bbi0, 
03f0: 42 62 6f 30 2c 20 42 62 75 30 3b 20 5c 0a 20 20  Bbo0, Bbu0; \.  
0400: 20 20 55 49 4e 54 33 32 20 42 62 61 31 2c 20 42    UINT32 Bba1, B
0410: 62 65 31 2c 20 42 62 69 31 2c 20 42 62 6f 31 2c  be1, Bbi1, Bbo1,
0420: 20 42 62 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e   Bbu1; \.    UIN
0430: 54 33 32 20 42 67 61 30 2c 20 42 67 65 30 2c 20  T32 Bga0, Bge0, 
0440: 42 67 69 30 2c 20 42 67 6f 30 2c 20 42 67 75 30  Bgi0, Bgo0, Bgu0
0450: 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 42  ; \.    UINT32 B
0460: 67 61 31 2c 20 42 67 65 31 2c 20 42 67 69 31 2c  ga1, Bge1, Bgi1,
0470: 20 42 67 6f 31 2c 20 42 67 75 31 3b 20 5c 0a 20   Bgo1, Bgu1; \. 
0480: 20 20 20 55 49 4e 54 33 32 20 42 6b 61 30 2c 20     UINT32 Bka0, 
0490: 42 6b 65 30 2c 20 42 6b 69 30 2c 20 42 6b 6f 30  Bke0, Bki0, Bko0
04a0: 2c 20 42 6b 75 30 3b 20 5c 0a 20 20 20 20 55 49  , Bku0; \.    UI
04b0: 4e 54 33 32 20 42 6b 61 31 2c 20 42 6b 65 31 2c  NT32 Bka1, Bke1,
04c0: 20 42 6b 69 31 2c 20 42 6b 6f 31 2c 20 42 6b 75   Bki1, Bko1, Bku
04d0: 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20  1; \.    UINT32 
04e0: 42 6d 61 30 2c 20 42 6d 65 30 2c 20 42 6d 69 30  Bma0, Bme0, Bmi0
04f0: 2c 20 42 6d 6f 30 2c 20 42 6d 75 30 3b 20 5c 0a  , Bmo0, Bmu0; \.
0500: 20 20 20 20 55 49 4e 54 33 32 20 42 6d 61 31 2c      UINT32 Bma1,
0510: 20 42 6d 65 31 2c 20 42 6d 69 31 2c 20 42 6d 6f   Bme1, Bmi1, Bmo
0520: 31 2c 20 42 6d 75 31 3b 20 5c 0a 20 20 20 20 55  1, Bmu1; \.    U
0530: 49 4e 54 33 32 20 42 73 61 30 2c 20 42 73 65 30  INT32 Bsa0, Bse0
0540: 2c 20 42 73 69 30 2c 20 42 73 6f 30 2c 20 42 73  , Bsi0, Bso0, Bs
0550: 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32  u0; \.    UINT32
0560: 20 42 73 61 31 2c 20 42 73 65 31 2c 20 42 73 69   Bsa1, Bse1, Bsi
0570: 31 2c 20 42 73 6f 31 2c 20 42 73 75 31 3b 20 5c  1, Bso1, Bsu1; \
0580: 0a 20 20 20 20 55 49 4e 54 33 32 20 43 61 30 2c  .    UINT32 Ca0,
0590: 20 43 65 30 2c 20 43 69 30 2c 20 43 6f 30 2c 20   Ce0, Ci0, Co0, 
05a0: 43 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33  Cu0; \.    UINT3
05b0: 32 20 43 61 31 2c 20 43 65 31 2c 20 43 69 31 2c  2 Ca1, Ce1, Ci1,
05c0: 20 43 6f 31 2c 20 43 75 31 3b 20 5c 0a 20 20 20   Co1, Cu1; \.   
05d0: 20 55 49 4e 54 33 32 20 44 61 30 2c 20 44 65 30   UINT32 Da0, De0
05e0: 2c 20 44 69 30 2c 20 44 6f 30 2c 20 44 75 30 3b  , Di0, Do0, Du0;
05f0: 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 44 61   \.    UINT32 Da
0600: 31 2c 20 44 65 31 2c 20 44 69 31 2c 20 44 6f 31  1, De1, Di1, Do1
0610: 2c 20 44 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e  , Du1; \.    UIN
0620: 54 33 32 20 45 62 61 30 2c 20 45 62 65 30 2c 20  T32 Eba0, Ebe0, 
0630: 45 62 69 30 2c 20 45 62 6f 30 2c 20 45 62 75 30  Ebi0, Ebo0, Ebu0
0640: 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 45  ; \.    UINT32 E
0650: 62 61 31 2c 20 45 62 65 31 2c 20 45 62 69 31 2c  ba1, Ebe1, Ebi1,
0660: 20 45 62 6f 31 2c 20 45 62 75 31 3b 20 5c 0a 20   Ebo1, Ebu1; \. 
0670: 20 20 20 55 49 4e 54 33 32 20 45 67 61 30 2c 20     UINT32 Ega0, 
0680: 45 67 65 30 2c 20 45 67 69 30 2c 20 45 67 6f 30  Ege0, Egi0, Ego0
0690: 2c 20 45 67 75 30 3b 20 5c 0a 20 20 20 20 55 49  , Egu0; \.    UI
06a0: 4e 54 33 32 20 45 67 61 31 2c 20 45 67 65 31 2c  NT32 Ega1, Ege1,
06b0: 20 45 67 69 31 2c 20 45 67 6f 31 2c 20 45 67 75   Egi1, Ego1, Egu
06c0: 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20  1; \.    UINT32 
06d0: 45 6b 61 30 2c 20 45 6b 65 30 2c 20 45 6b 69 30  Eka0, Eke0, Eki0
06e0: 2c 20 45 6b 6f 30 2c 20 45 6b 75 30 3b 20 5c 0a  , Eko0, Eku0; \.
06f0: 20 20 20 20 55 49 4e 54 33 32 20 45 6b 61 31 2c      UINT32 Eka1,
0700: 20 45 6b 65 31 2c 20 45 6b 69 31 2c 20 45 6b 6f   Eke1, Eki1, Eko
0710: 31 2c 20 45 6b 75 31 3b 20 5c 0a 20 20 20 20 55  1, Eku1; \.    U
0720: 49 4e 54 33 32 20 45 6d 61 30 2c 20 45 6d 65 30  INT32 Ema0, Eme0
0730: 2c 20 45 6d 69 30 2c 20 45 6d 6f 30 2c 20 45 6d  , Emi0, Emo0, Em
0740: 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32  u0; \.    UINT32
0750: 20 45 6d 61 31 2c 20 45 6d 65 31 2c 20 45 6d 69   Ema1, Eme1, Emi
0760: 31 2c 20 45 6d 6f 31 2c 20 45 6d 75 31 3b 20 5c  1, Emo1, Emu1; \
0770: 0a 20 20 20 20 55 49 4e 54 33 32 20 45 73 61 30  .    UINT32 Esa0
0780: 2c 20 45 73 65 30 2c 20 45 73 69 30 2c 20 45 73  , Ese0, Esi0, Es
0790: 6f 30 2c 20 45 73 75 30 3b 20 5c 0a 20 20 20 20  o0, Esu0; \.    
07a0: 55 49 4e 54 33 32 20 45 73 61 31 2c 20 45 73 65  UINT32 Esa1, Ese
07b0: 31 2c 20 45 73 69 31 2c 20 45 73 6f 31 2c 20 45  1, Esi1, Eso1, E
07c0: 73 75 31 3b 20 5c 0a 0a 23 64 65 66 69 6e 65 20  su1; \..#define 
07d0: 70 72 65 70 61 72 65 54 68 65 74 61 20 5c 0a 20  prepareTheta \. 
07e0: 20 20 20 43 61 30 20 3d 20 41 62 61 30 5e 41 67     Ca0 = Aba0^Ag
07f0: 61 30 5e 41 6b 61 30 5e 41 6d 61 30 5e 41 73 61  a0^Aka0^Ama0^Asa
0800: 30 3b 20 5c 0a 20 20 20 20 43 61 31 20 3d 20 41  0; \.    Ca1 = A
0810: 62 61 31 5e 41 67 61 31 5e 41 6b 61 31 5e 41 6d  ba1^Aga1^Aka1^Am
0820: 61 31 5e 41 73 61 31 3b 20 5c 0a 20 20 20 20 43  a1^Asa1; \.    C
0830: 65 30 20 3d 20 41 62 65 30 5e 41 67 65 30 5e 41  e0 = Abe0^Age0^A
0840: 6b 65 30 5e 41 6d 65 30 5e 41 73 65 30 3b 20 5c  ke0^Ame0^Ase0; \
0850: 0a 20 20 20 20 43 65 31 20 3d 20 41 62 65 31 5e  .    Ce1 = Abe1^
0860: 41 67 65 31 5e 41 6b 65 31 5e 41 6d 65 31 5e 41  Age1^Ake1^Ame1^A
0870: 73 65 31 3b 20 5c 0a 20 20 20 20 43 69 30 20 3d  se1; \.    Ci0 =
0880: 20 41 62 69 30 5e 41 67 69 30 5e 41 6b 69 30 5e   Abi0^Agi0^Aki0^
0890: 41 6d 69 30 5e 41 73 69 30 3b 20 5c 0a 20 20 20  Ami0^Asi0; \.   
08a0: 20 43 69 31 20 3d 20 41 62 69 31 5e 41 67 69 31   Ci1 = Abi1^Agi1
08b0: 5e 41 6b 69 31 5e 41 6d 69 31 5e 41 73 69 31 3b  ^Aki1^Ami1^Asi1;
08c0: 20 5c 0a 20 20 20 20 43 6f 30 20 3d 20 41 62 6f   \.    Co0 = Abo
08d0: 30 5e 41 67 6f 30 5e 41 6b 6f 30 5e 41 6d 6f 30  0^Ago0^Ako0^Amo0
08e0: 5e 41 73 6f 30 3b 20 5c 0a 20 20 20 20 43 6f 31  ^Aso0; \.    Co1
08f0: 20 3d 20 41 62 6f 31 5e 41 67 6f 31 5e 41 6b 6f   = Abo1^Ago1^Ako
0900: 31 5e 41 6d 6f 31 5e 41 73 6f 31 3b 20 5c 0a 20  1^Amo1^Aso1; \. 
0910: 20 20 20 43 75 30 20 3d 20 41 62 75 30 5e 41 67     Cu0 = Abu0^Ag
0920: 75 30 5e 41 6b 75 30 5e 41 6d 75 30 5e 41 73 75  u0^Aku0^Amu0^Asu
0930: 30 3b 20 5c 0a 20 20 20 20 43 75 31 20 3d 20 41  0; \.    Cu1 = A
0940: 62 75 31 5e 41 67 75 31 5e 41 6b 75 31 5e 41 6d  bu1^Agu1^Aku1^Am
0950: 75 31 5e 41 73 75 31 3b 20 5c 0a 0a 23 69 66 64  u1^Asu1; \..#ifd
0960: 65 66 20 55 73 65 42 65 62 69 67 6f 6b 69 6d 69  ef UseBebigokimi
0970: 73 61 0a 2f 2f 20 2d 2d 2d 20 43 6f 64 65 20 66  sa.// --- Code f
0980: 6f 72 20 72 6f 75 6e 64 2c 20 77 69 74 68 20 70  or round, with p
0990: 72 65 70 61 72 65 2d 74 68 65 74 61 20 28 6c 61  repare-theta (la
09a0: 6e 65 20 63 6f 6d 70 6c 65 6d 65 6e 74 69 6e 67  ne complementing
09b0: 20 70 61 74 74 65 72 6e 20 27 62 65 62 69 67 6f   pattern 'bebigo
09c0: 6b 69 6d 69 73 61 27 29 0a 2f 2f 20 2d 2d 2d 20  kimisa').// --- 
09d0: 75 73 69 6e 67 20 66 61 63 74 6f 72 20 32 20 69  using factor 2 i
09e0: 6e 74 65 72 6c 65 61 76 69 6e 67 2c 20 36 34 2d  nterleaving, 64-
09f0: 62 69 74 20 6c 61 6e 65 73 20 6d 61 70 70 65 64  bit lanes mapped
0a00: 20 74 6f 20 33 32 2d 62 69 74 20 77 6f 72 64 73   to 32-bit words
0a10: 0a 23 64 65 66 69 6e 65 20 74 68 65 74 61 52 68  .#define thetaRh
0a20: 6f 50 69 43 68 69 49 6f 74 61 50 72 65 70 61 72  oPiChiIotaPrepar
0a30: 65 54 68 65 74 61 28 69 2c 20 41 2c 20 45 29 20  eTheta(i, A, E) 
0a40: 5c 0a 20 20 20 20 44 61 30 20 3d 20 43 75 30 5e  \.    Da0 = Cu0^
0a50: 52 4f 4c 33 32 28 43 65 31 2c 20 31 29 3b 20 5c  ROL32(Ce1, 1); \
0a60: 0a 20 20 20 20 44 61 31 20 3d 20 43 75 31 5e 43  .    Da1 = Cu1^C
0a70: 65 30 3b 20 5c 0a 20 20 20 20 44 65 30 20 3d 20  e0; \.    De0 = 
0a80: 43 61 30 5e 52 4f 4c 33 32 28 43 69 31 2c 20 31  Ca0^ROL32(Ci1, 1
0a90: 29 3b 20 5c 0a 20 20 20 20 44 65 31 20 3d 20 43  ); \.    De1 = C
0aa0: 61 31 5e 43 69 30 3b 20 5c 0a 20 20 20 20 44 69  a1^Ci0; \.    Di
0ab0: 30 20 3d 20 43 65 30 5e 52 4f 4c 33 32 28 43 6f  0 = Ce0^ROL32(Co
0ac0: 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 69 31  1, 1); \.    Di1
0ad0: 20 3d 20 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 20   = Ce1^Co0; \.  
0ae0: 20 20 44 6f 30 20 3d 20 43 69 30 5e 52 4f 4c 33    Do0 = Ci0^ROL3
0af0: 32 28 43 75 31 2c 20 31 29 3b 20 5c 0a 20 20 20  2(Cu1, 1); \.   
0b00: 20 44 6f 31 20 3d 20 43 69 31 5e 43 75 30 3b 20   Do1 = Ci1^Cu0; 
0b10: 5c 0a 20 20 20 20 44 75 30 20 3d 20 43 6f 30 5e  \.    Du0 = Co0^
0b20: 52 4f 4c 33 32 28 43 61 31 2c 20 31 29 3b 20 5c  ROL32(Ca1, 1); \
0b30: 0a 20 20 20 20 44 75 31 20 3d 20 43 6f 31 5e 43  .    Du1 = Co1^C
0b40: 61 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62  a0; \.\.    A##b
0b50: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20  a0 ^= Da0; \.   
0b60: 20 42 62 61 30 20 3d 20 41 23 23 62 61 30 3b 20   Bba0 = A##ba0; 
0b70: 5c 0a 20 20 20 20 41 23 23 67 65 30 20 5e 3d 20  \.    A##ge0 ^= 
0b80: 44 65 30 3b 20 5c 0a 20 20 20 20 42 62 65 30 20  De0; \.    Bbe0 
0b90: 3d 20 52 4f 4c 33 32 28 41 23 23 67 65 30 2c 20  = ROL32(A##ge0, 
0ba0: 32 32 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 69  22); \.    A##ki
0bb0: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20  1 ^= Di1; \.    
0bc0: 42 62 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bbi0 = ROL32(A##
0bd0: 6b 69 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20 20  ki1, 22); \.    
0be0: 45 23 23 62 61 30 20 3d 20 20 20 42 62 61 30 20  E##ba0 =   Bba0 
0bf0: 5e 28 20 20 42 62 65 30 20 7c 20 20 42 62 69 30  ^(  Bbe0 |  Bbi0
0c00: 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 30   ); \.    E##ba0
0c10: 20 5e 3d 20 4b 65 63 63 61 6b 46 31 36 30 30 52   ^= KeccakF1600R
0c20: 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 6e  oundConstants_in
0c30: 74 32 5f 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 43  t2_0[i]; \.    C
0c40: 61 30 20 3d 20 45 23 23 62 61 30 3b 20 5c 0a 20  a0 = E##ba0; \. 
0c50: 20 20 20 41 23 23 6d 6f 31 20 5e 3d 20 44 6f 31     A##mo1 ^= Do1
0c60: 3b 20 5c 0a 20 20 20 20 42 62 6f 30 20 3d 20 52  ; \.    Bbo0 = R
0c70: 4f 4c 33 32 28 41 23 23 6d 6f 31 2c 20 31 31 29  OL32(A##mo1, 11)
0c80: 3b 20 5c 0a 20 20 20 20 45 23 23 62 65 30 20 3d  ; \.    E##be0 =
0c90: 20 20 20 42 62 65 30 20 5e 28 28 7e 42 62 69 30     Bbe0 ^((~Bbi0
0ca0: 29 7c 20 20 42 62 6f 30 20 29 3b 20 5c 0a 20 20  )|  Bbo0 ); \.  
0cb0: 20 20 43 65 30 20 3d 20 45 23 23 62 65 30 3b 20    Ce0 = E##be0; 
0cc0: 5c 0a 20 20 20 20 41 23 23 73 75 30 20 5e 3d 20  \.    A##su0 ^= 
0cd0: 44 75 30 3b 20 5c 0a 20 20 20 20 42 62 75 30 20  Du0; \.    Bbu0 
0ce0: 3d 20 52 4f 4c 33 32 28 41 23 23 73 75 30 2c 20  = ROL32(A##su0, 
0cf0: 37 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 69 30  7); \.    E##bi0
0d00: 20 3d 20 20 20 42 62 69 30 20 5e 28 20 20 42 62   =   Bbi0 ^(  Bb
0d10: 6f 30 20 26 20 20 42 62 75 30 20 29 3b 20 5c 0a  o0 &  Bbu0 ); \.
0d20: 20 20 20 20 43 69 30 20 3d 20 45 23 23 62 69 30      Ci0 = E##bi0
0d30: 3b 20 5c 0a 20 20 20 20 45 23 23 62 6f 30 20 3d  ; \.    E##bo0 =
0d40: 20 20 20 42 62 6f 30 20 5e 28 20 20 42 62 75 30     Bbo0 ^(  Bbu0
0d50: 20 7c 20 20 42 62 61 30 20 29 3b 20 5c 0a 20 20   |  Bba0 ); \.  
0d60: 20 20 43 6f 30 20 3d 20 45 23 23 62 6f 30 3b 20    Co0 = E##bo0; 
0d70: 5c 0a 20 20 20 20 45 23 23 62 75 30 20 3d 20 20  \.    E##bu0 =  
0d80: 20 42 62 75 30 20 5e 28 20 20 42 62 61 30 20 26   Bbu0 ^(  Bba0 &
0d90: 20 20 42 62 65 30 20 29 3b 20 5c 0a 20 20 20 20    Bbe0 ); \.    
0da0: 43 75 30 20 3d 20 45 23 23 62 75 30 3b 20 5c 0a  Cu0 = E##bu0; \.
0db0: 5c 0a 20 20 20 20 41 23 23 62 61 31 20 5e 3d 20  \.    A##ba1 ^= 
0dc0: 44 61 31 3b 20 5c 0a 20 20 20 20 42 62 61 31 20  Da1; \.    Bba1 
0dd0: 3d 20 41 23 23 62 61 31 3b 20 5c 0a 20 20 20 20  = A##ba1; \.    
0de0: 41 23 23 67 65 31 20 5e 3d 20 44 65 31 3b 20 5c  A##ge1 ^= De1; \
0df0: 0a 20 20 20 20 42 62 65 31 20 3d 20 52 4f 4c 33  .    Bbe1 = ROL3
0e00: 32 28 41 23 23 67 65 31 2c 20 32 32 29 3b 20 5c  2(A##ge1, 22); \
0e10: 0a 20 20 20 20 41 23 23 6b 69 30 20 5e 3d 20 44  .    A##ki0 ^= D
0e20: 69 30 3b 20 5c 0a 20 20 20 20 42 62 69 31 20 3d  i0; \.    Bbi1 =
0e30: 20 52 4f 4c 33 32 28 41 23 23 6b 69 30 2c 20 32   ROL32(A##ki0, 2
0e40: 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 31  1); \.    E##ba1
0e50: 20 3d 20 20 20 42 62 61 31 20 5e 28 20 20 42 62   =   Bba1 ^(  Bb
0e60: 65 31 20 7c 20 20 42 62 69 31 20 29 3b 20 5c 0a  e1 |  Bbi1 ); \.
0e70: 20 20 20 20 45 23 23 62 61 31 20 5e 3d 20 4b 65      E##ba1 ^= Ke
0e80: 63 63 61 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f  ccakF1600RoundCo
0e90: 6e 73 74 61 6e 74 73 5f 69 6e 74 32 5f 31 5b 69  nstants_int2_1[i
0ea0: 5d 3b 20 5c 0a 20 20 20 20 43 61 31 20 3d 20 45  ]; \.    Ca1 = E
0eb0: 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23  ##ba1; \.    A##
0ec0: 6d 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20  mo0 ^= Do0; \.  
0ed0: 20 20 42 62 6f 31 20 3d 20 52 4f 4c 33 32 28 41    Bbo1 = ROL32(A
0ee0: 23 23 6d 6f 30 2c 20 31 30 29 3b 20 5c 0a 20 20  ##mo0, 10); \.  
0ef0: 20 20 45 23 23 62 65 31 20 3d 20 20 20 42 62 65    E##be1 =   Bbe
0f00: 31 20 5e 28 28 7e 42 62 69 31 29 7c 20 20 42 62  1 ^((~Bbi1)|  Bb
0f10: 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 31 20  o1 ); \.    Ce1 
0f20: 3d 20 45 23 23 62 65 31 3b 20 5c 0a 20 20 20 20  = E##be1; \.    
0f30: 41 23 23 73 75 31 20 5e 3d 20 44 75 31 3b 20 5c  A##su1 ^= Du1; \
0f40: 0a 20 20 20 20 42 62 75 31 20 3d 20 52 4f 4c 33  .    Bbu1 = ROL3
0f50: 32 28 41 23 23 73 75 31 2c 20 37 29 3b 20 5c 0a  2(A##su1, 7); \.
0f60: 20 20 20 20 45 23 23 62 69 31 20 3d 20 20 20 42      E##bi1 =   B
0f70: 62 69 31 20 5e 28 20 20 42 62 6f 31 20 26 20 20  bi1 ^(  Bbo1 &  
0f80: 42 62 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 69  Bbu1 ); \.    Ci
0f90: 31 20 3d 20 45 23 23 62 69 31 3b 20 5c 0a 20 20  1 = E##bi1; \.  
0fa0: 20 20 45 23 23 62 6f 31 20 3d 20 20 20 42 62 6f    E##bo1 =   Bbo
0fb0: 31 20 5e 28 20 20 42 62 75 31 20 7c 20 20 42 62  1 ^(  Bbu1 |  Bb
0fc0: 61 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f 31 20  a1 ); \.    Co1 
0fd0: 3d 20 45 23 23 62 6f 31 3b 20 5c 0a 20 20 20 20  = E##bo1; \.    
0fe0: 45 23 23 62 75 31 20 3d 20 20 20 42 62 75 31 20  E##bu1 =   Bbu1 
0ff0: 5e 28 20 20 42 62 61 31 20 26 20 20 42 62 65 31  ^(  Bba1 &  Bbe1
1000: 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 20 3d 20   ); \.    Cu1 = 
1010: 45 23 23 62 75 31 3b 20 5c 0a 5c 0a 20 20 20 20  E##bu1; \.\.    
1020: 41 23 23 62 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c  A##bo0 ^= Do0; \
1030: 0a 20 20 20 20 42 67 61 30 20 3d 20 52 4f 4c 33  .    Bga0 = ROL3
1040: 32 28 41 23 23 62 6f 30 2c 20 31 34 29 3b 20 5c  2(A##bo0, 14); \
1050: 0a 20 20 20 20 41 23 23 67 75 30 20 5e 3d 20 44  .    A##gu0 ^= D
1060: 75 30 3b 20 5c 0a 20 20 20 20 42 67 65 30 20 3d  u0; \.    Bge0 =
1070: 20 52 4f 4c 33 32 28 41 23 23 67 75 30 2c 20 31   ROL32(A##gu0, 1
1080: 30 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 61 31  0); \.    A##ka1
1090: 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42   ^= Da1; \.    B
10a0: 67 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b  gi0 = ROL32(A##k
10b0: 61 31 2c 20 32 29 3b 20 5c 0a 20 20 20 20 45 23  a1, 2); \.    E#
10c0: 23 67 61 30 20 3d 20 20 20 42 67 61 30 20 5e 28  #ga0 =   Bga0 ^(
10d0: 20 20 42 67 65 30 20 7c 20 20 42 67 69 30 20 29    Bge0 |  Bgi0 )
10e0: 3b 20 5c 0a 20 20 20 20 43 61 30 20 5e 3d 20 45  ; \.    Ca0 ^= E
10f0: 23 23 67 61 30 3b 20 5c 0a 20 20 20 20 41 23 23  ##ga0; \.    A##
1100: 6d 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20  me1 ^= De1; \.  
1110: 20 20 42 67 6f 30 20 3d 20 52 4f 4c 33 32 28 41    Bgo0 = ROL32(A
1120: 23 23 6d 65 31 2c 20 32 33 29 3b 20 5c 0a 20 20  ##me1, 23); \.  
1130: 20 20 45 23 23 67 65 30 20 3d 20 20 20 42 67 65    E##ge0 =   Bge
1140: 30 20 5e 28 20 20 42 67 69 30 20 26 20 20 42 67  0 ^(  Bgi0 &  Bg
1150: 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43 65 30 20  o0 ); \.    Ce0 
1160: 5e 3d 20 45 23 23 67 65 30 3b 20 5c 0a 20 20 20  ^= E##ge0; \.   
1170: 20 41 23 23 73 69 31 20 5e 3d 20 44 69 31 3b 20   A##si1 ^= Di1; 
1180: 5c 0a 20 20 20 20 42 67 75 30 20 3d 20 52 4f 4c  \.    Bgu0 = ROL
1190: 33 32 28 41 23 23 73 69 31 2c 20 33 31 29 3b 20  32(A##si1, 31); 
11a0: 5c 0a 20 20 20 20 45 23 23 67 69 30 20 3d 20 20  \.    E##gi0 =  
11b0: 20 42 67 69 30 20 5e 28 20 20 42 67 6f 30 20 7c   Bgi0 ^(  Bgo0 |
11c0: 28 7e 42 67 75 30 29 29 3b 20 5c 0a 20 20 20 20  (~Bgu0)); \.    
11d0: 43 69 30 20 5e 3d 20 45 23 23 67 69 30 3b 20 5c  Ci0 ^= E##gi0; \
11e0: 0a 20 20 20 20 45 23 23 67 6f 30 20 3d 20 20 20  .    E##go0 =   
11f0: 42 67 6f 30 20 5e 28 20 20 42 67 75 30 20 7c 20  Bgo0 ^(  Bgu0 | 
1200: 20 42 67 61 30 20 29 3b 20 5c 0a 20 20 20 20 43   Bga0 ); \.    C
1210: 6f 30 20 5e 3d 20 45 23 23 67 6f 30 3b 20 5c 0a  o0 ^= E##go0; \.
1220: 20 20 20 20 45 23 23 67 75 30 20 3d 20 20 20 42      E##gu0 =   B
1230: 67 75 30 20 5e 28 20 20 42 67 61 30 20 26 20 20  gu0 ^(  Bga0 &  
1240: 42 67 65 30 20 29 3b 20 5c 0a 20 20 20 20 43 75  Bge0 ); \.    Cu
1250: 30 20 5e 3d 20 45 23 23 67 75 30 3b 20 5c 0a 5c  0 ^= E##gu0; \.\
1260: 0a 20 20 20 20 41 23 23 62 6f 31 20 5e 3d 20 44  .    A##bo1 ^= D
1270: 6f 31 3b 20 5c 0a 20 20 20 20 42 67 61 31 20 3d  o1; \.    Bga1 =
1280: 20 52 4f 4c 33 32 28 41 23 23 62 6f 31 2c 20 31   ROL32(A##bo1, 1
1290: 34 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 75 31  4); \.    A##gu1
12a0: 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42   ^= Du1; \.    B
12b0: 67 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67  ge1 = ROL32(A##g
12c0: 75 31 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 41  u1, 10); \.    A
12d0: 23 23 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a  ##ka0 ^= Da0; \.
12e0: 20 20 20 20 42 67 69 31 20 3d 20 52 4f 4c 33 32      Bgi1 = ROL32
12f0: 28 41 23 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20  (A##ka0, 1); \. 
1300: 20 20 20 45 23 23 67 61 31 20 3d 20 20 20 42 67     E##ga1 =   Bg
1310: 61 31 20 5e 28 20 20 42 67 65 31 20 7c 20 20 42  a1 ^(  Bge1 |  B
1320: 67 69 31 20 29 3b 20 5c 0a 20 20 20 20 43 61 31  gi1 ); \.    Ca1
1330: 20 5e 3d 20 45 23 23 67 61 31 3b 20 5c 0a 20 20   ^= E##ga1; \.  
1340: 20 20 41 23 23 6d 65 30 20 5e 3d 20 44 65 30 3b    A##me0 ^= De0;
1350: 20 5c 0a 20 20 20 20 42 67 6f 31 20 3d 20 52 4f   \.    Bgo1 = RO
1360: 4c 33 32 28 41 23 23 6d 65 30 2c 20 32 32 29 3b  L32(A##me0, 22);
1370: 20 5c 0a 20 20 20 20 45 23 23 67 65 31 20 3d 20   \.    E##ge1 = 
1380: 20 20 42 67 65 31 20 5e 28 20 20 42 67 69 31 20    Bge1 ^(  Bgi1 
1390: 26 20 20 42 67 6f 31 20 29 3b 20 5c 0a 20 20 20  &  Bgo1 ); \.   
13a0: 20 43 65 31 20 5e 3d 20 45 23 23 67 65 31 3b 20   Ce1 ^= E##ge1; 
13b0: 5c 0a 20 20 20 20 41 23 23 73 69 30 20 5e 3d 20  \.    A##si0 ^= 
13c0: 44 69 30 3b 20 5c 0a 20 20 20 20 42 67 75 31 20  Di0; \.    Bgu1 
13d0: 3d 20 52 4f 4c 33 32 28 41 23 23 73 69 30 2c 20  = ROL32(A##si0, 
13e0: 33 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 69  30); \.    E##gi
13f0: 31 20 3d 20 20 20 42 67 69 31 20 5e 28 20 20 42  1 =   Bgi1 ^(  B
1400: 67 6f 31 20 7c 28 7e 42 67 75 31 29 29 3b 20 5c  go1 |(~Bgu1)); \
1410: 0a 20 20 20 20 43 69 31 20 5e 3d 20 45 23 23 67  .    Ci1 ^= E##g
1420: 69 31 3b 20 5c 0a 20 20 20 20 45 23 23 67 6f 31  i1; \.    E##go1
1430: 20 3d 20 20 20 42 67 6f 31 20 5e 28 20 20 42 67   =   Bgo1 ^(  Bg
1440: 75 31 20 7c 20 20 42 67 61 31 20 29 3b 20 5c 0a  u1 |  Bga1 ); \.
1450: 20 20 20 20 43 6f 31 20 5e 3d 20 45 23 23 67 6f      Co1 ^= E##go
1460: 31 3b 20 5c 0a 20 20 20 20 45 23 23 67 75 31 20  1; \.    E##gu1 
1470: 3d 20 20 20 42 67 75 31 20 5e 28 20 20 42 67 61  =   Bgu1 ^(  Bga
1480: 31 20 26 20 20 42 67 65 31 20 29 3b 20 5c 0a 20  1 &  Bge1 ); \. 
1490: 20 20 20 43 75 31 20 5e 3d 20 45 23 23 67 75 31     Cu1 ^= E##gu1
14a0: 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 31  ; \.\.    A##be1
14b0: 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 20 20 42   ^= De1; \.    B
14c0: 6b 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62  ka0 = ROL32(A##b
14d0: 65 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 41 23  e1, 1); \.    A#
14e0: 23 67 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20  #gi0 ^= Di0; \. 
14f0: 20 20 20 42 6b 65 30 20 3d 20 52 4f 4c 33 32 28     Bke0 = ROL32(
1500: 41 23 23 67 69 30 2c 20 33 29 3b 20 5c 0a 20 20  A##gi0, 3); \.  
1510: 20 20 41 23 23 6b 6f 31 20 5e 3d 20 44 6f 31 3b    A##ko1 ^= Do1;
1520: 20 5c 0a 20 20 20 20 42 6b 69 30 20 3d 20 52 4f   \.    Bki0 = RO
1530: 4c 33 32 28 41 23 23 6b 6f 31 2c 20 31 33 29 3b  L32(A##ko1, 13);
1540: 20 5c 0a 20 20 20 20 45 23 23 6b 61 30 20 3d 20   \.    E##ka0 = 
1550: 20 20 42 6b 61 30 20 5e 28 20 20 42 6b 65 30 20    Bka0 ^(  Bke0 
1560: 7c 20 20 42 6b 69 30 20 29 3b 20 5c 0a 20 20 20  |  Bki0 ); \.   
1570: 20 43 61 30 20 5e 3d 20 45 23 23 6b 61 30 3b 20   Ca0 ^= E##ka0; 
1580: 5c 0a 20 20 20 20 41 23 23 6d 75 30 20 5e 3d 20  \.    A##mu0 ^= 
1590: 44 75 30 3b 20 5c 0a 20 20 20 20 42 6b 6f 30 20  Du0; \.    Bko0 
15a0: 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 30 2c 20  = ROL32(A##mu0, 
15b0: 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65 30  4); \.    E##ke0
15c0: 20 3d 20 20 20 42 6b 65 30 20 5e 28 20 20 42 6b   =   Bke0 ^(  Bk
15d0: 69 30 20 26 20 20 42 6b 6f 30 20 29 3b 20 5c 0a  i0 &  Bko0 ); \.
15e0: 20 20 20 20 43 65 30 20 5e 3d 20 45 23 23 6b 65      Ce0 ^= E##ke
15f0: 30 3b 20 5c 0a 20 20 20 20 41 23 23 73 61 30 20  0; \.    A##sa0 
1600: 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 20 42 6b  ^= Da0; \.    Bk
1610: 75 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 61  u0 = ROL32(A##sa
1620: 30 2c 20 39 29 3b 20 5c 0a 20 20 20 20 45 23 23  0, 9); \.    E##
1630: 6b 69 30 20 3d 20 20 20 42 6b 69 30 20 5e 28 28  ki0 =   Bki0 ^((
1640: 7e 42 6b 6f 30 29 26 20 20 42 6b 75 30 20 29 3b  ~Bko0)&  Bku0 );
1650: 20 5c 0a 20 20 20 20 43 69 30 20 5e 3d 20 45 23   \.    Ci0 ^= E#
1660: 23 6b 69 30 3b 20 5c 0a 20 20 20 20 45 23 23 6b  #ki0; \.    E##k
1670: 6f 30 20 3d 20 28 7e 42 6b 6f 30 29 5e 28 20 20  o0 = (~Bko0)^(  
1680: 42 6b 75 30 20 7c 20 20 42 6b 61 30 20 29 3b 20  Bku0 |  Bka0 ); 
1690: 5c 0a 20 20 20 20 43 6f 30 20 5e 3d 20 45 23 23  \.    Co0 ^= E##
16a0: 6b 6f 30 3b 20 5c 0a 20 20 20 20 45 23 23 6b 75  ko0; \.    E##ku
16b0: 30 20 3d 20 20 20 42 6b 75 30 20 5e 28 20 20 42  0 =   Bku0 ^(  B
16c0: 6b 61 30 20 26 20 20 42 6b 65 30 20 29 3b 20 5c  ka0 &  Bke0 ); \
16d0: 0a 20 20 20 20 43 75 30 20 5e 3d 20 45 23 23 6b  .    Cu0 ^= E##k
16e0: 75 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62  u0; \.\.    A##b
16f0: 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20  e0 ^= De0; \.   
1700: 20 42 6b 61 31 20 3d 20 41 23 23 62 65 30 3b 20   Bka1 = A##be0; 
1710: 5c 0a 20 20 20 20 41 23 23 67 69 31 20 5e 3d 20  \.    A##gi1 ^= 
1720: 44 69 31 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20  Di1; \.    Bke1 
1730: 3d 20 52 4f 4c 33 32 28 41 23 23 67 69 31 2c 20  = ROL32(A##gi1, 
1740: 33 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30  3); \.    A##ko0
1750: 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42   ^= Do0; \.    B
1760: 6b 69 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b  ki1 = ROL32(A##k
1770: 6f 30 2c 20 31 32 29 3b 20 5c 0a 20 20 20 20 45  o0, 12); \.    E
1780: 23 23 6b 61 31 20 3d 20 20 20 42 6b 61 31 20 5e  ##ka1 =   Bka1 ^
1790: 28 20 20 42 6b 65 31 20 7c 20 20 42 6b 69 31 20  (  Bke1 |  Bki1 
17a0: 29 3b 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d 20  ); \.    Ca1 ^= 
17b0: 45 23 23 6b 61 31 3b 20 5c 0a 20 20 20 20 41 23  E##ka1; \.    A#
17c0: 23 6d 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 20  #mu1 ^= Du1; \. 
17d0: 20 20 20 42 6b 6f 31 20 3d 20 52 4f 4c 33 32 28     Bko1 = ROL32(
17e0: 41 23 23 6d 75 31 2c 20 34 29 3b 20 5c 0a 20 20  A##mu1, 4); \.  
17f0: 20 20 45 23 23 6b 65 31 20 3d 20 20 20 42 6b 65    E##ke1 =   Bke
1800: 31 20 5e 28 20 20 42 6b 69 31 20 26 20 20 42 6b  1 ^(  Bki1 &  Bk
1810: 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 31 20  o1 ); \.    Ce1 
1820: 5e 3d 20 45 23 23 6b 65 31 3b 20 5c 0a 20 20 20  ^= E##ke1; \.   
1830: 20 41 23 23 73 61 31 20 5e 3d 20 44 61 31 3b 20   A##sa1 ^= Da1; 
1840: 5c 0a 20 20 20 20 42 6b 75 31 20 3d 20 52 4f 4c  \.    Bku1 = ROL
1850: 33 32 28 41 23 23 73 61 31 2c 20 39 29 3b 20 5c  32(A##sa1, 9); \
1860: 0a 20 20 20 20 45 23 23 6b 69 31 20 3d 20 20 20  .    E##ki1 =   
1870: 42 6b 69 31 20 5e 28 28 7e 42 6b 6f 31 29 26 20  Bki1 ^((~Bko1)& 
1880: 20 42 6b 75 31 20 29 3b 20 5c 0a 20 20 20 20 43   Bku1 ); \.    C
1890: 69 31 20 5e 3d 20 45 23 23 6b 69 31 3b 20 5c 0a  i1 ^= E##ki1; \.
18a0: 20 20 20 20 45 23 23 6b 6f 31 20 3d 20 28 7e 42      E##ko1 = (~B
18b0: 6b 6f 31 29 5e 28 20 20 42 6b 75 31 20 7c 20 20  ko1)^(  Bku1 |  
18c0: 42 6b 61 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f  Bka1 ); \.    Co
18d0: 31 20 5e 3d 20 45 23 23 6b 6f 31 3b 20 5c 0a 20  1 ^= E##ko1; \. 
18e0: 20 20 20 45 23 23 6b 75 31 20 3d 20 20 20 42 6b     E##ku1 =   Bk
18f0: 75 31 20 5e 28 20 20 42 6b 61 31 20 26 20 20 42  u1 ^(  Bka1 &  B
1900: 6b 65 31 20 29 3b 20 5c 0a 20 20 20 20 43 75 31  ke1 ); \.    Cu1
1910: 20 5e 3d 20 45 23 23 6b 75 31 3b 20 5c 0a 5c 0a   ^= E##ku1; \.\.
1920: 20 20 20 20 41 23 23 62 75 31 20 5e 3d 20 44 75      A##bu1 ^= Du
1930: 31 3b 20 5c 0a 20 20 20 20 42 6d 61 30 20 3d 20  1; \.    Bma0 = 
1940: 52 4f 4c 33 32 28 41 23 23 62 75 31 2c 20 31 34  ROL32(A##bu1, 14
1950: 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 30 20  ); \.    A##ga0 
1960: 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 20 42 6d  ^= Da0; \.    Bm
1970: 65 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 61  e0 = ROL32(A##ga
1980: 30 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 23  0, 18); \.    A#
1990: 23 6b 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20  #ke0 ^= De0; \. 
19a0: 20 20 20 42 6d 69 30 20 3d 20 52 4f 4c 33 32 28     Bmi0 = ROL32(
19b0: 41 23 23 6b 65 30 2c 20 35 29 3b 20 5c 0a 20 20  A##ke0, 5); \.  
19c0: 20 20 45 23 23 6d 61 30 20 3d 20 20 20 42 6d 61    E##ma0 =   Bma
19d0: 30 20 5e 28 20 20 42 6d 65 30 20 26 20 20 42 6d  0 ^(  Bme0 &  Bm
19e0: 69 30 20 29 3b 20 5c 0a 20 20 20 20 43 61 30 20  i0 ); \.    Ca0 
19f0: 5e 3d 20 45 23 23 6d 61 30 3b 20 5c 0a 20 20 20  ^= E##ma0; \.   
1a00: 20 41 23 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20   A##mi1 ^= Di1; 
1a10: 5c 0a 20 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c  \.    Bmo0 = ROL
1a20: 33 32 28 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c  32(A##mi1, 8); \
1a30: 0a 20 20 20 20 45 23 23 6d 65 30 20 3d 20 20 20  .    E##me0 =   
1a40: 42 6d 65 30 20 5e 28 20 20 42 6d 69 30 20 7c 20  Bme0 ^(  Bmi0 | 
1a50: 20 42 6d 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43   Bmo0 ); \.    C
1a60: 65 30 20 5e 3d 20 45 23 23 6d 65 30 3b 20 5c 0a  e0 ^= E##me0; \.
1a70: 20 20 20 20 41 23 23 73 6f 30 20 5e 3d 20 44 6f      A##so0 ^= Do
1a80: 30 3b 20 5c 0a 20 20 20 20 42 6d 75 30 20 3d 20  0; \.    Bmu0 = 
1a90: 52 4f 4c 33 32 28 41 23 23 73 6f 30 2c 20 32 38  ROL32(A##so0, 28
1aa0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 69 30 20  ); \.    E##mi0 
1ab0: 3d 20 20 20 42 6d 69 30 20 5e 28 28 7e 42 6d 6f  =   Bmi0 ^((~Bmo
1ac0: 30 29 7c 20 20 42 6d 75 30 20 29 3b 20 5c 0a 20  0)|  Bmu0 ); \. 
1ad0: 20 20 20 43 69 30 20 5e 3d 20 45 23 23 6d 69 30     Ci0 ^= E##mi0
1ae0: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 30 20 3d  ; \.    E##mo0 =
1af0: 20 28 7e 42 6d 6f 30 29 5e 28 20 20 42 6d 75 30   (~Bmo0)^(  Bmu0
1b00: 20 26 20 20 42 6d 61 30 20 29 3b 20 5c 0a 20 20   &  Bma0 ); \.  
1b10: 20 20 43 6f 30 20 5e 3d 20 45 23 23 6d 6f 30 3b    Co0 ^= E##mo0;
1b20: 20 5c 0a 20 20 20 20 45 23 23 6d 75 30 20 3d 20   \.    E##mu0 = 
1b30: 20 20 42 6d 75 30 20 5e 28 20 20 42 6d 61 30 20    Bmu0 ^(  Bma0 
1b40: 7c 20 20 42 6d 65 30 20 29 3b 20 5c 0a 20 20 20  |  Bme0 ); \.   
1b50: 20 43 75 30 20 5e 3d 20 45 23 23 6d 75 30 3b 20   Cu0 ^= E##mu0; 
1b60: 5c 0a 5c 0a 20 20 20 20 41 23 23 62 75 30 20 5e  \.\.    A##bu0 ^
1b70: 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 6d 61  = Du0; \.    Bma
1b80: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 75 30  1 = ROL32(A##bu0
1b90: 2c 20 31 33 29 3b 20 5c 0a 20 20 20 20 41 23 23  , 13); \.    A##
1ba0: 67 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20  ga1 ^= Da1; \.  
1bb0: 20 20 42 6d 65 31 20 3d 20 52 4f 4c 33 32 28 41    Bme1 = ROL32(A
1bc0: 23 23 67 61 31 2c 20 31 38 29 3b 20 5c 0a 20 20  ##ga1, 18); \.  
1bd0: 20 20 41 23 23 6b 65 31 20 5e 3d 20 44 65 31 3b    A##ke1 ^= De1;
1be0: 20 5c 0a 20 20 20 20 42 6d 69 31 20 3d 20 52 4f   \.    Bmi1 = RO
1bf0: 4c 33 32 28 41 23 23 6b 65 31 2c 20 35 29 3b 20  L32(A##ke1, 5); 
1c00: 5c 0a 20 20 20 20 45 23 23 6d 61 31 20 3d 20 20  \.    E##ma1 =  
1c10: 20 42 6d 61 31 20 5e 28 20 20 42 6d 65 31 20 26   Bma1 ^(  Bme1 &
1c20: 20 20 42 6d 69 31 20 29 3b 20 5c 0a 20 20 20 20    Bmi1 ); \.    
1c30: 43 61 31 20 5e 3d 20 45 23 23 6d 61 31 3b 20 5c  Ca1 ^= E##ma1; \
1c40: 0a 20 20 20 20 41 23 23 6d 69 30 20 5e 3d 20 44  .    A##mi0 ^= D
1c50: 69 30 3b 20 5c 0a 20 20 20 20 42 6d 6f 31 20 3d  i0; \.    Bmo1 =
1c60: 20 52 4f 4c 33 32 28 41 23 23 6d 69 30 2c 20 37   ROL32(A##mi0, 7
1c70: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 65 31 20  ); \.    E##me1 
1c80: 3d 20 20 20 42 6d 65 31 20 5e 28 20 20 42 6d 69  =   Bme1 ^(  Bmi
1c90: 31 20 7c 20 20 42 6d 6f 31 20 29 3b 20 5c 0a 20  1 |  Bmo1 ); \. 
1ca0: 20 20 20 43 65 31 20 5e 3d 20 45 23 23 6d 65 31     Ce1 ^= E##me1
1cb0: 3b 20 5c 0a 20 20 20 20 41 23 23 73 6f 31 20 5e  ; \.    A##so1 ^
1cc0: 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6d 75  = Do1; \.    Bmu
1cd0: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 6f 31  1 = ROL32(A##so1
1ce0: 2c 20 32 38 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 28); \.    E##
1cf0: 6d 69 31 20 3d 20 20 20 42 6d 69 31 20 5e 28 28  mi1 =   Bmi1 ^((
1d00: 7e 42 6d 6f 31 29 7c 20 20 42 6d 75 31 20 29 3b  ~Bmo1)|  Bmu1 );
1d10: 20 5c 0a 20 20 20 20 43 69 31 20 5e 3d 20 45 23   \.    Ci1 ^= E#
1d20: 23 6d 69 31 3b 20 5c 0a 20 20 20 20 45 23 23 6d  #mi1; \.    E##m
1d30: 6f 31 20 3d 20 28 7e 42 6d 6f 31 29 5e 28 20 20  o1 = (~Bmo1)^(  
1d40: 42 6d 75 31 20 26 20 20 42 6d 61 31 20 29 3b 20  Bmu1 &  Bma1 ); 
1d50: 5c 0a 20 20 20 20 43 6f 31 20 5e 3d 20 45 23 23  \.    Co1 ^= E##
1d60: 6d 6f 31 3b 20 5c 0a 20 20 20 20 45 23 23 6d 75  mo1; \.    E##mu
1d70: 31 20 3d 20 20 20 42 6d 75 31 20 5e 28 20 20 42  1 =   Bmu1 ^(  B
1d80: 6d 61 31 20 7c 20 20 42 6d 65 31 20 29 3b 20 5c  ma1 |  Bme1 ); \
1d90: 0a 20 20 20 20 43 75 31 20 5e 3d 20 45 23 23 6d  .    Cu1 ^= E##m
1da0: 75 31 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62  u1; \.\.    A##b
1db0: 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20  i0 ^= Di0; \.   
1dc0: 20 42 73 61 30 20 3d 20 52 4f 4c 33 32 28 41 23   Bsa0 = ROL32(A#
1dd0: 23 62 69 30 2c 20 33 31 29 3b 20 5c 0a 20 20 20  #bi0, 31); \.   
1de0: 20 41 23 23 67 6f 31 20 5e 3d 20 44 6f 31 3b 20   A##go1 ^= Do1; 
1df0: 5c 0a 20 20 20 20 42 73 65 30 20 3d 20 52 4f 4c  \.    Bse0 = ROL
1e00: 33 32 28 41 23 23 67 6f 31 2c 20 32 38 29 3b 20  32(A##go1, 28); 
1e10: 5c 0a 20 20 20 20 41 23 23 6b 75 31 20 5e 3d 20  \.    A##ku1 ^= 
1e20: 44 75 31 3b 20 5c 0a 20 20 20 20 42 73 69 30 20  Du1; \.    Bsi0 
1e30: 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 31 2c 20  = ROL32(A##ku1, 
1e40: 32 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 61  20); \.    E##sa
1e50: 30 20 3d 20 20 20 42 73 61 30 20 5e 28 28 7e 42  0 =   Bsa0 ^((~B
1e60: 73 65 30 29 26 20 20 42 73 69 30 20 29 3b 20 5c  se0)&  Bsi0 ); \
1e70: 0a 20 20 20 20 43 61 30 20 5e 3d 20 45 23 23 73  .    Ca0 ^= E##s
1e80: 61 30 3b 20 5c 0a 20 20 20 20 41 23 23 6d 61 31  a0; \.    A##ma1
1e90: 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42   ^= Da1; \.    B
1ea0: 73 6f 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d  so0 = ROL32(A##m
1eb0: 61 31 2c 20 32 31 29 3b 20 5c 0a 20 20 20 20 45  a1, 21); \.    E
1ec0: 23 23 73 65 30 20 3d 20 28 7e 42 73 65 30 29 5e  ##se0 = (~Bse0)^
1ed0: 28 20 20 42 73 69 30 20 7c 20 20 42 73 6f 30 20  (  Bsi0 |  Bso0 
1ee0: 29 3b 20 5c 0a 20 20 20 20 43 65 30 20 5e 3d 20  ); \.    Ce0 ^= 
1ef0: 45 23 23 73 65 30 3b 20 5c 0a 20 20 20 20 41 23  E##se0; \.    A#
1f00: 23 73 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20  #se0 ^= De0; \. 
1f10: 20 20 20 42 73 75 30 20 3d 20 52 4f 4c 33 32 28     Bsu0 = ROL32(
1f20: 41 23 23 73 65 30 2c 20 31 29 3b 20 5c 0a 20 20  A##se0, 1); \.  
1f30: 20 20 45 23 23 73 69 30 20 3d 20 20 20 42 73 69    E##si0 =   Bsi
1f40: 30 20 5e 28 20 20 42 73 6f 30 20 26 20 20 42 73  0 ^(  Bso0 &  Bs
1f50: 75 30 20 29 3b 20 5c 0a 20 20 20 20 43 69 30 20  u0 ); \.    Ci0 
1f60: 5e 3d 20 45 23 23 73 69 30 3b 20 5c 0a 20 20 20  ^= E##si0; \.   
1f70: 20 45 23 23 73 6f 30 20 3d 20 20 20 42 73 6f 30   E##so0 =   Bso0
1f80: 20 5e 28 20 20 42 73 75 30 20 7c 20 20 42 73 61   ^(  Bsu0 |  Bsa
1f90: 30 20 29 3b 20 5c 0a 20 20 20 20 43 6f 30 20 5e  0 ); \.    Co0 ^
1fa0: 3d 20 45 23 23 73 6f 30 3b 20 5c 0a 20 20 20 20  = E##so0; \.    
1fb0: 45 23 23 73 75 30 20 3d 20 20 20 42 73 75 30 20  E##su0 =   Bsu0 
1fc0: 5e 28 20 20 42 73 61 30 20 26 20 20 42 73 65 30  ^(  Bsa0 &  Bse0
1fd0: 20 29 3b 20 5c 0a 20 20 20 20 43 75 30 20 5e 3d   ); \.    Cu0 ^=
1fe0: 20 45 23 23 73 75 30 3b 20 5c 0a 5c 0a 20 20 20   E##su0; \.\.   
1ff0: 20 41 23 23 62 69 31 20 5e 3d 20 44 69 31 3b 20   A##bi1 ^= Di1; 
2000: 5c 0a 20 20 20 20 42 73 61 31 20 3d 20 52 4f 4c  \.    Bsa1 = ROL
2010: 33 32 28 41 23 23 62 69 31 2c 20 33 31 29 3b 20  32(A##bi1, 31); 
2020: 5c 0a 20 20 20 20 41 23 23 67 6f 30 20 5e 3d 20  \.    A##go0 ^= 
2030: 44 6f 30 3b 20 5c 0a 20 20 20 20 42 73 65 31 20  Do0; \.    Bse1 
2040: 3d 20 52 4f 4c 33 32 28 41 23 23 67 6f 30 2c 20  = ROL32(A##go0, 
2050: 32 37 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75  27); \.    A##ku
2060: 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20  0 ^= Du0; \.    
2070: 42 73 69 31 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bsi1 = ROL32(A##
2080: 6b 75 30 2c 20 31 39 29 3b 20 5c 0a 20 20 20 20  ku0, 19); \.    
2090: 45 23 23 73 61 31 20 3d 20 20 20 42 73 61 31 20  E##sa1 =   Bsa1 
20a0: 5e 28 28 7e 42 73 65 31 29 26 20 20 42 73 69 31  ^((~Bse1)&  Bsi1
20b0: 20 29 3b 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d   ); \.    Ca1 ^=
20c0: 20 45 23 23 73 61 31 3b 20 5c 0a 20 20 20 20 41   E##sa1; \.    A
20d0: 23 23 6d 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a  ##ma0 ^= Da0; \.
20e0: 20 20 20 20 42 73 6f 31 20 3d 20 52 4f 4c 33 32      Bso1 = ROL32
20f0: 28 41 23 23 6d 61 30 2c 20 32 30 29 3b 20 5c 0a  (A##ma0, 20); \.
2100: 20 20 20 20 45 23 23 73 65 31 20 3d 20 28 7e 42      E##se1 = (~B
2110: 73 65 31 29 5e 28 20 20 42 73 69 31 20 7c 20 20  se1)^(  Bsi1 |  
2120: 42 73 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65  Bso1 ); \.    Ce
2130: 31 20 5e 3d 20 45 23 23 73 65 31 3b 20 5c 0a 20  1 ^= E##se1; \. 
2140: 20 20 20 41 23 23 73 65 31 20 5e 3d 20 44 65 31     A##se1 ^= De1
2150: 3b 20 5c 0a 20 20 20 20 42 73 75 31 20 3d 20 52  ; \.    Bsu1 = R
2160: 4f 4c 33 32 28 41 23 23 73 65 31 2c 20 31 29 3b  OL32(A##se1, 1);
2170: 20 5c 0a 20 20 20 20 45 23 23 73 69 31 20 3d 20   \.    E##si1 = 
2180: 20 20 42 73 69 31 20 5e 28 20 20 42 73 6f 31 20    Bsi1 ^(  Bso1 
2190: 26 20 20 42 73 75 31 20 29 3b 20 5c 0a 20 20 20  &  Bsu1 ); \.   
21a0: 20 43 69 31 20 5e 3d 20 45 23 23 73 69 31 3b 20   Ci1 ^= E##si1; 
21b0: 5c 0a 20 20 20 20 45 23 23 73 6f 31 20 3d 20 20  \.    E##so1 =  
21c0: 20 42 73 6f 31 20 5e 28 20 20 42 73 75 31 20 7c   Bso1 ^(  Bsu1 |
21d0: 20 20 42 73 61 31 20 29 3b 20 5c 0a 20 20 20 20    Bsa1 ); \.    
21e0: 43 6f 31 20 5e 3d 20 45 23 23 73 6f 31 3b 20 5c  Co1 ^= E##so1; \
21f0: 0a 20 20 20 20 45 23 23 73 75 31 20 3d 20 20 20  .    E##su1 =   
2200: 42 73 75 31 20 5e 28 20 20 42 73 61 31 20 26 20  Bsu1 ^(  Bsa1 & 
2210: 20 42 73 65 31 20 29 3b 20 5c 0a 20 20 20 20 43   Bse1 ); \.    C
2220: 75 31 20 5e 3d 20 45 23 23 73 75 31 3b 20 5c 0a  u1 ^= E##su1; \.
2230: 5c 0a 0a 2f 2f 20 2d 2d 2d 20 43 6f 64 65 20 66  \..// --- Code f
2240: 6f 72 20 72 6f 75 6e 64 20 28 6c 61 6e 65 20 63  or round (lane c
2250: 6f 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 70 61 74  omplementing pat
2260: 74 65 72 6e 20 27 62 65 62 69 67 6f 6b 69 6d 69  tern 'bebigokimi
2270: 73 61 27 29 0a 2f 2f 20 2d 2d 2d 20 75 73 69 6e  sa').// --- usin
2280: 67 20 66 61 63 74 6f 72 20 32 20 69 6e 74 65 72  g factor 2 inter
2290: 6c 65 61 76 69 6e 67 2c 20 36 34 2d 62 69 74 20  leaving, 64-bit 
22a0: 6c 61 6e 65 73 20 6d 61 70 70 65 64 20 74 6f 20  lanes mapped to 
22b0: 33 32 2d 62 69 74 20 77 6f 72 64 73 0a 23 64 65  32-bit words.#de
22c0: 66 69 6e 65 20 74 68 65 74 61 52 68 6f 50 69 43  fine thetaRhoPiC
22d0: 68 69 49 6f 74 61 28 69 2c 20 41 2c 20 45 29 20  hiIota(i, A, E) 
22e0: 5c 0a 20 20 20 20 44 61 30 20 3d 20 43 75 30 5e  \.    Da0 = Cu0^
22f0: 52 4f 4c 33 32 28 43 65 31 2c 20 31 29 3b 20 5c  ROL32(Ce1, 1); \
2300: 0a 20 20 20 20 44 61 31 20 3d 20 43 75 31 5e 43  .    Da1 = Cu1^C
2310: 65 30 3b 20 5c 0a 20 20 20 20 44 65 30 20 3d 20  e0; \.    De0 = 
2320: 43 61 30 5e 52 4f 4c 33 32 28 43 69 31 2c 20 31  Ca0^ROL32(Ci1, 1
2330: 29 3b 20 5c 0a 20 20 20 20 44 65 31 20 3d 20 43  ); \.    De1 = C
2340: 61 31 5e 43 69 30 3b 20 5c 0a 20 20 20 20 44 69  a1^Ci0; \.    Di
2350: 30 20 3d 20 43 65 30 5e 52 4f 4c 33 32 28 43 6f  0 = Ce0^ROL32(Co
2360: 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 69 31  1, 1); \.    Di1
2370: 20 3d 20 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 20   = Ce1^Co0; \.  
2380: 20 20 44 6f 30 20 3d 20 43 69 30 5e 52 4f 4c 33    Do0 = Ci0^ROL3
2390: 32 28 43 75 31 2c 20 31 29 3b 20 5c 0a 20 20 20  2(Cu1, 1); \.   
23a0: 20 44 6f 31 20 3d 20 43 69 31 5e 43 75 30 3b 20   Do1 = Ci1^Cu0; 
23b0: 5c 0a 20 20 20 20 44 75 30 20 3d 20 43 6f 30 5e  \.    Du0 = Co0^
23c0: 52 4f 4c 33 32 28 43 61 31 2c 20 31 29 3b 20 5c  ROL32(Ca1, 1); \
23d0: 0a 20 20 20 20 44 75 31 20 3d 20 43 6f 31 5e 43  .    Du1 = Co1^C
23e0: 61 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62  a0; \.\.    A##b
23f0: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20  a0 ^= Da0; \.   
2400: 20 42 62 61 30 20 3d 20 41 23 23 62 61 30 3b 20   Bba0 = A##ba0; 
2410: 5c 0a 20 20 20 20 41 23 23 67 65 30 20 5e 3d 20  \.    A##ge0 ^= 
2420: 44 65 30 3b 20 5c 0a 20 20 20 20 42 62 65 30 20  De0; \.    Bbe0 
2430: 3d 20 52 4f 4c 33 32 28 41 23 23 67 65 30 2c 20  = ROL32(A##ge0, 
2440: 32 32 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 69  22); \.    A##ki
2450: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20  1 ^= Di1; \.    
2460: 42 62 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bbi0 = ROL32(A##
2470: 6b 69 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20 20  ki1, 22); \.    
2480: 45 23 23 62 61 30 20 3d 20 20 20 42 62 61 30 20  E##ba0 =   Bba0 
2490: 5e 28 20 20 42 62 65 30 20 7c 20 20 42 62 69 30  ^(  Bbe0 |  Bbi0
24a0: 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 30   ); \.    E##ba0
24b0: 20 5e 3d 20 4b 65 63 63 61 6b 46 31 36 30 30 52   ^= KeccakF1600R
24c0: 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 6e  oundConstants_in
24d0: 74 32 5f 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 41  t2_0[i]; \.    A
24e0: 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a  ##mo1 ^= Do1; \.
24f0: 20 20 20 20 42 62 6f 30 20 3d 20 52 4f 4c 33 32      Bbo0 = ROL32
2500: 28 41 23 23 6d 6f 31 2c 20 31 31 29 3b 20 5c 0a  (A##mo1, 11); \.
2510: 20 20 20 20 45 23 23 62 65 30 20 3d 20 20 20 42      E##be0 =   B
2520: 62 65 30 20 5e 28 28 7e 42 62 69 30 29 7c 20 20  be0 ^((~Bbi0)|  
2530: 42 62 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 23  Bbo0 ); \.    A#
2540: 23 73 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20  #su0 ^= Du0; \. 
2550: 20 20 20 42 62 75 30 20 3d 20 52 4f 4c 33 32 28     Bbu0 = ROL32(
2560: 41 23 23 73 75 30 2c 20 37 29 3b 20 5c 0a 20 20  A##su0, 7); \.  
2570: 20 20 45 23 23 62 69 30 20 3d 20 20 20 42 62 69    E##bi0 =   Bbi
2580: 30 20 5e 28 20 20 42 62 6f 30 20 26 20 20 42 62  0 ^(  Bbo0 &  Bb
2590: 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62  u0 ); \.    E##b
25a0: 6f 30 20 3d 20 20 20 42 62 6f 30 20 5e 28 20 20  o0 =   Bbo0 ^(  
25b0: 42 62 75 30 20 7c 20 20 42 62 61 30 20 29 3b 20  Bbu0 |  Bba0 ); 
25c0: 5c 0a 20 20 20 20 45 23 23 62 75 30 20 3d 20 20  \.    E##bu0 =  
25d0: 20 42 62 75 30 20 5e 28 20 20 42 62 61 30 20 26   Bbu0 ^(  Bba0 &
25e0: 20 20 42 62 65 30 20 29 3b 20 5c 0a 5c 0a 20 20    Bbe0 ); \.\.  
25f0: 20 20 41 23 23 62 61 31 20 5e 3d 20 44 61 31 3b    A##ba1 ^= Da1;
2600: 20 5c 0a 20 20 20 20 42 62 61 31 20 3d 20 41 23   \.    Bba1 = A#
2610: 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 67  #ba1; \.    A##g
2620: 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 20  e1 ^= De1; \.   
2630: 20 42 62 65 31 20 3d 20 52 4f 4c 33 32 28 41 23   Bbe1 = ROL32(A#
2640: 23 67 65 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20  #ge1, 22); \.   
2650: 20 41 23 23 6b 69 30 20 5e 3d 20 44 69 30 3b 20   A##ki0 ^= Di0; 
2660: 5c 0a 20 20 20 20 42 62 69 31 20 3d 20 52 4f 4c  \.    Bbi1 = ROL
2670: 33 32 28 41 23 23 6b 69 30 2c 20 32 31 29 3b 20  32(A##ki0, 21); 
2680: 5c 0a 20 20 20 20 45 23 23 62 61 31 20 3d 20 20  \.    E##ba1 =  
2690: 20 42 62 61 31 20 5e 28 20 20 42 62 65 31 20 7c   Bba1 ^(  Bbe1 |
26a0: 20 20 42 62 69 31 20 29 3b 20 5c 0a 20 20 20 20    Bbi1 ); \.    
26b0: 45 23 23 62 61 31 20 5e 3d 20 4b 65 63 63 61 6b  E##ba1 ^= Keccak
26c0: 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 74 61  F1600RoundConsta
26d0: 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 5d 3b 20 5c  nts_int2_1[i]; \
26e0: 0a 20 20 20 20 41 23 23 6d 6f 30 20 5e 3d 20 44  .    A##mo0 ^= D
26f0: 6f 30 3b 20 5c 0a 20 20 20 20 42 62 6f 31 20 3d  o0; \.    Bbo1 =
2700: 20 52 4f 4c 33 32 28 41 23 23 6d 6f 30 2c 20 31   ROL32(A##mo0, 1
2710: 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 65 31  0); \.    E##be1
2720: 20 3d 20 20 20 42 62 65 31 20 5e 28 28 7e 42 62   =   Bbe1 ^((~Bb
2730: 69 31 29 7c 20 20 42 62 6f 31 20 29 3b 20 5c 0a  i1)|  Bbo1 ); \.
2740: 20 20 20 20 41 23 23 73 75 31 20 5e 3d 20 44 75      A##su1 ^= Du
2750: 31 3b 20 5c 0a 20 20 20 20 42 62 75 31 20 3d 20  1; \.    Bbu1 = 
2760: 52 4f 4c 33 32 28 41 23 23 73 75 31 2c 20 37 29  ROL32(A##su1, 7)
2770: 3b 20 5c 0a 20 20 20 20 45 23 23 62 69 31 20 3d  ; \.    E##bi1 =
2780: 20 20 20 42 62 69 31 20 5e 28 20 20 42 62 6f 31     Bbi1 ^(  Bbo1
2790: 20 26 20 20 42 62 75 31 20 29 3b 20 5c 0a 20 20   &  Bbu1 ); \.  
27a0: 20 20 45 23 23 62 6f 31 20 3d 20 20 20 42 62 6f    E##bo1 =   Bbo
27b0: 31 20 5e 28 20 20 42 62 75 31 20 7c 20 20 42 62  1 ^(  Bbu1 |  Bb
27c0: 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62  a1 ); \.    E##b
27d0: 75 31 20 3d 20 20 20 42 62 75 31 20 5e 28 20 20  u1 =   Bbu1 ^(  
27e0: 42 62 61 31 20 26 20 20 42 62 65 31 20 29 3b 20  Bba1 &  Bbe1 ); 
27f0: 5c 0a 5c 0a 20 20 20 20 41 23 23 62 6f 30 20 5e  \.\.    A##bo0 ^
2800: 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 67 61  = Do0; \.    Bga
2810: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 6f 30  0 = ROL32(A##bo0
2820: 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23 23  , 14); \.    A##
2830: 67 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20 20  gu0 ^= Du0; \.  
2840: 20 20 42 67 65 30 20 3d 20 52 4f 4c 33 32 28 41    Bge0 = ROL32(A
2850: 23 23 67 75 30 2c 20 31 30 29 3b 20 5c 0a 20 20  ##gu0, 10); \.  
2860: 20 20 41 23 23 6b 61 31 20 5e 3d 20 44 61 31 3b    A##ka1 ^= Da1;
2870: 20 5c 0a 20 20 20 20 42 67 69 30 20 3d 20 52 4f   \.    Bgi0 = RO
2880: 4c 33 32 28 41 23 23 6b 61 31 2c 20 32 29 3b 20  L32(A##ka1, 2); 
2890: 5c 0a 20 20 20 20 45 23 23 67 61 30 20 3d 20 20  \.    E##ga0 =  
28a0: 20 42 67 61 30 20 5e 28 20 20 42 67 65 30 20 7c   Bga0 ^(  Bge0 |
28b0: 20 20 42 67 69 30 20 29 3b 20 5c 0a 20 20 20 20    Bgi0 ); \.    
28c0: 41 23 23 6d 65 31 20 5e 3d 20 44 65 31 3b 20 5c  A##me1 ^= De1; \
28d0: 0a 20 20 20 20 42 67 6f 30 20 3d 20 52 4f 4c 33  .    Bgo0 = ROL3
28e0: 32 28 41 23 23 6d 65 31 2c 20 32 33 29 3b 20 5c  2(A##me1, 23); \
28f0: 0a 20 20 20 20 45 23 23 67 65 30 20 3d 20 20 20  .    E##ge0 =   
2900: 42 67 65 30 20 5e 28 20 20 42 67 69 30 20 26 20  Bge0 ^(  Bgi0 & 
2910: 20 42 67 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41   Bgo0 ); \.    A
2920: 23 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a  ##si1 ^= Di1; \.
2930: 20 20 20 20 42 67 75 30 20 3d 20 52 4f 4c 33 32      Bgu0 = ROL32
2940: 28 41 23 23 73 69 31 2c 20 33 31 29 3b 20 5c 0a  (A##si1, 31); \.
2950: 20 20 20 20 45 23 23 67 69 30 20 3d 20 20 20 42      E##gi0 =   B
2960: 67 69 30 20 5e 28 20 20 42 67 6f 30 20 7c 28 7e  gi0 ^(  Bgo0 |(~
2970: 42 67 75 30 29 29 3b 20 5c 0a 20 20 20 20 45 23  Bgu0)); \.    E#
2980: 23 67 6f 30 20 3d 20 20 20 42 67 6f 30 20 5e 28  #go0 =   Bgo0 ^(
2990: 20 20 42 67 75 30 20 7c 20 20 42 67 61 30 20 29    Bgu0 |  Bga0 )
29a0: 3b 20 5c 0a 20 20 20 20 45 23 23 67 75 30 20 3d  ; \.    E##gu0 =
29b0: 20 20 20 42 67 75 30 20 5e 28 20 20 42 67 61 30     Bgu0 ^(  Bga0
29c0: 20 26 20 20 42 67 65 30 20 29 3b 20 5c 0a 5c 0a   &  Bge0 ); \.\.
29d0: 20 20 20 20 41 23 23 62 6f 31 20 5e 3d 20 44 6f      A##bo1 ^= Do
29e0: 31 3b 20 5c 0a 20 20 20 20 42 67 61 31 20 3d 20  1; \.    Bga1 = 
29f0: 52 4f 4c 33 32 28 41 23 23 62 6f 31 2c 20 31 34  ROL32(A##bo1, 14
2a00: 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 75 31 20  ); \.    A##gu1 
2a10: 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 67  ^= Du1; \.    Bg
2a20: 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 75  e1 = ROL32(A##gu
2a30: 31 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 41 23  1, 10); \.    A#
2a40: 23 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20  #ka0 ^= Da0; \. 
2a50: 20 20 20 42 67 69 31 20 3d 20 52 4f 4c 33 32 28     Bgi1 = ROL32(
2a60: 41 23 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20 20  A##ka0, 1); \.  
2a70: 20 20 45 23 23 67 61 31 20 3d 20 20 20 42 67 61    E##ga1 =   Bga
2a80: 31 20 5e 28 20 20 42 67 65 31 20 7c 20 20 42 67  1 ^(  Bge1 |  Bg
2a90: 69 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 6d  i1 ); \.    A##m
2aa0: 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20  e0 ^= De0; \.   
2ab0: 20 42 67 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23   Bgo1 = ROL32(A#
2ac0: 23 6d 65 30 2c 20 32 32 29 3b 20 5c 0a 20 20 20  #me0, 22); \.   
2ad0: 20 45 23 23 67 65 31 20 3d 20 20 20 42 67 65 31   E##ge1 =   Bge1
2ae0: 20 5e 28 20 20 42 67 69 31 20 26 20 20 42 67 6f   ^(  Bgi1 &  Bgo
2af0: 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 69  1 ); \.    A##si
2b00: 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20  0 ^= Di0; \.    
2b10: 42 67 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bgu1 = ROL32(A##
2b20: 73 69 30 2c 20 33 30 29 3b 20 5c 0a 20 20 20 20  si0, 30); \.    
2b30: 45 23 23 67 69 31 20 3d 20 20 20 42 67 69 31 20  E##gi1 =   Bgi1 
2b40: 5e 28 20 20 42 67 6f 31 20 7c 28 7e 42 67 75 31  ^(  Bgo1 |(~Bgu1
2b50: 29 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 6f 31  )); \.    E##go1
2b60: 20 3d 20 20 20 42 67 6f 31 20 5e 28 20 20 42 67   =   Bgo1 ^(  Bg
2b70: 75 31 20 7c 20 20 42 67 61 31 20 29 3b 20 5c 0a  u1 |  Bga1 ); \.
2b80: 20 20 20 20 45 23 23 67 75 31 20 3d 20 20 20 42      E##gu1 =   B
2b90: 67 75 31 20 5e 28 20 20 42 67 61 31 20 26 20 20  gu1 ^(  Bga1 &  
2ba0: 42 67 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 20  Bge1 ); \.\.    
2bb0: 41 23 23 62 65 31 20 5e 3d 20 44 65 31 3b 20 5c  A##be1 ^= De1; \
2bc0: 0a 20 20 20 20 42 6b 61 30 20 3d 20 52 4f 4c 33  .    Bka0 = ROL3
2bd0: 32 28 41 23 23 62 65 31 2c 20 31 29 3b 20 5c 0a  2(A##be1, 1); \.
2be0: 20 20 20 20 41 23 23 67 69 30 20 5e 3d 20 44 69      A##gi0 ^= Di
2bf0: 30 3b 20 5c 0a 20 20 20 20 42 6b 65 30 20 3d 20  0; \.    Bke0 = 
2c00: 52 4f 4c 33 32 28 41 23 23 67 69 30 2c 20 33 29  ROL32(A##gi0, 3)
2c10: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 31 20 5e  ; \.    A##ko1 ^
2c20: 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6b 69  = Do1; \.    Bki
2c30: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 31  0 = ROL32(A##ko1
2c40: 2c 20 31 33 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 13); \.    E##
2c50: 6b 61 30 20 3d 20 20 20 42 6b 61 30 20 5e 28 20  ka0 =   Bka0 ^( 
2c60: 20 42 6b 65 30 20 7c 20 20 42 6b 69 30 20 29 3b   Bke0 |  Bki0 );
2c70: 20 5c 0a 20 20 20 20 41 23 23 6d 75 30 20 5e 3d   \.    A##mu0 ^=
2c80: 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 6b 6f 30   Du0; \.    Bko0
2c90: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 30 2c   = ROL32(A##mu0,
2ca0: 20 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65   4); \.    E##ke
2cb0: 30 20 3d 20 20 20 42 6b 65 30 20 5e 28 20 20 42  0 =   Bke0 ^(  B
2cc0: 6b 69 30 20 26 20 20 42 6b 6f 30 20 29 3b 20 5c  ki0 &  Bko0 ); \
2cd0: 0a 20 20 20 20 41 23 23 73 61 30 20 5e 3d 20 44  .    A##sa0 ^= D
2ce0: 61 30 3b 20 5c 0a 20 20 20 20 42 6b 75 30 20 3d  a0; \.    Bku0 =
2cf0: 20 52 4f 4c 33 32 28 41 23 23 73 61 30 2c 20 39   ROL32(A##sa0, 9
2d00: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 30 20  ); \.    E##ki0 
2d10: 3d 20 20 20 42 6b 69 30 20 5e 28 28 7e 42 6b 6f  =   Bki0 ^((~Bko
2d20: 30 29 26 20 20 42 6b 75 30 20 29 3b 20 5c 0a 20  0)&  Bku0 ); \. 
2d30: 20 20 20 45 23 23 6b 6f 30 20 3d 20 28 7e 42 6b     E##ko0 = (~Bk
2d40: 6f 30 29 5e 28 20 20 42 6b 75 30 20 7c 20 20 42  o0)^(  Bku0 |  B
2d50: 6b 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23  ka0 ); \.    E##
2d60: 6b 75 30 20 3d 20 20 20 42 6b 75 30 20 5e 28 20  ku0 =   Bku0 ^( 
2d70: 20 42 6b 61 30 20 26 20 20 42 6b 65 30 20 29 3b   Bka0 &  Bke0 );
2d80: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 30 20   \.\.    A##be0 
2d90: 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 6b  ^= De0; \.    Bk
2da0: 61 31 20 3d 20 41 23 23 62 65 30 3b 20 5c 0a 20  a1 = A##be0; \. 
2db0: 20 20 20 41 23 23 67 69 31 20 5e 3d 20 44 69 31     A##gi1 ^= Di1
2dc0: 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 3d 20 52  ; \.    Bke1 = R
2dd0: 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 33 29 3b  OL32(A##gi1, 3);
2de0: 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 20 5e 3d   \.    A##ko0 ^=
2df0: 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 6b 69 31   Do0; \.    Bki1
2e00: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 30 2c   = ROL32(A##ko0,
2e10: 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b   12); \.    E##k
2e20: 61 31 20 3d 20 20 20 42 6b 61 31 20 5e 28 20 20  a1 =   Bka1 ^(  
2e30: 42 6b 65 31 20 7c 20 20 42 6b 69 31 20 29 3b 20  Bke1 |  Bki1 ); 
2e40: 5c 0a 20 20 20 20 41 23 23 6d 75 31 20 5e 3d 20  \.    A##mu1 ^= 
2e50: 44 75 31 3b 20 5c 0a 20 20 20 20 42 6b 6f 31 20  Du1; \.    Bko1 
2e60: 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 31 2c 20  = ROL32(A##mu1, 
2e70: 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65 31  4); \.    E##ke1
2e80: 20 3d 20 20 20 42 6b 65 31 20 5e 28 20 20 42 6b   =   Bke1 ^(  Bk
2e90: 69 31 20 26 20 20 42 6b 6f 31 20 29 3b 20 5c 0a  i1 &  Bko1 ); \.
2ea0: 20 20 20 20 41 23 23 73 61 31 20 5e 3d 20 44 61      A##sa1 ^= Da
2eb0: 31 3b 20 5c 0a 20 20 20 20 42 6b 75 31 20 3d 20  1; \.    Bku1 = 
2ec0: 52 4f 4c 33 32 28 41 23 23 73 61 31 2c 20 39 29  ROL32(A##sa1, 9)
2ed0: 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 31 20 3d  ; \.    E##ki1 =
2ee0: 20 20 20 42 6b 69 31 20 5e 28 28 7e 42 6b 6f 31     Bki1 ^((~Bko1
2ef0: 29 26 20 20 42 6b 75 31 20 29 3b 20 5c 0a 20 20  )&  Bku1 ); \.  
2f00: 20 20 45 23 23 6b 6f 31 20 3d 20 28 7e 42 6b 6f    E##ko1 = (~Bko
2f10: 31 29 5e 28 20 20 42 6b 75 31 20 7c 20 20 42 6b  1)^(  Bku1 |  Bk
2f20: 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b  a1 ); \.    E##k
2f30: 75 31 20 3d 20 20 20 42 6b 75 31 20 5e 28 20 20  u1 =   Bku1 ^(  
2f40: 42 6b 61 31 20 26 20 20 42 6b 65 31 20 29 3b 20  Bka1 &  Bke1 ); 
2f50: 5c 0a 5c 0a 20 20 20 20 41 23 23 62 75 31 20 5e  \.\.    A##bu1 ^
2f60: 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 6d 61  = Du1; \.    Bma
2f70: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 75 31  0 = ROL32(A##bu1
2f80: 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23 23  , 14); \.    A##
2f90: 67 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20  ga0 ^= Da0; \.  
2fa0: 20 20 42 6d 65 30 20 3d 20 52 4f 4c 33 32 28 41    Bme0 = ROL32(A
2fb0: 23 23 67 61 30 2c 20 31 38 29 3b 20 5c 0a 20 20  ##ga0, 18); \.  
2fc0: 20 20 41 23 23 6b 65 30 20 5e 3d 20 44 65 30 3b    A##ke0 ^= De0;
2fd0: 20 5c 0a 20 20 20 20 42 6d 69 30 20 3d 20 52 4f   \.    Bmi0 = RO
2fe0: 4c 33 32 28 41 23 23 6b 65 30 2c 20 35 29 3b 20  L32(A##ke0, 5); 
2ff0: 5c 0a 20 20 20 20 45 23 23 6d 61 30 20 3d 20 20  \.    E##ma0 =  
3000: 20 42 6d 61 30 20 5e 28 20 20 42 6d 65 30 20 26   Bma0 ^(  Bme0 &
3010: 20 20 42 6d 69 30 20 29 3b 20 5c 0a 20 20 20 20    Bmi0 ); \.    
3020: 41 23 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20 5c  A##mi1 ^= Di1; \
3030: 0a 20 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c 33  .    Bmo0 = ROL3
3040: 32 28 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c 0a  2(A##mi1, 8); \.
3050: 20 20 20 20 45 23 23 6d 65 30 20 3d 20 20 20 42      E##me0 =   B
3060: 6d 65 30 20 5e 28 20 20 42 6d 69 30 20 7c 20 20  me0 ^(  Bmi0 |  
3070: 42 6d 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 23  Bmo0 ); \.    A#
3080: 23 73 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20  #so0 ^= Do0; \. 
3090: 20 20 20 42 6d 75 30 20 3d 20 52 4f 4c 33 32 28     Bmu0 = ROL32(
30a0: 41 23 23 73 6f 30 2c 20 32 38 29 3b 20 5c 0a 20  A##so0, 28); \. 
30b0: 20 20 20 45 23 23 6d 69 30 20 3d 20 20 20 42 6d     E##mi0 =   Bm
30c0: 69 30 20 5e 28 28 7e 42 6d 6f 30 29 7c 20 20 42  i0 ^((~Bmo0)|  B
30d0: 6d 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23  mu0 ); \.    E##
30e0: 6d 6f 30 20 3d 20 28 7e 42 6d 6f 30 29 5e 28 20  mo0 = (~Bmo0)^( 
30f0: 20 42 6d 75 30 20 26 20 20 42 6d 61 30 20 29 3b   Bmu0 &  Bma0 );
3100: 20 5c 0a 20 20 20 20 45 23 23 6d 75 30 20 3d 20   \.    E##mu0 = 
3110: 20 20 42 6d 75 30 20 5e 28 20 20 42 6d 61 30 20    Bmu0 ^(  Bma0 
3120: 7c 20 20 42 6d 65 30 20 29 3b 20 5c 0a 5c 0a 20  |  Bme0 ); \.\. 
3130: 20 20 20 41 23 23 62 75 30 20 5e 3d 20 44 75 30     A##bu0 ^= Du0
3140: 3b 20 5c 0a 20 20 20 20 42 6d 61 31 20 3d 20 52  ; \.    Bma1 = R
3150: 4f 4c 33 32 28 41 23 23 62 75 30 2c 20 31 33 29  OL32(A##bu0, 13)
3160: 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 31 20 5e  ; \.    A##ga1 ^
3170: 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 6d 65  = Da1; \.    Bme
3180: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 61 31  1 = ROL32(A##ga1
3190: 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 23 23  , 18); \.    A##
31a0: 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20  ke1 ^= De1; \.  
31b0: 20 20 42 6d 69 31 20 3d 20 52 4f 4c 33 32 28 41    Bmi1 = ROL32(A
31c0: 23 23 6b 65 31 2c 20 35 29 3b 20 5c 0a 20 20 20  ##ke1, 5); \.   
31d0: 20 45 23 23 6d 61 31 20 3d 20 20 20 42 6d 61 31   E##ma1 =   Bma1
31e0: 20 5e 28 20 20 42 6d 65 31 20 26 20 20 42 6d 69   ^(  Bme1 &  Bmi
31f0: 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 6d 69  1 ); \.    A##mi
3200: 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20  0 ^= Di0; \.    
3210: 42 6d 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bmo1 = ROL32(A##
3220: 6d 69 30 2c 20 37 29 3b 20 5c 0a 20 20 20 20 45  mi0, 7); \.    E
3230: 23 23 6d 65 31 20 3d 20 20 20 42 6d 65 31 20 5e  ##me1 =   Bme1 ^
3240: 28 20 20 42 6d 69 31 20 7c 20 20 42 6d 6f 31 20  (  Bmi1 |  Bmo1 
3250: 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 6f 31 20  ); \.    A##so1 
3260: 5e 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6d  ^= Do1; \.    Bm
3270: 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 6f  u1 = ROL32(A##so
3280: 31 2c 20 32 38 29 3b 20 5c 0a 20 20 20 20 45 23  1, 28); \.    E#
3290: 23 6d 69 31 20 3d 20 20 20 42 6d 69 31 20 5e 28  #mi1 =   Bmi1 ^(
32a0: 28 7e 42 6d 6f 31 29 7c 20 20 42 6d 75 31 20 29  (~Bmo1)|  Bmu1 )
32b0: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 31 20 3d  ; \.    E##mo1 =
32c0: 20 28 7e 42 6d 6f 31 29 5e 28 20 20 42 6d 75 31   (~Bmo1)^(  Bmu1
32d0: 20 26 20 20 42 6d 61 31 20 29 3b 20 5c 0a 20 20   &  Bma1 ); \.  
32e0: 20 20 45 23 23 6d 75 31 20 3d 20 20 20 42 6d 75    E##mu1 =   Bmu
32f0: 31 20 5e 28 20 20 42 6d 61 31 20 7c 20 20 42 6d  1 ^(  Bma1 |  Bm
3300: 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 20 41 23  e1 ); \.\.    A#
3310: 23 62 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20  #bi0 ^= Di0; \. 
3320: 20 20 20 42 73 61 30 20 3d 20 52 4f 4c 33 32 28     Bsa0 = ROL32(
3330: 41 23 23 62 69 30 2c 20 33 31 29 3b 20 5c 0a 20  A##bi0, 31); \. 
3340: 20 20 20 41 23 23 67 6f 31 20 5e 3d 20 44 6f 31     A##go1 ^= Do1
3350: 3b 20 5c 0a 20 20 20 20 42 73 65 30 20 3d 20 52  ; \.    Bse0 = R
3360: 4f 4c 33 32 28 41 23 23 67 6f 31 2c 20 32 38 29  OL32(A##go1, 28)
3370: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 31 20 5e  ; \.    A##ku1 ^
3380: 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 73 69  = Du1; \.    Bsi
3390: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 31  0 = ROL32(A##ku1
33a0: 2c 20 32 30 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 20); \.    E##
33b0: 73 61 30 20 3d 20 20 20 42 73 61 30 20 5e 28 28  sa0 =   Bsa0 ^((
33c0: 7e 42 73 65 30 29 26 20 20 42 73 69 30 20 29 3b  ~Bse0)&  Bsi0 );
33d0: 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 20 5e 3d   \.    A##ma1 ^=
33e0: 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 73 6f 30   Da1; \.    Bso0
33f0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 61 31 2c   = ROL32(A##ma1,
3400: 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73   21); \.    E##s
3410: 65 30 20 3d 20 28 7e 42 73 65 30 29 5e 28 20 20  e0 = (~Bse0)^(  
3420: 42 73 69 30 20 7c 20 20 42 73 6f 30 20 29 3b 20  Bsi0 |  Bso0 ); 
3430: 5c 0a 20 20 20 20 41 23 23 73 65 30 20 5e 3d 20  \.    A##se0 ^= 
3440: 44 65 30 3b 20 5c 0a 20 20 20 20 42 73 75 30 20  De0; \.    Bsu0 
3450: 3d 20 52 4f 4c 33 32 28 41 23 23 73 65 30 2c 20  = ROL32(A##se0, 
3460: 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 69 30  1); \.    E##si0
3470: 20 3d 20 20 20 42 73 69 30 20 5e 28 20 20 42 73   =   Bsi0 ^(  Bs
3480: 6f 30 20 26 20 20 42 73 75 30 20 29 3b 20 5c 0a  o0 &  Bsu0 ); \.
3490: 20 20 20 20 45 23 23 73 6f 30 20 3d 20 20 20 42      E##so0 =   B
34a0: 73 6f 30 20 5e 28 20 20 42 73 75 30 20 7c 20 20  so0 ^(  Bsu0 |  
34b0: 42 73 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 23  Bsa0 ); \.    E#
34c0: 23 73 75 30 20 3d 20 20 20 42 73 75 30 20 5e 28  #su0 =   Bsu0 ^(
34d0: 20 20 42 73 61 30 20 26 20 20 42 73 65 30 20 29    Bsa0 &  Bse0 )
34e0: 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 69 31  ; \.\.    A##bi1
34f0: 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 42   ^= Di1; \.    B
3500: 73 61 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 62  sa1 = ROL32(A##b
3510: 69 31 2c 20 33 31 29 3b 20 5c 0a 20 20 20 20 41  i1, 31); \.    A
3520: 23 23 67 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a  ##go0 ^= Do0; \.
3530: 20 20 20 20 42 73 65 31 20 3d 20 52 4f 4c 33 32      Bse1 = ROL32
3540: 28 41 23 23 67 6f 30 2c 20 32 37 29 3b 20 5c 0a  (A##go0, 27); \.
3550: 20 20 20 20 41 23 23 6b 75 30 20 5e 3d 20 44 75      A##ku0 ^= Du
3560: 30 3b 20 5c 0a 20 20 20 20 42 73 69 31 20 3d 20  0; \.    Bsi1 = 
3570: 52 4f 4c 33 32 28 41 23 23 6b 75 30 2c 20 31 39  ROL32(A##ku0, 19
3580: 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 31 20  ); \.    E##sa1 
3590: 3d 20 20 20 42 73 61 31 20 5e 28 28 7e 42 73 65  =   Bsa1 ^((~Bse
35a0: 31 29 26 20 20 42 73 69 31 20 29 3b 20 5c 0a 20  1)&  Bsi1 ); \. 
35b0: 20 20 20 41 23 23 6d 61 30 20 5e 3d 20 44 61 30     A##ma0 ^= Da0
35c0: 3b 20 5c 0a 20 20 20 20 42 73 6f 31 20 3d 20 52  ; \.    Bso1 = R
35d0: 4f 4c 33 32 28 41 23 23 6d 61 30 2c 20 32 30 29  OL32(A##ma0, 20)
35e0: 3b 20 5c 0a 20 20 20 20 45 23 23 73 65 31 20 3d  ; \.    E##se1 =
35f0: 20 28 7e 42 73 65 31 29 5e 28 20 20 42 73 69 31   (~Bse1)^(  Bsi1
3600: 20 7c 20 20 42 73 6f 31 20 29 3b 20 5c 0a 20 20   |  Bso1 ); \.  
3610: 20 20 41 23 23 73 65 31 20 5e 3d 20 44 65 31 3b    A##se1 ^= De1;
3620: 20 5c 0a 20 20 20 20 42 73 75 31 20 3d 20 52 4f   \.    Bsu1 = RO
3630: 4c 33 32 28 41 23 23 73 65 31 2c 20 31 29 3b 20  L32(A##se1, 1); 
3640: 5c 0a 20 20 20 20 45 23 23 73 69 31 20 3d 20 20  \.    E##si1 =  
3650: 20 42 73 69 31 20 5e 28 20 20 42 73 6f 31 20 26   Bsi1 ^(  Bso1 &
3660: 20 20 42 73 75 31 20 29 3b 20 5c 0a 20 20 20 20    Bsu1 ); \.    
3670: 45 23 23 73 6f 31 20 3d 20 20 20 42 73 6f 31 20  E##so1 =   Bso1 
3680: 5e 28 20 20 42 73 75 31 20 7c 20 20 42 73 61 31  ^(  Bsu1 |  Bsa1
3690: 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 75 31   ); \.    E##su1
36a0: 20 3d 20 20 20 42 73 75 31 20 5e 28 20 20 42 73   =   Bsu1 ^(  Bs
36b0: 61 31 20 26 20 20 42 73 65 31 20 29 3b 20 5c 0a  a1 &  Bse1 ); \.
36c0: 5c 0a 0a 23 65 6c 73 65 20 2f 2f 20 55 73 65 42  \..#else // UseB
36d0: 65 62 69 67 6f 6b 69 6d 69 73 61 0a 2f 2f 20 2d  ebigokimisa.// -
36e0: 2d 2d 20 43 6f 64 65 20 66 6f 72 20 72 6f 75 6e  -- Code for roun
36f0: 64 2c 20 77 69 74 68 20 70 72 65 70 61 72 65 2d  d, with prepare-
3700: 74 68 65 74 61 0a 2f 2f 20 2d 2d 2d 20 75 73 69  theta.// --- usi
3710: 6e 67 20 66 61 63 74 6f 72 20 32 20 69 6e 74 65  ng factor 2 inte
3720: 72 6c 65 61 76 69 6e 67 2c 20 36 34 2d 62 69 74  rleaving, 64-bit
3730: 20 6c 61 6e 65 73 20 6d 61 70 70 65 64 20 74 6f   lanes mapped to
3740: 20 33 32 2d 62 69 74 20 77 6f 72 64 73 0a 23 64   32-bit words.#d
3750: 65 66 69 6e 65 20 74 68 65 74 61 52 68 6f 50 69  efine thetaRhoPi
3760: 43 68 69 49 6f 74 61 50 72 65 70 61 72 65 54 68  ChiIotaPrepareTh
3770: 65 74 61 28 69 2c 20 41 2c 20 45 29 20 5c 0a 20  eta(i, A, E) \. 
3780: 20 20 20 44 61 30 20 3d 20 43 75 30 5e 52 4f 4c     Da0 = Cu0^ROL
3790: 33 32 28 43 65 31 2c 20 31 29 3b 20 5c 0a 20 20  32(Ce1, 1); \.  
37a0: 20 20 44 61 31 20 3d 20 43 75 31 5e 43 65 30 3b    Da1 = Cu1^Ce0;
37b0: 20 5c 0a 20 20 20 20 44 65 30 20 3d 20 43 61 30   \.    De0 = Ca0
37c0: 5e 52 4f 4c 33 32 28 43 69 31 2c 20 31 29 3b 20  ^ROL32(Ci1, 1); 
37d0: 5c 0a 20 20 20 20 44 65 31 20 3d 20 43 61 31 5e  \.    De1 = Ca1^
37e0: 43 69 30 3b 20 5c 0a 20 20 20 20 44 69 30 20 3d  Ci0; \.    Di0 =
37f0: 20 43 65 30 5e 52 4f 4c 33 32 28 43 6f 31 2c 20   Ce0^ROL32(Co1, 
3800: 31 29 3b 20 5c 0a 20 20 20 20 44 69 31 20 3d 20  1); \.    Di1 = 
3810: 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 20 20 20 44  Ce1^Co0; \.    D
3820: 6f 30 20 3d 20 43 69 30 5e 52 4f 4c 33 32 28 43  o0 = Ci0^ROL32(C
3830: 75 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 6f  u1, 1); \.    Do
3840: 31 20 3d 20 43 69 31 5e 43 75 30 3b 20 5c 0a 20  1 = Ci1^Cu0; \. 
3850: 20 20 20 44 75 30 20 3d 20 43 6f 30 5e 52 4f 4c     Du0 = Co0^ROL
3860: 33 32 28 43 61 31 2c 20 31 29 3b 20 5c 0a 20 20  32(Ca1, 1); \.  
3870: 20 20 44 75 31 20 3d 20 43 6f 31 5e 43 61 30 3b    Du1 = Co1^Ca0;
3880: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 61 30 20   \.\.    A##ba0 
3890: 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 20 42 62  ^= Da0; \.    Bb
38a0: 61 30 20 3d 20 41 23 23 62 61 30 3b 20 5c 0a 20  a0 = A##ba0; \. 
38b0: 20 20 20 41 23 23 67 65 30 20 5e 3d 20 44 65 30     A##ge0 ^= De0
38c0: 3b 20 5c 0a 20 20 20 20 42 62 65 30 20 3d 20 52  ; \.    Bbe0 = R
38d0: 4f 4c 33 32 28 41 23 23 67 65 30 2c 20 32 32 29  OL32(A##ge0, 22)
38e0: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 69 31 20 5e  ; \.    A##ki1 ^
38f0: 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 42 62 69  = Di1; \.    Bbi
3900: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 69 31  0 = ROL32(A##ki1
3910: 2c 20 32 32 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 22); \.    E##
3920: 62 61 30 20 3d 20 20 20 42 62 61 30 20 5e 28 28  ba0 =   Bba0 ^((
3930: 7e 42 62 65 30 29 26 20 20 42 62 69 30 20 29 3b  ~Bbe0)&  Bbi0 );
3940: 20 5c 0a 20 20 20 20 45 23 23 62 61 30 20 5e 3d   \.    E##ba0 ^=
3950: 20 4b 65 63 63 61 6b 46 31 36 30 30 52 6f 75 6e   KeccakF1600Roun
3960: 64 43 6f 6e 73 74 61 6e 74 73 5f 69 6e 74 32 5f  dConstants_int2_
3970: 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 43 61 30 20  0[i]; \.    Ca0 
3980: 3d 20 45 23 23 62 61 30 3b 20 5c 0a 20 20 20 20  = E##ba0; \.    
3990: 41 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c  A##mo1 ^= Do1; \
39a0: 0a 20 20 20 20 42 62 6f 30 20 3d 20 52 4f 4c 33  .    Bbo0 = ROL3
39b0: 32 28 41 23 23 6d 6f 31 2c 20 31 31 29 3b 20 5c  2(A##mo1, 11); \
39c0: 0a 20 20 20 20 45 23 23 62 65 30 20 3d 20 20 20  .    E##be0 =   
39d0: 42 62 65 30 20 5e 28 28 7e 42 62 69 30 29 26 20  Bbe0 ^((~Bbi0)& 
39e0: 20 42 62 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43   Bbo0 ); \.    C
39f0: 65 30 20 3d 20 45 23 23 62 65 30 3b 20 5c 0a 20  e0 = E##be0; \. 
3a00: 20 20 20 41 23 23 73 75 30 20 5e 3d 20 44 75 30     A##su0 ^= Du0
3a10: 3b 20 5c 0a 20 20 20 20 42 62 75 30 20 3d 20 52  ; \.    Bbu0 = R
3a20: 4f 4c 33 32 28 41 23 23 73 75 30 2c 20 37 29 3b  OL32(A##su0, 7);
3a30: 20 5c 0a 20 20 20 20 45 23 23 62 69 30 20 3d 20   \.    E##bi0 = 
3a40: 20 20 42 62 69 30 20 5e 28 28 7e 42 62 6f 30 29    Bbi0 ^((~Bbo0)
3a50: 26 20 20 42 62 75 30 20 29 3b 20 5c 0a 20 20 20  &  Bbu0 ); \.   
3a60: 20 43 69 30 20 3d 20 45 23 23 62 69 30 3b 20 5c   Ci0 = E##bi0; \
3a70: 0a 20 20 20 20 45 23 23 62 6f 30 20 3d 20 20 20  .    E##bo0 =   
3a80: 42 62 6f 30 20 5e 28 28 7e 42 62 75 30 29 26 20  Bbo0 ^((~Bbu0)& 
3a90: 20 42 62 61 30 20 29 3b 20 5c 0a 20 20 20 20 43   Bba0 ); \.    C
3aa0: 6f 30 20 3d 20 45 23 23 62 6f 30 3b 20 5c 0a 20  o0 = E##bo0; \. 
3ab0: 20 20 20 45 23 23 62 75 30 20 3d 20 20 20 42 62     E##bu0 =   Bb
3ac0: 75 30 20 5e 28 28 7e 42 62 61 30 29 26 20 20 42  u0 ^((~Bba0)&  B
3ad0: 62 65 30 20 29 3b 20 5c 0a 20 20 20 20 43 75 30  be0 ); \.    Cu0
3ae0: 20 3d 20 45 23 23 62 75 30 3b 20 5c 0a 5c 0a 20   = E##bu0; \.\. 
3af0: 20 20 20 41 23 23 62 61 31 20 5e 3d 20 44 61 31     A##ba1 ^= Da1
3b00: 3b 20 5c 0a 20 20 20 20 42 62 61 31 20 3d 20 41  ; \.    Bba1 = A
3b10: 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23  ##ba1; \.    A##
3b20: 67 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20  ge1 ^= De1; \.  
3b30: 20 20 42 62 65 31 20 3d 20 52 4f 4c 33 32 28 41    Bbe1 = ROL32(A
3b40: 23 23 67 65 31 2c 20 32 32 29 3b 20 5c 0a 20 20  ##ge1, 22); \.  
3b50: 20 20 41 23 23 6b 69 30 20 5e 3d 20 44 69 30 3b    A##ki0 ^= Di0;
3b60: 20 5c 0a 20 20 20 20 42 62 69 31 20 3d 20 52 4f   \.    Bbi1 = RO
3b70: 4c 33 32 28 41 23 23 6b 69 30 2c 20 32 31 29 3b  L32(A##ki0, 21);
3b80: 20 5c 0a 20 20 20 20 45 23 23 62 61 31 20 3d 20   \.    E##ba1 = 
3b90: 20 20 42 62 61 31 20 5e 28 28 7e 42 62 65 31 29    Bba1 ^((~Bbe1)
3ba0: 26 20 20 42 62 69 31 20 29 3b 20 5c 0a 20 20 20  &  Bbi1 ); \.   
3bb0: 20 45 23 23 62 61 31 20 5e 3d 20 4b 65 63 63 61   E##ba1 ^= Kecca
3bc0: 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 74  kF1600RoundConst
3bd0: 61 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 5d 3b 20  ants_int2_1[i]; 
3be0: 5c 0a 20 20 20 20 43 61 31 20 3d 20 45 23 23 62  \.    Ca1 = E##b
3bf0: 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 6d 6f 30  a1; \.    A##mo0
3c00: 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42   ^= Do0; \.    B
3c10: 62 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d  bo1 = ROL32(A##m
3c20: 6f 30 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 45  o0, 10); \.    E
3c30: 23 23 62 65 31 20 3d 20 20 20 42 62 65 31 20 5e  ##be1 =   Bbe1 ^
3c40: 28 28 7e 42 62 69 31 29 26 20 20 42 62 6f 31 20  ((~Bbi1)&  Bbo1 
3c50: 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 3d 20 45  ); \.    Ce1 = E
3c60: 23 23 62 65 31 3b 20 5c 0a 20 20 20 20 41 23 23  ##be1; \.    A##
3c70: 73 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20  su1 ^= Du1; \.  
3c80: 20 20 42 62 75 31 20 3d 20 52 4f 4c 33 32 28 41    Bbu1 = ROL32(A
3c90: 23 23 73 75 31 2c 20 37 29 3b 20 5c 0a 20 20 20  ##su1, 7); \.   
3ca0: 20 45 23 23 62 69 31 20 3d 20 20 20 42 62 69 31   E##bi1 =   Bbi1
3cb0: 20 5e 28 28 7e 42 62 6f 31 29 26 20 20 42 62 75   ^((~Bbo1)&  Bbu
3cc0: 31 20 29 3b 20 5c 0a 20 20 20 20 43 69 31 20 3d  1 ); \.    Ci1 =
3cd0: 20 45 23 23 62 69 31 3b 20 5c 0a 20 20 20 20 45   E##bi1; \.    E
3ce0: 23 23 62 6f 31 20 3d 20 20 20 42 62 6f 31 20 5e  ##bo1 =   Bbo1 ^
3cf0: 28 28 7e 42 62 75 31 29 26 20 20 42 62 61 31 20  ((~Bbu1)&  Bba1 
3d00: 29 3b 20 5c 0a 20 20 20 20 43 6f 31 20 3d 20 45  ); \.    Co1 = E
3d10: 23 23 62 6f 31 3b 20 5c 0a 20 20 20 20 45 23 23  ##bo1; \.    E##
3d20: 62 75 31 20 3d 20 20 20 42 62 75 31 20 5e 28 28  bu1 =   Bbu1 ^((
3d30: 7e 42 62 61 31 29 26 20 20 42 62 65 31 20 29 3b  ~Bba1)&  Bbe1 );
3d40: 20 5c 0a 20 20 20 20 43 75 31 20 3d 20 45 23 23   \.    Cu1 = E##
3d50: 62 75 31 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23  bu1; \.\.    A##
3d60: 62 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20  bo0 ^= Do0; \.  
3d70: 20 20 42 67 61 30 20 3d 20 52 4f 4c 33 32 28 41    Bga0 = ROL32(A
3d80: 23 23 62 6f 30 2c 20 31 34 29 3b 20 5c 0a 20 20  ##bo0, 14); \.  
3d90: 20 20 41 23 23 67 75 30 20 5e 3d 20 44 75 30 3b    A##gu0 ^= Du0;
3da0: 20 5c 0a 20 20 20 20 42 67 65 30 20 3d 20 52 4f   \.    Bge0 = RO
3db0: 4c 33 32 28 41 23 23 67 75 30 2c 20 31 30 29 3b  L32(A##gu0, 10);
3dc0: 20 5c 0a 20 20 20 20 41 23 23 6b 61 31 20 5e 3d   \.    A##ka1 ^=
3dd0: 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 67 69 30   Da1; \.    Bgi0
3de0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 61 31 2c   = ROL32(A##ka1,
3df0: 20 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 61   2); \.    E##ga
3e00: 30 20 3d 20 20 20 42 67 61 30 20 5e 28 28 7e 42  0 =   Bga0 ^((~B
3e10: 67 65 30 29 26 20 20 42 67 69 30 20 29 3b 20 5c  ge0)&  Bgi0 ); \
3e20: 0a 20 20 20 20 43 61 30 20 5e 3d 20 45 23 23 67  .    Ca0 ^= E##g
3e30: 61 30 3b 20 5c 0a 20 20 20 20 41 23 23 6d 65 31  a0; \.    A##me1
3e40: 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 20 20 42   ^= De1; \.    B
3e50: 67 6f 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d  go0 = ROL32(A##m
3e60: 65 31 2c 20 32 33 29 3b 20 5c 0a 20 20 20 20 45  e1, 23); \.    E
3e70: 23 23 67 65 30 20 3d 20 20 20 42 67 65 30 20 5e  ##ge0 =   Bge0 ^
3e80: 28 28 7e 42 67 69 30 29 26 20 20 42 67 6f 30 20  ((~Bgi0)&  Bgo0 
3e90: 29 3b 20 5c 0a 20 20 20 20 43 65 30 20 5e 3d 20  ); \.    Ce0 ^= 
3ea0: 45 23 23 67 65 30 3b 20 5c 0a 20 20 20 20 41 23  E##ge0; \.    A#
3eb0: 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20  #si1 ^= Di1; \. 
3ec0: 20 20 20 42 67 75 30 20 3d 20 52 4f 4c 33 32 28     Bgu0 = ROL32(
3ed0: 41 23 23 73 69 31 2c 20 33 31 29 3b 20 5c 0a 20  A##si1, 31); \. 
3ee0: 20 20 20 45 23 23 67 69 30 20 3d 20 20 20 42 67     E##gi0 =   Bg
3ef0: 69 30 20 5e 28 28 7e 42 67 6f 30 29 26 20 20 42  i0 ^((~Bgo0)&  B
3f00: 67 75 30 20 29 3b 20 5c 0a 20 20 20 20 43 69 30  gu0 ); \.    Ci0
3f10: 20 5e 3d 20 45 23 23 67 69 30 3b 20 5c 0a 20 20   ^= E##gi0; \.  
3f20: 20 20 45 23 23 67 6f 30 20 3d 20 20 20 42 67 6f    E##go0 =   Bgo
3f30: 30 20 5e 28 28 7e 42 67 75 30 29 26 20 20 42 67  0 ^((~Bgu0)&  Bg
3f40: 61 30 20 29 3b 20 5c 0a 20 20 20 20 43 6f 30 20  a0 ); \.    Co0 
3f50: 5e 3d 20 45 23 23 67 6f 30 3b 20 5c 0a 20 20 20  ^= E##go0; \.   
3f60: 20 45 23 23 67 75 30 20 3d 20 20 20 42 67 75 30   E##gu0 =   Bgu0
3f70: 20 5e 28 28 7e 42 67 61 30 29 26 20 20 42 67 65   ^((~Bga0)&  Bge
3f80: 30 20 29 3b 20 5c 0a 20 20 20 20 43 75 30 20 5e  0 ); \.    Cu0 ^
3f90: 3d 20 45 23 23 67 75 30 3b 20 5c 0a 5c 0a 20 20  = E##gu0; \.\.  
3fa0: 20 20 41 23 23 62 6f 31 20 5e 3d 20 44 6f 31 3b    A##bo1 ^= Do1;
3fb0: 20 5c 0a 20 20 20 20 42 67 61 31 20 3d 20 52 4f   \.    Bga1 = RO
3fc0: 4c 33 32 28 41 23 23 62 6f 31 2c 20 31 34 29 3b  L32(A##bo1, 14);
3fd0: 20 5c 0a 20 20 20 20 41 23 23 67 75 31 20 5e 3d   \.    A##gu1 ^=
3fe0: 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 67 65 31   Du1; \.    Bge1
3ff0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 75 31 2c   = ROL32(A##gu1,
4000: 20 31 30 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b   10); \.    A##k
4010: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20  a0 ^= Da0; \.   
4020: 20 42 67 69 31 20 3d 20 52 4f 4c 33 32 28 41 23   Bgi1 = ROL32(A#
4030: 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20 20 20 20  #ka0, 1); \.    
4040: 45 23 23 67 61 31 20 3d 20 20 20 42 67 61 31 20  E##ga1 =   Bga1 
4050: 5e 28 28 7e 42 67 65 31 29 26 20 20 42 67 69 31  ^((~Bge1)&  Bgi1
4060: 20 29 3b 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d   ); \.    Ca1 ^=
4070: 20 45 23 23 67 61 31 3b 20 5c 0a 20 20 20 20 41   E##ga1; \.    A
4080: 23 23 6d 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a  ##me0 ^= De0; \.
4090: 20 20 20 20 42 67 6f 31 20 3d 20 52 4f 4c 33 32      Bgo1 = ROL32
40a0: 28 41 23 23 6d 65 30 2c 20 32 32 29 3b 20 5c 0a  (A##me0, 22); \.
40b0: 20 20 20 20 45 23 23 67 65 31 20 3d 20 20 20 42      E##ge1 =   B
40c0: 67 65 31 20 5e 28 28 7e 42 67 69 31 29 26 20 20  ge1 ^((~Bgi1)&  
40d0: 42 67 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65  Bgo1 ); \.    Ce
40e0: 31 20 5e 3d 20 45 23 23 67 65 31 3b 20 5c 0a 20  1 ^= E##ge1; \. 
40f0: 20 20 20 41 23 23 73 69 30 20 5e 3d 20 44 69 30     A##si0 ^= Di0
4100: 3b 20 5c 0a 20 20 20 20 42 67 75 31 20 3d 20 52  ; \.    Bgu1 = R
4110: 4f 4c 33 32 28 41 23 23 73 69 30 2c 20 33 30 29  OL32(A##si0, 30)
4120: 3b 20 5c 0a 20 20 20 20 45 23 23 67 69 31 20 3d  ; \.    E##gi1 =
4130: 20 20 20 42 67 69 31 20 5e 28 28 7e 42 67 6f 31     Bgi1 ^((~Bgo1
4140: 29 26 20 20 42 67 75 31 20 29 3b 20 5c 0a 20 20  )&  Bgu1 ); \.  
4150: 20 20 43 69 31 20 5e 3d 20 45 23 23 67 69 31 3b    Ci1 ^= E##gi1;
4160: 20 5c 0a 20 20 20 20 45 23 23 67 6f 31 20 3d 20   \.    E##go1 = 
4170: 20 20 42 67 6f 31 20 5e 28 28 7e 42 67 75 31 29    Bgo1 ^((~Bgu1)
4180: 26 20 20 42 67 61 31 20 29 3b 20 5c 0a 20 20 20  &  Bga1 ); \.   
4190: 20 43 6f 31 20 5e 3d 20 45 23 23 67 6f 31 3b 20   Co1 ^= E##go1; 
41a0: 5c 0a 20 20 20 20 45 23 23 67 75 31 20 3d 20 20  \.    E##gu1 =  
41b0: 20 42 67 75 31 20 5e 28 28 7e 42 67 61 31 29 26   Bgu1 ^((~Bga1)&
41c0: 20 20 42 67 65 31 20 29 3b 20 5c 0a 20 20 20 20    Bge1 ); \.    
41d0: 43 75 31 20 5e 3d 20 45 23 23 67 75 31 3b 20 5c  Cu1 ^= E##gu1; \
41e0: 0a 5c 0a 20 20 20 20 41 23 23 62 65 31 20 5e 3d  .\.    A##be1 ^=
41f0: 20 44 65 31 3b 20 5c 0a 20 20 20 20 42 6b 61 30   De1; \.    Bka0
4200: 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 65 31 2c   = ROL32(A##be1,
4210: 20 31 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 69   1); \.    A##gi
4220: 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20  0 ^= Di0; \.    
4230: 42 6b 65 30 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bke0 = ROL32(A##
4240: 67 69 30 2c 20 33 29 3b 20 5c 0a 20 20 20 20 41  gi0, 3); \.    A
4250: 23 23 6b 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a  ##ko1 ^= Do1; \.
4260: 20 20 20 20 42 6b 69 30 20 3d 20 52 4f 4c 33 32      Bki0 = ROL32
4270: 28 41 23 23 6b 6f 31 2c 20 31 33 29 3b 20 5c 0a  (A##ko1, 13); \.
4280: 20 20 20 20 45 23 23 6b 61 30 20 3d 20 20 20 42      E##ka0 =   B
4290: 6b 61 30 20 5e 28 28 7e 42 6b 65 30 29 26 20 20  ka0 ^((~Bke0)&  
42a0: 42 6b 69 30 20 29 3b 20 5c 0a 20 20 20 20 43 61  Bki0 ); \.    Ca
42b0: 30 20 5e 3d 20 45 23 23 6b 61 30 3b 20 5c 0a 20  0 ^= E##ka0; \. 
42c0: 20 20 20 41 23 23 6d 75 30 20 5e 3d 20 44 75 30     A##mu0 ^= Du0
42d0: 3b 20 5c 0a 20 20 20 20 42 6b 6f 30 20 3d 20 52  ; \.    Bko0 = R
42e0: 4f 4c 33 32 28 41 23 23 6d 75 30 2c 20 34 29 3b  OL32(A##mu0, 4);
42f0: 20 5c 0a 20 20 20 20 45 23 23 6b 65 30 20 3d 20   \.    E##ke0 = 
4300: 20 20 42 6b 65 30 20 5e 28 28 7e 42 6b 69 30 29    Bke0 ^((~Bki0)
4310: 26 20 20 42 6b 6f 30 20 29 3b 20 5c 0a 20 20 20  &  Bko0 ); \.   
4320: 20 43 65 30 20 5e 3d 20 45 23 23 6b 65 30 3b 20   Ce0 ^= E##ke0; 
4330: 5c 0a 20 20 20 20 41 23 23 73 61 30 20 5e 3d 20  \.    A##sa0 ^= 
4340: 44 61 30 3b 20 5c 0a 20 20 20 20 42 6b 75 30 20  Da0; \.    Bku0 
4350: 3d 20 52 4f 4c 33 32 28 41 23 23 73 61 30 2c 20  = ROL32(A##sa0, 
4360: 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 30  9); \.    E##ki0
4370: 20 3d 20 20 20 42 6b 69 30 20 5e 28 28 7e 42 6b   =   Bki0 ^((~Bk
4380: 6f 30 29 26 20 20 42 6b 75 30 20 29 3b 20 5c 0a  o0)&  Bku0 ); \.
4390: 20 20 20 20 43 69 30 20 5e 3d 20 45 23 23 6b 69      Ci0 ^= E##ki
43a0: 30 3b 20 5c 0a 20 20 20 20 45 23 23 6b 6f 30 20  0; \.    E##ko0 
43b0: 3d 20 20 20 42 6b 6f 30 20 5e 28 28 7e 42 6b 75  =   Bko0 ^((~Bku
43c0: 30 29 26 20 20 42 6b 61 30 20 29 3b 20 5c 0a 20  0)&  Bka0 ); \. 
43d0: 20 20 20 43 6f 30 20 5e 3d 20 45 23 23 6b 6f 30     Co0 ^= E##ko0
43e0: 3b 20 5c 0a 20 20 20 20 45 23 23 6b 75 30 20 3d  ; \.    E##ku0 =
43f0: 20 20 20 42 6b 75 30 20 5e 28 28 7e 42 6b 61 30     Bku0 ^((~Bka0
4400: 29 26 20 20 42 6b 65 30 20 29 3b 20 5c 0a 20 20  )&  Bke0 ); \.  
4410: 20 20 43 75 30 20 5e 3d 20 45 23 23 6b 75 30 3b    Cu0 ^= E##ku0;
4420: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 30 20   \.\.    A##be0 
4430: 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 6b  ^= De0; \.    Bk
4440: 61 31 20 3d 20 41 23 23 62 65 30 3b 20 5c 0a 20  a1 = A##be0; \. 
4450: 20 20 20 41 23 23 67 69 31 20 5e 3d 20 44 69 31     A##gi1 ^= Di1
4460: 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 3d 20 52  ; \.    Bke1 = R
4470: 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 33 29 3b  OL32(A##gi1, 3);
4480: 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 20 5e 3d   \.    A##ko0 ^=
4490: 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 6b 69 31   Do0; \.    Bki1
44a0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 30 2c   = ROL32(A##ko0,
44b0: 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b   12); \.    E##k
44c0: 61 31 20 3d 20 20 20 42 6b 61 31 20 5e 28 28 7e  a1 =   Bka1 ^((~
44d0: 42 6b 65 31 29 26 20 20 42 6b 69 31 20 29 3b 20  Bke1)&  Bki1 ); 
44e0: 5c 0a 20 20 20 20 43 61 31 20 5e 3d 20 45 23 23  \.    Ca1 ^= E##
44f0: 6b 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 6d 75  ka1; \.    A##mu
4500: 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20  1 ^= Du1; \.    
4510: 42 6b 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bko1 = ROL32(A##
4520: 6d 75 31 2c 20 34 29 3b 20 5c 0a 20 20 20 20 45  mu1, 4); \.    E
4530: 23 23 6b 65 31 20 3d 20 20 20 42 6b 65 31 20 5e  ##ke1 =   Bke1 ^
4540: 28 28 7e 42 6b 69 31 29 26 20 20 42 6b 6f 31 20  ((~Bki1)&  Bko1 
4550: 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 5e 3d 20  ); \.    Ce1 ^= 
4560: 45 23 23 6b 65 31 3b 20 5c 0a 20 20 20 20 41 23  E##ke1; \.    A#
4570: 23 73 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 20  #sa1 ^= Da1; \. 
4580: 20 20 20 42 6b 75 31 20 3d 20 52 4f 4c 33 32 28     Bku1 = ROL32(
4590: 41 23 23 73 61 31 2c 20 39 29 3b 20 5c 0a 20 20  A##sa1, 9); \.  
45a0: 20 20 45 23 23 6b 69 31 20 3d 20 20 20 42 6b 69    E##ki1 =   Bki
45b0: 31 20 5e 28 28 7e 42 6b 6f 31 29 26 20 20 42 6b  1 ^((~Bko1)&  Bk
45c0: 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 69 31 20  u1 ); \.    Ci1 
45d0: 5e 3d 20 45 23 23 6b 69 31 3b 20 5c 0a 20 20 20  ^= E##ki1; \.   
45e0: 20 45 23 23 6b 6f 31 20 3d 20 20 20 42 6b 6f 31   E##ko1 =   Bko1
45f0: 20 5e 28 28 7e 42 6b 75 31 29 26 20 20 42 6b 61   ^((~Bku1)&  Bka
4600: 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f 31 20 5e  1 ); \.    Co1 ^
4610: 3d 20 45 23 23 6b 6f 31 3b 20 5c 0a 20 20 20 20  = E##ko1; \.    
4620: 45 23 23 6b 75 31 20 3d 20 20 20 42 6b 75 31 20  E##ku1 =   Bku1 
4630: 5e 28 28 7e 42 6b 61 31 29 26 20 20 42 6b 65 31  ^((~Bka1)&  Bke1
4640: 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 20 5e 3d   ); \.    Cu1 ^=
4650: 20 45 23 23 6b 75 31 3b 20 5c 0a 5c 0a 20 20 20   E##ku1; \.\.   
4660: 20 41 23 23 62 75 31 20 5e 3d 20 44 75 31 3b 20   A##bu1 ^= Du1; 
4670: 5c 0a 20 20 20 20 42 6d 61 30 20 3d 20 52 4f 4c  \.    Bma0 = ROL
4680: 33 32 28 41 23 23 62 75 31 2c 20 31 34 29 3b 20  32(A##bu1, 14); 
4690: 5c 0a 20 20 20 20 41 23 23 67 61 30 20 5e 3d 20  \.    A##ga0 ^= 
46a0: 44 61 30 3b 20 5c 0a 20 20 20 20 42 6d 65 30 20  Da0; \.    Bme0 
46b0: 3d 20 52 4f 4c 33 32 28 41 23 23 67 61 30 2c 20  = ROL32(A##ga0, 
46c0: 31 38 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 65  18); \.    A##ke
46d0: 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20  0 ^= De0; \.    
46e0: 42 6d 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bmi0 = ROL32(A##
46f0: 6b 65 30 2c 20 35 29 3b 20 5c 0a 20 20 20 20 45  ke0, 5); \.    E
4700: 23 23 6d 61 30 20 3d 20 20 20 42 6d 61 30 20 5e  ##ma0 =   Bma0 ^
4710: 28 28 7e 42 6d 65 30 29 26 20 20 42 6d 69 30 20  ((~Bme0)&  Bmi0 
4720: 29 3b 20 5c 0a 20 20 20 20 43 61 30 20 5e 3d 20  ); \.    Ca0 ^= 
4730: 45 23 23 6d 61 30 3b 20 5c 0a 20 20 20 20 41 23  E##ma0; \.    A#
4740: 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20  #mi1 ^= Di1; \. 
4750: 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c 33 32 28     Bmo0 = ROL32(
4760: 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c 0a 20 20  A##mi1, 8); \.  
4770: 20 20 45 23 23 6d 65 30 20 3d 20 20 20 42 6d 65    E##me0 =   Bme
4780: 30 20 5e 28 28 7e 42 6d 69 30 29 26 20 20 42 6d  0 ^((~Bmi0)&  Bm
4790: 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43 65 30 20  o0 ); \.    Ce0 
47a0: 5e 3d 20 45 23 23 6d 65 30 3b 20 5c 0a 20 20 20  ^= E##me0; \.   
47b0: 20 41 23 23 73 6f 30 20 5e 3d 20 44 6f 30 3b 20   A##so0 ^= Do0; 
47c0: 5c 0a 20 20 20 20 42 6d 75 30 20 3d 20 52 4f 4c  \.    Bmu0 = ROL
47d0: 33 32 28 41 23 23 73 6f 30 2c 20 32 38 29 3b 20  32(A##so0, 28); 
47e0: 5c 0a 20 20 20 20 45 23 23 6d 69 30 20 3d 20 20  \.    E##mi0 =  
47f0: 20 42 6d 69 30 20 5e 28 28 7e 42 6d 6f 30 29 26   Bmi0 ^((~Bmo0)&
4800: 20 20 42 6d 75 30 20 29 3b 20 5c 0a 20 20 20 20    Bmu0 ); \.    
4810: 43 69 30 20 5e 3d 20 45 23 23 6d 69 30 3b 20 5c  Ci0 ^= E##mi0; \
4820: 0a 20 20 20 20 45 23 23 6d 6f 30 20 3d 20 20 20  .    E##mo0 =   
4830: 42 6d 6f 30 20 5e 28 28 7e 42 6d 75 30 29 26 20  Bmo0 ^((~Bmu0)& 
4840: 20 42 6d 61 30 20 29 3b 20 5c 0a 20 20 20 20 43   Bma0 ); \.    C
4850: 6f 30 20 5e 3d 20 45 23 23 6d 6f 30 3b 20 5c 0a  o0 ^= E##mo0; \.
4860: 20 20 20 20 45 23 23 6d 75 30 20 3d 20 20 20 42      E##mu0 =   B
4870: 6d 75 30 20 5e 28 28 7e 42 6d 61 30 29 26 20 20  mu0 ^((~Bma0)&  
4880: 42 6d 65 30 20 29 3b 20 5c 0a 20 20 20 20 43 75  Bme0 ); \.    Cu
4890: 30 20 5e 3d 20 45 23 23 6d 75 30 3b 20 5c 0a 5c  0 ^= E##mu0; \.\
48a0: 0a 20 20 20 20 41 23 23 62 75 30 20 5e 3d 20 44  .    A##bu0 ^= D
48b0: 75 30 3b 20 5c 0a 20 20 20 20 42 6d 61 31 20 3d  u0; \.    Bma1 =
48c0: 20 52 4f 4c 33 32 28 41 23 23 62 75 30 2c 20 31   ROL32(A##bu0, 1
48d0: 33 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 31  3); \.    A##ga1
48e0: 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42   ^= Da1; \.    B
48f0: 6d 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67  me1 = ROL32(A##g
4900: 61 31 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41  a1, 18); \.    A
4910: 23 23 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a  ##ke1 ^= De1; \.
4920: 20 20 20 20 42 6d 69 31 20 3d 20 52 4f 4c 33 32      Bmi1 = ROL32
4930: 28 41 23 23 6b 65 31 2c 20 35 29 3b 20 5c 0a 20  (A##ke1, 5); \. 
4940: 20 20 20 45 23 23 6d 61 31 20 3d 20 20 20 42 6d     E##ma1 =   Bm
4950: 61 31 20 5e 28 28 7e 42 6d 65 31 29 26 20 20 42  a1 ^((~Bme1)&  B
4960: 6d 69 31 20 29 3b 20 5c 0a 20 20 20 20 43 61 31  mi1 ); \.    Ca1
4970: 20 5e 3d 20 45 23 23 6d 61 31 3b 20 5c 0a 20 20   ^= E##ma1; \.  
4980: 20 20 41 23 23 6d 69 30 20 5e 3d 20 44 69 30 3b    A##mi0 ^= Di0;
4990: 20 5c 0a 20 20 20 20 42 6d 6f 31 20 3d 20 52 4f   \.    Bmo1 = RO
49a0: 4c 33 32 28 41 23 23 6d 69 30 2c 20 37 29 3b 20  L32(A##mi0, 7); 
49b0: 5c 0a 20 20 20 20 45 23 23 6d 65 31 20 3d 20 20  \.    E##me1 =  
49c0: 20 42 6d 65 31 20 5e 28 28 7e 42 6d 69 31 29 26   Bme1 ^((~Bmi1)&
49d0: 20 20 42 6d 6f 31 20 29 3b 20 5c 0a 20 20 20 20    Bmo1 ); \.    
49e0: 43 65 31 20 5e 3d 20 45 23 23 6d 65 31 3b 20 5c  Ce1 ^= E##me1; \
49f0: 0a 20 20 20 20 41 23 23 73 6f 31 20 5e 3d 20 44  .    A##so1 ^= D
4a00: 6f 31 3b 20 5c 0a 20 20 20 20 42 6d 75 31 20 3d  o1; \.    Bmu1 =
4a10: 20 52 4f 4c 33 32 28 41 23 23 73 6f 31 2c 20 32   ROL32(A##so1, 2
4a20: 38 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 69 31  8); \.    E##mi1
4a30: 20 3d 20 20 20 42 6d 69 31 20 5e 28 28 7e 42 6d   =   Bmi1 ^((~Bm
4a40: 6f 31 29 26 20 20 42 6d 75 31 20 29 3b 20 5c 0a  o1)&  Bmu1 ); \.
4a50: 20 20 20 20 43 69 31 20 5e 3d 20 45 23 23 6d 69      Ci1 ^= E##mi
4a60: 31 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 31 20  1; \.    E##mo1 
4a70: 3d 20 20 20 42 6d 6f 31 20 5e 28 28 7e 42 6d 75  =   Bmo1 ^((~Bmu
4a80: 31 29 26 20 20 42 6d 61 31 20 29 3b 20 5c 0a 20  1)&  Bma1 ); \. 
4a90: 20 20 20 43 6f 31 20 5e 3d 20 45 23 23 6d 6f 31     Co1 ^= E##mo1
4aa0: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 75 31 20 3d  ; \.    E##mu1 =
4ab0: 20 20 20 42 6d 75 31 20 5e 28 28 7e 42 6d 61 31     Bmu1 ^((~Bma1
4ac0: 29 26 20 20 42 6d 65 31 20 29 3b 20 5c 0a 20 20  )&  Bme1 ); \.  
4ad0: 20 20 43 75 31 20 5e 3d 20 45 23 23 6d 75 31 3b    Cu1 ^= E##mu1;
4ae0: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 69 30 20   \.\.    A##bi0 
4af0: 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20 42 73  ^= Di0; \.    Bs
4b00: 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 69  a0 = ROL32(A##bi
4b10: 30 2c 20 33 31 29 3b 20 5c 0a 20 20 20 20 41 23  0, 31); \.    A#
4b20: 23 67 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a 20  #go1 ^= Do1; \. 
4b30: 20 20 20 42 73 65 30 20 3d 20 52 4f 4c 33 32 28     Bse0 = ROL32(
4b40: 41 23 23 67 6f 31 2c 20 32 38 29 3b 20 5c 0a 20  A##go1, 28); \. 
4b50: 20 20 20 41 23 23 6b 75 31 20 5e 3d 20 44 75 31     A##ku1 ^= Du1
4b60: 3b 20 5c 0a 20 20 20 20 42 73 69 30 20 3d 20 52  ; \.    Bsi0 = R
4b70: 4f 4c 33 32 28 41 23 23 6b 75 31 2c 20 32 30 29  OL32(A##ku1, 20)
4b80: 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 30 20 3d  ; \.    E##sa0 =
4b90: 20 20 20 42 73 61 30 20 5e 28 28 7e 42 73 65 30     Bsa0 ^((~Bse0
4ba0: 29 26 20 20 42 73 69 30 20 29 3b 20 5c 0a 20 20  )&  Bsi0 ); \.  
4bb0: 20 20 43 61 30 20 5e 3d 20 45 23 23 73 61 30 3b    Ca0 ^= E##sa0;
4bc0: 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 20 5e 3d   \.    A##ma1 ^=
4bd0: 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 73 6f 30   Da1; \.    Bso0
4be0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 61 31 2c   = ROL32(A##ma1,
4bf0: 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73   21); \.    E##s
4c00: 65 30 20 3d 20 20 20 42 73 65 30 20 5e 28 28 7e  e0 =   Bse0 ^((~
4c10: 42 73 69 30 29 26 20 20 42 73 6f 30 20 29 3b 20  Bsi0)&  Bso0 ); 
4c20: 5c 0a 20 20 20 20 43 65 30 20 5e 3d 20 45 23 23  \.    Ce0 ^= E##
4c30: 73 65 30 3b 20 5c 0a 20 20 20 20 41 23 23 73 65  se0; \.    A##se
4c40: 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20  0 ^= De0; \.    
4c50: 42 73 75 30 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bsu0 = ROL32(A##
4c60: 73 65 30 2c 20 31 29 3b 20 5c 0a 20 20 20 20 45  se0, 1); \.    E
4c70: 23 23 73 69 30 20 3d 20 20 20 42 73 69 30 20 5e  ##si0 =   Bsi0 ^
4c80: 28 28 7e 42 73 6f 30 29 26 20 20 42 73 75 30 20  ((~Bso0)&  Bsu0 
4c90: 29 3b 20 5c 0a 20 20 20 20 43 69 30 20 5e 3d 20  ); \.    Ci0 ^= 
4ca0: 45 23 23 73 69 30 3b 20 5c 0a 20 20 20 20 45 23  E##si0; \.    E#
4cb0: 23 73 6f 30 20 3d 20 20 20 42 73 6f 30 20 5e 28  #so0 =   Bso0 ^(
4cc0: 28 7e 42 73 75 30 29 26 20 20 42 73 61 30 20 29  (~Bsu0)&  Bsa0 )
4cd0: 3b 20 5c 0a 20 20 20 20 43 6f 30 20 5e 3d 20 45  ; \.    Co0 ^= E
4ce0: 23 23 73 6f 30 3b 20 5c 0a 20 20 20 20 45 23 23  ##so0; \.    E##
4cf0: 73 75 30 20 3d 20 20 20 42 73 75 30 20 5e 28 28  su0 =   Bsu0 ^((
4d00: 7e 42 73 61 30 29 26 20 20 42 73 65 30 20 29 3b  ~Bsa0)&  Bse0 );
4d10: 20 5c 0a 20 20 20 20 43 75 30 20 5e 3d 20 45 23   \.    Cu0 ^= E#
4d20: 23 73 75 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23  #su0; \.\.    A#
4d30: 23 62 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20  #bi1 ^= Di1; \. 
4d40: 20 20 20 42 73 61 31 20 3d 20 52 4f 4c 33 32 28     Bsa1 = ROL32(
4d50: 41 23 23 62 69 31 2c 20 33 31 29 3b 20 5c 0a 20  A##bi1, 31); \. 
4d60: 20 20 20 41 23 23 67 6f 30 20 5e 3d 20 44 6f 30     A##go0 ^= Do0
4d70: 3b 20 5c 0a 20 20 20 20 42 73 65 31 20 3d 20 52  ; \.    Bse1 = R
4d80: 4f 4c 33 32 28 41 23 23 67 6f 30 2c 20 32 37 29  OL32(A##go0, 27)
4d90: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 30 20 5e  ; \.    A##ku0 ^
4da0: 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 73 69  = Du0; \.    Bsi
4db0: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 30  1 = ROL32(A##ku0
4dc0: 2c 20 31 39 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 19); \.    E##
4dd0: 73 61 31 20 3d 20 20 20 42 73 61 31 20 5e 28 28  sa1 =   Bsa1 ^((
4de0: 7e 42 73 65 31 29 26 20 20 42 73 69 31 20 29 3b  ~Bse1)&  Bsi1 );
4df0: 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d 20 45 23   \.    Ca1 ^= E#
4e00: 23 73 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 6d  #sa1; \.    A##m
4e10: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20  a0 ^= Da0; \.   
4e20: 20 42 73 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23   Bso1 = ROL32(A#
4e30: 23 6d 61 30 2c 20 32 30 29 3b 20 5c 0a 20 20 20  #ma0, 20); \.   
4e40: 20 45 23 23 73 65 31 20 3d 20 20 20 42 73 65 31   E##se1 =   Bse1
4e50: 20 5e 28 28 7e 42 73 69 31 29 26 20 20 42 73 6f   ^((~Bsi1)&  Bso
4e60: 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 5e  1 ); \.    Ce1 ^
4e70: 3d 20 45 23 23 73 65 31 3b 20 5c 0a 20 20 20 20  = E##se1; \.    
4e80: 41 23 23 73 65 31 20 5e 3d 20 44 65 31 3b 20 5c  A##se1 ^= De1; \
4e90: 0a 20 20 20 20 42 73 75 31 20 3d 20 52 4f 4c 33  .    Bsu1 = ROL3
4ea0: 32 28 41 23 23 73 65 31 2c 20 31 29 3b 20 5c 0a  2(A##se1, 1); \.
4eb0: 20 20 20 20 45 23 23 73 69 31 20 3d 20 20 20 42      E##si1 =   B
4ec0: 73 69 31 20 5e 28 28 7e 42 73 6f 31 29 26 20 20  si1 ^((~Bso1)&  
4ed0: 42 73 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 69  Bsu1 ); \.    Ci
4ee0: 31 20 5e 3d 20 45 23 23 73 69 31 3b 20 5c 0a 20  1 ^= E##si1; \. 
4ef0: 20 20 20 45 23 23 73 6f 31 20 3d 20 20 20 42 73     E##so1 =   Bs
4f00: 6f 31 20 5e 28 28 7e 42 73 75 31 29 26 20 20 42  o1 ^((~Bsu1)&  B
4f10: 73 61 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f 31  sa1 ); \.    Co1
4f20: 20 5e 3d 20 45 23 23 73 6f 31 3b 20 5c 0a 20 20   ^= E##so1; \.  
4f30: 20 20 45 23 23 73 75 31 20 3d 20 20 20 42 73 75    E##su1 =   Bsu
4f40: 31 20 5e 28 28 7e 42 73 61 31 29 26 20 20 42 73  1 ^((~Bsa1)&  Bs
4f50: 65 31 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 20  e1 ); \.    Cu1 
4f60: 5e 3d 20 45 23 23 73 75 31 3b 20 5c 0a 5c 0a 0a  ^= E##su1; \.\..
4f70: 2f 2f 20 2d 2d 2d 20 43 6f 64 65 20 66 6f 72 20  // --- Code for 
4f80: 72 6f 75 6e 64 0a 2f 2f 20 2d 2d 2d 20 75 73 69  round.// --- usi
4f90: 6e 67 20 66 61 63 74 6f 72 20 32 20 69 6e 74 65  ng factor 2 inte
4fa0: 72 6c 65 61 76 69 6e 67 2c 20 36 34 2d 62 69 74  rleaving, 64-bit
4fb0: 20 6c 61 6e 65 73 20 6d 61 70 70 65 64 20 74 6f   lanes mapped to
4fc0: 20 33 32 2d 62 69 74 20 77 6f 72 64 73 0a 23 64   32-bit words.#d
4fd0: 65 66 69 6e 65 20 74 68 65 74 61 52 68 6f 50 69  efine thetaRhoPi
4fe0: 43 68 69 49 6f 74 61 28 69 2c 20 41 2c 20 45 29  ChiIota(i, A, E)
4ff0: 20 5c 0a 20 20 20 20 44 61 30 20 3d 20 43 75 30   \.    Da0 = Cu0
5000: 5e 52 4f 4c 33 32 28 43 65 31 2c 20 31 29 3b 20  ^ROL32(Ce1, 1); 
5010: 5c 0a 20 20 20 20 44 61 31 20 3d 20 43 75 31 5e  \.    Da1 = Cu1^
5020: 43 65 30 3b 20 5c 0a 20 20 20 20 44 65 30 20 3d  Ce0; \.    De0 =
5030: 20 43 61 30 5e 52 4f 4c 33 32 28 43 69 31 2c 20   Ca0^ROL32(Ci1, 
5040: 31 29 3b 20 5c 0a 20 20 20 20 44 65 31 20 3d 20  1); \.    De1 = 
5050: 43 61 31 5e 43 69 30 3b 20 5c 0a 20 20 20 20 44  Ca1^Ci0; \.    D
5060: 69 30 20 3d 20 43 65 30 5e 52 4f 4c 33 32 28 43  i0 = Ce0^ROL32(C
5070: 6f 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 69  o1, 1); \.    Di
5080: 31 20 3d 20 43 65 31 5e 43 6f 30 3b 20 5c 0a 20  1 = Ce1^Co0; \. 
5090: 20 20 20 44 6f 30 20 3d 20 43 69 30 5e 52 4f 4c     Do0 = Ci0^ROL
50a0: 33 32 28 43 75 31 2c 20 31 29 3b 20 5c 0a 20 20  32(Cu1, 1); \.  
50b0: 20 20 44 6f 31 20 3d 20 43 69 31 5e 43 75 30 3b    Do1 = Ci1^Cu0;
50c0: 20 5c 0a 20 20 20 20 44 75 30 20 3d 20 43 6f 30   \.    Du0 = Co0
50d0: 5e 52 4f 4c 33 32 28 43 61 31 2c 20 31 29 3b 20  ^ROL32(Ca1, 1); 
50e0: 5c 0a 20 20 20 20 44 75 31 20 3d 20 43 6f 31 5e  \.    Du1 = Co1^
50f0: 43 61 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23  Ca0; \.\.    A##
5100: 62 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20  ba0 ^= Da0; \.  
5110: 20 20 42 62 61 30 20 3d 20 41 23 23 62 61 30 3b    Bba0 = A##ba0;
5120: 20 5c 0a 20 20 20 20 41 23 23 67 65 30 20 5e 3d   \.    A##ge0 ^=
5130: 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 62 65 30   De0; \.    Bbe0
5140: 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 65 30 2c   = ROL32(A##ge0,
5150: 20 32 32 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b   22); \.    A##k
5160: 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20  i1 ^= Di1; \.   
5170: 20 42 62 69 30 20 3d 20 52 4f 4c 33 32 28 41 23   Bbi0 = ROL32(A#
5180: 23 6b 69 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20  #ki1, 22); \.   
5190: 20 45 23 23 62 61 30 20 3d 20 20 20 42 62 61 30   E##ba0 =   Bba0
51a0: 20 5e 28 28 7e 42 62 65 30 29 26 20 20 42 62 69   ^((~Bbe0)&  Bbi
51b0: 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61  0 ); \.    E##ba
51c0: 30 20 5e 3d 20 4b 65 63 63 61 6b 46 31 36 30 30  0 ^= KeccakF1600
51d0: 52 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69  RoundConstants_i
51e0: 6e 74 32 5f 30 5b 69 5d 3b 20 5c 0a 20 20 20 20  nt2_0[i]; \.    
51f0: 41 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c  A##mo1 ^= Do1; \
5200: 0a 20 20 20 20 42 62 6f 30 20 3d 20 52 4f 4c 33  .    Bbo0 = ROL3
5210: 32 28 41 23 23 6d 6f 31 2c 20 31 31 29 3b 20 5c  2(A##mo1, 11); \
5220: 0a 20 20 20 20 45 23 23 62 65 30 20 3d 20 20 20  .    E##be0 =   
5230: 42 62 65 30 20 5e 28 28 7e 42 62 69 30 29 26 20  Bbe0 ^((~Bbi0)& 
5240: 20 42 62 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41   Bbo0 ); \.    A
5250: 23 23 73 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a  ##su0 ^= Du0; \.
5260: 20 20 20 20 42 62 75 30 20 3d 20 52 4f 4c 33 32      Bbu0 = ROL32
5270: 28 41 23 23 73 75 30 2c 20 37 29 3b 20 5c 0a 20  (A##su0, 7); \. 
5280: 20 20 20 45 23 23 62 69 30 20 3d 20 20 20 42 62     E##bi0 =   Bb
5290: 69 30 20 5e 28 28 7e 42 62 6f 30 29 26 20 20 42  i0 ^((~Bbo0)&  B
52a0: 62 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23  bu0 ); \.    E##
52b0: 62 6f 30 20 3d 20 20 20 42 62 6f 30 20 5e 28 28  bo0 =   Bbo0 ^((
52c0: 7e 42 62 75 30 29 26 20 20 42 62 61 30 20 29 3b  ~Bbu0)&  Bba0 );
52d0: 20 5c 0a 20 20 20 20 45 23 23 62 75 30 20 3d 20   \.    E##bu0 = 
52e0: 20 20 42 62 75 30 20 5e 28 28 7e 42 62 61 30 29    Bbu0 ^((~Bba0)
52f0: 26 20 20 42 62 65 30 20 29 3b 20 5c 0a 5c 0a 20  &  Bbe0 ); \.\. 
5300: 20 20 20 41 23 23 62 61 31 20 5e 3d 20 44 61 31     A##ba1 ^= Da1
5310: 3b 20 5c 0a 20 20 20 20 42 62 61 31 20 3d 20 41  ; \.    Bba1 = A
5320: 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23  ##ba1; \.    A##
5330: 67 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20  ge1 ^= De1; \.  
5340: 20 20 42 62 65 31 20 3d 20 52 4f 4c 33 32 28 41    Bbe1 = ROL32(A
5350: 23 23 67 65 31 2c 20 32 32 29 3b 20 5c 0a 20 20  ##ge1, 22); \.  
5360: 20 20 41 23 23 6b 69 30 20 5e 3d 20 44 69 30 3b    A##ki0 ^= Di0;
5370: 20 5c 0a 20 20 20 20 42 62 69 31 20 3d 20 52 4f   \.    Bbi1 = RO
5380: 4c 33 32 28 41 23 23 6b 69 30 2c 20 32 31 29 3b  L32(A##ki0, 21);
5390: 20 5c 0a 20 20 20 20 45 23 23 62 61 31 20 3d 20   \.    E##ba1 = 
53a0: 20 20 42 62 61 31 20 5e 28 28 7e 42 62 65 31 29    Bba1 ^((~Bbe1)
53b0: 26 20 20 42 62 69 31 20 29 3b 20 5c 0a 20 20 20  &  Bbi1 ); \.   
53c0: 20 45 23 23 62 61 31 20 5e 3d 20 4b 65 63 63 61   E##ba1 ^= Kecca
53d0: 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 74  kF1600RoundConst
53e0: 61 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 5d 3b 20  ants_int2_1[i]; 
53f0: 5c 0a 20 20 20 20 41 23 23 6d 6f 30 20 5e 3d 20  \.    A##mo0 ^= 
5400: 44 6f 30 3b 20 5c 0a 20 20 20 20 42 62 6f 31 20  Do0; \.    Bbo1 
5410: 3d 20 52 4f 4c 33 32 28 41 23 23 6d 6f 30 2c 20  = ROL32(A##mo0, 
5420: 31 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 65  10); \.    E##be
5430: 31 20 3d 20 20 20 42 62 65 31 20 5e 28 28 7e 42  1 =   Bbe1 ^((~B
5440: 62 69 31 29 26 20 20 42 62 6f 31 20 29 3b 20 5c  bi1)&  Bbo1 ); \
5450: 0a 20 20 20 20 41 23 23 73 75 31 20 5e 3d 20 44  .    A##su1 ^= D
5460: 75 31 3b 20 5c 0a 20 20 20 20 42 62 75 31 20 3d  u1; \.    Bbu1 =
5470: 20 52 4f 4c 33 32 28 41 23 23 73 75 31 2c 20 37   ROL32(A##su1, 7
5480: 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 69 31 20  ); \.    E##bi1 
5490: 3d 20 20 20 42 62 69 31 20 5e 28 28 7e 42 62 6f  =   Bbi1 ^((~Bbo
54a0: 31 29 26 20 20 42 62 75 31 20 29 3b 20 5c 0a 20  1)&  Bbu1 ); \. 
54b0: 20 20 20 45 23 23 62 6f 31 20 3d 20 20 20 42 62     E##bo1 =   Bb
54c0: 6f 31 20 5e 28 28 7e 42 62 75 31 29 26 20 20 42  o1 ^((~Bbu1)&  B
54d0: 62 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23  ba1 ); \.    E##
54e0: 62 75 31 20 3d 20 20 20 42 62 75 31 20 5e 28 28  bu1 =   Bbu1 ^((
54f0: 7e 42 62 61 31 29 26 20 20 42 62 65 31 20 29 3b  ~Bba1)&  Bbe1 );
5500: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 6f 30 20   \.\.    A##bo0 
5510: 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 67  ^= Do0; \.    Bg
5520: 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 6f  a0 = ROL32(A##bo
5530: 30 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23  0, 14); \.    A#
5540: 23 67 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20  #gu0 ^= Du0; \. 
5550: 20 20 20 42 67 65 30 20 3d 20 52 4f 4c 33 32 28     Bge0 = ROL32(
5560: 41 23 23 67 75 30 2c 20 31 30 29 3b 20 5c 0a 20  A##gu0, 10); \. 
5570: 20 20 20 41 23 23 6b 61 31 20 5e 3d 20 44 61 31     A##ka1 ^= Da1
5580: 3b 20 5c 0a 20 20 20 20 42 67 69 30 20 3d 20 52  ; \.    Bgi0 = R
5590: 4f 4c 33 32 28 41 23 23 6b 61 31 2c 20 32 29 3b  OL32(A##ka1, 2);
55a0: 20 5c 0a 20 20 20 20 45 23 23 67 61 30 20 3d 20   \.    E##ga0 = 
55b0: 20 20 42 67 61 30 20 5e 28 28 7e 42 67 65 30 29    Bga0 ^((~Bge0)
55c0: 26 20 20 42 67 69 30 20 29 3b 20 5c 0a 20 20 20  &  Bgi0 ); \.   
55d0: 20 41 23 23 6d 65 31 20 5e 3d 20 44 65 31 3b 20   A##me1 ^= De1; 
55e0: 5c 0a 20 20 20 20 42 67 6f 30 20 3d 20 52 4f 4c  \.    Bgo0 = ROL
55f0: 33 32 28 41 23 23 6d 65 31 2c 20 32 33 29 3b 20  32(A##me1, 23); 
5600: 5c 0a 20 20 20 20 45 23 23 67 65 30 20 3d 20 20  \.    E##ge0 =  
5610: 20 42 67 65 30 20 5e 28 28 7e 42 67 69 30 29 26   Bge0 ^((~Bgi0)&
5620: 20 20 42 67 6f 30 20 29 3b 20 5c 0a 20 20 20 20    Bgo0 ); \.    
5630: 41 23 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c  A##si1 ^= Di1; \
5640: 0a 20 20 20 20 42 67 75 30 20 3d 20 52 4f 4c 33  .    Bgu0 = ROL3
5650: 32 28 41 23 23 73 69 31 2c 20 33 31 29 3b 20 5c  2(A##si1, 31); \
5660: 0a 20 20 20 20 45 23 23 67 69 30 20 3d 20 20 20  .    E##gi0 =   
5670: 42 67 69 30 20 5e 28 28 7e 42 67 6f 30 29 26 20  Bgi0 ^((~Bgo0)& 
5680: 20 42 67 75 30 20 29 3b 20 5c 0a 20 20 20 20 45   Bgu0 ); \.    E
5690: 23 23 67 6f 30 20 3d 20 20 20 42 67 6f 30 20 5e  ##go0 =   Bgo0 ^
56a0: 28 28 7e 42 67 75 30 29 26 20 20 42 67 61 30 20  ((~Bgu0)&  Bga0 
56b0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 75 30 20  ); \.    E##gu0 
56c0: 3d 20 20 20 42 67 75 30 20 5e 28 28 7e 42 67 61  =   Bgu0 ^((~Bga
56d0: 30 29 26 20 20 42 67 65 30 20 29 3b 20 5c 0a 5c  0)&  Bge0 ); \.\
56e0: 0a 20 20 20 20 41 23 23 62 6f 31 20 5e 3d 20 44  .    A##bo1 ^= D
56f0: 6f 31 3b 20 5c 0a 20 20 20 20 42 67 61 31 20 3d  o1; \.    Bga1 =
5700: 20 52 4f 4c 33 32 28 41 23 23 62 6f 31 2c 20 31   ROL32(A##bo1, 1
5710: 34 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 75 31  4); \.    A##gu1
5720: 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42   ^= Du1; \.    B
5730: 67 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67  ge1 = ROL32(A##g
5740: 75 31 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 41  u1, 10); \.    A
5750: 23 23 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a  ##ka0 ^= Da0; \.
5760: 20 20 20 20 42 67 69 31 20 3d 20 52 4f 4c 33 32      Bgi1 = ROL32
5770: 28 41 23 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20  (A##ka0, 1); \. 
5780: 20 20 20 45 23 23 67 61 31 20 3d 20 20 20 42 67     E##ga1 =   Bg
5790: 61 31 20 5e 28 28 7e 42 67 65 31 29 26 20 20 42  a1 ^((~Bge1)&  B
57a0: 67 69 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23  gi1 ); \.    A##
57b0: 6d 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20  me0 ^= De0; \.  
57c0: 20 20 42 67 6f 31 20 3d 20 52 4f 4c 33 32 28 41    Bgo1 = ROL32(A
57d0: 23 23 6d 65 30 2c 20 32 32 29 3b 20 5c 0a 20 20  ##me0, 22); \.  
57e0: 20 20 45 23 23 67 65 31 20 3d 20 20 20 42 67 65    E##ge1 =   Bge
57f0: 31 20 5e 28 28 7e 42 67 69 31 29 26 20 20 42 67  1 ^((~Bgi1)&  Bg
5800: 6f 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 73  o1 ); \.    A##s
5810: 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20  i0 ^= Di0; \.   
5820: 20 42 67 75 31 20 3d 20 52 4f 4c 33 32 28 41 23   Bgu1 = ROL32(A#
5830: 23 73 69 30 2c 20 33 30 29 3b 20 5c 0a 20 20 20  #si0, 30); \.   
5840: 20 45 23 23 67 69 31 20 3d 20 20 20 42 67 69 31   E##gi1 =   Bgi1
5850: 20 5e 28 28 7e 42 67 6f 31 29 26 20 20 42 67 75   ^((~Bgo1)&  Bgu
5860: 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 6f  1 ); \.    E##go
5870: 31 20 3d 20 20 20 42 67 6f 31 20 5e 28 28 7e 42  1 =   Bgo1 ^((~B
5880: 67 75 31 29 26 20 20 42 67 61 31 20 29 3b 20 5c  gu1)&  Bga1 ); \
5890: 0a 20 20 20 20 45 23 23 67 75 31 20 3d 20 20 20  .    E##gu1 =   
58a0: 42 67 75 31 20 5e 28 28 7e 42 67 61 31 29 26 20  Bgu1 ^((~Bga1)& 
58b0: 20 42 67 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20   Bge1 ); \.\.   
58c0: 20 41 23 23 62 65 31 20 5e 3d 20 44 65 31 3b 20   A##be1 ^= De1; 
58d0: 5c 0a 20 20 20 20 42 6b 61 30 20 3d 20 52 4f 4c  \.    Bka0 = ROL
58e0: 33 32 28 41 23 23 62 65 31 2c 20 31 29 3b 20 5c  32(A##be1, 1); \
58f0: 0a 20 20 20 20 41 23 23 67 69 30 20 5e 3d 20 44  .    A##gi0 ^= D
5900: 69 30 3b 20 5c 0a 20 20 20 20 42 6b 65 30 20 3d  i0; \.    Bke0 =
5910: 20 52 4f 4c 33 32 28 41 23 23 67 69 30 2c 20 33   ROL32(A##gi0, 3
5920: 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 31 20  ); \.    A##ko1 
5930: 5e 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6b  ^= Do1; \.    Bk
5940: 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f  i0 = ROL32(A##ko
5950: 31 2c 20 31 33 29 3b 20 5c 0a 20 20 20 20 45 23  1, 13); \.    E#
5960: 23 6b 61 30 20 3d 20 20 20 42 6b 61 30 20 5e 28  #ka0 =   Bka0 ^(
5970: 28 7e 42 6b 65 30 29 26 20 20 42 6b 69 30 20 29  (~Bke0)&  Bki0 )
5980: 3b 20 5c 0a 20 20 20 20 41 23 23 6d 75 30 20 5e  ; \.    A##mu0 ^
5990: 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 6b 6f  = Du0; \.    Bko
59a0: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 30  0 = ROL32(A##mu0
59b0: 2c 20 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b  , 4); \.    E##k
59c0: 65 30 20 3d 20 20 20 42 6b 65 30 20 5e 28 28 7e  e0 =   Bke0 ^((~
59d0: 42 6b 69 30 29 26 20 20 42 6b 6f 30 20 29 3b 20  Bki0)&  Bko0 ); 
59e0: 5c 0a 20 20 20 20 41 23 23 73 61 30 20 5e 3d 20  \.    A##sa0 ^= 
59f0: 44 61 30 3b 20 5c 0a 20 20 20 20 42 6b 75 30 20  Da0; \.    Bku0 
5a00: 3d 20 52 4f 4c 33 32 28 41 23 23 73 61 30 2c 20  = ROL32(A##sa0, 
5a10: 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 30  9); \.    E##ki0
5a20: 20 3d 20 20 20 42 6b 69 30 20 5e 28 28 7e 42 6b   =   Bki0 ^((~Bk
5a30: 6f 30 29 26 20 20 42 6b 75 30 20 29 3b 20 5c 0a  o0)&  Bku0 ); \.
5a40: 20 20 20 20 45 23 23 6b 6f 30 20 3d 20 20 20 42      E##ko0 =   B
5a50: 6b 6f 30 20 5e 28 28 7e 42 6b 75 30 29 26 20 20  ko0 ^((~Bku0)&  
5a60: 42 6b 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 23  Bka0 ); \.    E#
5a70: 23 6b 75 30 20 3d 20 20 20 42 6b 75 30 20 5e 28  #ku0 =   Bku0 ^(
5a80: 28 7e 42 6b 61 30 29 26 20 20 42 6b 65 30 20 29  (~Bka0)&  Bke0 )
5a90: 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 30  ; \.\.    A##be0
5aa0: 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 42   ^= De0; \.    B
5ab0: 6b 61 31 20 3d 20 41 23 23 62 65 30 3b 20 5c 0a  ka1 = A##be0; \.
5ac0: 20 20 20 20 41 23 23 67 69 31 20 5e 3d 20 44 69      A##gi1 ^= Di
5ad0: 31 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 3d 20  1; \.    Bke1 = 
5ae0: 52 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 33 29  ROL32(A##gi1, 3)
5af0: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 20 5e  ; \.    A##ko0 ^
5b00: 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 6b 69  = Do0; \.    Bki
5b10: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 30  1 = ROL32(A##ko0
5b20: 2c 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 12); \.    E##
5b30: 6b 61 31 20 3d 20 20 20 42 6b 61 31 20 5e 28 28  ka1 =   Bka1 ^((
5b40: 7e 42 6b 65 31 29 26 20 20 42 6b 69 31 20 29 3b  ~Bke1)&  Bki1 );
5b50: 20 5c 0a 20 20 20 20 41 23 23 6d 75 31 20 5e 3d   \.    A##mu1 ^=
5b60: 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 6b 6f 31   Du1; \.    Bko1
5b70: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 31 2c   = ROL32(A##mu1,
5b80: 20 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65   4); \.    E##ke
5b90: 31 20 3d 20 20 20 42 6b 65 31 20 5e 28 28 7e 42  1 =   Bke1 ^((~B
5ba0: 6b 69 31 29 26 20 20 42 6b 6f 31 20 29 3b 20 5c  ki1)&  Bko1 ); \
5bb0: 0a 20 20 20 20 41 23 23 73 61 31 20 5e 3d 20 44  .    A##sa1 ^= D
5bc0: 61 31 3b 20 5c 0a 20 20 20 20 42 6b 75 31 20 3d  a1; \.    Bku1 =
5bd0: 20 52 4f 4c 33 32 28 41 23 23 73 61 31 2c 20 39   ROL32(A##sa1, 9
5be0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 31 20  ); \.    E##ki1 
5bf0: 3d 20 20 20 42 6b 69 31 20 5e 28 28 7e 42 6b 6f  =   Bki1 ^((~Bko
5c00: 31 29 26 20 20 42 6b 75 31 20 29 3b 20 5c 0a 20  1)&  Bku1 ); \. 
5c10: 20 20 20 45 23 23 6b 6f 31 20 3d 20 20 20 42 6b     E##ko1 =   Bk
5c20: 6f 31 20 5e 28 28 7e 42 6b 75 31 29 26 20 20 42  o1 ^((~Bku1)&  B
5c30: 6b 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23  ka1 ); \.    E##
5c40: 6b 75 31 20 3d 20 20 20 42 6b 75 31 20 5e 28 28  ku1 =   Bku1 ^((
5c50: 7e 42 6b 61 31 29 26 20 20 42 6b 65 31 20 29 3b  ~Bka1)&  Bke1 );
5c60: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 75 31 20   \.\.    A##bu1 
5c70: 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 6d  ^= Du1; \.    Bm
5c80: 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 75  a0 = ROL32(A##bu
5c90: 31 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23  1, 14); \.    A#
5ca0: 23 67 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20  #ga0 ^= Da0; \. 
5cb0: 20 20 20 42 6d 65 30 20 3d 20 52 4f 4c 33 32 28     Bme0 = ROL32(
5cc0: 41 23 23 67 61 30 2c 20 31 38 29 3b 20 5c 0a 20  A##ga0, 18); \. 
5cd0: 20 20 20 41 23 23 6b 65 30 20 5e 3d 20 44 65 30     A##ke0 ^= De0
5ce0: 3b 20 5c 0a 20 20 20 20 42 6d 69 30 20 3d 20 52  ; \.    Bmi0 = R
5cf0: 4f 4c 33 32 28 41 23 23 6b 65 30 2c 20 35 29 3b  OL32(A##ke0, 5);
5d00: 20 5c 0a 20 20 20 20 45 23 23 6d 61 30 20 3d 20   \.    E##ma0 = 
5d10: 20 20 42 6d 61 30 20 5e 28 28 7e 42 6d 65 30 29    Bma0 ^((~Bme0)
5d20: 26 20 20 42 6d 69 30 20 29 3b 20 5c 0a 20 20 20  &  Bmi0 ); \.   
5d30: 20 41 23 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20   A##mi1 ^= Di1; 
5d40: 5c 0a 20 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c  \.    Bmo0 = ROL
5d50: 33 32 28 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c  32(A##mi1, 8); \
5d60: 0a 20 20 20 20 45 23 23 6d 65 30 20 3d 20 20 20  .    E##me0 =   
5d70: 42 6d 65 30 20 5e 28 28 7e 42 6d 69 30 29 26 20  Bme0 ^((~Bmi0)& 
5d80: 20 42 6d 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41   Bmo0 ); \.    A
5d90: 23 23 73 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a  ##so0 ^= Do0; \.
5da0: 20 20 20 20 42 6d 75 30 20 3d 20 52 4f 4c 33 32      Bmu0 = ROL32
5db0: 28 41 23 23 73 6f 30 2c 20 32 38 29 3b 20 5c 0a  (A##so0, 28); \.
5dc0: 20 20 20 20 45 23 23 6d 69 30 20 3d 20 20 20 42      E##mi0 =   B
5dd0: 6d 69 30 20 5e 28 28 7e 42 6d 6f 30 29 26 20 20  mi0 ^((~Bmo0)&  
5de0: 42 6d 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23  Bmu0 ); \.    E#
5df0: 23 6d 6f 30 20 3d 20 20 20 42 6d 6f 30 20 5e 28  #mo0 =   Bmo0 ^(
5e00: 28 7e 42 6d 75 30 29 26 20 20 42 6d 61 30 20 29  (~Bmu0)&  Bma0 )
5e10: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 75 30 20 3d  ; \.    E##mu0 =
5e20: 20 20 20 42 6d 75 30 20 5e 28 28 7e 42 6d 61 30     Bmu0 ^((~Bma0
5e30: 29 26 20 20 42 6d 65 30 20 29 3b 20 5c 0a 5c 0a  )&  Bme0 ); \.\.
5e40: 20 20 20 20 41 23 23 62 75 30 20 5e 3d 20 44 75      A##bu0 ^= Du
5e50: 30 3b 20 5c 0a 20 20 20 20 42 6d 61 31 20 3d 20  0; \.    Bma1 = 
5e60: 52 4f 4c 33 32 28 41 23 23 62 75 30 2c 20 31 33  ROL32(A##bu0, 13
5e70: 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 31 20  ); \.    A##ga1 
5e80: 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 6d  ^= Da1; \.    Bm
5e90: 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 61  e1 = ROL32(A##ga
5ea0: 31 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 23  1, 18); \.    A#
5eb0: 23 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20  #ke1 ^= De1; \. 
5ec0: 20 20 20 42 6d 69 31 20 3d 20 52 4f 4c 33 32 28     Bmi1 = ROL32(
5ed0: 41 23 23 6b 65 31 2c 20 35 29 3b 20 5c 0a 20 20  A##ke1, 5); \.  
5ee0: 20 20 45 23 23 6d 61 31 20 3d 20 20 20 42 6d 61    E##ma1 =   Bma
5ef0: 31 20 5e 28 28 7e 42 6d 65 31 29 26 20 20 42 6d  1 ^((~Bme1)&  Bm
5f00: 69 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 6d  i1 ); \.    A##m
5f10: 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20  i0 ^= Di0; \.   
5f20: 20 42 6d 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23   Bmo1 = ROL32(A#
5f30: 23 6d 69 30 2c 20 37 29 3b 20 5c 0a 20 20 20 20  #mi0, 7); \.    
5f40: 45 23 23 6d 65 31 20 3d 20 20 20 42 6d 65 31 20  E##me1 =   Bme1 
5f50: 5e 28 28 7e 42 6d 69 31 29 26 20 20 42 6d 6f 31  ^((~Bmi1)&  Bmo1
5f60: 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 6f 31   ); \.    A##so1
5f70: 20 5e 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42   ^= Do1; \.    B
5f80: 6d 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 73  mu1 = ROL32(A##s
5f90: 6f 31 2c 20 32 38 29 3b 20 5c 0a 20 20 20 20 45  o1, 28); \.    E
5fa0: 23 23 6d 69 31 20 3d 20 20 20 42 6d 69 31 20 5e  ##mi1 =   Bmi1 ^
5fb0: 28 28 7e 42 6d 6f 31 29 26 20 20 42 6d 75 31 20  ((~Bmo1)&  Bmu1 
5fc0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 31 20  ); \.    E##mo1 
5fd0: 3d 20 20 20 42 6d 6f 31 20 5e 28 28 7e 42 6d 75  =   Bmo1 ^((~Bmu
5fe0: 31 29 26 20 20 42 6d 61 31 20 29 3b 20 5c 0a 20  1)&  Bma1 ); \. 
5ff0: 20 20 20 45 23 23 6d 75 31 20 3d 20 20 20 42 6d     E##mu1 =   Bm
6000: 75 31 20 5e 28 28 7e 42 6d 61 31 29 26 20 20 42  u1 ^((~Bma1)&  B
6010: 6d 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 20 41  me1 ); \.\.    A
6020: 23 23 62 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a  ##bi0 ^= Di0; \.
6030: 20 20 20 20 42 73 61 30 20 3d 20 52 4f 4c 33 32      Bsa0 = ROL32
6040: 28 41 23 23 62 69 30 2c 20 33 31 29 3b 20 5c 0a  (A##bi0, 31); \.
6050: 20 20 20 20 41 23 23 67 6f 31 20 5e 3d 20 44 6f      A##go1 ^= Do
6060: 31 3b 20 5c 0a 20 20 20 20 42 73 65 30 20 3d 20  1; \.    Bse0 = 
6070: 52 4f 4c 33 32 28 41 23 23 67 6f 31 2c 20 32 38  ROL32(A##go1, 28
6080: 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 31 20  ); \.    A##ku1 
6090: 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 73  ^= Du1; \.    Bs
60a0: 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75  i0 = ROL32(A##ku
60b0: 31 2c 20 32 30 29 3b 20 5c 0a 20 20 20 20 45 23  1, 20); \.    E#
60c0: 23 73 61 30 20 3d 20 20 20 42 73 61 30 20 5e 28  #sa0 =   Bsa0 ^(
60d0: 28 7e 42 73 65 30 29 26 20 20 42 73 69 30 20 29  (~Bse0)&  Bsi0 )
60e0: 3b 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 20 5e  ; \.    A##ma1 ^
60f0: 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 73 6f  = Da1; \.    Bso
6100: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 61 31  0 = ROL32(A##ma1
6110: 2c 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 23 23  , 21); \.    E##
6120: 73 65 30 20 3d 20 20 20 42 73 65 30 20 5e 28 28  se0 =   Bse0 ^((
6130: 7e 42 73 69 30 29 26 20 20 42 73 6f 30 20 29 3b  ~Bsi0)&  Bso0 );
6140: 20 5c 0a 20 20 20 20 41 23 23 73 65 30 20 5e 3d   \.    A##se0 ^=
6150: 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 73 75 30   De0; \.    Bsu0
6160: 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 65 30 2c   = ROL32(A##se0,
6170: 20 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 69   1); \.    E##si
6180: 30 20 3d 20 20 20 42 73 69 30 20 5e 28 28 7e 42  0 =   Bsi0 ^((~B
6190: 73 6f 30 29 26 20 20 42 73 75 30 20 29 3b 20 5c  so0)&  Bsu0 ); \
61a0: 0a 20 20 20 20 45 23 23 73 6f 30 20 3d 20 20 20  .    E##so0 =   
61b0: 42 73 6f 30 20 5e 28 28 7e 42 73 75 30 29 26 20  Bso0 ^((~Bsu0)& 
61c0: 20 42 73 61 30 20 29 3b 20 5c 0a 20 20 20 20 45   Bsa0 ); \.    E
61d0: 23 23 73 75 30 20 3d 20 20 20 42 73 75 30 20 5e  ##su0 =   Bsu0 ^
61e0: 28 28 7e 42 73 61 30 29 26 20 20 42 73 65 30 20  ((~Bsa0)&  Bse0 
61f0: 29 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 69  ); \.\.    A##bi
6200: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20  1 ^= Di1; \.    
6210: 42 73 61 31 20 3d 20 52 4f 4c 33 32 28 41 23 23  Bsa1 = ROL32(A##
6220: 62 69 31 2c 20 33 31 29 3b 20 5c 0a 20 20 20 20  bi1, 31); \.    
6230: 41 23 23 67 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c  A##go0 ^= Do0; \
6240: 0a 20 20 20 20 42 73 65 31 20 3d 20 52 4f 4c 33  .    Bse1 = ROL3
6250: 32 28 41 23 23 67 6f 30 2c 20 32 37 29 3b 20 5c  2(A##go0, 27); \
6260: 0a 20 20 20 20 41 23 23 6b 75 30 20 5e 3d 20 44  .    A##ku0 ^= D
6270: 75 30 3b 20 5c 0a 20 20 20 20 42 73 69 31 20 3d  u0; \.    Bsi1 =
6280: 20 52 4f 4c 33 32 28 41 23 23 6b 75 30 2c 20 31   ROL32(A##ku0, 1
6290: 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 31  9); \.    E##sa1
62a0: 20 3d 20 20 20 42 73 61 31 20 5e 28 28 7e 42 73   =   Bsa1 ^((~Bs
62b0: 65 31 29 26 20 20 42 73 69 31 20 29 3b 20 5c 0a  e1)&  Bsi1 ); \.
62c0: 20 20 20 20 41 23 23 6d 61 30 20 5e 3d 20 44 61      A##ma0 ^= Da
62d0: 30 3b 20 5c 0a 20 20 20 20 42 73 6f 31 20 3d 20  0; \.    Bso1 = 
62e0: 52 4f 4c 33 32 28 41 23 23 6d 61 30 2c 20 32 30  ROL32(A##ma0, 20
62f0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 65 31 20  ); \.    E##se1 
6300: 3d 20 20 20 42 73 65 31 20 5e 28 28 7e 42 73 69  =   Bse1 ^((~Bsi
6310: 31 29 26 20 20 42 73 6f 31 20 29 3b 20 5c 0a 20  1)&  Bso1 ); \. 
6320: 20 20 20 41 23 23 73 65 31 20 5e 3d 20 44 65 31     A##se1 ^= De1
6330: 3b 20 5c 0a 20 20 20 20 42 73 75 31 20 3d 20 52  ; \.    Bsu1 = R
6340: 4f 4c 33 32 28 41 23 23 73 65 31 2c 20 31 29 3b  OL32(A##se1, 1);
6350: 20 5c 0a 20 20 20 20 45 23 23 73 69 31 20 3d 20   \.    E##si1 = 
6360: 20 20 42 73 69 31 20 5e 28 28 7e 42 73 6f 31 29    Bsi1 ^((~Bso1)
6370: 26 20 20 42 73 75 31 20 29 3b 20 5c 0a 20 20 20  &  Bsu1 ); \.   
6380: 20 45 23 23 73 6f 31 20 3d 20 20 20 42 73 6f 31   E##so1 =   Bso1
6390: 20 5e 28 28 7e 42 73 75 31 29 26 20 20 42 73 61   ^((~Bsu1)&  Bsa
63a0: 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 75  1 ); \.    E##su
63b0: 31 20 3d 20 20 20 42 73 75 31 20 5e 28 28 7e 42  1 =   Bsu1 ^((~B
63c0: 73 61 31 29 26 20 20 42 73 65 31 20 29 3b 20 5c  sa1)&  Bse1 ); \
63d0: 0a 5c 0a 0a 23 65 6e 64 69 66 20 2f 2f 20 55 73  .\..#endif // Us
63e0: 65 42 65 62 69 67 6f 6b 69 6d 69 73 61 0a 0a 63  eBebigokimisa..c
63f0: 6f 6e 73 74 20 55 49 4e 54 33 32 20 4b 65 63 63  onst UINT32 Kecc
6400: 61 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73  akF1600RoundCons
6410: 74 61 6e 74 73 5f 69 6e 74 32 5f 30 5b 32 34 5d  tants_int2_0[24]
6420: 20 3d 20 7b 0a 20 20 20 20 30 78 30 30 30 30 30   = {.    0x00000
6430: 30 30 31 55 4c 2c 0a 20 20 20 20 30 78 30 30 30  001UL,.    0x000
6440: 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30  00000UL,.    0x0
6450: 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30  0000000UL,.    0
6460: 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20  x00000000UL,.   
6470: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0a 20   0x00000001UL,. 
6480: 20 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c     0x00000001UL,
6490: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55  .    0x00000001U
64a0: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30  L,.    0x0000000
64b0: 31 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30  1UL,.    0x00000
64c0: 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 30 30  000UL,.    0x000
64d0: 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30  00000UL,.    0x0
64e0: 30 30 30 30 30 30 31 55 4c 2c 0a 20 20 20 20 30  0000001UL,.    0
64f0: 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20  x00000000UL,.   
6500: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0a 20   0x00000001UL,. 
6510: 20 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c     0x00000001UL,
6520: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55  .    0x00000001U
6530: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30  L,.    0x0000000
6540: 31 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30  1UL,.    0x00000
6550: 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 30 30  000UL,.    0x000
6560: 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30  00000UL,.    0x0
6570: 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30  0000000UL,.    0
6580: 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20  x00000000UL,.   
6590: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0a 20   0x00000001UL,. 
65a0: 20 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c     0x00000000UL,
65b0: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55  .    0x00000001U
65c0: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30  L,.    0x0000000
65d0: 30 55 4c 20 7d 3b 0a 0a 63 6f 6e 73 74 20 55 49  0UL };..const UI
65e0: 4e 54 33 32 20 4b 65 63 63 61 6b 46 31 36 30 30  NT32 KeccakF1600
65f0: 52 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69  RoundConstants_i
6600: 6e 74 32 5f 31 5b 32 34 5d 20 3d 20 7b 0a 20 20  nt2_1[24] = {.  
6610: 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 0a    0x00000000UL,.
6620: 20 20 20 20 30 78 30 30 30 30 30 30 38 39 55 4c      0x00000089UL
6630: 2c 0a 20 20 20 20 30 78 38 30 30 30 30 30 38 62  ,.    0x8000008b
6640: 55 4c 2c 0a 20 20 20 20 30 78 38 30 30 30 38 30  UL,.    0x800080
6650: 38 30 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30  80UL,.    0x0000
6660: 30 30 38 62 55 4c 2c 0a 20 20 20 20 30 78 30 30  008bUL,.    0x00
6670: 30 30 38 30 30 30 55 4c 2c 0a 20 20 20 20 30 78  008000UL,.    0x
6680: 38 30 30 30 38 30 38 38 55 4c 2c 0a 20 20 20 20  80008088UL,.    
6690: 30 78 38 30 30 30 30 30 38 32 55 4c 2c 0a 20 20  0x80000082UL,.  
66a0: 20 20 30 78 30 30 30 30 30 30 30 62 55 4c 2c 0a    0x0000000bUL,.
66b0: 20 20 20 20 30 78 30 30 30 30 30 30 30 61 55 4c      0x0000000aUL
66c0: 2c 0a 20 20 20 20 30 78 30 30 30 30 38 30 38 32  ,.    0x00008082
66d0: 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 38 30  UL,.    0x000080
66e0: 30 33 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30  03UL,.    0x0000
66f0: 38 30 38 62 55 4c 2c 0a 20 20 20 20 30 78 38 30  808bUL,.    0x80
6700: 30 30 30 30 30 62 55 4c 2c 0a 20 20 20 20 30 78  00000bUL,.    0x
6710: 38 30 30 30 30 30 38 61 55 4c 2c 0a 20 20 20 20  8000008aUL,.    
6720: 30 78 38 30 30 30 30 30 38 31 55 4c 2c 0a 20 20  0x80000081UL,.  
6730: 20 20 30 78 38 30 30 30 30 30 38 31 55 4c 2c 0a    0x80000081UL,.
6740: 20 20 20 20 30 78 38 30 30 30 30 30 30 38 55 4c      0x80000008UL
6750: 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 38 33  ,.    0x00000083
6760: 55 4c 2c 0a 20 20 20 20 30 78 38 30 30 30 38 30  UL,.    0x800080
6770: 30 33 55 4c 2c 0a 20 20 20 20 30 78 38 30 30 30  03UL,.    0x8000
6780: 38 30 38 38 55 4c 2c 0a 20 20 20 20 30 78 38 30  8088UL,.    0x80
6790: 30 30 30 30 38 38 55 4c 2c 0a 20 20 20 20 30 78  000088UL,.    0x
67a0: 30 30 30 30 38 30 30 30 55 4c 2c 0a 20 20 20 20  00008000UL,.    
67b0: 30 78 38 30 30 30 38 30 38 32 55 4c 20 7d 3b 0a  0x80008082UL };.
67c0: 0a 23 64 65 66 69 6e 65 20 63 6f 70 79 46 72 6f  .#define copyFro
67d0: 6d 53 74 61 74 65 41 6e 64 58 6f 72 31 30 32 34  mStateAndXor1024
67e0: 62 69 74 73 28 58 2c 20 73 74 61 74 65 2c 20 69  bits(X, state, i
67f0: 6e 70 75 74 29 20 5c 0a 20 20 20 20 58 23 23 62  nput) \.    X##b
6800: 61 30 20 3d 20 73 74 61 74 65 5b 20 30 5d 5e 69  a0 = state[ 0]^i
6810: 6e 70 75 74 5b 20 30 5d 3b 20 5c 0a 20 20 20 20  nput[ 0]; \.    
6820: 58 23 23 62 61 31 20 3d 20 73 74 61 74 65 5b 20  X##ba1 = state[ 
6830: 31 5d 5e 69 6e 70 75 74 5b 20 31 5d 3b 20 5c 0a  1]^input[ 1]; \.
6840: 20 20 20 20 58 23 23 62 65 30 20 3d 20 73 74 61      X##be0 = sta
6850: 74 65 5b 20 32 5d 5e 69 6e 70 75 74 5b 20 32 5d  te[ 2]^input[ 2]
6860: 3b 20 5c 0a 20 20 20 20 58 23 23 62 65 31 20 3d  ; \.    X##be1 =
6870: 20 73 74 61 74 65 5b 20 33 5d 5e 69 6e 70 75 74   state[ 3]^input
6880: 5b 20 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62  [ 3]; \.    X##b
6890: 69 30 20 3d 20 73 74 61 74 65 5b 20 34 5d 5e 69  i0 = state[ 4]^i
68a0: 6e 70 75 74 5b 20 34 5d 3b 20 5c 0a 20 20 20 20  nput[ 4]; \.    
68b0: 58 23 23 62 69 31 20 3d 20 73 74 61 74 65 5b 20  X##bi1 = state[ 
68c0: 35 5d 5e 69 6e 70 75 74 5b 20 35 5d 3b 20 5c 0a  5]^input[ 5]; \.
68d0: 20 20 20 20 58 23 23 62 6f 30 20 3d 20 73 74 61      X##bo0 = sta
68e0: 74 65 5b 20 36 5d 5e 69 6e 70 75 74 5b 20 36 5d  te[ 6]^input[ 6]
68f0: 3b 20 5c 0a 20 20 20 20 58 23 23 62 6f 31 20 3d  ; \.    X##bo1 =
6900: 20 73 74 61 74 65 5b 20 37 5d 5e 69 6e 70 75 74   state[ 7]^input
6910: 5b 20 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62  [ 7]; \.    X##b
6920: 75 30 20 3d 20 73 74 61 74 65 5b 20 38 5d 5e 69  u0 = state[ 8]^i
6930: 6e 70 75 74 5b 20 38 5d 3b 20 5c 0a 20 20 20 20  nput[ 8]; \.    
6940: 58 23 23 62 75 31 20 3d 20 73 74 61 74 65 5b 20  X##bu1 = state[ 
6950: 39 5d 5e 69 6e 70 75 74 5b 20 39 5d 3b 20 5c 0a  9]^input[ 9]; \.
6960: 20 20 20 20 58 23 23 67 61 30 20 3d 20 73 74 61      X##ga0 = sta
6970: 74 65 5b 31 30 5d 5e 69 6e 70 75 74 5b 31 30 5d  te[10]^input[10]
6980: 3b 20 5c 0a 20 20 20 20 58 23 23 67 61 31 20 3d  ; \.    X##ga1 =
6990: 20 73 74 61 74 65 5b 31 31 5d 5e 69 6e 70 75 74   state[11]^input
69a0: 5b 31 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67  [11]; \.    X##g
69b0: 65 30 20 3d 20 73 74 61 74 65 5b 31 32 5d 5e 69  e0 = state[12]^i
69c0: 6e 70 75 74 5b 31 32 5d 3b 20 5c 0a 20 20 20 20  nput[12]; \.    
69d0: 58 23 23 67 65 31 20 3d 20 73 74 61 74 65 5b 31  X##ge1 = state[1
69e0: 33 5d 5e 69 6e 70 75 74 5b 31 33 5d 3b 20 5c 0a  3]^input[13]; \.
69f0: 20 20 20 20 58 23 23 67 69 30 20 3d 20 73 74 61      X##gi0 = sta
6a00: 74 65 5b 31 34 5d 5e 69 6e 70 75 74 5b 31 34 5d  te[14]^input[14]
6a10: 3b 20 5c 0a 20 20 20 20 58 23 23 67 69 31 20 3d  ; \.    X##gi1 =
6a20: 20 73 74 61 74 65 5b 31 35 5d 5e 69 6e 70 75 74   state[15]^input
6a30: 5b 31 35 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67  [15]; \.    X##g
6a40: 6f 30 20 3d 20 73 74 61 74 65 5b 31 36 5d 5e 69  o0 = state[16]^i
6a50: 6e 70 75 74 5b 31 36 5d 3b 20 5c 0a 20 20 20 20  nput[16]; \.    
6a60: 58 23 23 67 6f 31 20 3d 20 73 74 61 74 65 5b 31  X##go1 = state[1
6a70: 37 5d 5e 69 6e 70 75 74 5b 31 37 5d 3b 20 5c 0a  7]^input[17]; \.
6a80: 20 20 20 20 58 23 23 67 75 30 20 3d 20 73 74 61      X##gu0 = sta
6a90: 74 65 5b 31 38 5d 5e 69 6e 70 75 74 5b 31 38 5d  te[18]^input[18]
6aa0: 3b 20 5c 0a 20 20 20 20 58 23 23 67 75 31 20 3d  ; \.    X##gu1 =
6ab0: 20 73 74 61 74 65 5b 31 39 5d 5e 69 6e 70 75 74   state[19]^input
6ac0: 5b 31 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b  [19]; \.    X##k
6ad0: 61 30 20 3d 20 73 74 61 74 65 5b 32 30 5d 5e 69  a0 = state[20]^i
6ae0: 6e 70 75 74 5b 32 30 5d 3b 20 5c 0a 20 20 20 20  nput[20]; \.    
6af0: 58 23 23 6b 61 31 20 3d 20 73 74 61 74 65 5b 32  X##ka1 = state[2
6b00: 31 5d 5e 69 6e 70 75 74 5b 32 31 5d 3b 20 5c 0a  1]^input[21]; \.
6b10: 20 20 20 20 58 23 23 6b 65 30 20 3d 20 73 74 61      X##ke0 = sta
6b20: 74 65 5b 32 32 5d 5e 69 6e 70 75 74 5b 32 32 5d  te[22]^input[22]
6b30: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 65 31 20 3d  ; \.    X##ke1 =
6b40: 20 73 74 61 74 65 5b 32 33 5d 5e 69 6e 70 75 74   state[23]^input
6b50: 5b 32 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b  [23]; \.    X##k
6b60: 69 30 20 3d 20 73 74 61 74 65 5b 32 34 5d 5e 69  i0 = state[24]^i
6b70: 6e 70 75 74 5b 32 34 5d 3b 20 5c 0a 20 20 20 20  nput[24]; \.    
6b80: 58 23 23 6b 69 31 20 3d 20 73 74 61 74 65 5b 32  X##ki1 = state[2
6b90: 35 5d 5e 69 6e 70 75 74 5b 32 35 5d 3b 20 5c 0a  5]^input[25]; \.
6ba0: 20 20 20 20 58 23 23 6b 6f 30 20 3d 20 73 74 61      X##ko0 = sta
6bb0: 74 65 5b 32 36 5d 5e 69 6e 70 75 74 5b 32 36 5d  te[26]^input[26]
6bc0: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 6f 31 20 3d  ; \.    X##ko1 =
6bd0: 20 73 74 61 74 65 5b 32 37 5d 5e 69 6e 70 75 74   state[27]^input
6be0: 5b 32 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b  [27]; \.    X##k
6bf0: 75 30 20 3d 20 73 74 61 74 65 5b 32 38 5d 5e 69  u0 = state[28]^i
6c00: 6e 70 75 74 5b 32 38 5d 3b 20 5c 0a 20 20 20 20  nput[28]; \.    
6c10: 58 23 23 6b 75 31 20 3d 20 73 74 61 74 65 5b 32  X##ku1 = state[2
6c20: 39 5d 5e 69 6e 70 75 74 5b 32 39 5d 3b 20 5c 0a  9]^input[29]; \.
6c30: 20 20 20 20 58 23 23 6d 61 30 20 3d 20 73 74 61      X##ma0 = sta
6c40: 74 65 5b 33 30 5d 5e 69 6e 70 75 74 5b 33 30 5d  te[30]^input[30]
6c50: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 61 31 20 3d  ; \.    X##ma1 =
6c60: 20 73 74 61 74 65 5b 33 31 5d 5e 69 6e 70 75 74   state[31]^input
6c70: 5b 33 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d  [31]; \.    X##m
6c80: 65 30 20 3d 20 73 74 61 74 65 5b 33 32 5d 3b 20  e0 = state[32]; 
6c90: 5c 0a 20 20 20 20 58 23 23 6d 65 31 20 3d 20 73  \.    X##me1 = s
6ca0: 74 61 74 65 5b 33 33 5d 3b 20 5c 0a 20 20 20 20  tate[33]; \.    
6cb0: 58 23 23 6d 69 30 20 3d 20 73 74 61 74 65 5b 33  X##mi0 = state[3
6cc0: 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 69 31  4]; \.    X##mi1
6cd0: 20 3d 20 73 74 61 74 65 5b 33 35 5d 3b 20 5c 0a   = state[35]; \.
6ce0: 20 20 20 20 58 23 23 6d 6f 30 20 3d 20 73 74 61      X##mo0 = sta
6cf0: 74 65 5b 33 36 5d 3b 20 5c 0a 20 20 20 20 58 23  te[36]; \.    X#
6d00: 23 6d 6f 31 20 3d 20 73 74 61 74 65 5b 33 37 5d  #mo1 = state[37]
6d10: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 30 20 3d  ; \.    X##mu0 =
6d20: 20 73 74 61 74 65 5b 33 38 5d 3b 20 5c 0a 20 20   state[38]; \.  
6d30: 20 20 58 23 23 6d 75 31 20 3d 20 73 74 61 74 65    X##mu1 = state
6d40: 5b 33 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73  [39]; \.    X##s
6d50: 61 30 20 3d 20 73 74 61 74 65 5b 34 30 5d 3b 20  a0 = state[40]; 
6d60: 5c 0a 20 20 20 20 58 23 23 73 61 31 20 3d 20 73  \.    X##sa1 = s
6d70: 74 61 74 65 5b 34 31 5d 3b 20 5c 0a 20 20 20 20  tate[41]; \.    
6d80: 58 23 23 73 65 30 20 3d 20 73 74 61 74 65 5b 34  X##se0 = state[4
6d90: 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 65 31  2]; \.    X##se1
6da0: 20 3d 20 73 74 61 74 65 5b 34 33 5d 3b 20 5c 0a   = state[43]; \.
6db0: 20 20 20 20 58 23 23 73 69 30 20 3d 20 73 74 61      X##si0 = sta
6dc0: 74 65 5b 34 34 5d 3b 20 5c 0a 20 20 20 20 58 23  te[44]; \.    X#
6dd0: 23 73 69 31 20 3d 20 73 74 61 74 65 5b 34 35 5d  #si1 = state[45]
6de0: 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 30 20 3d  ; \.    X##so0 =
6df0: 20 73 74 61 74 65 5b 34 36 5d 3b 20 5c 0a 20 20   state[46]; \.  
6e00: 20 20 58 23 23 73 6f 31 20 3d 20 73 74 61 74 65    X##so1 = state
6e10: 5b 34 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73  [47]; \.    X##s
6e20: 75 30 20 3d 20 73 74 61 74 65 5b 34 38 5d 3b 20  u0 = state[48]; 
6e30: 5c 0a 20 20 20 20 58 23 23 73 75 31 20 3d 20 73  \.    X##su1 = s
6e40: 74 61 74 65 5b 34 39 5d 3b 20 5c 0a 0a 23 64 65  tate[49]; \..#de
6e50: 66 69 6e 65 20 63 6f 70 79 46 72 6f 6d 53 74 61  fine copyFromSta
6e60: 74 65 41 6e 64 58 6f 72 31 30 38 38 62 69 74 73  teAndXor1088bits
6e70: 28 58 2c 20 73 74 61 74 65 2c 20 69 6e 70 75 74  (X, state, input
6e80: 29 20 5c 0a 20 20 20 20 58 23 23 62 61 30 20 3d  ) \.    X##ba0 =
6e90: 20 73 74 61 74 65 5b 20 30 5d 5e 69 6e 70 75 74   state[ 0]^input
6ea0: 5b 20 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62  [ 0]; \.    X##b
6eb0: 61 31 20 3d 20 73 74 61 74 65 5b 20 31 5d 5e 69  a1 = state[ 1]^i
6ec0: 6e 70 75 74 5b 20 31 5d 3b 20 5c 0a 20 20 20 20  nput[ 1]; \.    
6ed0: 58 23 23 62 65 30 20 3d 20 73 74 61 74 65 5b 20  X##be0 = state[ 
6ee0: 32 5d 5e 69 6e 70 75 74 5b 20 32 5d 3b 20 5c 0a  2]^input[ 2]; \.
6ef0: 20 20 20 20 58 23 23 62 65 31 20 3d 20 73 74 61      X##be1 = sta
6f00: 74 65 5b 20 33 5d 5e 69 6e 70 75 74 5b 20 33 5d  te[ 3]^input[ 3]
6f10: 3b 20 5c 0a 20 20 20 20 58 23 23 62 69 30 20 3d  ; \.    X##bi0 =
6f20: 20 73 74 61 74 65 5b 20 34 5d 5e 69 6e 70 75 74   state[ 4]^input
6f30: 5b 20 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62  [ 4]; \.    X##b
6f40: 69 31 20 3d 20 73 74 61 74 65 5b 20 35 5d 5e 69  i1 = state[ 5]^i
6f50: 6e 70 75 74 5b 20 35 5d 3b 20 5c 0a 20 20 20 20  nput[ 5]; \.    
6f60: 58 23 23 62 6f 30 20 3d 20 73 74 61 74 65 5b 20  X##bo0 = state[ 
6f70: 36 5d 5e 69 6e 70 75 74 5b 20 36 5d 3b 20 5c 0a  6]^input[ 6]; \.
6f80: 20 20 20 20 58 23 23 62 6f 31 20 3d 20 73 74 61      X##bo1 = sta
6f90: 74 65 5b 20 37 5d 5e 69 6e 70 75 74 5b 20 37 5d  te[ 7]^input[ 7]
6fa0: 3b 20 5c 0a 20 20 20 20 58 23 23 62 75 30 20 3d  ; \.    X##bu0 =
6fb0: 20 73 74 61 74 65 5b 20 38 5d 5e 69 6e 70 75 74   state[ 8]^input
6fc0: 5b 20 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62  [ 8]; \.    X##b
6fd0: 75 31 20 3d 20 73 74 61 74 65 5b 20 39 5d 5e 69  u1 = state[ 9]^i
6fe0: 6e 70 75 74 5b 20 39 5d 3b 20 5c 0a 20 20 20 20  nput[ 9]; \.    
6ff0: 58 23 23 67 61 30 20 3d 20 73 74 61 74 65 5b 31  X##ga0 = state[1
7000: 30 5d 5e 69 6e 70 75 74 5b 31 30 5d 3b 20 5c 0a  0]^input[10]; \.
7010: 20 20 20 20 58 23 23 67 61 31 20 3d 20 73 74 61      X##ga1 = sta
7020: 74 65 5b 31 31 5d 5e 69 6e 70 75 74 5b 31 31 5d  te[11]^input[11]
7030: 3b 20 5c 0a 20 20 20 20 58 23 23 67 65 30 20 3d  ; \.    X##ge0 =
7040: 20 73 74 61 74 65 5b 31 32 5d 5e 69 6e 70 75 74   state[12]^input
7050: 5b 31 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67  [12]; \.    X##g
7060: 65 31 20 3d 20 73 74 61 74 65 5b 31 33 5d 5e 69  e1 = state[13]^i
7070: 6e 70 75 74 5b 31 33 5d 3b 20 5c 0a 20 20 20 20  nput[13]; \.    
7080: 58 23 23 67 69 30 20 3d 20 73 74 61 74 65 5b 31  X##gi0 = state[1
7090: 34 5d 5e 69 6e 70 75 74 5b 31 34 5d 3b 20 5c 0a  4]^input[14]; \.
70a0: 20 20 20 20 58 23 23 67 69 31 20 3d 20 73 74 61      X##gi1 = sta
70b0: 74 65 5b 31 35 5d 5e 69 6e 70 75 74 5b 31 35 5d  te[15]^input[15]
70c0: 3b 20 5c 0a 20 20 20 20 58 23 23 67 6f 30 20 3d  ; \.    X##go0 =
70d0: 20 73 74 61 74 65 5b 31 36 5d 5e 69 6e 70 75 74   state[16]^input
70e0: 5b 31 36 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67  [16]; \.    X##g
70f0: 6f 31 20 3d 20 73 74 61 74 65 5b 31 37 5d 5e 69  o1 = state[17]^i
7100: 6e 70 75 74 5b 31 37 5d 3b 20 5c 0a 20 20 20 20  nput[17]; \.    
7110: 58 23 23 67 75 30 20 3d 20 73 74 61 74 65 5b 31  X##gu0 = state[1
7120: 38 5d 5e 69 6e 70 75 74 5b 31 38 5d 3b 20 5c 0a  8]^input[18]; \.
7130: 20 20 20 20 58 23 23 67 75 31 20 3d 20 73 74 61      X##gu1 = sta
7140: 74 65 5b 31 39 5d 5e 69 6e 70 75 74 5b 31 39 5d  te[19]^input[19]
7150: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 61 30 20 3d  ; \.    X##ka0 =
7160: 20 73 74 61 74 65 5b 32 30 5d 5e 69 6e 70 75 74   state[20]^input
7170: 5b 32 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b  [20]; \.    X##k
7180: 61 31 20 3d 20 73 74 61 74 65 5b 32 31 5d 5e 69  a1 = state[21]^i
7190: 6e 70 75 74 5b 32 31 5d 3b 20 5c 0a 20 20 20 20  nput[21]; \.    
71a0: 58 23 23 6b 65 30 20 3d 20 73 74 61 74 65 5b 32  X##ke0 = state[2
71b0: 32 5d 5e 69 6e 70 75 74 5b 32 32 5d 3b 20 5c 0a  2]^input[22]; \.
71c0: 20 20 20 20 58 23 23 6b 65 31 20 3d 20 73 74 61      X##ke1 = sta
71d0: 74 65 5b 32 33 5d 5e 69 6e 70 75 74 5b 32 33 5d  te[23]^input[23]
71e0: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 69 30 20 3d  ; \.    X##ki0 =
71f0: 20 73 74 61 74 65 5b 32 34 5d 5e 69 6e 70 75 74   state[24]^input
7200: 5b 32 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b  [24]; \.    X##k
7210: 69 31 20 3d 20 73 74 61 74 65 5b 32 35 5d 5e 69  i1 = state[25]^i
7220: 6e 70 75 74 5b 32 35 5d 3b 20 5c 0a 20 20 20 20  nput[25]; \.    
7230: 58 23 23 6b 6f 30 20 3d 20 73 74 61 74 65 5b 32  X##ko0 = state[2
7240: 36 5d 5e 69 6e 70 75 74 5b 32 36 5d 3b 20 5c 0a  6]^input[26]; \.
7250: 20 20 20 20 58 23 23 6b 6f 31 20 3d 20 73 74 61      X##ko1 = sta
7260: 74 65 5b 32 37 5d 5e 69 6e 70 75 74 5b 32 37 5d  te[27]^input[27]
7270: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75 30 20 3d  ; \.    X##ku0 =
7280: 20 73 74 61 74 65 5b 32 38 5d 5e 69 6e 70 75 74   state[28]^input
7290: 5b 32 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b  [28]; \.    X##k
72a0: 75 31 20 3d 20 73 74 61 74 65 5b 32 39 5d 5e 69  u1 = state[29]^i
72b0: 6e 70 75 74 5b 32 39 5d 3b 20 5c 0a 20 20 20 20  nput[29]; \.    
72c0: 58 23 23 6d 61 30 20 3d 20 73 74 61 74 65 5b 33  X##ma0 = state[3
72d0: 30 5d 5e 69 6e 70 75 74 5b 33 30 5d 3b 20 5c 0a  0]^input[30]; \.
72e0: 20 20 20 20 58 23 23 6d 61 31 20 3d 20 73 74 61      X##ma1 = sta
72f0: 74 65 5b 33 31 5d 5e 69 6e 70 75 74 5b 33 31 5d  te[31]^input[31]
7300: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 65 30 20 3d  ; \.    X##me0 =
7310: 20 73 74 61 74 65 5b 33 32 5d 5e 69 6e 70 75 74   state[32]^input
7320: 5b 33 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d  [32]; \.    X##m
7330: 65 31 20 3d 20 73 74 61 74 65 5b 33 33 5d 5e 69  e1 = state[33]^i
7340: 6e 70 75 74 5b 33 33 5d 3b 20 5c 0a 20 20 20 20  nput[33]; \.    
7350: 58 23 23 6d 69 30 20 3d 20 73 74 61 74 65 5b 33  X##mi0 = state[3
7360: 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 69 31  4]; \.    X##mi1
7370: 20 3d 20 73 74 61 74 65 5b 33 35 5d 3b 20 5c 0a   = state[35]; \.
7380: 20 20 20 20 58 23 23 6d 6f 30 20 3d 20 73 74 61      X##mo0 = sta
7390: 74 65 5b 33 36 5d 3b 20 5c 0a 20 20 20 20 58 23  te[36]; \.    X#
73a0: 23 6d 6f 31 20 3d 20 73 74 61 74 65 5b 33 37 5d  #mo1 = state[37]
73b0: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 30 20 3d  ; \.    X##mu0 =
73c0: 20 73 74 61 74 65 5b 33 38 5d 3b 20 5c 0a 20 20   state[38]; \.  
73d0: 20 20 58 23 23 6d 75 31 20 3d 20 73 74 61 74 65    X##mu1 = state
73e0: 5b 33 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73  [39]; \.    X##s
73f0: 61 30 20 3d 20 73 74 61 74 65 5b 34 30 5d 3b 20  a0 = state[40]; 
7400: 5c 0a 20 20 20 20 58 23 23 73 61 31 20 3d 20 73  \.    X##sa1 = s
7410: 74 61 74 65 5b 34 31 5d 3b 20 5c 0a 20 20 20 20  tate[41]; \.    
7420: 58 23 23 73 65 30 20 3d 20 73 74 61 74 65 5b 34  X##se0 = state[4
7430: 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 65 31  2]; \.    X##se1
7440: 20 3d 20 73 74 61 74 65 5b 34 33 5d 3b 20 5c 0a   = state[43]; \.
7450: 20 20 20 20 58 23 23 73 69 30 20 3d 20 73 74 61      X##si0 = sta
7460: 74 65 5b 34 34 5d 3b 20 5c 0a 20 20 20 20 58 23  te[44]; \.    X#
7470: 23 73 69 31 20 3d 20 73 74 61 74 65 5b 34 35 5d  #si1 = state[45]
7480: 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 30 20 3d  ; \.    X##so0 =
7490: 20 73 74 61 74 65 5b 34 36 5d 3b 20 5c 0a 20 20   state[46]; \.  
74a0: 20 20 58 23 23 73 6f 31 20 3d 20 73 74 61 74 65    X##so1 = state
74b0: 5b 34 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73  [47]; \.    X##s
74c0: 75 30 20 3d 20 73 74 61 74 65 5b 34 38 5d 3b 20  u0 = state[48]; 
74d0: 5c 0a 20 20 20 20 58 23 23 73 75 31 20 3d 20 73  \.    X##su1 = s
74e0: 74 61 74 65 5b 34 39 5d 3b 20 5c 0a 0a 23 64 65  tate[49]; \..#de
74f0: 66 69 6e 65 20 63 6f 70 79 46 72 6f 6d 53 74 61  fine copyFromSta
7500: 74 65 28 58 2c 20 73 74 61 74 65 29 20 5c 0a 20  te(X, state) \. 
7510: 20 20 20 58 23 23 62 61 30 20 3d 20 73 74 61 74     X##ba0 = stat
7520: 65 5b 20 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[ 0]; \.    X##
7530: 62 61 31 20 3d 20 73 74 61 74 65 5b 20 31 5d 3b  ba1 = state[ 1];
7540: 20 5c 0a 20 20 20 20 58 23 23 62 65 30 20 3d 20   \.    X##be0 = 
7550: 73 74 61 74 65 5b 20 32 5d 3b 20 5c 0a 20 20 20  state[ 2]; \.   
7560: 20 58 23 23 62 65 31 20 3d 20 73 74 61 74 65 5b   X##be1 = state[
7570: 20 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 69   3]; \.    X##bi
7580: 30 20 3d 20 73 74 61 74 65 5b 20 34 5d 3b 20 5c  0 = state[ 4]; \
7590: 0a 20 20 20 20 58 23 23 62 69 31 20 3d 20 73 74  .    X##bi1 = st
75a0: 61 74 65 5b 20 35 5d 3b 20 5c 0a 20 20 20 20 58  ate[ 5]; \.    X
75b0: 23 23 62 6f 30 20 3d 20 73 74 61 74 65 5b 20 36  ##bo0 = state[ 6
75c0: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 6f 31 20  ]; \.    X##bo1 
75d0: 3d 20 73 74 61 74 65 5b 20 37 5d 3b 20 5c 0a 20  = state[ 7]; \. 
75e0: 20 20 20 58 23 23 62 75 30 20 3d 20 73 74 61 74     X##bu0 = stat
75f0: 65 5b 20 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[ 8]; \.    X##
7600: 62 75 31 20 3d 20 73 74 61 74 65 5b 20 39 5d 3b  bu1 = state[ 9];
7610: 20 5c 0a 20 20 20 20 58 23 23 67 61 30 20 3d 20   \.    X##ga0 = 
7620: 73 74 61 74 65 5b 31 30 5d 3b 20 5c 0a 20 20 20  state[10]; \.   
7630: 20 58 23 23 67 61 31 20 3d 20 73 74 61 74 65 5b   X##ga1 = state[
7640: 31 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 65  11]; \.    X##ge
7650: 30 20 3d 20 73 74 61 74 65 5b 31 32 5d 3b 20 5c  0 = state[12]; \
7660: 0a 20 20 20 20 58 23 23 67 65 31 20 3d 20 73 74  .    X##ge1 = st
7670: 61 74 65 5b 31 33 5d 3b 20 5c 0a 20 20 20 20 58  ate[13]; \.    X
7680: 23 23 67 69 30 20 3d 20 73 74 61 74 65 5b 31 34  ##gi0 = state[14
7690: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 69 31 20  ]; \.    X##gi1 
76a0: 3d 20 73 74 61 74 65 5b 31 35 5d 3b 20 5c 0a 20  = state[15]; \. 
76b0: 20 20 20 58 23 23 67 6f 30 20 3d 20 73 74 61 74     X##go0 = stat
76c0: 65 5b 31 36 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[16]; \.    X##
76d0: 67 6f 31 20 3d 20 73 74 61 74 65 5b 31 37 5d 3b  go1 = state[17];
76e0: 20 5c 0a 20 20 20 20 58 23 23 67 75 30 20 3d 20   \.    X##gu0 = 
76f0: 73 74 61 74 65 5b 31 38 5d 3b 20 5c 0a 20 20 20  state[18]; \.   
7700: 20 58 23 23 67 75 31 20 3d 20 73 74 61 74 65 5b   X##gu1 = state[
7710: 31 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 61  19]; \.    X##ka
7720: 30 20 3d 20 73 74 61 74 65 5b 32 30 5d 3b 20 5c  0 = state[20]; \
7730: 0a 20 20 20 20 58 23 23 6b 61 31 20 3d 20 73 74  .    X##ka1 = st
7740: 61 74 65 5b 32 31 5d 3b 20 5c 0a 20 20 20 20 58  ate[21]; \.    X
7750: 23 23 6b 65 30 20 3d 20 73 74 61 74 65 5b 32 32  ##ke0 = state[22
7760: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 65 31 20  ]; \.    X##ke1 
7770: 3d 20 73 74 61 74 65 5b 32 33 5d 3b 20 5c 0a 20  = state[23]; \. 
7780: 20 20 20 58 23 23 6b 69 30 20 3d 20 73 74 61 74     X##ki0 = stat
7790: 65 5b 32 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[24]; \.    X##
77a0: 6b 69 31 20 3d 20 73 74 61 74 65 5b 32 35 5d 3b  ki1 = state[25];
77b0: 20 5c 0a 20 20 20 20 58 23 23 6b 6f 30 20 3d 20   \.    X##ko0 = 
77c0: 73 74 61 74 65 5b 32 36 5d 3b 20 5c 0a 20 20 20  state[26]; \.   
77d0: 20 58 23 23 6b 6f 31 20 3d 20 73 74 61 74 65 5b   X##ko1 = state[
77e0: 32 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75  27]; \.    X##ku
77f0: 30 20 3d 20 73 74 61 74 65 5b 32 38 5d 3b 20 5c  0 = state[28]; \
7800: 0a 20 20 20 20 58 23 23 6b 75 31 20 3d 20 73 74  .    X##ku1 = st
7810: 61 74 65 5b 32 39 5d 3b 20 5c 0a 20 20 20 20 58  ate[29]; \.    X
7820: 23 23 6d 61 30 20 3d 20 73 74 61 74 65 5b 33 30  ##ma0 = state[30
7830: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 61 31 20  ]; \.    X##ma1 
7840: 3d 20 73 74 61 74 65 5b 33 31 5d 3b 20 5c 0a 20  = state[31]; \. 
7850: 20 20 20 58 23 23 6d 65 30 20 3d 20 73 74 61 74     X##me0 = stat
7860: 65 5b 33 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[32]; \.    X##
7870: 6d 65 31 20 3d 20 73 74 61 74 65 5b 33 33 5d 3b  me1 = state[33];
7880: 20 5c 0a 20 20 20 20 58 23 23 6d 69 30 20 3d 20   \.    X##mi0 = 
7890: 73 74 61 74 65 5b 33 34 5d 3b 20 5c 0a 20 20 20  state[34]; \.   
78a0: 20 58 23 23 6d 69 31 20 3d 20 73 74 61 74 65 5b   X##mi1 = state[
78b0: 33 35 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 6f  35]; \.    X##mo
78c0: 30 20 3d 20 73 74 61 74 65 5b 33 36 5d 3b 20 5c  0 = state[36]; \
78d0: 0a 20 20 20 20 58 23 23 6d 6f 31 20 3d 20 73 74  .    X##mo1 = st
78e0: 61 74 65 5b 33 37 5d 3b 20 5c 0a 20 20 20 20 58  ate[37]; \.    X
78f0: 23 23 6d 75 30 20 3d 20 73 74 61 74 65 5b 33 38  ##mu0 = state[38
7900: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 31 20  ]; \.    X##mu1 
7910: 3d 20 73 74 61 74 65 5b 33 39 5d 3b 20 5c 0a 20  = state[39]; \. 
7920: 20 20 20 58 23 23 73 61 30 20 3d 20 73 74 61 74     X##sa0 = stat
7930: 65 5b 34 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[40]; \.    X##
7940: 73 61 31 20 3d 20 73 74 61 74 65 5b 34 31 5d 3b  sa1 = state[41];
7950: 20 5c 0a 20 20 20 20 58 23 23 73 65 30 20 3d 20   \.    X##se0 = 
7960: 73 74 61 74 65 5b 34 32 5d 3b 20 5c 0a 20 20 20  state[42]; \.   
7970: 20 58 23 23 73 65 31 20 3d 20 73 74 61 74 65 5b   X##se1 = state[
7980: 34 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 69  43]; \.    X##si
7990: 30 20 3d 20 73 74 61 74 65 5b 34 34 5d 3b 20 5c  0 = state[44]; \
79a0: 0a 20 20 20 20 58 23 23 73 69 31 20 3d 20 73 74  .    X##si1 = st
79b0: 61 74 65 5b 34 35 5d 3b 20 5c 0a 20 20 20 20 58  ate[45]; \.    X
79c0: 23 23 73 6f 30 20 3d 20 73 74 61 74 65 5b 34 36  ##so0 = state[46
79d0: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 31 20  ]; \.    X##so1 
79e0: 3d 20 73 74 61 74 65 5b 34 37 5d 3b 20 5c 0a 20  = state[47]; \. 
79f0: 20 20 20 58 23 23 73 75 30 20 3d 20 73 74 61 74     X##su0 = stat
7a00: 65 5b 34 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23  e[48]; \.    X##
7a10: 73 75 31 20 3d 20 73 74 61 74 65 5b 34 39 5d 3b  su1 = state[49];
7a20: 20 5c 0a 0a 23 64 65 66 69 6e 65 20 63 6f 70 79   \..#define copy
7a30: 54 6f 53 74 61 74 65 28 73 74 61 74 65 2c 20 58  ToState(state, X
7a40: 29 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 30  ) \.    state[ 0
7a50: 5d 20 3d 20 58 23 23 62 61 30 3b 20 5c 0a 20 20  ] = X##ba0; \.  
7a60: 20 20 73 74 61 74 65 5b 20 31 5d 20 3d 20 58 23    state[ 1] = X#
7a70: 23 62 61 31 3b 20 5c 0a 20 20 20 20 73 74 61 74  #ba1; \.    stat
7a80: 65 5b 20 32 5d 20 3d 20 58 23 23 62 65 30 3b 20  e[ 2] = X##be0; 
7a90: 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 33 5d 20  \.    state[ 3] 
7aa0: 3d 20 58 23 23 62 65 31 3b 20 5c 0a 20 20 20 20  = X##be1; \.    
7ab0: 73 74 61 74 65 5b 20 34 5d 20 3d 20 58 23 23 62  state[ 4] = X##b
7ac0: 69 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b  i0; \.    state[
7ad0: 20 35 5d 20 3d 20 58 23 23 62 69 31 3b 20 5c 0a   5] = X##bi1; \.
7ae0: 20 20 20 20 73 74 61 74 65 5b 20 36 5d 20 3d 20      state[ 6] = 
7af0: 58 23 23 62 6f 30 3b 20 5c 0a 20 20 20 20 73 74  X##bo0; \.    st
7b00: 61 74 65 5b 20 37 5d 20 3d 20 58 23 23 62 6f 31  ate[ 7] = X##bo1
7b10: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 38  ; \.    state[ 8
7b20: 5d 20 3d 20 58 23 23 62 75 30 3b 20 5c 0a 20 20  ] = X##bu0; \.  
7b30: 20 20 73 74 61 74 65 5b 20 39 5d 20 3d 20 58 23    state[ 9] = X#
7b40: 23 62 75 31 3b 20 5c 0a 20 20 20 20 73 74 61 74  #bu1; \.    stat
7b50: 65 5b 31 30 5d 20 3d 20 58 23 23 67 61 30 3b 20  e[10] = X##ga0; 
7b60: 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 31 5d 20  \.    state[11] 
7b70: 3d 20 58 23 23 67 61 31 3b 20 5c 0a 20 20 20 20  = X##ga1; \.    
7b80: 73 74 61 74 65 5b 31 32 5d 20 3d 20 58 23 23 67  state[12] = X##g
7b90: 65 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b  e0; \.    state[
7ba0: 31 33 5d 20 3d 20 58 23 23 67 65 31 3b 20 5c 0a  13] = X##ge1; \.
7bb0: 20 20 20 20 73 74 61 74 65 5b 31 34 5d 20 3d 20      state[14] = 
7bc0: 58 23 23 67 69 30 3b 20 5c 0a 20 20 20 20 73 74  X##gi0; \.    st
7bd0: 61 74 65 5b 31 35 5d 20 3d 20 58 23 23 67 69 31  ate[15] = X##gi1
7be0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 36  ; \.    state[16
7bf0: 5d 20 3d 20 58 23 23 67 6f 30 3b 20 5c 0a 20 20  ] = X##go0; \.  
7c00: 20 20 73 74 61 74 65 5b 31 37 5d 20 3d 20 58 23    state[17] = X#
7c10: 23 67 6f 31 3b 20 5c 0a 20 20 20 20 73 74 61 74  #go1; \.    stat
7c20: 65 5b 31 38 5d 20 3d 20 58 23 23 67 75 30 3b 20  e[18] = X##gu0; 
7c30: 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 39 5d 20  \.    state[19] 
7c40: 3d 20 58 23 23 67 75 31 3b 20 5c 0a 20 20 20 20  = X##gu1; \.    
7c50: 73 74 61 74 65 5b 32 30 5d 20 3d 20 58 23 23 6b  state[20] = X##k
7c60: 61 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b  a0; \.    state[
7c70: 32 31 5d 20 3d 20 58 23 23 6b 61 31 3b 20 5c 0a  21] = X##ka1; \.
7c80: 20 20 20 20 73 74 61 74 65 5b 32 32 5d 20 3d 20      state[22] = 
7c90: 58 23 23 6b 65 30 3b 20 5c 0a 20 20 20 20 73 74  X##ke0; \.    st
7ca0: 61 74 65 5b 32 33 5d 20 3d 20 58 23 23 6b 65 31  ate[23] = X##ke1
7cb0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 34  ; \.    state[24
7cc0: 5d 20 3d 20 58 23 23 6b 69 30 3b 20 5c 0a 20 20  ] = X##ki0; \.  
7cd0: 20 20 73 74 61 74 65 5b 32 35 5d 20 3d 20 58 23    state[25] = X#
7ce0: 23 6b 69 31 3b 20 5c 0a 20 20 20 20 73 74 61 74  #ki1; \.    stat
7cf0: 65 5b 32 36 5d 20 3d 20 58 23 23 6b 6f 30 3b 20  e[26] = X##ko0; 
7d00: 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 37 5d 20  \.    state[27] 
7d10: 3d 20 58 23 23 6b 6f 31 3b 20 5c 0a 20 20 20 20  = X##ko1; \.    
7d20: 73 74 61 74 65 5b 32 38 5d 20 3d 20 58 23 23 6b  state[28] = X##k
7d30: 75 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b  u0; \.    state[
7d40: 32 39 5d 20 3d 20 58 23 23 6b 75 31 3b 20 5c 0a  29] = X##ku1; \.
7d50: 20 20 20 20 73 74 61 74 65 5b 33 30 5d 20 3d 20      state[30] = 
7d60: 58 23 23 6d 61 30 3b 20 5c 0a 20 20 20 20 73 74  X##ma0; \.    st
7d70: 61 74 65 5b 33 31 5d 20 3d 20 58 23 23 6d 61 31  ate[31] = X##ma1
7d80: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 33 32  ; \.    state[32
7d90: 5d 20 3d 20 58 23 23 6d 65 30 3b 20 5c 0a 20 20  ] = X##me0; \.  
7da0: 20 20 73 74 61 74 65 5b 33 33 5d 20 3d 20 58 23    state[33] = X#
7db0: 23 6d 65 31 3b 20 5c 0a 20 20 20 20 73 74 61 74  #me1; \.    stat
7dc0: 65 5b 33 34 5d 20 3d 20 58 23 23 6d 69 30 3b 20  e[34] = X##mi0; 
7dd0: 5c 0a 20 20 20 20 73 74 61 74 65 5b 33 35 5d 20  \.    state[35] 
7de0: 3d 20 58 23 23 6d 69 31 3b 20 5c 0a 20 20 20 20  = X##mi1; \.    
7df0: 73 74 61 74 65 5b 33 36 5d 20 3d 20 58 23 23 6d  state[36] = X##m
7e00: 6f 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b  o0; \.    state[
7e10: 33 37 5d 20 3d 20 58 23 23 6d 6f 31 3b 20 5c 0a  37] = X##mo1; \.
7e20: 20 20 20 20 73 74 61 74 65 5b 33 38 5d 20 3d 20      state[38] = 
7e30: 58 23 23 6d 75 30 3b 20 5c 0a 20 20 20 20 73 74  X##mu0; \.    st
7e40: 61 74 65 5b 33 39 5d 20 3d 20 58 23 23 6d 75 31  ate[39] = X##mu1
7e50: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 30  ; \.    state[40
7e60: 5d 20 3d 20 58 23 23 73 61 30 3b 20 5c 0a 20 20  ] = X##sa0; \.  
7e70: 20 20 73 74 61 74 65 5b 34 31 5d 20 3d 20 58 23    state[41] = X#
7e80: 23 73 61 31 3b 20 5c 0a 20 20 20 20 73 74 61 74  #sa1; \.    stat
7e90: 65 5b 34 32 5d 20 3d 20 58 23 23 73 65 30 3b 20  e[42] = X##se0; 
7ea0: 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 33 5d 20  \.    state[43] 
7eb0: 3d 20 58 23 23 73 65 31 3b 20 5c 0a 20 20 20 20  = X##se1; \.    
7ec0: 73 74 61 74 65 5b 34 34 5d 20 3d 20 58 23 23 73  state[44] = X##s
7ed0: 69 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b  i0; \.    state[
7ee0: 34 35 5d 20 3d 20 58 23 23 73 69 31 3b 20 5c 0a  45] = X##si1; \.
7ef0: 20 20 20 20 73 74 61 74 65 5b 34 36 5d 20 3d 20      state[46] = 
7f00: 58 23 23 73 6f 30 3b 20 5c 0a 20 20 20 20 73 74  X##so0; \.    st
7f10: 61 74 65 5b 34 37 5d 20 3d 20 58 23 23 73 6f 31  ate[47] = X##so1
7f20: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 38  ; \.    state[48
7f30: 5d 20 3d 20 58 23 23 73 75 30 3b 20 5c 0a 20 20  ] = X##su0; \.  
7f40: 20 20 73 74 61 74 65 5b 34 39 5d 20 3d 20 58 23    state[49] = X#
7f50: 23 73 75 31 3b 20 5c 0a 0a 23 64 65 66 69 6e 65  #su1; \..#define
7f60: 20 63 6f 70 79 53 74 61 74 65 56 61 72 69 61 62   copyStateVariab
7f70: 6c 65 73 28 58 2c 20 59 29 20 5c 0a 20 20 20 20  les(X, Y) \.    
7f80: 58 23 23 62 61 30 20 3d 20 59 23 23 62 61 30 3b  X##ba0 = Y##ba0;
7f90: 20 5c 0a 20 20 20 20 58 23 23 62 61 31 20 3d 20   \.    X##ba1 = 
7fa0: 59 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 58 23  Y##ba1; \.    X#
7fb0: 23 62 65 30 20 3d 20 59 23 23 62 65 30 3b 20 5c  #be0 = Y##be0; \
7fc0: 0a 20 20 20 20 58 23 23 62 65 31 20 3d 20 59 23  .    X##be1 = Y#
7fd0: 23 62 65 31 3b 20 5c 0a 20 20 20 20 58 23 23 62  #be1; \.    X##b
7fe0: 69 30 20 3d 20 59 23 23 62 69 30 3b 20 5c 0a 20  i0 = Y##bi0; \. 
7ff0: 20 20 20 58 23 23 62 69 31 20 3d 20 59 23 23 62     X##bi1 = Y##b
8000: 69 31 3b 20 5c 0a 20 20 20 20 58 23 23 62 6f 30  i1; \.    X##bo0
8010: 20 3d 20 59 23 23 62 6f 30 3b 20 5c 0a 20 20 20   = Y##bo0; \.   
8020: 20 58 23 23 62 6f 31 20 3d 20 59 23 23 62 6f 31   X##bo1 = Y##bo1
8030: 3b 20 5c 0a 20 20 20 20 58 23 23 62 75 30 20 3d  ; \.    X##bu0 =
8040: 20 59 23 23 62 75 30 3b 20 5c 0a 20 20 20 20 58   Y##bu0; \.    X
8050: 23 23 62 75 31 20 3d 20 59 23 23 62 75 31 3b 20  ##bu1 = Y##bu1; 
8060: 5c 0a 20 20 20 20 58 23 23 67 61 30 20 3d 20 59  \.    X##ga0 = Y
8070: 23 23 67 61 30 3b 20 5c 0a 20 20 20 20 58 23 23  ##ga0; \.    X##
8080: 67 61 31 20 3d 20 59 23 23 67 61 31 3b 20 5c 0a  ga1 = Y##ga1; \.
8090: 20 20 20 20 58 23 23 67 65 30 20 3d 20 59 23 23      X##ge0 = Y##
80a0: 67 65 30 3b 20 5c 0a 20 20 20 20 58 23 23 67 65  ge0; \.    X##ge
80b0: 31 20 3d 20 59 23 23 67 65 31 3b 20 5c 0a 20 20  1 = Y##ge1; \.  
80c0: 20 20 58 23 23 67 69 30 20 3d 20 59 23 23 67 69    X##gi0 = Y##gi
80d0: 30 3b 20 5c 0a 20 20 20 20 58 23 23 67 69 31 20  0; \.    X##gi1 
80e0: 3d 20 59 23 23 67 69 31 3b 20 5c 0a 20 20 20 20  = Y##gi1; \.    
80f0: 58 23 23 67 6f 30 20 3d 20 59 23 23 67 6f 30 3b  X##go0 = Y##go0;
8100: 20 5c 0a 20 20 20 20 58 23 23 67 6f 31 20 3d 20   \.    X##go1 = 
8110: 59 23 23 67 6f 31 3b 20 5c 0a 20 20 20 20 58 23  Y##go1; \.    X#
8120: 23 67 75 30 20 3d 20 59 23 23 67 75 30 3b 20 5c  #gu0 = Y##gu0; \
8130: 0a 20 20 20 20 58 23 23 67 75 31 20 3d 20 59 23  .    X##gu1 = Y#
8140: 23 67 75 31 3b 20 5c 0a 20 20 20 20 58 23 23 6b  #gu1; \.    X##k
8150: 61 30 20 3d 20 59 23 23 6b 61 30 3b 20 5c 0a 20  a0 = Y##ka0; \. 
8160: 20 20 20 58 23 23 6b 61 31 20 3d 20 59 23 23 6b     X##ka1 = Y##k
8170: 61 31 3b 20 5c 0a 20 20 20 20 58 23 23 6b 65 30  a1; \.    X##ke0
8180: 20 3d 20 59 23 23 6b 65 30 3b 20 5c 0a 20 20 20   = Y##ke0; \.   
8190: 20 58 23 23 6b 65 31 20 3d 20 59 23 23 6b 65 31   X##ke1 = Y##ke1
81a0: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 69 30 20 3d  ; \.    X##ki0 =
81b0: 20 59 23 23 6b 69 30 3b 20 5c 0a 20 20 20 20 58   Y##ki0; \.    X
81c0: 23 23 6b 69 31 20 3d 20 59 23 23 6b 69 31 3b 20  ##ki1 = Y##ki1; 
81d0: 5c 0a 20 20 20 20 58 23 23 6b 6f 30 20 3d 20 59  \.    X##ko0 = Y
81e0: 23 23 6b 6f 30 3b 20 5c 0a 20 20 20 20 58 23 23  ##ko0; \.    X##
81f0: 6b 6f 31 20 3d 20 59 23 23 6b 6f 31 3b 20 5c 0a  ko1 = Y##ko1; \.
8200: 20 20 20 20 58 23 23 6b 75 30 20 3d 20 59 23 23      X##ku0 = Y##
8210: 6b 75 30 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75  ku0; \.    X##ku
8220: 31 20 3d 20 59 23 23 6b 75 31 3b 20 5c 0a 20 20  1 = Y##ku1; \.  
8230: 20 20 58 23 23 6d 61 30 20 3d 20 59 23 23 6d 61    X##ma0 = Y##ma
8240: 30 3b 20 5c 0a 20 20 20 20 58 23 23 6d 61 31 20  0; \.    X##ma1 
8250: 3d 20 59 23 23 6d 61 31 3b 20 5c 0a 20 20 20 20  = Y##ma1; \.    
8260: 58 23 23 6d 65 30 20 3d 20 59 23 23 6d 65 30 3b  X##me0 = Y##me0;
8270: 20 5c 0a 20 20 20 20 58 23 23 6d 65 31 20 3d 20   \.    X##me1 = 
8280: 59 23 23 6d 65 31 3b 20 5c 0a 20 20 20 20 58 23  Y##me1; \.    X#
8290: 23 6d 69 30 20 3d 20 59 23 23 6d 69 30 3b 20 5c  #mi0 = Y##mi0; \
82a0: 0a 20 20 20 20 58 23 23 6d 69 31 20 3d 20 59 23  .    X##mi1 = Y#
82b0: 23 6d 69 31 3b 20 5c 0a 20 20 20 20 58 23 23 6d  #mi1; \.    X##m
82c0: 6f 30 20 3d 20 59 23 23 6d 6f 30 3b 20 5c 0a 20  o0 = Y##mo0; \. 
82d0: 20 20 20 58 23 23 6d 6f 31 20 3d 20 59 23 23 6d     X##mo1 = Y##m
82e0: 6f 31 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 30  o1; \.    X##mu0
82f0: 20 3d 20 59 23 23 6d 75 30 3b 20 5c 0a 20 20 20   = Y##mu0; \.   
8300: 20 58 23 23 6d 75 31 20 3d 20 59 23 23 6d 75 31   X##mu1 = Y##mu1
8310: 3b 20 5c 0a 20 20 20 20 58 23 23 73 61 30 20 3d  ; \.    X##sa0 =
8320: 20 59 23 23 73 61 30 3b 20 5c 0a 20 20 20 20 58   Y##sa0; \.    X
8330: 23 23 73 61 31 20 3d 20 59 23 23 73 61 31 3b 20  ##sa1 = Y##sa1; 
8340: 5c 0a 20 20 20 20 58 23 23 73 65 30 20 3d 20 59  \.    X##se0 = Y
8350: 23 23 73 65 30 3b 20 5c 0a 20 20 20 20 58 23 23  ##se0; \.    X##
8360: 73 65 31 20 3d 20 59 23 23 73 65 31 3b 20 5c 0a  se1 = Y##se1; \.
8370: 20 20 20 20 58 23 23 73 69 30 20 3d 20 59 23 23      X##si0 = Y##
8380: 73 69 30 3b 20 5c 0a 20 20 20 20 58 23 23 73 69  si0; \.    X##si
8390: 31 20 3d 20 59 23 23 73 69 31 3b 20 5c 0a 20 20  1 = Y##si1; \.  
83a0: 20 20 58 23 23 73 6f 30 20 3d 20 59 23 23 73 6f    X##so0 = Y##so
83b0: 30 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 31 20  0; \.    X##so1 
83c0: 3d 20 59 23 23 73 6f 31 3b 20 5c 0a 20 20 20 20  = Y##so1; \.    
83d0: 58 23 23 73 75 30 20 3d 20 59 23 23 73 75 30 3b  X##su0 = Y##su0;
83e0: 20 5c 0a 20 20 20 20 58 23 23 73 75 31 20 3d 20   \.    X##su1 = 
83f0: 59 23 23 73 75 31 3b 20 5c 0a 0a                 Y##su1; \..