alloy_sol_types/
macros.rs

1/// Calls the given macro with all the tuples.
2#[rustfmt::skip]
3macro_rules! all_the_tuples {
4    (@double $mac:path) => {
5        $mac!( 1 (T1 U1));
6        $mac!( 2 (T1 U1), (T2 U2));
7        $mac!( 3 (T1 U1), (T2 U2), (T3 U3));
8        $mac!( 4 (T1 U1), (T2 U2), (T3 U3), (T4 U4));
9        $mac!( 5 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5));
10        $mac!( 6 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6));
11        $mac!( 7 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7));
12        $mac!( 8 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8));
13        $mac!( 9 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9));
14        $mac!(10 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10));
15        $mac!(11 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11));
16        $mac!(12 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12));
17        $mac!(13 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13));
18        $mac!(14 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14));
19        $mac!(15 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15));
20        $mac!(16 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16));
21        $mac!(17 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17));
22        $mac!(18 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18));
23        $mac!(19 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19));
24        $mac!(20 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20));
25        $mac!(21 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21));
26        $mac!(22 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22));
27        $mac!(23 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23));
28        $mac!(24 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24));
29        $mac!(25 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25));
30        $mac!(26 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26));
31        $mac!(27 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27));
32        $mac!(28 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28));
33        $mac!(29 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29));
34        $mac!(30 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30));
35        $mac!(31 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31));
36        $mac!(32 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32));
37        $mac!(33 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33));
38        $mac!(34 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34));
39        $mac!(35 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35));
40        $mac!(36 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36));
41        $mac!(37 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37));
42        $mac!(38 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38));
43        $mac!(39 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39));
44        $mac!(40 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40));
45        $mac!(41 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41));
46        $mac!(42 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42));
47        $mac!(43 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43));
48        $mac!(44 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44));
49        $mac!(45 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45));
50        $mac!(46 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46));
51        $mac!(47 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47));
52        $mac!(48 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48));
53        $mac!(49 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49));
54        $mac!(50 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50));
55        $mac!(51 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51));
56        $mac!(52 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52));
57        $mac!(53 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53));
58        $mac!(54 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54));
59        $mac!(55 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54), (T55 U55));
60        $mac!(56 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54), (T55 U55), (T56 U56));
61        $mac!(57 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54), (T55 U55), (T56 U56), (T57 U57));
62        $mac!(58 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54), (T55 U55), (T56 U56), (T57 U57), (T58 U58));
63        $mac!(59 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54), (T55 U55), (T56 U56), (T57 U57), (T58 U58), (T59 U59));
64        $mac!(60 (T1 U1), (T2 U2), (T3 U3), (T4 U4), (T5 U5), (T6 U6), (T7 U7), (T8 U8), (T9 U9), (T10 U10), (T11 U11), (T12 U12), (T13 U13), (T14 U14), (T15 U15), (T16 U16), (T17 U17), (T18 U18), (T19 U19), (T20 U20), (T21 U21), (T22 U22), (T23 U23), (T24 U24), (T25 U25), (T26 U26), (T27 U27), (T28 U28), (T29 U29), (T30 U30), (T31 U31), (T32 U32), (T33 U33), (T34 U34), (T35 U35), (T36 U36), (T37 U37), (T38 U38), (T39 U39), (T40 U40), (T41 U41), (T42 U42), (T43 U43), (T44 U44), (T45 U45), (T46 U46), (T47 U47), (T48 U48), (T49 U49), (T50 U50), (T51 U51), (T52 U52), (T53 U53), (T54 U54), (T55 U55), (T56 U56), (T57 U57), (T58 U58), (T59 U59), (T60 U60));
65    };
66
67    ($mac:path) => {
68        $mac!( 1 T1);
69        $mac!( 2 T1, T2);
70        $mac!( 3 T1, T2, T3);
71        $mac!( 4 T1, T2, T3, T4);
72        $mac!( 5 T1, T2, T3, T4, T5);
73        $mac!( 6 T1, T2, T3, T4, T5, T6);
74        $mac!( 7 T1, T2, T3, T4, T5, T6, T7);
75        $mac!( 8 T1, T2, T3, T4, T5, T6, T7, T8);
76        $mac!( 9 T1, T2, T3, T4, T5, T6, T7, T8, T9);
77        $mac!(10 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
78        $mac!(11 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11);
79        $mac!(12 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12);
80        $mac!(13 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13);
81        $mac!(14 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14);
82        $mac!(15 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15);
83        $mac!(16 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16);
84        $mac!(17 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17);
85        $mac!(18 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18);
86        $mac!(19 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19);
87        $mac!(20 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20);
88        $mac!(21 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21);
89        $mac!(22 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22);
90        $mac!(23 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23);
91        $mac!(24 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24);
92        $mac!(25 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25);
93        $mac!(26 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26);
94        $mac!(27 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27);
95        $mac!(28 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28);
96        $mac!(29 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29);
97        $mac!(30 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30);
98        $mac!(31 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31);
99        $mac!(32 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32);
100        $mac!(33 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33);
101        $mac!(34 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34);
102        $mac!(35 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35);
103        $mac!(36 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36);
104        $mac!(37 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37);
105        $mac!(38 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38);
106        $mac!(39 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39);
107        $mac!(40 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40);
108        $mac!(41 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41);
109        $mac!(42 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42);
110        $mac!(43 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43);
111        $mac!(44 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44);
112        $mac!(45 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45);
113        $mac!(46 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46);
114        $mac!(47 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47);
115        $mac!(48 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48);
116        $mac!(49 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49);
117        $mac!(50 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50);
118        $mac!(51 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51);
119        $mac!(52 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52);
120        $mac!(53 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53);
121        $mac!(54 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54);
122        $mac!(55 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55);
123        $mac!(56 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56);
124        $mac!(57 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57);
125        $mac!(58 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58);
126        $mac!(59 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59);
127        $mac!(60 T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60);
128    };
129}