/* Generated automatically by genflags. */

/* Set if the encoding can encode
   the acute and grave accents U+00B4 and U+0060. */
#define HAVE_ACCENTS 1

/* Set if the encoding can encode
   the single quotation marks U+2018 and U+2019. */
#define HAVE_QUOTATION_MARKS 2

/* Set if the encoding can encode
   the double-width Hangul letters (Jamo) U+3131 to U+3163. */
#define HAVE_HANGUL_JAMO 4

#define ei_ascii_oflags (0)
#define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf16le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf32_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf32be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf32le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_utf7_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs2swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_ucs4swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_c99_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_java_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso8859_1_oflags (HAVE_ACCENTS)
#define ei_iso8859_2_oflags (HAVE_ACCENTS)
#define ei_iso8859_3_oflags (HAVE_ACCENTS)
#define ei_iso8859_4_oflags (HAVE_ACCENTS)
#define ei_iso8859_5_oflags (0)
#define ei_iso8859_6_oflags (0)
#define ei_iso8859_7_oflags (HAVE_QUOTATION_MARKS)
#define ei_iso8859_8_oflags (HAVE_ACCENTS)
#define ei_iso8859_9_oflags (HAVE_ACCENTS)
#define ei_iso8859_10_oflags (0)
#define ei_iso8859_11_oflags (0)
#define ei_iso8859_13_oflags (0)
#define ei_iso8859_14_oflags (0)
#define ei_iso8859_15_oflags (0)
#define ei_iso8859_16_oflags (0)
#define ei_koi8_r_oflags (0)
#define ei_koi8_u_oflags (0)
#define ei_koi8_ru_oflags (0)
#define ei_cp1250_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1251_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1252_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1253_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1254_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1255_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1256_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1257_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1258_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp850_oflags (HAVE_ACCENTS)
#define ei_cp862_oflags (0)
#define ei_cp866_oflags (0)
#define ei_mac_roman_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_centraleurope_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_iceland_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_croatian_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_romania_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_cyrillic_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_ukraine_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_greek_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_turkish_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_mac_hebrew_oflags (HAVE_QUOTATION_MARKS)
#define ei_mac_arabic_oflags (0)
#define ei_mac_thai_oflags (HAVE_QUOTATION_MARKS)
#define ei_hp_roman8_oflags (HAVE_ACCENTS)
#define ei_nextstep_oflags (HAVE_ACCENTS)
#define ei_armscii_8_oflags (0)
#define ei_georgian_academy_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_georgian_ps_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_koi8_t_oflags (HAVE_QUOTATION_MARKS)
#define ei_pt154_oflags (HAVE_QUOTATION_MARKS)
#define ei_mulelao_oflags (0)
#define ei_cp1133_oflags (0)
#define ei_tis620_oflags (0)
#define ei_cp874_oflags (HAVE_QUOTATION_MARKS)
#define ei_viscii_oflags (0)
#define ei_tcvn_oflags (HAVE_ACCENTS)
#define ei_iso646_jp_oflags (0)
#define ei_jisx0201_oflags (0)
#define ei_jisx0208_oflags (HAVE_QUOTATION_MARKS)
#define ei_jisx0212_oflags (0)
#define ei_iso646_cn_oflags (0)
#define ei_gb2312_oflags (HAVE_QUOTATION_MARKS)
#define ei_isoir165_oflags (HAVE_QUOTATION_MARKS)
#define ei_ksc5601_oflags (HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_euc_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_sjis_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp932_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_euc_cn_oflags (HAVE_QUOTATION_MARKS)
#define ei_ces_gbk_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp936_oflags (HAVE_QUOTATION_MARKS)
#define ei_gb18030_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso2022_cn_oflags (HAVE_QUOTATION_MARKS)
#define ei_iso2022_cn_ext_oflags (HAVE_QUOTATION_MARKS)
#define ei_hz_oflags (HAVE_QUOTATION_MARKS)
#define ei_euc_tw_oflags (HAVE_QUOTATION_MARKS)
#define ei_ces_big5_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp950_oflags (HAVE_QUOTATION_MARKS)
#define ei_big5hkscs1999_oflags (HAVE_QUOTATION_MARKS)
#define ei_big5hkscs2001_oflags (HAVE_QUOTATION_MARKS)
#define ei_big5hkscs2004_oflags (HAVE_QUOTATION_MARKS)
#define ei_euc_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_cp949_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_johab_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_iso2022_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO)
#define ei_cp856_oflags (HAVE_ACCENTS)
#define ei_cp922_oflags (HAVE_ACCENTS)
#define ei_cp943_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_cp1046_oflags (0)
#define ei_cp1124_oflags (0)
#define ei_cp1129_oflags (0)
#define ei_cp1161_oflags (0)
#define ei_cp1162_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1163_oflags (0)
#define ei_dec_kanji_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_dec_hanyu_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp437_oflags (0)
#define ei_cp737_oflags (0)
#define ei_cp775_oflags (0)
#define ei_cp852_oflags (HAVE_ACCENTS)
#define ei_cp853_oflags (HAVE_ACCENTS)
#define ei_cp855_oflags (0)
#define ei_cp857_oflags (HAVE_ACCENTS)
#define ei_cp858_oflags (HAVE_ACCENTS)
#define ei_cp860_oflags (0)
#define ei_cp861_oflags (0)
#define ei_cp863_oflags (HAVE_ACCENTS)
#define ei_cp864_oflags (0)
#define ei_cp865_oflags (0)
#define ei_cp869_oflags (HAVE_QUOTATION_MARKS)
#define ei_cp1125_oflags (0)
#define ei_euc_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_shift_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_iso2022_jp3_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
#define ei_big5_2003_oflags (HAVE_QUOTATION_MARKS)
#define ei_tds565_oflags (0)
#define ei_atarist_oflags (HAVE_ACCENTS)
#define ei_riscos1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS)
