+: ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
+( ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
+ : ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x88 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FE2 \
+ : ( 0x81 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
+ : ( 0x93 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1F52 \
+ : ( 0x81 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
+ : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
+ : ( 0x89 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
+ : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
+ : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
+( ( 0xD5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( 0xD5 == ((const U8*)s)[2] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
+ : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
+ : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
+ : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
+ : 0 ) \
+ : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
+ : ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBC == ((const U8*)s)[1] ) ? \
+ ( ( 0x80 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
+ : ( 0x81 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
+ : ( 0x82 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
+ : ( 0x83 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
+ : ( 0x84 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
+ : ( 0x85 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
+ : ( 0x86 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
+ : ( 0x87 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
+ : ( 0xA0 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
+ : ( 0xA1 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
+ : ( 0xA3 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
+ : ( 0xA4 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
+ : ( 0xA5 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
+ : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
+ : ( 0xBD == ((const U8*)s)[1] ) ? \
+ ( ( 0xA0 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
+ : ( 0xA1 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
+ : ( 0xA3 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
+ : ( 0xA4 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
+ : ( 0xA5 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
+ : ( 0xA7 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
+ : ( 0xB0 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
+ : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
+ : 0 ) \
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
+( ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
+ : ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
+ : ( 0x89 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
+ : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
+( ( 0xD5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( 0xD5 == ((const U8*)s)[2] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
+ : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
+ : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
+ : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
+ : 0 ) \
+ : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
+ : ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBC == ((const U8*)s)[1] ) ? \
+ ( ( 0x80 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
+ : ( 0x81 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
+ : ( 0x82 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
+ : ( 0x83 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
+ : ( 0x84 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
+ : ( 0x85 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
+ : ( 0x86 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
+ : ( 0x87 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
+ : ( 0xA0 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
+ : ( 0xA1 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
+ : ( 0xA3 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
+ : ( 0xA4 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
+ : ( 0xA5 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
+ : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
+ : ( 0xBD == ((const U8*)s)[1] ) ? \
+ ( ( 0xA0 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
+ : ( 0xA1 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
+ : ( 0xA3 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
+ : ( 0xA4 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
+ : ( 0xA5 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
+ : ( 0xA7 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
+ : ( 0xB0 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
+ : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
+ : 0 ) \
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
+( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBF == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
+ : 0 ) \
+ : ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
+ : ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( 0xAC == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
+ : ( 0xAE == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
+ : ( 0xB1 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
+ : ( 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
+ : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
+ : ( 0xCF == ((const U8*)s)[0] ) ? \
+ ( ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
+ : ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
+ : ( 0x89 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
+ : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
+ : ( 0xD5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( 0xD5 == ((const U8*)s)[2] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
+ : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
+ : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
+ : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
+ : 0 ) \
+ : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
+( ((e)-(s) > 2) ? \
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBF == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
+ : 0 ) \
+ : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
+: ((e)-(s) > 1) ? \
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
+ : 0 ) \
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
+( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBF == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
+ : 0 ) \
+ : ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
+ : ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( 0xAC == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
+ : ( 0xAE == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
+ : ( 0xB1 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
+ : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
+ : ( 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
+ : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
+ : ( 0xB9 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x88 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FD2 \
+ : ( 0x81 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
+ : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
+ : 0 ) \
+ : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
+( ((e)-(s) > 4) ? \
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
+ : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBF == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
+ : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
+ : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
+ : 0 ) \
+ : ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
+ : ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( 0xAC == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
+ : ( 0xAE == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
+ : ( 0xB1 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
+ : ( 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
+ : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
+ : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
+: ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )
+
+
+/*** GENERATED CODE ***/
+#define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
+( ((e)-(s) > 5) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )