text: #pragma once
  
  // https://stackoverflow.com/questions/2124339/c-preprocessor-va-args-number-of-arguments
  #define MACRO_MAP_PP_NARG(...)                                                 \
    MACRO_MAP_PP_NARG_(0, ##__VA_ARGS__, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, \
                       59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46,   \
                       45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32,   \
                       31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18,   \
                       17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,   \
                       1, 0)
  #define MACRO_MAP_PP_NARG_(                                                    \
      _0, _1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_,   \
      _14_, _15_, _16_, _17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_,    \
      _26_, _27_, _28_, _29_, _30_, _31_, _32_, _33_, _34_, _35_, _36, _37, _38, \
      _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, \
      _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, \
      _69, count, ...)                                                           \
    count
  
  // stolen from https://github.com/garbageslam/visit_struct
  
  // clang-format off
  #define MACRO_MAP_APPLYF0(f,t,_EMPTY)
  #define MACRO_MAP_APPLYF1(f,t,_1) f(_1)
  #define MACRO_MAP_APPLYF2(f,t,_1,_2) f(_1)t() f(_2)
  #define MACRO_MAP_APPLYF3(f,t,_1,_2,_3) f(_1)t() f(_2)t() f(_3)
  #define MACRO_MAP_APPLYF4(f,t,_1,_2,_3,_4) f(_1)t() f(_2)t() f(_3)t() f(_4)
  #define MACRO_MAP_APPLYF5(f,t,_1,_2,_3,_4,_5) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)
  #define MACRO_MAP_APPLYF6(f,t,_1,_2,_3,_4,_5,_6) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)
  #define MACRO_MAP_APPLYF7(f,t,_1,_2,_3,_4,_5,_6,_7) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)
  #define MACRO_MAP_APPLYF8(f,t,_1,_2,_3,_4,_5,_6,_7,_8) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)
  #define MACRO_MAP_APPLYF9(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)
  #define MACRO_MAP_APPLYF10(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)
  #define MACRO_MAP_APPLYF11(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)
  #define MACRO_MAP_APPLYF12(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)
  #define MACRO_MAP_APPLYF13(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)
  #define MACRO_MAP_APPLYF14(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)
  #define MACRO_MAP_APPLYF15(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)
  #define MACRO_MAP_APPLYF16(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)
  #define MACRO_MAP_APPLYF17(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)
  #define MACRO_MAP_APPLYF18(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)
  #define MACRO_MAP_APPLYF19(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)
  #define MACRO_MAP_APPLYF20(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)
  #define MACRO_MAP_APPLYF21(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)
  #define MACRO_MAP_APPLYF22(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)
  #define MACRO_MAP_APPLYF23(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)
  #define MACRO_MAP_APPLYF24(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)
  #define MACRO_MAP_APPLYF25(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)
  #define MACRO_MAP_APPLYF26(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)
  #define MACRO_MAP_APPLYF27(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)
  #define MACRO_MAP_APPLYF28(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)
  #define MACRO_MAP_APPLYF29(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)
  #define MACRO_MAP_APPLYF30(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)
  #define MACRO_MAP_APPLYF31(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)
  #define MACRO_MAP_APPLYF32(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)
  #define MACRO_MAP_APPLYF33(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)
  #define MACRO_MAP_APPLYF34(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)
  #define MACRO_MAP_APPLYF35(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)
  #define MACRO_MAP_APPLYF36(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)
  #define MACRO_MAP_APPLYF37(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)
  #define MACRO_MAP_APPLYF38(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)
  #define MACRO_MAP_APPLYF39(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)
  #define MACRO_MAP_APPLYF40(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)
  #define MACRO_MAP_APPLYF41(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)
  #define MACRO_MAP_APPLYF42(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)
  #define MACRO_MAP_APPLYF43(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)
  #define MACRO_MAP_APPLYF44(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)
  #define MACRO_MAP_APPLYF45(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)
  #define MACRO_MAP_APPLYF46(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)
  #define MACRO_MAP_APPLYF47(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)
  #define MACRO_MAP_APPLYF48(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)
  #define MACRO_MAP_APPLYF49(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)
  #define MACRO_MAP_APPLYF50(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)
  #define MACRO_MAP_APPLYF51(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)
  #define MACRO_MAP_APPLYF52(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)
  #define MACRO_MAP_APPLYF53(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)
  #define MACRO_MAP_APPLYF54(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)
  #define MACRO_MAP_APPLYF55(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)
  #define MACRO_MAP_APPLYF56(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)
  #define MACRO_MAP_APPLYF57(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)
  #define MACRO_MAP_APPLYF58(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)
  #define MACRO_MAP_APPLYF59(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)
  #define MACRO_MAP_APPLYF60(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)
  #define MACRO_MAP_APPLYF61(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)
  #define MACRO_MAP_APPLYF62(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)
  #define MACRO_MAP_APPLYF63(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)
  #define MACRO_MAP_APPLYF64(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)t() f(_64)
  #define MACRO_MAP_APPLYF65(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64,_65) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)t() f(_64)t() f(_65)
  #define MACRO_MAP_APPLYF66(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64,_65,_66) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)t() f(_64)t() f(_65)t() f(_66)
  #define MACRO_MAP_APPLYF67(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64,_65,_66,_67) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)t() f(_64)t() f(_65)t() f(_66)t() f(_67)
  #define MACRO_MAP_APPLYF68(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64,_65,_66,_67,_68) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)t() f(_64)t() f(_65)t() f(_66)t() f(_67)t() f(_68)
  #define MACRO_MAP_APPLYF69(f,t,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56,_57,_58,_59,_60,_61,_62,_63,_64,_65,_66,_67,_68,_69) f(_1)t() f(_2)t() f(_3)t() f(_4)t() f(_5)t() f(_6)t() f(_7)t() f(_8)t() f(_9)t() f(_10)t() f(_11)t() f(_12)t() f(_13)t() f(_14)t() f(_15)t() f(_16)t() f(_17)t() f(_18)t() f(_19)t() f(_20)t() f(_21)t() f(_22)t() f(_23)t() f(_24)t() f(_25)t() f(_26)t() f(_27)t() f(_28)t() f(_29)t() f(_30)t() f(_31)t() f(_32)t() f(_33)t() f(_34)t() f(_35)t() f(_36)t() f(_37)t() f(_38)t() f(_39)t() f(_40)t() f(_41)t() f(_42)t() f(_43)t() f(_44)t() f(_45)t() f(_46)t() f(_47)t() f(_48)t() f(_49)t() f(_50)t() f(_51)t() f(_52)t() f(_53)t() f(_54)t() f(_55)t() f(_56)t() f(_57)t() f(_58)t() f(_59)t() f(_60)t() f(_61)t() f(_62)t() f(_63)t() f(_64)t() f(_65)t() f(_66)t() f(_67)t() f(_68)t() f(_69)
  // clang-format on
  
  #define MACRO_MAP_EXPAND(x) x
  #define MACRO_MAP_APPLY_F_(M, ...) MACRO_MAP_EXPAND(M(__VA_ARGS__))
  
  /* need extra level to force extra eval */
  #define MACRO_MAP_CONCAT_(a, b) a##b
  #define MACRO_MAP_CONCAT(a, b) MACRO_MAP_CONCAT_(a, b)
  
  #define MACRO_MAP_PP_MAP(f, t, ...)                                            \
    MACRO_MAP_EXPAND(MACRO_MAP_APPLY_F_(                                         \
        MACRO_MAP_CONCAT(MACRO_MAP_APPLYF, MACRO_MAP_PP_NARG(__VA_ARGS__)), f,   \
        t, ##__VA_ARGS__))
  
  #define MACRO_MAP_COMMA_EXPAND() ,
  #define MACRO_MAP_PP_COMMA_MAP(f, ...)                                         \
    MACRO_MAP_PP_MAP(f, MACRO_MAP_COMMA_EXPAND, ##__VA_ARGS__)
  
  #define MACRO_MAP_STRINGIFY_(x) #x
  #define MACRO_MAP_STRINGIFY(x) MACRO_MAP_STRINGIFY_(x)
  
  #define MACRO_MAP_STRINGIFY_COMMA(...)                                         \
    MACRO_MAP_PP_COMMA_MAP(MACRO_MAP_STRINGIFY, ##__VA_ARGS__)
  