/* Generated by re2c */
#line 1 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
// re2c $INPUT -o $OUTPUT -u --encoding-policy substitute
#include <stdint.h>
#include <stdio.h>
#define YYCTYPE uint32_t

enum Block {
	Basic_Latin,
	Latin_1_Supplement,
	Latin_Extended_A,
	Latin_Extended_B,
	IPA_Extensions,
	Spacing_Modifier_Letters,
	Combining_Diacritical_Marks,
	Greek_and_Coptic,
	Cyrillic,
	Cyrillic_Supplement,
	Armenian,
	Hebrew,
	Arabic,
	Syriac,
	Arabic_Supplement,
	Thaana,
	NKo,
	Samaritan,
	Mandaic,
	Syriac_Supplement,
	Arabic_Extended_B,
	Arabic_Extended_A,
	Devanagari,
	Bengali,
	Gurmukhi,
	Gujarati,
	Oriya,
	Tamil,
	Telugu,
	Kannada,
	Malayalam,
	Sinhala,
	Thai,
	Lao,
	Tibetan,
	Myanmar,
	Georgian,
	Hangul_Jamo,
	Ethiopic,
	Ethiopic_Supplement,
	Cherokee,
	Unified_Canadian_Aboriginal_Syllabics,
	Ogham,
	Runic,
	Tagalog,
	Hanunoo,
	Buhid,
	Tagbanwa,
	Khmer,
	Mongolian,
	Unified_Canadian_Aboriginal_Syllabics_Extended,
	Limbu,
	Tai_Le,
	New_Tai_Lue,
	Khmer_Symbols,
	Buginese,
	Tai_Tham,
	Combining_Diacritical_Marks_Extended,
	Balinese,
	Sundanese,
	Batak,
	Lepcha,
	Ol_Chiki,
	Cyrillic_Extended_C,
	Georgian_Extended,
	Sundanese_Supplement,
	Vedic_Extensions,
	Phonetic_Extensions,
	Phonetic_Extensions_Supplement,
	Combining_Diacritical_Marks_Supplement,
	Latin_Extended_Additional,
	Greek_Extended,
	General_Punctuation,
	Superscripts_and_Subscripts,
	Currency_Symbols,
	Combining_Diacritical_Marks_for_Symbols,
	Letterlike_Symbols,
	Number_Forms,
	Arrows,
	Mathematical_Operators,
	Miscellaneous_Technical,
	Control_Pictures,
	Optical_Character_Recognition,
	Enclosed_Alphanumerics,
	Box_Drawing,
	Block_Elements,
	Geometric_Shapes,
	Miscellaneous_Symbols,
	Dingbats,
	Miscellaneous_Mathematical_Symbols_A,
	Supplemental_Arrows_A,
	Braille_Patterns,
	Supplemental_Arrows_B,
	Miscellaneous_Mathematical_Symbols_B,
	Supplemental_Mathematical_Operators,
	Miscellaneous_Symbols_and_Arrows,
	Glagolitic,
	Latin_Extended_C,
	Coptic,
	Georgian_Supplement,
	Tifinagh,
	Ethiopic_Extended,
	Cyrillic_Extended_A,
	Supplemental_Punctuation,
	CJK_Radicals_Supplement,
	Kangxi_Radicals,
	Ideographic_Description_Characters,
	CJK_Symbols_and_Punctuation,
	Hiragana,
	Katakana,
	Bopomofo,
	Hangul_Compatibility_Jamo,
	Kanbun,
	Bopomofo_Extended,
	CJK_Strokes,
	Katakana_Phonetic_Extensions,
	Enclosed_CJK_Letters_and_Months,
	CJK_Compatibility,
	CJK_Unified_Ideographs_Extension_A,
	Yijing_Hexagram_Symbols,
	CJK_Unified_Ideographs,
	Yi_Syllables,
	Yi_Radicals,
	Lisu,
	Vai,
	Cyrillic_Extended_B,
	Bamum,
	Modifier_Tone_Letters,
	Latin_Extended_D,
	Syloti_Nagri,
	Common_Indic_Number_Forms,
	Phags_pa,
	Saurashtra,
	Devanagari_Extended,
	Kayah_Li,
	Rejang,
	Hangul_Jamo_Extended_A,
	Javanese,
	Myanmar_Extended_B,
	Cham,
	Myanmar_Extended_A,
	Tai_Viet,
	Meetei_Mayek_Extensions,
	Ethiopic_Extended_A,
	Latin_Extended_E,
	Cherokee_Supplement,
	Meetei_Mayek,
	Hangul_Syllables,
	Hangul_Jamo_Extended_B,
	High_Surrogates,
	High_Private_Use_Surrogates,
	Low_Surrogates,
	Private_Use_Area,
	CJK_Compatibility_Ideographs,
	Alphabetic_Presentation_Forms,
	Arabic_Presentation_Forms_A,
	Variation_Selectors,
	Vertical_Forms,
	Combining_Half_Marks,
	CJK_Compatibility_Forms,
	Small_Form_Variants,
	Arabic_Presentation_Forms_B,
	Halfwidth_and_Fullwidth_Forms,
	Specials,
	Linear_B_Syllabary,
	Linear_B_Ideograms,
	Aegean_Numbers,
	Ancient_Greek_Numbers,
	Ancient_Symbols,
	Phaistos_Disc,
	Lycian,
	Carian,
	Coptic_Epact_Numbers,
	Old_Italic,
	Gothic,
	Old_Permic,
	Ugaritic,
	Old_Persian,
	Deseret,
	Shavian,
	Osmanya,
	Osage,
	Elbasan,
	Caucasian_Albanian,
	Vithkuqi,
	Todhri,
	Linear_A,
	Latin_Extended_F,
	Cypriot_Syllabary,
	Imperial_Aramaic,
	Palmyrene,
	Nabataean,
	Hatran,
	Phoenician,
	Lydian,
	Sidetic,
	Meroitic_Hieroglyphs,
	Meroitic_Cursive,
	Kharoshthi,
	Old_South_Arabian,
	Old_North_Arabian,
	Manichaean,
	Avestan,
	Inscriptional_Parthian,
	Inscriptional_Pahlavi,
	Psalter_Pahlavi,
	Old_Turkic,
	Old_Hungarian,
	Hanifi_Rohingya,
	Garay,
	Rumi_Numeral_Symbols,
	Yezidi,
	Arabic_Extended_C,
	Old_Sogdian,
	Sogdian,
	Old_Uyghur,
	Chorasmian,
	Elymaic,
	Brahmi,
	Kaithi,
	Sora_Sompeng,
	Chakma,
	Mahajani,
	Sharada,
	Sinhala_Archaic_Numbers,
	Khojki,
	Multani,
	Khudawadi,
	Grantha,
	Tulu_Tigalari,
	Newa,
	Tirhuta,
	Siddham,
	Modi,
	Mongolian_Supplement,
	Takri,
	Myanmar_Extended_C,
	Ahom,
	Dogra,
	Warang_Citi,
	Dives_Akuru,
	Nandinagari,
	Zanabazar_Square,
	Soyombo,
	Unified_Canadian_Aboriginal_Syllabics_Extended_A,
	Pau_Cin_Hau,
	Devanagari_Extended_A,
	Sharada_Supplement,
	Sunuwar,
	Bhaiksuki,
	Marchen,
	Masaram_Gondi,
	Gunjala_Gondi,
	Tolong_Siki,
	Makasar,
	Kawi,
	Lisu_Supplement,
	Tamil_Supplement,
	Cuneiform,
	Cuneiform_Numbers_and_Punctuation,
	Early_Dynastic_Cuneiform,
	Cypro_Minoan,
	Egyptian_Hieroglyphs,
	Egyptian_Hieroglyph_Format_Controls,
	Egyptian_Hieroglyphs_Extended_A,
	Anatolian_Hieroglyphs,
	Gurung_Khema,
	Bamum_Supplement,
	Mro,
	Tangsa,
	Bassa_Vah,
	Pahawh_Hmong,
	Kirat_Rai,
	Medefaidrin,
	Beria_Erfe,
	Miao,
	Ideographic_Symbols_and_Punctuation,
	Tangut,
	Tangut_Components,
	Khitan_Small_Script,
	Tangut_Supplement,
	Tangut_Components_Supplement,
	Kana_Extended_B,
	Kana_Supplement,
	Kana_Extended_A,
	Small_Kana_Extension,
	Nushu,
	Duployan,
	Shorthand_Format_Controls,
	Symbols_for_Legacy_Computing_Supplement,
	Miscellaneous_Symbols_Supplement,
	Znamenny_Musical_Notation,
	Byzantine_Musical_Symbols,
	Musical_Symbols,
	Ancient_Greek_Musical_Notation,
	Kaktovik_Numerals,
	Mayan_Numerals,
	Tai_Xuan_Jing_Symbols,
	Counting_Rod_Numerals,
	Mathematical_Alphanumeric_Symbols,
	Sutton_SignWriting,
	Latin_Extended_G,
	Glagolitic_Supplement,
	Cyrillic_Extended_D,
	Nyiakeng_Puachue_Hmong,
	Toto,
	Wancho,
	Nag_Mundari,
	Ol_Onal,
	Tai_Yo,
	Ethiopic_Extended_B,
	Mende_Kikakui,
	Adlam,
	Indic_Siyaq_Numbers,
	Ottoman_Siyaq_Numbers,
	Arabic_Mathematical_Alphabetic_Symbols,
	Mahjong_Tiles,
	Domino_Tiles,
	Playing_Cards,
	Enclosed_Alphanumeric_Supplement,
	Enclosed_Ideographic_Supplement,
	Miscellaneous_Symbols_and_Pictographs,
	Emoticons,
	Ornamental_Dingbats,
	Transport_and_Map_Symbols,
	Alchemical_Symbols,
	Geometric_Shapes_Extended,
	Supplemental_Arrows_C,
	Supplemental_Symbols_and_Pictographs,
	Chess_Symbols,
	Symbols_and_Pictographs_Extended_A,
	Symbols_for_Legacy_Computing,
	CJK_Unified_Ideographs_Extension_B,
	CJK_Unified_Ideographs_Extension_C,
	CJK_Unified_Ideographs_Extension_D,
	CJK_Unified_Ideographs_Extension_E,
	CJK_Unified_Ideographs_Extension_F,
	CJK_Unified_Ideographs_Extension_I,
	CJK_Compatibility_Ideographs_Supplement,
	CJK_Unified_Ideographs_Extension_G,
	CJK_Unified_Ideographs_Extension_H,
	CJK_Unified_Ideographs_Extension_J,
	Tags,
	Variation_Selectors_Supplement,
	Supplementary_Private_Use_Area_A,
	Supplementary_Private_Use_Area_B,
	Error
};

Block scan(const YYCTYPE* start, const YYCTYPE* const limit, Block blk) {
	__attribute__((unused)) const YYCTYPE* YYMARKER;
#define YYCURSOR start
	switch (blk) {
		case Basic_Latin: goto Basic_Latin;
		case Latin_1_Supplement: goto Latin_1_Supplement;
		case Latin_Extended_A: goto Latin_Extended_A;
		case Latin_Extended_B: goto Latin_Extended_B;
		case IPA_Extensions: goto IPA_Extensions;
		case Spacing_Modifier_Letters: goto Spacing_Modifier_Letters;
		case Combining_Diacritical_Marks: goto Combining_Diacritical_Marks;
		case Greek_and_Coptic: goto Greek_and_Coptic;
		case Cyrillic: goto Cyrillic;
		case Cyrillic_Supplement: goto Cyrillic_Supplement;
		case Armenian: goto Armenian;
		case Hebrew: goto Hebrew;
		case Arabic: goto Arabic;
		case Syriac: goto Syriac;
		case Arabic_Supplement: goto Arabic_Supplement;
		case Thaana: goto Thaana;
		case NKo: goto NKo;
		case Samaritan: goto Samaritan;
		case Mandaic: goto Mandaic;
		case Syriac_Supplement: goto Syriac_Supplement;
		case Arabic_Extended_B: goto Arabic_Extended_B;
		case Arabic_Extended_A: goto Arabic_Extended_A;
		case Devanagari: goto Devanagari;
		case Bengali: goto Bengali;
		case Gurmukhi: goto Gurmukhi;
		case Gujarati: goto Gujarati;
		case Oriya: goto Oriya;
		case Tamil: goto Tamil;
		case Telugu: goto Telugu;
		case Kannada: goto Kannada;
		case Malayalam: goto Malayalam;
		case Sinhala: goto Sinhala;
		case Thai: goto Thai;
		case Lao: goto Lao;
		case Tibetan: goto Tibetan;
		case Myanmar: goto Myanmar;
		case Georgian: goto Georgian;
		case Hangul_Jamo: goto Hangul_Jamo;
		case Ethiopic: goto Ethiopic;
		case Ethiopic_Supplement: goto Ethiopic_Supplement;
		case Cherokee: goto Cherokee;
		case Unified_Canadian_Aboriginal_Syllabics: goto Unified_Canadian_Aboriginal_Syllabics;
		case Ogham: goto Ogham;
		case Runic: goto Runic;
		case Tagalog: goto Tagalog;
		case Hanunoo: goto Hanunoo;
		case Buhid: goto Buhid;
		case Tagbanwa: goto Tagbanwa;
		case Khmer: goto Khmer;
		case Mongolian: goto Mongolian;
		case Unified_Canadian_Aboriginal_Syllabics_Extended: goto Unified_Canadian_Aboriginal_Syllabics_Extended;
		case Limbu: goto Limbu;
		case Tai_Le: goto Tai_Le;
		case New_Tai_Lue: goto New_Tai_Lue;
		case Khmer_Symbols: goto Khmer_Symbols;
		case Buginese: goto Buginese;
		case Tai_Tham: goto Tai_Tham;
		case Combining_Diacritical_Marks_Extended: goto Combining_Diacritical_Marks_Extended;
		case Balinese: goto Balinese;
		case Sundanese: goto Sundanese;
		case Batak: goto Batak;
		case Lepcha: goto Lepcha;
		case Ol_Chiki: goto Ol_Chiki;
		case Cyrillic_Extended_C: goto Cyrillic_Extended_C;
		case Georgian_Extended: goto Georgian_Extended;
		case Sundanese_Supplement: goto Sundanese_Supplement;
		case Vedic_Extensions: goto Vedic_Extensions;
		case Phonetic_Extensions: goto Phonetic_Extensions;
		case Phonetic_Extensions_Supplement: goto Phonetic_Extensions_Supplement;
		case Combining_Diacritical_Marks_Supplement: goto Combining_Diacritical_Marks_Supplement;
		case Latin_Extended_Additional: goto Latin_Extended_Additional;
		case Greek_Extended: goto Greek_Extended;
		case General_Punctuation: goto General_Punctuation;
		case Superscripts_and_Subscripts: goto Superscripts_and_Subscripts;
		case Currency_Symbols: goto Currency_Symbols;
		case Combining_Diacritical_Marks_for_Symbols: goto Combining_Diacritical_Marks_for_Symbols;
		case Letterlike_Symbols: goto Letterlike_Symbols;
		case Number_Forms: goto Number_Forms;
		case Arrows: goto Arrows;
		case Mathematical_Operators: goto Mathematical_Operators;
		case Miscellaneous_Technical: goto Miscellaneous_Technical;
		case Control_Pictures: goto Control_Pictures;
		case Optical_Character_Recognition: goto Optical_Character_Recognition;
		case Enclosed_Alphanumerics: goto Enclosed_Alphanumerics;
		case Box_Drawing: goto Box_Drawing;
		case Block_Elements: goto Block_Elements;
		case Geometric_Shapes: goto Geometric_Shapes;
		case Miscellaneous_Symbols: goto Miscellaneous_Symbols;
		case Dingbats: goto Dingbats;
		case Miscellaneous_Mathematical_Symbols_A: goto Miscellaneous_Mathematical_Symbols_A;
		case Supplemental_Arrows_A: goto Supplemental_Arrows_A;
		case Braille_Patterns: goto Braille_Patterns;
		case Supplemental_Arrows_B: goto Supplemental_Arrows_B;
		case Miscellaneous_Mathematical_Symbols_B: goto Miscellaneous_Mathematical_Symbols_B;
		case Supplemental_Mathematical_Operators: goto Supplemental_Mathematical_Operators;
		case Miscellaneous_Symbols_and_Arrows: goto Miscellaneous_Symbols_and_Arrows;
		case Glagolitic: goto Glagolitic;
		case Latin_Extended_C: goto Latin_Extended_C;
		case Coptic: goto Coptic;
		case Georgian_Supplement: goto Georgian_Supplement;
		case Tifinagh: goto Tifinagh;
		case Ethiopic_Extended: goto Ethiopic_Extended;
		case Cyrillic_Extended_A: goto Cyrillic_Extended_A;
		case Supplemental_Punctuation: goto Supplemental_Punctuation;
		case CJK_Radicals_Supplement: goto CJK_Radicals_Supplement;
		case Kangxi_Radicals: goto Kangxi_Radicals;
		case Ideographic_Description_Characters: goto Ideographic_Description_Characters;
		case CJK_Symbols_and_Punctuation: goto CJK_Symbols_and_Punctuation;
		case Hiragana: goto Hiragana;
		case Katakana: goto Katakana;
		case Bopomofo: goto Bopomofo;
		case Hangul_Compatibility_Jamo: goto Hangul_Compatibility_Jamo;
		case Kanbun: goto Kanbun;
		case Bopomofo_Extended: goto Bopomofo_Extended;
		case CJK_Strokes: goto CJK_Strokes;
		case Katakana_Phonetic_Extensions: goto Katakana_Phonetic_Extensions;
		case Enclosed_CJK_Letters_and_Months: goto Enclosed_CJK_Letters_and_Months;
		case CJK_Compatibility: goto CJK_Compatibility;
		case CJK_Unified_Ideographs_Extension_A: goto CJK_Unified_Ideographs_Extension_A;
		case Yijing_Hexagram_Symbols: goto Yijing_Hexagram_Symbols;
		case CJK_Unified_Ideographs: goto CJK_Unified_Ideographs;
		case Yi_Syllables: goto Yi_Syllables;
		case Yi_Radicals: goto Yi_Radicals;
		case Lisu: goto Lisu;
		case Vai: goto Vai;
		case Cyrillic_Extended_B: goto Cyrillic_Extended_B;
		case Bamum: goto Bamum;
		case Modifier_Tone_Letters: goto Modifier_Tone_Letters;
		case Latin_Extended_D: goto Latin_Extended_D;
		case Syloti_Nagri: goto Syloti_Nagri;
		case Common_Indic_Number_Forms: goto Common_Indic_Number_Forms;
		case Phags_pa: goto Phags_pa;
		case Saurashtra: goto Saurashtra;
		case Devanagari_Extended: goto Devanagari_Extended;
		case Kayah_Li: goto Kayah_Li;
		case Rejang: goto Rejang;
		case Hangul_Jamo_Extended_A: goto Hangul_Jamo_Extended_A;
		case Javanese: goto Javanese;
		case Myanmar_Extended_B: goto Myanmar_Extended_B;
		case Cham: goto Cham;
		case Myanmar_Extended_A: goto Myanmar_Extended_A;
		case Tai_Viet: goto Tai_Viet;
		case Meetei_Mayek_Extensions: goto Meetei_Mayek_Extensions;
		case Ethiopic_Extended_A: goto Ethiopic_Extended_A;
		case Latin_Extended_E: goto Latin_Extended_E;
		case Cherokee_Supplement: goto Cherokee_Supplement;
		case Meetei_Mayek: goto Meetei_Mayek;
		case Hangul_Syllables: goto Hangul_Syllables;
		case Hangul_Jamo_Extended_B: goto Hangul_Jamo_Extended_B;
		case High_Surrogates: goto High_Surrogates;
		case High_Private_Use_Surrogates: goto High_Private_Use_Surrogates;
		case Low_Surrogates: goto Low_Surrogates;
		case Private_Use_Area: goto Private_Use_Area;
		case CJK_Compatibility_Ideographs: goto CJK_Compatibility_Ideographs;
		case Alphabetic_Presentation_Forms: goto Alphabetic_Presentation_Forms;
		case Arabic_Presentation_Forms_A: goto Arabic_Presentation_Forms_A;
		case Variation_Selectors: goto Variation_Selectors;
		case Vertical_Forms: goto Vertical_Forms;
		case Combining_Half_Marks: goto Combining_Half_Marks;
		case CJK_Compatibility_Forms: goto CJK_Compatibility_Forms;
		case Small_Form_Variants: goto Small_Form_Variants;
		case Arabic_Presentation_Forms_B: goto Arabic_Presentation_Forms_B;
		case Halfwidth_and_Fullwidth_Forms: goto Halfwidth_and_Fullwidth_Forms;
		case Specials: goto Specials;
		case Linear_B_Syllabary: goto Linear_B_Syllabary;
		case Linear_B_Ideograms: goto Linear_B_Ideograms;
		case Aegean_Numbers: goto Aegean_Numbers;
		case Ancient_Greek_Numbers: goto Ancient_Greek_Numbers;
		case Ancient_Symbols: goto Ancient_Symbols;
		case Phaistos_Disc: goto Phaistos_Disc;
		case Lycian: goto Lycian;
		case Carian: goto Carian;
		case Coptic_Epact_Numbers: goto Coptic_Epact_Numbers;
		case Old_Italic: goto Old_Italic;
		case Gothic: goto Gothic;
		case Old_Permic: goto Old_Permic;
		case Ugaritic: goto Ugaritic;
		case Old_Persian: goto Old_Persian;
		case Deseret: goto Deseret;
		case Shavian: goto Shavian;
		case Osmanya: goto Osmanya;
		case Osage: goto Osage;
		case Elbasan: goto Elbasan;
		case Caucasian_Albanian: goto Caucasian_Albanian;
		case Vithkuqi: goto Vithkuqi;
		case Todhri: goto Todhri;
		case Linear_A: goto Linear_A;
		case Latin_Extended_F: goto Latin_Extended_F;
		case Cypriot_Syllabary: goto Cypriot_Syllabary;
		case Imperial_Aramaic: goto Imperial_Aramaic;
		case Palmyrene: goto Palmyrene;
		case Nabataean: goto Nabataean;
		case Hatran: goto Hatran;
		case Phoenician: goto Phoenician;
		case Lydian: goto Lydian;
		case Sidetic: goto Sidetic;
		case Meroitic_Hieroglyphs: goto Meroitic_Hieroglyphs;
		case Meroitic_Cursive: goto Meroitic_Cursive;
		case Kharoshthi: goto Kharoshthi;
		case Old_South_Arabian: goto Old_South_Arabian;
		case Old_North_Arabian: goto Old_North_Arabian;
		case Manichaean: goto Manichaean;
		case Avestan: goto Avestan;
		case Inscriptional_Parthian: goto Inscriptional_Parthian;
		case Inscriptional_Pahlavi: goto Inscriptional_Pahlavi;
		case Psalter_Pahlavi: goto Psalter_Pahlavi;
		case Old_Turkic: goto Old_Turkic;
		case Old_Hungarian: goto Old_Hungarian;
		case Hanifi_Rohingya: goto Hanifi_Rohingya;
		case Garay: goto Garay;
		case Rumi_Numeral_Symbols: goto Rumi_Numeral_Symbols;
		case Yezidi: goto Yezidi;
		case Arabic_Extended_C: goto Arabic_Extended_C;
		case Old_Sogdian: goto Old_Sogdian;
		case Sogdian: goto Sogdian;
		case Old_Uyghur: goto Old_Uyghur;
		case Chorasmian: goto Chorasmian;
		case Elymaic: goto Elymaic;
		case Brahmi: goto Brahmi;
		case Kaithi: goto Kaithi;
		case Sora_Sompeng: goto Sora_Sompeng;
		case Chakma: goto Chakma;
		case Mahajani: goto Mahajani;
		case Sharada: goto Sharada;
		case Sinhala_Archaic_Numbers: goto Sinhala_Archaic_Numbers;
		case Khojki: goto Khojki;
		case Multani: goto Multani;
		case Khudawadi: goto Khudawadi;
		case Grantha: goto Grantha;
		case Tulu_Tigalari: goto Tulu_Tigalari;
		case Newa: goto Newa;
		case Tirhuta: goto Tirhuta;
		case Siddham: goto Siddham;
		case Modi: goto Modi;
		case Mongolian_Supplement: goto Mongolian_Supplement;
		case Takri: goto Takri;
		case Myanmar_Extended_C: goto Myanmar_Extended_C;
		case Ahom: goto Ahom;
		case Dogra: goto Dogra;
		case Warang_Citi: goto Warang_Citi;
		case Dives_Akuru: goto Dives_Akuru;
		case Nandinagari: goto Nandinagari;
		case Zanabazar_Square: goto Zanabazar_Square;
		case Soyombo: goto Soyombo;
		case Unified_Canadian_Aboriginal_Syllabics_Extended_A: goto Unified_Canadian_Aboriginal_Syllabics_Extended_A;
		case Pau_Cin_Hau: goto Pau_Cin_Hau;
		case Devanagari_Extended_A: goto Devanagari_Extended_A;
		case Sharada_Supplement: goto Sharada_Supplement;
		case Sunuwar: goto Sunuwar;
		case Bhaiksuki: goto Bhaiksuki;
		case Marchen: goto Marchen;
		case Masaram_Gondi: goto Masaram_Gondi;
		case Gunjala_Gondi: goto Gunjala_Gondi;
		case Tolong_Siki: goto Tolong_Siki;
		case Makasar: goto Makasar;
		case Kawi: goto Kawi;
		case Lisu_Supplement: goto Lisu_Supplement;
		case Tamil_Supplement: goto Tamil_Supplement;
		case Cuneiform: goto Cuneiform;
		case Cuneiform_Numbers_and_Punctuation: goto Cuneiform_Numbers_and_Punctuation;
		case Early_Dynastic_Cuneiform: goto Early_Dynastic_Cuneiform;
		case Cypro_Minoan: goto Cypro_Minoan;
		case Egyptian_Hieroglyphs: goto Egyptian_Hieroglyphs;
		case Egyptian_Hieroglyph_Format_Controls: goto Egyptian_Hieroglyph_Format_Controls;
		case Egyptian_Hieroglyphs_Extended_A: goto Egyptian_Hieroglyphs_Extended_A;
		case Anatolian_Hieroglyphs: goto Anatolian_Hieroglyphs;
		case Gurung_Khema: goto Gurung_Khema;
		case Bamum_Supplement: goto Bamum_Supplement;
		case Mro: goto Mro;
		case Tangsa: goto Tangsa;
		case Bassa_Vah: goto Bassa_Vah;
		case Pahawh_Hmong: goto Pahawh_Hmong;
		case Kirat_Rai: goto Kirat_Rai;
		case Medefaidrin: goto Medefaidrin;
		case Beria_Erfe: goto Beria_Erfe;
		case Miao: goto Miao;
		case Ideographic_Symbols_and_Punctuation: goto Ideographic_Symbols_and_Punctuation;
		case Tangut: goto Tangut;
		case Tangut_Components: goto Tangut_Components;
		case Khitan_Small_Script: goto Khitan_Small_Script;
		case Tangut_Supplement: goto Tangut_Supplement;
		case Tangut_Components_Supplement: goto Tangut_Components_Supplement;
		case Kana_Extended_B: goto Kana_Extended_B;
		case Kana_Supplement: goto Kana_Supplement;
		case Kana_Extended_A: goto Kana_Extended_A;
		case Small_Kana_Extension: goto Small_Kana_Extension;
		case Nushu: goto Nushu;
		case Duployan: goto Duployan;
		case Shorthand_Format_Controls: goto Shorthand_Format_Controls;
		case Symbols_for_Legacy_Computing_Supplement: goto Symbols_for_Legacy_Computing_Supplement;
		case Miscellaneous_Symbols_Supplement: goto Miscellaneous_Symbols_Supplement;
		case Znamenny_Musical_Notation: goto Znamenny_Musical_Notation;
		case Byzantine_Musical_Symbols: goto Byzantine_Musical_Symbols;
		case Musical_Symbols: goto Musical_Symbols;
		case Ancient_Greek_Musical_Notation: goto Ancient_Greek_Musical_Notation;
		case Kaktovik_Numerals: goto Kaktovik_Numerals;
		case Mayan_Numerals: goto Mayan_Numerals;
		case Tai_Xuan_Jing_Symbols: goto Tai_Xuan_Jing_Symbols;
		case Counting_Rod_Numerals: goto Counting_Rod_Numerals;
		case Mathematical_Alphanumeric_Symbols: goto Mathematical_Alphanumeric_Symbols;
		case Sutton_SignWriting: goto Sutton_SignWriting;
		case Latin_Extended_G: goto Latin_Extended_G;
		case Glagolitic_Supplement: goto Glagolitic_Supplement;
		case Cyrillic_Extended_D: goto Cyrillic_Extended_D;
		case Nyiakeng_Puachue_Hmong: goto Nyiakeng_Puachue_Hmong;
		case Toto: goto Toto;
		case Wancho: goto Wancho;
		case Nag_Mundari: goto Nag_Mundari;
		case Ol_Onal: goto Ol_Onal;
		case Tai_Yo: goto Tai_Yo;
		case Ethiopic_Extended_B: goto Ethiopic_Extended_B;
		case Mende_Kikakui: goto Mende_Kikakui;
		case Adlam: goto Adlam;
		case Indic_Siyaq_Numbers: goto Indic_Siyaq_Numbers;
		case Ottoman_Siyaq_Numbers: goto Ottoman_Siyaq_Numbers;
		case Arabic_Mathematical_Alphabetic_Symbols: goto Arabic_Mathematical_Alphabetic_Symbols;
		case Mahjong_Tiles: goto Mahjong_Tiles;
		case Domino_Tiles: goto Domino_Tiles;
		case Playing_Cards: goto Playing_Cards;
		case Enclosed_Alphanumeric_Supplement: goto Enclosed_Alphanumeric_Supplement;
		case Enclosed_Ideographic_Supplement: goto Enclosed_Ideographic_Supplement;
		case Miscellaneous_Symbols_and_Pictographs: goto Miscellaneous_Symbols_and_Pictographs;
		case Emoticons: goto Emoticons;
		case Ornamental_Dingbats: goto Ornamental_Dingbats;
		case Transport_and_Map_Symbols: goto Transport_and_Map_Symbols;
		case Alchemical_Symbols: goto Alchemical_Symbols;
		case Geometric_Shapes_Extended: goto Geometric_Shapes_Extended;
		case Supplemental_Arrows_C: goto Supplemental_Arrows_C;
		case Supplemental_Symbols_and_Pictographs: goto Supplemental_Symbols_and_Pictographs;
		case Chess_Symbols: goto Chess_Symbols;
		case Symbols_and_Pictographs_Extended_A: goto Symbols_and_Pictographs_Extended_A;
		case Symbols_for_Legacy_Computing: goto Symbols_for_Legacy_Computing;
		case CJK_Unified_Ideographs_Extension_B: goto CJK_Unified_Ideographs_Extension_B;
		case CJK_Unified_Ideographs_Extension_C: goto CJK_Unified_Ideographs_Extension_C;
		case CJK_Unified_Ideographs_Extension_D: goto CJK_Unified_Ideographs_Extension_D;
		case CJK_Unified_Ideographs_Extension_E: goto CJK_Unified_Ideographs_Extension_E;
		case CJK_Unified_Ideographs_Extension_F: goto CJK_Unified_Ideographs_Extension_F;
		case CJK_Unified_Ideographs_Extension_I: goto CJK_Unified_Ideographs_Extension_I;
		case CJK_Compatibility_Ideographs_Supplement: goto CJK_Compatibility_Ideographs_Supplement;
		case CJK_Unified_Ideographs_Extension_G: goto CJK_Unified_Ideographs_Extension_G;
		case CJK_Unified_Ideographs_Extension_H: goto CJK_Unified_Ideographs_Extension_H;
		case CJK_Unified_Ideographs_Extension_J: goto CJK_Unified_Ideographs_Extension_J;
		case Tags: goto Tags;
		case Variation_Selectors_Supplement: goto Variation_Selectors_Supplement;
		case Supplementary_Private_Use_Area_A: goto Supplementary_Private_Use_Area_A;
		case Supplementary_Private_Use_Area_B: goto Supplementary_Private_Use_Area_B;
		default: return Error;
	}
#line 1055 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Basic_Latin:
	
#line 715 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych >= 0x00000080) goto yy1;
	++YYCURSOR;
#line 1059 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Basic_Latin; }
#line 723 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1:
	++YYCURSOR;
#line 1060 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Basic_Latin; else return Error; }
#line 728 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1061 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_1_Supplement:
	
#line 734 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000007F) goto yy3;
	if (yych <= 0x000000FF) goto yy4;
yy3:
	++YYCURSOR;
#line 1066 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_1_Supplement; else return Error; }
#line 744 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy4:
	++YYCURSOR;
#line 1065 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_1_Supplement; }
#line 749 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1067 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_A:
	
#line 755 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000000FF) goto yy6;
	if (yych <= 0x0000017F) goto yy7;
yy6:
	++YYCURSOR;
#line 1072 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_A; else return Error; }
#line 765 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy7:
	++YYCURSOR;
#line 1071 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_A; }
#line 770 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1073 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_B:
	
#line 776 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000017F) goto yy9;
	if (yych <= 0x0000024F) goto yy10;
yy9:
	++YYCURSOR;
#line 1078 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_B; else return Error; }
#line 786 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy10:
	++YYCURSOR;
#line 1077 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_B; }
#line 791 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1079 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

IPA_Extensions:
	
#line 797 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000024F) goto yy12;
	if (yych <= 0x000002AF) goto yy13;
yy12:
	++YYCURSOR;
#line 1084 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return IPA_Extensions; else return Error; }
#line 807 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy13:
	++YYCURSOR;
#line 1083 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto IPA_Extensions; }
#line 812 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1085 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Spacing_Modifier_Letters:
	
#line 818 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000002AF) goto yy15;
	if (yych <= 0x000002FF) goto yy16;
yy15:
	++YYCURSOR;
#line 1090 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Spacing_Modifier_Letters; else return Error; }
#line 828 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy16:
	++YYCURSOR;
#line 1089 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Spacing_Modifier_Letters; }
#line 833 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1091 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Combining_Diacritical_Marks:
	
#line 839 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000002FF) goto yy18;
	if (yych <= 0x0000036F) goto yy19;
yy18:
	++YYCURSOR;
#line 1096 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks; else return Error; }
#line 849 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy19:
	++YYCURSOR;
#line 1095 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks; }
#line 854 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1097 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Greek_and_Coptic:
	
#line 860 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000036F) goto yy21;
	if (yych <= 0x000003FF) goto yy22;
yy21:
	++YYCURSOR;
#line 1102 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Greek_and_Coptic; else return Error; }
#line 870 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy22:
	++YYCURSOR;
#line 1101 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Greek_and_Coptic; }
#line 875 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1103 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cyrillic:
	
#line 881 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000003FF) goto yy24;
	if (yych <= 0x000004FF) goto yy25;
yy24:
	++YYCURSOR;
#line 1108 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic; else return Error; }
#line 891 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy25:
	++YYCURSOR;
#line 1107 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cyrillic; }
#line 896 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1109 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cyrillic_Supplement:
	
#line 902 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000004FF) goto yy27;
	if (yych <= 0x0000052F) goto yy28;
yy27:
	++YYCURSOR;
#line 1114 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Supplement; else return Error; }
#line 912 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy28:
	++YYCURSOR;
#line 1113 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cyrillic_Supplement; }
#line 917 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1115 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Armenian:
	
#line 923 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000052F) goto yy30;
	if (yych <= 0x0000058F) goto yy31;
yy30:
	++YYCURSOR;
#line 1120 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Armenian; else return Error; }
#line 933 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy31:
	++YYCURSOR;
#line 1119 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Armenian; }
#line 938 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1121 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hebrew:
	
#line 944 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000058F) goto yy33;
	if (yych <= 0x000005FF) goto yy34;
yy33:
	++YYCURSOR;
#line 1126 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hebrew; else return Error; }
#line 954 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy34:
	++YYCURSOR;
#line 1125 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hebrew; }
#line 959 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1127 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic:
	
#line 965 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000005FF) goto yy36;
	if (yych <= 0x000006FF) goto yy37;
yy36:
	++YYCURSOR;
#line 1132 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic; else return Error; }
#line 975 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy37:
	++YYCURSOR;
#line 1131 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic; }
#line 980 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1133 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Syriac:
	
#line 986 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000006FF) goto yy39;
	if (yych <= 0x0000074F) goto yy40;
yy39:
	++YYCURSOR;
#line 1138 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Syriac; else return Error; }
#line 996 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy40:
	++YYCURSOR;
#line 1137 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Syriac; }
#line 1001 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1139 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Supplement:
	
#line 1007 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000074F) goto yy42;
	if (yych <= 0x0000077F) goto yy43;
yy42:
	++YYCURSOR;
#line 1144 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Supplement; else return Error; }
#line 1017 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy43:
	++YYCURSOR;
#line 1143 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Supplement; }
#line 1022 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1145 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Thaana:
	
#line 1028 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000077F) goto yy45;
	if (yych <= 0x000007BF) goto yy46;
yy45:
	++YYCURSOR;
#line 1150 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Thaana; else return Error; }
#line 1038 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy46:
	++YYCURSOR;
#line 1149 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Thaana; }
#line 1043 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1151 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

NKo:
	
#line 1049 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000007BF) goto yy48;
	if (yych <= 0x000007FF) goto yy49;
yy48:
	++YYCURSOR;
#line 1156 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return NKo; else return Error; }
#line 1059 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy49:
	++YYCURSOR;
#line 1155 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto NKo; }
#line 1064 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1157 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Samaritan:
	
#line 1070 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000007FF) goto yy51;
	if (yych <= 0x0000083F) goto yy52;
yy51:
	++YYCURSOR;
#line 1162 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Samaritan; else return Error; }
#line 1080 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy52:
	++YYCURSOR;
#line 1161 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Samaritan; }
#line 1085 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1163 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mandaic:
	
#line 1091 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000083F) goto yy54;
	if (yych <= 0x0000085F) goto yy55;
yy54:
	++YYCURSOR;
#line 1168 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mandaic; else return Error; }
#line 1101 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy55:
	++YYCURSOR;
#line 1167 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mandaic; }
#line 1106 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1169 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Syriac_Supplement:
	
#line 1112 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000085F) goto yy57;
	if (yych <= 0x0000086F) goto yy58;
yy57:
	++YYCURSOR;
#line 1174 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Syriac_Supplement; else return Error; }
#line 1122 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy58:
	++YYCURSOR;
#line 1173 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Syriac_Supplement; }
#line 1127 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1175 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Extended_B:
	
#line 1133 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000086F) goto yy60;
	if (yych <= 0x0000089F) goto yy61;
yy60:
	++YYCURSOR;
#line 1180 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Extended_B; else return Error; }
#line 1143 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy61:
	++YYCURSOR;
#line 1179 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Extended_B; }
#line 1148 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1181 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Extended_A:
	
#line 1154 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000089F) goto yy63;
	if (yych <= 0x000008FF) goto yy64;
yy63:
	++YYCURSOR;
#line 1186 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Extended_A; else return Error; }
#line 1164 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy64:
	++YYCURSOR;
#line 1185 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Extended_A; }
#line 1169 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1187 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Devanagari:
	
#line 1175 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000008FF) goto yy66;
	if (yych <= 0x0000097F) goto yy67;
yy66:
	++YYCURSOR;
#line 1192 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Devanagari; else return Error; }
#line 1185 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy67:
	++YYCURSOR;
#line 1191 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Devanagari; }
#line 1190 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1193 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bengali:
	
#line 1196 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000097F) goto yy69;
	if (yych <= 0x000009FF) goto yy70;
yy69:
	++YYCURSOR;
#line 1198 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bengali; else return Error; }
#line 1206 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy70:
	++YYCURSOR;
#line 1197 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bengali; }
#line 1211 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1199 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Gurmukhi:
	
#line 1217 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000009FF) goto yy72;
	if (yych <= 0x00000A7F) goto yy73;
yy72:
	++YYCURSOR;
#line 1204 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gurmukhi; else return Error; }
#line 1227 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy73:
	++YYCURSOR;
#line 1203 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Gurmukhi; }
#line 1232 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1205 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Gujarati:
	
#line 1238 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000A7F) goto yy75;
	if (yych <= 0x00000AFF) goto yy76;
yy75:
	++YYCURSOR;
#line 1210 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gujarati; else return Error; }
#line 1248 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy76:
	++YYCURSOR;
#line 1209 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Gujarati; }
#line 1253 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1211 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Oriya:
	
#line 1259 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000AFF) goto yy78;
	if (yych <= 0x00000B7F) goto yy79;
yy78:
	++YYCURSOR;
#line 1216 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Oriya; else return Error; }
#line 1269 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy79:
	++YYCURSOR;
#line 1215 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Oriya; }
#line 1274 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1217 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tamil:
	
#line 1280 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000B7F) goto yy81;
	if (yych <= 0x00000BFF) goto yy82;
yy81:
	++YYCURSOR;
#line 1222 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tamil; else return Error; }
#line 1290 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy82:
	++YYCURSOR;
#line 1221 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tamil; }
#line 1295 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1223 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Telugu:
	
#line 1301 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000BFF) goto yy84;
	if (yych <= 0x00000C7F) goto yy85;
yy84:
	++YYCURSOR;
#line 1228 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Telugu; else return Error; }
#line 1311 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy85:
	++YYCURSOR;
#line 1227 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Telugu; }
#line 1316 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1229 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kannada:
	
#line 1322 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000C7F) goto yy87;
	if (yych <= 0x00000CFF) goto yy88;
yy87:
	++YYCURSOR;
#line 1234 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kannada; else return Error; }
#line 1332 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy88:
	++YYCURSOR;
#line 1233 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kannada; }
#line 1337 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1235 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Malayalam:
	
#line 1343 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000CFF) goto yy90;
	if (yych <= 0x00000D7F) goto yy91;
yy90:
	++YYCURSOR;
#line 1240 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Malayalam; else return Error; }
#line 1353 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy91:
	++YYCURSOR;
#line 1239 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Malayalam; }
#line 1358 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1241 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sinhala:
	
#line 1364 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000D7F) goto yy93;
	if (yych <= 0x00000DFF) goto yy94;
yy93:
	++YYCURSOR;
#line 1246 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sinhala; else return Error; }
#line 1374 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy94:
	++YYCURSOR;
#line 1245 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sinhala; }
#line 1379 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1247 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Thai:
	
#line 1385 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000DFF) goto yy96;
	if (yych <= 0x00000E7F) goto yy97;
yy96:
	++YYCURSOR;
#line 1252 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Thai; else return Error; }
#line 1395 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy97:
	++YYCURSOR;
#line 1251 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Thai; }
#line 1400 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1253 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Lao:
	
#line 1406 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000E7F) goto yy99;
	if (yych <= 0x00000EFF) goto yy100;
yy99:
	++YYCURSOR;
#line 1258 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lao; else return Error; }
#line 1416 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy100:
	++YYCURSOR;
#line 1257 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Lao; }
#line 1421 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1259 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tibetan:
	
#line 1427 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000EFF) goto yy102;
	if (yych <= 0x00000FFF) goto yy103;
yy102:
	++YYCURSOR;
#line 1264 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tibetan; else return Error; }
#line 1437 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy103:
	++YYCURSOR;
#line 1263 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tibetan; }
#line 1442 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1265 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Myanmar:
	
#line 1448 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00000FFF) goto yy105;
	if (yych <= 0x0000109F) goto yy106;
yy105:
	++YYCURSOR;
#line 1270 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar; else return Error; }
#line 1458 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy106:
	++YYCURSOR;
#line 1269 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Myanmar; }
#line 1463 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1271 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Georgian:
	
#line 1469 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000109F) goto yy108;
	if (yych <= 0x000010FF) goto yy109;
yy108:
	++YYCURSOR;
#line 1276 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Georgian; else return Error; }
#line 1479 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy109:
	++YYCURSOR;
#line 1275 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Georgian; }
#line 1484 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1277 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hangul_Jamo:
	
#line 1490 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000010FF) goto yy111;
	if (yych <= 0x000011FF) goto yy112;
yy111:
	++YYCURSOR;
#line 1282 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Jamo; else return Error; }
#line 1500 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy112:
	++YYCURSOR;
#line 1281 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hangul_Jamo; }
#line 1505 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1283 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ethiopic:
	
#line 1511 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000011FF) goto yy114;
	if (yych <= 0x0000137F) goto yy115;
yy114:
	++YYCURSOR;
#line 1288 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic; else return Error; }
#line 1521 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy115:
	++YYCURSOR;
#line 1287 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ethiopic; }
#line 1526 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1289 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ethiopic_Supplement:
	
#line 1532 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000137F) goto yy117;
	if (yych <= 0x0000139F) goto yy118;
yy117:
	++YYCURSOR;
#line 1294 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Supplement; else return Error; }
#line 1542 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy118:
	++YYCURSOR;
#line 1293 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ethiopic_Supplement; }
#line 1547 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1295 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cherokee:
	
#line 1553 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000139F) goto yy120;
	if (yych <= 0x000013FF) goto yy121;
yy120:
	++YYCURSOR;
#line 1300 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cherokee; else return Error; }
#line 1563 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy121:
	++YYCURSOR;
#line 1299 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cherokee; }
#line 1568 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1301 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Unified_Canadian_Aboriginal_Syllabics:
	
#line 1574 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000013FF) goto yy123;
	if (yych <= 0x0000167F) goto yy124;
yy123:
	++YYCURSOR;
#line 1306 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Unified_Canadian_Aboriginal_Syllabics; else return Error; }
#line 1584 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy124:
	++YYCURSOR;
#line 1305 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Unified_Canadian_Aboriginal_Syllabics; }
#line 1589 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1307 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ogham:
	
#line 1595 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000167F) goto yy126;
	if (yych <= 0x0000169F) goto yy127;
yy126:
	++YYCURSOR;
#line 1312 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ogham; else return Error; }
#line 1605 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy127:
	++YYCURSOR;
#line 1311 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ogham; }
#line 1610 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1313 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Runic:
	
#line 1616 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000169F) goto yy129;
	if (yych <= 0x000016FF) goto yy130;
yy129:
	++YYCURSOR;
#line 1318 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Runic; else return Error; }
#line 1626 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy130:
	++YYCURSOR;
#line 1317 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Runic; }
#line 1631 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1319 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tagalog:
	
#line 1637 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000016FF) goto yy132;
	if (yych <= 0x0000171F) goto yy133;
yy132:
	++YYCURSOR;
#line 1324 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tagalog; else return Error; }
#line 1647 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy133:
	++YYCURSOR;
#line 1323 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tagalog; }
#line 1652 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1325 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hanunoo:
	
#line 1658 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000171F) goto yy135;
	if (yych <= 0x0000173F) goto yy136;
yy135:
	++YYCURSOR;
#line 1330 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hanunoo; else return Error; }
#line 1668 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy136:
	++YYCURSOR;
#line 1329 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hanunoo; }
#line 1673 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1331 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Buhid:
	
#line 1679 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000173F) goto yy138;
	if (yych <= 0x0000175F) goto yy139;
yy138:
	++YYCURSOR;
#line 1336 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Buhid; else return Error; }
#line 1689 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy139:
	++YYCURSOR;
#line 1335 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Buhid; }
#line 1694 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1337 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tagbanwa:
	
#line 1700 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000175F) goto yy141;
	if (yych <= 0x0000177F) goto yy142;
yy141:
	++YYCURSOR;
#line 1342 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tagbanwa; else return Error; }
#line 1710 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy142:
	++YYCURSOR;
#line 1341 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tagbanwa; }
#line 1715 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1343 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Khmer:
	
#line 1721 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000177F) goto yy144;
	if (yych <= 0x000017FF) goto yy145;
yy144:
	++YYCURSOR;
#line 1348 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khmer; else return Error; }
#line 1731 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy145:
	++YYCURSOR;
#line 1347 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Khmer; }
#line 1736 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1349 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mongolian:
	
#line 1742 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000017FF) goto yy147;
	if (yych <= 0x000018AF) goto yy148;
yy147:
	++YYCURSOR;
#line 1354 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mongolian; else return Error; }
#line 1752 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy148:
	++YYCURSOR;
#line 1353 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mongolian; }
#line 1757 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1355 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Unified_Canadian_Aboriginal_Syllabics_Extended:
	
#line 1763 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000018AF) goto yy150;
	if (yych <= 0x000018FF) goto yy151;
yy150:
	++YYCURSOR;
#line 1360 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Unified_Canadian_Aboriginal_Syllabics_Extended; else return Error; }
#line 1773 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy151:
	++YYCURSOR;
#line 1359 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Unified_Canadian_Aboriginal_Syllabics_Extended; }
#line 1778 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1361 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Limbu:
	
#line 1784 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000018FF) goto yy153;
	if (yych <= 0x0000194F) goto yy154;
yy153:
	++YYCURSOR;
#line 1366 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Limbu; else return Error; }
#line 1794 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy154:
	++YYCURSOR;
#line 1365 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Limbu; }
#line 1799 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1367 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tai_Le:
	
#line 1805 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000194F) goto yy156;
	if (yych <= 0x0000197F) goto yy157;
yy156:
	++YYCURSOR;
#line 1372 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Le; else return Error; }
#line 1815 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy157:
	++YYCURSOR;
#line 1371 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tai_Le; }
#line 1820 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1373 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

New_Tai_Lue:
	
#line 1826 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000197F) goto yy159;
	if (yych <= 0x000019DF) goto yy160;
yy159:
	++YYCURSOR;
#line 1378 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return New_Tai_Lue; else return Error; }
#line 1836 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy160:
	++YYCURSOR;
#line 1377 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto New_Tai_Lue; }
#line 1841 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1379 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Khmer_Symbols:
	
#line 1847 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000019DF) goto yy162;
	if (yych <= 0x000019FF) goto yy163;
yy162:
	++YYCURSOR;
#line 1384 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khmer_Symbols; else return Error; }
#line 1857 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy163:
	++YYCURSOR;
#line 1383 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Khmer_Symbols; }
#line 1862 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1385 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Buginese:
	
#line 1868 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000019FF) goto yy165;
	if (yych <= 0x00001A1F) goto yy166;
yy165:
	++YYCURSOR;
#line 1390 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Buginese; else return Error; }
#line 1878 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy166:
	++YYCURSOR;
#line 1389 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Buginese; }
#line 1883 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1391 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tai_Tham:
	
#line 1889 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001A1F) goto yy168;
	if (yych <= 0x00001AAF) goto yy169;
yy168:
	++YYCURSOR;
#line 1396 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Tham; else return Error; }
#line 1899 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy169:
	++YYCURSOR;
#line 1395 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tai_Tham; }
#line 1904 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1397 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Combining_Diacritical_Marks_Extended:
	
#line 1910 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001AAF) goto yy171;
	if (yych <= 0x00001AFF) goto yy172;
yy171:
	++YYCURSOR;
#line 1402 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks_Extended; else return Error; }
#line 1920 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy172:
	++YYCURSOR;
#line 1401 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks_Extended; }
#line 1925 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1403 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Balinese:
	
#line 1931 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001AFF) goto yy174;
	if (yych <= 0x00001B7F) goto yy175;
yy174:
	++YYCURSOR;
#line 1408 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Balinese; else return Error; }
#line 1941 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy175:
	++YYCURSOR;
#line 1407 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Balinese; }
#line 1946 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1409 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sundanese:
	
#line 1952 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001B7F) goto yy177;
	if (yych <= 0x00001BBF) goto yy178;
yy177:
	++YYCURSOR;
#line 1414 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sundanese; else return Error; }
#line 1962 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy178:
	++YYCURSOR;
#line 1413 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sundanese; }
#line 1967 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1415 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Batak:
	
#line 1973 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001BBF) goto yy180;
	if (yych <= 0x00001BFF) goto yy181;
yy180:
	++YYCURSOR;
#line 1420 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Batak; else return Error; }
#line 1983 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy181:
	++YYCURSOR;
#line 1419 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Batak; }
#line 1988 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1421 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Lepcha:
	
#line 1994 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001BFF) goto yy183;
	if (yych <= 0x00001C4F) goto yy184;
yy183:
	++YYCURSOR;
#line 1426 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lepcha; else return Error; }
#line 2004 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy184:
	++YYCURSOR;
#line 1425 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Lepcha; }
#line 2009 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1427 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ol_Chiki:
	
#line 2015 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001C4F) goto yy186;
	if (yych <= 0x00001C7F) goto yy187;
yy186:
	++YYCURSOR;
#line 1432 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ol_Chiki; else return Error; }
#line 2025 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy187:
	++YYCURSOR;
#line 1431 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ol_Chiki; }
#line 2030 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1433 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cyrillic_Extended_C:
	
#line 2036 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001C7F) goto yy189;
	if (yych <= 0x00001C8F) goto yy190;
yy189:
	++YYCURSOR;
#line 1438 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_C; else return Error; }
#line 2046 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy190:
	++YYCURSOR;
#line 1437 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_C; }
#line 2051 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1439 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Georgian_Extended:
	
#line 2057 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001C8F) goto yy192;
	if (yych <= 0x00001CBF) goto yy193;
yy192:
	++YYCURSOR;
#line 1444 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Georgian_Extended; else return Error; }
#line 2067 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy193:
	++YYCURSOR;
#line 1443 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Georgian_Extended; }
#line 2072 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1445 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sundanese_Supplement:
	
#line 2078 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001CBF) goto yy195;
	if (yych <= 0x00001CCF) goto yy196;
yy195:
	++YYCURSOR;
#line 1450 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sundanese_Supplement; else return Error; }
#line 2088 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy196:
	++YYCURSOR;
#line 1449 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sundanese_Supplement; }
#line 2093 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1451 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Vedic_Extensions:
	
#line 2099 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001CCF) goto yy198;
	if (yych <= 0x00001CFF) goto yy199;
yy198:
	++YYCURSOR;
#line 1456 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vedic_Extensions; else return Error; }
#line 2109 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy199:
	++YYCURSOR;
#line 1455 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Vedic_Extensions; }
#line 2114 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1457 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Phonetic_Extensions:
	
#line 2120 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001CFF) goto yy201;
	if (yych <= 0x00001D7F) goto yy202;
yy201:
	++YYCURSOR;
#line 1462 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phonetic_Extensions; else return Error; }
#line 2130 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy202:
	++YYCURSOR;
#line 1461 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Phonetic_Extensions; }
#line 2135 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1463 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Phonetic_Extensions_Supplement:
	
#line 2141 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001D7F) goto yy204;
	if (yych <= 0x00001DBF) goto yy205;
yy204:
	++YYCURSOR;
#line 1468 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phonetic_Extensions_Supplement; else return Error; }
#line 2151 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy205:
	++YYCURSOR;
#line 1467 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Phonetic_Extensions_Supplement; }
#line 2156 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1469 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Combining_Diacritical_Marks_Supplement:
	
#line 2162 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001DBF) goto yy207;
	if (yych <= 0x00001DFF) goto yy208;
yy207:
	++YYCURSOR;
#line 1474 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks_Supplement; else return Error; }
#line 2172 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy208:
	++YYCURSOR;
#line 1473 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks_Supplement; }
#line 2177 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1475 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_Additional:
	
#line 2183 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001DFF) goto yy210;
	if (yych <= 0x00001EFF) goto yy211;
yy210:
	++YYCURSOR;
#line 1480 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_Additional; else return Error; }
#line 2193 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy211:
	++YYCURSOR;
#line 1479 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_Additional; }
#line 2198 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1481 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Greek_Extended:
	
#line 2204 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001EFF) goto yy213;
	if (yych <= 0x00001FFF) goto yy214;
yy213:
	++YYCURSOR;
#line 1486 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Greek_Extended; else return Error; }
#line 2214 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy214:
	++YYCURSOR;
#line 1485 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Greek_Extended; }
#line 2219 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1487 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

General_Punctuation:
	
#line 2225 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00001FFF) goto yy216;
	if (yych <= 0x0000206F) goto yy217;
yy216:
	++YYCURSOR;
#line 1492 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return General_Punctuation; else return Error; }
#line 2235 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy217:
	++YYCURSOR;
#line 1491 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto General_Punctuation; }
#line 2240 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1493 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Superscripts_and_Subscripts:
	
#line 2246 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000206F) goto yy219;
	if (yych <= 0x0000209F) goto yy220;
yy219:
	++YYCURSOR;
#line 1498 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Superscripts_and_Subscripts; else return Error; }
#line 2256 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy220:
	++YYCURSOR;
#line 1497 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Superscripts_and_Subscripts; }
#line 2261 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1499 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Currency_Symbols:
	
#line 2267 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000209F) goto yy222;
	if (yych <= 0x000020CF) goto yy223;
yy222:
	++YYCURSOR;
#line 1504 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Currency_Symbols; else return Error; }
#line 2277 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy223:
	++YYCURSOR;
#line 1503 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Currency_Symbols; }
#line 2282 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1505 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Combining_Diacritical_Marks_for_Symbols:
	
#line 2288 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000020CF) goto yy225;
	if (yych <= 0x000020FF) goto yy226;
yy225:
	++YYCURSOR;
#line 1510 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Diacritical_Marks_for_Symbols; else return Error; }
#line 2298 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy226:
	++YYCURSOR;
#line 1509 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Combining_Diacritical_Marks_for_Symbols; }
#line 2303 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1511 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Letterlike_Symbols:
	
#line 2309 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000020FF) goto yy228;
	if (yych <= 0x0000214F) goto yy229;
yy228:
	++YYCURSOR;
#line 1516 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Letterlike_Symbols; else return Error; }
#line 2319 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy229:
	++YYCURSOR;
#line 1515 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Letterlike_Symbols; }
#line 2324 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1517 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Number_Forms:
	
#line 2330 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000214F) goto yy231;
	if (yych <= 0x0000218F) goto yy232;
yy231:
	++YYCURSOR;
#line 1522 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Number_Forms; else return Error; }
#line 2340 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy232:
	++YYCURSOR;
#line 1521 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Number_Forms; }
#line 2345 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1523 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arrows:
	
#line 2351 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000218F) goto yy234;
	if (yych <= 0x000021FF) goto yy235;
yy234:
	++YYCURSOR;
#line 1528 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arrows; else return Error; }
#line 2361 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy235:
	++YYCURSOR;
#line 1527 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arrows; }
#line 2366 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1529 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mathematical_Operators:
	
#line 2372 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000021FF) goto yy237;
	if (yych <= 0x000022FF) goto yy238;
yy237:
	++YYCURSOR;
#line 1534 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mathematical_Operators; else return Error; }
#line 2382 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy238:
	++YYCURSOR;
#line 1533 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mathematical_Operators; }
#line 2387 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1535 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Technical:
	
#line 2393 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000022FF) goto yy240;
	if (yych <= 0x000023FF) goto yy241;
yy240:
	++YYCURSOR;
#line 1540 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Technical; else return Error; }
#line 2403 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy241:
	++YYCURSOR;
#line 1539 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Technical; }
#line 2408 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1541 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Control_Pictures:
	
#line 2414 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000023FF) goto yy243;
	if (yych <= 0x0000243F) goto yy244;
yy243:
	++YYCURSOR;
#line 1546 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Control_Pictures; else return Error; }
#line 2424 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy244:
	++YYCURSOR;
#line 1545 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Control_Pictures; }
#line 2429 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1547 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Optical_Character_Recognition:
	
#line 2435 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000243F) goto yy246;
	if (yych <= 0x0000245F) goto yy247;
yy246:
	++YYCURSOR;
#line 1552 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Optical_Character_Recognition; else return Error; }
#line 2445 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy247:
	++YYCURSOR;
#line 1551 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Optical_Character_Recognition; }
#line 2450 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1553 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Enclosed_Alphanumerics:
	
#line 2456 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000245F) goto yy249;
	if (yych <= 0x000024FF) goto yy250;
yy249:
	++YYCURSOR;
#line 1558 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_Alphanumerics; else return Error; }
#line 2466 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy250:
	++YYCURSOR;
#line 1557 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Enclosed_Alphanumerics; }
#line 2471 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1559 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Box_Drawing:
	
#line 2477 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000024FF) goto yy252;
	if (yych <= 0x0000257F) goto yy253;
yy252:
	++YYCURSOR;
#line 1564 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Box_Drawing; else return Error; }
#line 2487 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy253:
	++YYCURSOR;
#line 1563 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Box_Drawing; }
#line 2492 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1565 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Block_Elements:
	
#line 2498 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000257F) goto yy255;
	if (yych <= 0x0000259F) goto yy256;
yy255:
	++YYCURSOR;
#line 1570 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Block_Elements; else return Error; }
#line 2508 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy256:
	++YYCURSOR;
#line 1569 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Block_Elements; }
#line 2513 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1571 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Geometric_Shapes:
	
#line 2519 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000259F) goto yy258;
	if (yych <= 0x000025FF) goto yy259;
yy258:
	++YYCURSOR;
#line 1576 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Geometric_Shapes; else return Error; }
#line 2529 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy259:
	++YYCURSOR;
#line 1575 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Geometric_Shapes; }
#line 2534 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1577 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Symbols:
	
#line 2540 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000025FF) goto yy261;
	if (yych <= 0x000026FF) goto yy262;
yy261:
	++YYCURSOR;
#line 1582 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols; else return Error; }
#line 2550 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy262:
	++YYCURSOR;
#line 1581 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols; }
#line 2555 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1583 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Dingbats:
	
#line 2561 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000026FF) goto yy264;
	if (yych <= 0x000027BF) goto yy265;
yy264:
	++YYCURSOR;
#line 1588 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Dingbats; else return Error; }
#line 2571 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy265:
	++YYCURSOR;
#line 1587 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Dingbats; }
#line 2576 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1589 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Mathematical_Symbols_A:
	
#line 2582 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000027BF) goto yy267;
	if (yych <= 0x000027EF) goto yy268;
yy267:
	++YYCURSOR;
#line 1594 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Mathematical_Symbols_A; else return Error; }
#line 2592 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy268:
	++YYCURSOR;
#line 1593 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Mathematical_Symbols_A; }
#line 2597 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1595 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplemental_Arrows_A:
	
#line 2603 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000027EF) goto yy270;
	if (yych <= 0x000027FF) goto yy271;
yy270:
	++YYCURSOR;
#line 1600 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Arrows_A; else return Error; }
#line 2613 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy271:
	++YYCURSOR;
#line 1599 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplemental_Arrows_A; }
#line 2618 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1601 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Braille_Patterns:
	
#line 2624 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000027FF) goto yy273;
	if (yych <= 0x000028FF) goto yy274;
yy273:
	++YYCURSOR;
#line 1606 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Braille_Patterns; else return Error; }
#line 2634 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy274:
	++YYCURSOR;
#line 1605 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Braille_Patterns; }
#line 2639 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1607 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplemental_Arrows_B:
	
#line 2645 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000028FF) goto yy276;
	if (yych <= 0x0000297F) goto yy277;
yy276:
	++YYCURSOR;
#line 1612 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Arrows_B; else return Error; }
#line 2655 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy277:
	++YYCURSOR;
#line 1611 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplemental_Arrows_B; }
#line 2660 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1613 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Mathematical_Symbols_B:
	
#line 2666 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000297F) goto yy279;
	if (yych <= 0x000029FF) goto yy280;
yy279:
	++YYCURSOR;
#line 1618 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Mathematical_Symbols_B; else return Error; }
#line 2676 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy280:
	++YYCURSOR;
#line 1617 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Mathematical_Symbols_B; }
#line 2681 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1619 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplemental_Mathematical_Operators:
	
#line 2687 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000029FF) goto yy282;
	if (yych <= 0x00002AFF) goto yy283;
yy282:
	++YYCURSOR;
#line 1624 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Mathematical_Operators; else return Error; }
#line 2697 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy283:
	++YYCURSOR;
#line 1623 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplemental_Mathematical_Operators; }
#line 2702 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1625 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Symbols_and_Arrows:
	
#line 2708 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002AFF) goto yy285;
	if (yych <= 0x00002BFF) goto yy286;
yy285:
	++YYCURSOR;
#line 1630 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols_and_Arrows; else return Error; }
#line 2718 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy286:
	++YYCURSOR;
#line 1629 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols_and_Arrows; }
#line 2723 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1631 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Glagolitic:
	
#line 2729 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002BFF) goto yy288;
	if (yych <= 0x00002C5F) goto yy289;
yy288:
	++YYCURSOR;
#line 1636 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Glagolitic; else return Error; }
#line 2739 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy289:
	++YYCURSOR;
#line 1635 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Glagolitic; }
#line 2744 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1637 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_C:
	
#line 2750 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002C5F) goto yy291;
	if (yych <= 0x00002C7F) goto yy292;
yy291:
	++YYCURSOR;
#line 1642 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_C; else return Error; }
#line 2760 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy292:
	++YYCURSOR;
#line 1641 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_C; }
#line 2765 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1643 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Coptic:
	
#line 2771 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002C7F) goto yy294;
	if (yych <= 0x00002CFF) goto yy295;
yy294:
	++YYCURSOR;
#line 1648 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Coptic; else return Error; }
#line 2781 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy295:
	++YYCURSOR;
#line 1647 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Coptic; }
#line 2786 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1649 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Georgian_Supplement:
	
#line 2792 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002CFF) goto yy297;
	if (yych <= 0x00002D2F) goto yy298;
yy297:
	++YYCURSOR;
#line 1654 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Georgian_Supplement; else return Error; }
#line 2802 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy298:
	++YYCURSOR;
#line 1653 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Georgian_Supplement; }
#line 2807 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1655 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tifinagh:
	
#line 2813 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002D2F) goto yy300;
	if (yych <= 0x00002D7F) goto yy301;
yy300:
	++YYCURSOR;
#line 1660 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tifinagh; else return Error; }
#line 2823 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy301:
	++YYCURSOR;
#line 1659 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tifinagh; }
#line 2828 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1661 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ethiopic_Extended:
	
#line 2834 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002D7F) goto yy303;
	if (yych <= 0x00002DDF) goto yy304;
yy303:
	++YYCURSOR;
#line 1666 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Extended; else return Error; }
#line 2844 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy304:
	++YYCURSOR;
#line 1665 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ethiopic_Extended; }
#line 2849 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1667 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cyrillic_Extended_A:
	
#line 2855 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002DDF) goto yy306;
	if (yych <= 0x00002DFF) goto yy307;
yy306:
	++YYCURSOR;
#line 1672 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_A; else return Error; }
#line 2865 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy307:
	++YYCURSOR;
#line 1671 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_A; }
#line 2870 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1673 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplemental_Punctuation:
	
#line 2876 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002DFF) goto yy309;
	if (yych <= 0x00002E7F) goto yy310;
yy309:
	++YYCURSOR;
#line 1678 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Punctuation; else return Error; }
#line 2886 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy310:
	++YYCURSOR;
#line 1677 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplemental_Punctuation; }
#line 2891 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1679 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Radicals_Supplement:
	
#line 2897 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002E7F) goto yy312;
	if (yych <= 0x00002EFF) goto yy313;
yy312:
	++YYCURSOR;
#line 1684 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Radicals_Supplement; else return Error; }
#line 2907 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy313:
	++YYCURSOR;
#line 1683 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Radicals_Supplement; }
#line 2912 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1685 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kangxi_Radicals:
	
#line 2918 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002EFF) goto yy315;
	if (yych <= 0x00002FDF) goto yy316;
yy315:
	++YYCURSOR;
#line 1690 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kangxi_Radicals; else return Error; }
#line 2928 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy316:
	++YYCURSOR;
#line 1689 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kangxi_Radicals; }
#line 2933 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1691 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ideographic_Description_Characters:
	
#line 2939 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002FEF) goto yy318;
	if (yych <= 0x00002FFF) goto yy319;
yy318:
	++YYCURSOR;
#line 1696 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ideographic_Description_Characters; else return Error; }
#line 2949 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy319:
	++YYCURSOR;
#line 1695 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ideographic_Description_Characters; }
#line 2954 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1697 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Symbols_and_Punctuation:
	
#line 2960 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00002FFF) goto yy321;
	if (yych <= 0x0000303F) goto yy322;
yy321:
	++YYCURSOR;
#line 1702 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Symbols_and_Punctuation; else return Error; }
#line 2970 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy322:
	++YYCURSOR;
#line 1701 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Symbols_and_Punctuation; }
#line 2975 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1703 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hiragana:
	
#line 2981 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000303F) goto yy324;
	if (yych <= 0x0000309F) goto yy325;
yy324:
	++YYCURSOR;
#line 1708 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hiragana; else return Error; }
#line 2991 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy325:
	++YYCURSOR;
#line 1707 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hiragana; }
#line 2996 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1709 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Katakana:
	
#line 3002 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000309F) goto yy327;
	if (yych <= 0x000030FF) goto yy328;
yy327:
	++YYCURSOR;
#line 1714 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Katakana; else return Error; }
#line 3012 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy328:
	++YYCURSOR;
#line 1713 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Katakana; }
#line 3017 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1715 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bopomofo:
	
#line 3023 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000030FF) goto yy330;
	if (yych <= 0x0000312F) goto yy331;
yy330:
	++YYCURSOR;
#line 1720 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bopomofo; else return Error; }
#line 3033 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy331:
	++YYCURSOR;
#line 1719 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bopomofo; }
#line 3038 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1721 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hangul_Compatibility_Jamo:
	
#line 3044 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000312F) goto yy333;
	if (yych <= 0x0000318F) goto yy334;
yy333:
	++YYCURSOR;
#line 1726 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Compatibility_Jamo; else return Error; }
#line 3054 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy334:
	++YYCURSOR;
#line 1725 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hangul_Compatibility_Jamo; }
#line 3059 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1727 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kanbun:
	
#line 3065 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000318F) goto yy336;
	if (yych <= 0x0000319F) goto yy337;
yy336:
	++YYCURSOR;
#line 1732 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kanbun; else return Error; }
#line 3075 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy337:
	++YYCURSOR;
#line 1731 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kanbun; }
#line 3080 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1733 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bopomofo_Extended:
	
#line 3086 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000319F) goto yy339;
	if (yych <= 0x000031BF) goto yy340;
yy339:
	++YYCURSOR;
#line 1738 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bopomofo_Extended; else return Error; }
#line 3096 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy340:
	++YYCURSOR;
#line 1737 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bopomofo_Extended; }
#line 3101 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1739 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Strokes:
	
#line 3107 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000031BF) goto yy342;
	if (yych <= 0x000031EF) goto yy343;
yy342:
	++YYCURSOR;
#line 1744 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Strokes; else return Error; }
#line 3117 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy343:
	++YYCURSOR;
#line 1743 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Strokes; }
#line 3122 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1745 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Katakana_Phonetic_Extensions:
	
#line 3128 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000031EF) goto yy345;
	if (yych <= 0x000031FF) goto yy346;
yy345:
	++YYCURSOR;
#line 1750 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Katakana_Phonetic_Extensions; else return Error; }
#line 3138 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy346:
	++YYCURSOR;
#line 1749 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Katakana_Phonetic_Extensions; }
#line 3143 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1751 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Enclosed_CJK_Letters_and_Months:
	
#line 3149 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000031FF) goto yy348;
	if (yych <= 0x000032FF) goto yy349;
yy348:
	++YYCURSOR;
#line 1756 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_CJK_Letters_and_Months; else return Error; }
#line 3159 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy349:
	++YYCURSOR;
#line 1755 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Enclosed_CJK_Letters_and_Months; }
#line 3164 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1757 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Compatibility:
	
#line 3170 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000032FF) goto yy351;
	if (yych <= 0x000033FF) goto yy352;
yy351:
	++YYCURSOR;
#line 1762 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility; else return Error; }
#line 3180 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy352:
	++YYCURSOR;
#line 1761 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Compatibility; }
#line 3185 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1763 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_A:
	
#line 3191 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000033FF) goto yy354;
	if (yych <= 0x00004DBF) goto yy355;
yy354:
	++YYCURSOR;
#line 1768 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_A; else return Error; }
#line 3201 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy355:
	++YYCURSOR;
#line 1767 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_A; }
#line 3206 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1769 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Yijing_Hexagram_Symbols:
	
#line 3212 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00004DBF) goto yy357;
	if (yych <= 0x00004DFF) goto yy358;
yy357:
	++YYCURSOR;
#line 1774 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yijing_Hexagram_Symbols; else return Error; }
#line 3222 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy358:
	++YYCURSOR;
#line 1773 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Yijing_Hexagram_Symbols; }
#line 3227 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1775 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs:
	
#line 3233 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00004DFF) goto yy360;
	if (yych <= 0x00009FFF) goto yy361;
yy360:
	++YYCURSOR;
#line 1780 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs; else return Error; }
#line 3243 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy361:
	++YYCURSOR;
#line 1779 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs; }
#line 3248 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1781 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Yi_Syllables:
	
#line 3254 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00009FFF) goto yy363;
	if (yych <= 0x0000A48F) goto yy364;
yy363:
	++YYCURSOR;
#line 1786 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yi_Syllables; else return Error; }
#line 3264 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy364:
	++YYCURSOR;
#line 1785 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Yi_Syllables; }
#line 3269 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1787 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Yi_Radicals:
	
#line 3275 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A48F) goto yy366;
	if (yych <= 0x0000A4CF) goto yy367;
yy366:
	++YYCURSOR;
#line 1792 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yi_Radicals; else return Error; }
#line 3285 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy367:
	++YYCURSOR;
#line 1791 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Yi_Radicals; }
#line 3290 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1793 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Lisu:
	
#line 3296 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A4CF) goto yy369;
	if (yych <= 0x0000A4FF) goto yy370;
yy369:
	++YYCURSOR;
#line 1798 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lisu; else return Error; }
#line 3306 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy370:
	++YYCURSOR;
#line 1797 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Lisu; }
#line 3311 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1799 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Vai:
	
#line 3317 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A4FF) goto yy372;
	if (yych <= 0x0000A63F) goto yy373;
yy372:
	++YYCURSOR;
#line 1804 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vai; else return Error; }
#line 3327 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy373:
	++YYCURSOR;
#line 1803 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Vai; }
#line 3332 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1805 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cyrillic_Extended_B:
	
#line 3338 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A63F) goto yy375;
	if (yych <= 0x0000A69F) goto yy376;
yy375:
	++YYCURSOR;
#line 1810 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_B; else return Error; }
#line 3348 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy376:
	++YYCURSOR;
#line 1809 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_B; }
#line 3353 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1811 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bamum:
	
#line 3359 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A69F) goto yy378;
	if (yych <= 0x0000A6FF) goto yy379;
yy378:
	++YYCURSOR;
#line 1816 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bamum; else return Error; }
#line 3369 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy379:
	++YYCURSOR;
#line 1815 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bamum; }
#line 3374 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1817 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Modifier_Tone_Letters:
	
#line 3380 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A6FF) goto yy381;
	if (yych <= 0x0000A71F) goto yy382;
yy381:
	++YYCURSOR;
#line 1822 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Modifier_Tone_Letters; else return Error; }
#line 3390 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy382:
	++YYCURSOR;
#line 1821 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Modifier_Tone_Letters; }
#line 3395 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1823 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_D:
	
#line 3401 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A71F) goto yy384;
	if (yych <= 0x0000A7FF) goto yy385;
yy384:
	++YYCURSOR;
#line 1828 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_D; else return Error; }
#line 3411 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy385:
	++YYCURSOR;
#line 1827 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_D; }
#line 3416 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1829 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Syloti_Nagri:
	
#line 3422 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A7FF) goto yy387;
	if (yych <= 0x0000A82F) goto yy388;
yy387:
	++YYCURSOR;
#line 1834 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Syloti_Nagri; else return Error; }
#line 3432 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy388:
	++YYCURSOR;
#line 1833 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Syloti_Nagri; }
#line 3437 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1835 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Common_Indic_Number_Forms:
	
#line 3443 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A82F) goto yy390;
	if (yych <= 0x0000A83F) goto yy391;
yy390:
	++YYCURSOR;
#line 1840 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Common_Indic_Number_Forms; else return Error; }
#line 3453 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy391:
	++YYCURSOR;
#line 1839 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Common_Indic_Number_Forms; }
#line 3458 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1841 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Phags_pa:
	
#line 3464 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A83F) goto yy393;
	if (yych <= 0x0000A87F) goto yy394;
yy393:
	++YYCURSOR;
#line 1846 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phags_pa; else return Error; }
#line 3474 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy394:
	++YYCURSOR;
#line 1845 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Phags_pa; }
#line 3479 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1847 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Saurashtra:
	
#line 3485 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A87F) goto yy396;
	if (yych <= 0x0000A8DF) goto yy397;
yy396:
	++YYCURSOR;
#line 1852 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Saurashtra; else return Error; }
#line 3495 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy397:
	++YYCURSOR;
#line 1851 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Saurashtra; }
#line 3500 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1853 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Devanagari_Extended:
	
#line 3506 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A8DF) goto yy399;
	if (yych <= 0x0000A8FF) goto yy400;
yy399:
	++YYCURSOR;
#line 1858 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Devanagari_Extended; else return Error; }
#line 3516 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy400:
	++YYCURSOR;
#line 1857 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Devanagari_Extended; }
#line 3521 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1859 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kayah_Li:
	
#line 3527 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A8FF) goto yy402;
	if (yych <= 0x0000A92F) goto yy403;
yy402:
	++YYCURSOR;
#line 1864 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kayah_Li; else return Error; }
#line 3537 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy403:
	++YYCURSOR;
#line 1863 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kayah_Li; }
#line 3542 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1865 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Rejang:
	
#line 3548 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A92F) goto yy405;
	if (yych <= 0x0000A95F) goto yy406;
yy405:
	++YYCURSOR;
#line 1870 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Rejang; else return Error; }
#line 3558 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy406:
	++YYCURSOR;
#line 1869 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Rejang; }
#line 3563 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1871 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hangul_Jamo_Extended_A:
	
#line 3569 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A95F) goto yy408;
	if (yych <= 0x0000A97F) goto yy409;
yy408:
	++YYCURSOR;
#line 1876 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Jamo_Extended_A; else return Error; }
#line 3579 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy409:
	++YYCURSOR;
#line 1875 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hangul_Jamo_Extended_A; }
#line 3584 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1877 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Javanese:
	
#line 3590 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A97F) goto yy411;
	if (yych <= 0x0000A9DF) goto yy412;
yy411:
	++YYCURSOR;
#line 1882 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Javanese; else return Error; }
#line 3600 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy412:
	++YYCURSOR;
#line 1881 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Javanese; }
#line 3605 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1883 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Myanmar_Extended_B:
	
#line 3611 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A9DF) goto yy414;
	if (yych <= 0x0000A9FF) goto yy415;
yy414:
	++YYCURSOR;
#line 1888 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar_Extended_B; else return Error; }
#line 3621 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy415:
	++YYCURSOR;
#line 1887 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Myanmar_Extended_B; }
#line 3626 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1889 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cham:
	
#line 3632 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000A9FF) goto yy417;
	if (yych <= 0x0000AA5F) goto yy418;
yy417:
	++YYCURSOR;
#line 1894 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cham; else return Error; }
#line 3642 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy418:
	++YYCURSOR;
#line 1893 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cham; }
#line 3647 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1895 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Myanmar_Extended_A:
	
#line 3653 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000AA5F) goto yy420;
	if (yych <= 0x0000AA7F) goto yy421;
yy420:
	++YYCURSOR;
#line 1900 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar_Extended_A; else return Error; }
#line 3663 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy421:
	++YYCURSOR;
#line 1899 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Myanmar_Extended_A; }
#line 3668 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1901 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tai_Viet:
	
#line 3674 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000AA7F) goto yy423;
	if (yych <= 0x0000AADF) goto yy424;
yy423:
	++YYCURSOR;
#line 1906 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Viet; else return Error; }
#line 3684 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy424:
	++YYCURSOR;
#line 1905 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tai_Viet; }
#line 3689 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1907 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Meetei_Mayek_Extensions:
	
#line 3695 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000AADF) goto yy426;
	if (yych <= 0x0000AAFF) goto yy427;
yy426:
	++YYCURSOR;
#line 1912 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meetei_Mayek_Extensions; else return Error; }
#line 3705 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy427:
	++YYCURSOR;
#line 1911 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Meetei_Mayek_Extensions; }
#line 3710 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1913 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ethiopic_Extended_A:
	
#line 3716 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000AAFF) goto yy429;
	if (yych <= 0x0000AB2F) goto yy430;
yy429:
	++YYCURSOR;
#line 1918 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Extended_A; else return Error; }
#line 3726 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy430:
	++YYCURSOR;
#line 1917 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ethiopic_Extended_A; }
#line 3731 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1919 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_E:
	
#line 3737 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000AB2F) goto yy432;
	if (yych <= 0x0000AB6F) goto yy433;
yy432:
	++YYCURSOR;
#line 1924 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_E; else return Error; }
#line 3747 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy433:
	++YYCURSOR;
#line 1923 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_E; }
#line 3752 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1925 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cherokee_Supplement:
	
#line 3758 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000AB6F) goto yy435;
	if (yych <= 0x0000ABBF) goto yy436;
yy435:
	++YYCURSOR;
#line 1930 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cherokee_Supplement; else return Error; }
#line 3768 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy436:
	++YYCURSOR;
#line 1929 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cherokee_Supplement; }
#line 3773 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1931 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Meetei_Mayek:
	
#line 3779 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000ABBF) goto yy438;
	if (yych <= 0x0000ABFF) goto yy439;
yy438:
	++YYCURSOR;
#line 1936 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meetei_Mayek; else return Error; }
#line 3789 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy439:
	++YYCURSOR;
#line 1935 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Meetei_Mayek; }
#line 3794 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1937 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hangul_Syllables:
	
#line 3800 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000ABFF) goto yy441;
	if (yych <= 0x0000D7AF) goto yy442;
yy441:
	++YYCURSOR;
#line 1942 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Syllables; else return Error; }
#line 3810 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy442:
	++YYCURSOR;
#line 1941 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hangul_Syllables; }
#line 3815 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1943 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hangul_Jamo_Extended_B:
	
#line 3821 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000D7AF) goto yy444;
	if (yych <= 0x0000D7FF) goto yy445;
yy444:
	++YYCURSOR;
#line 1948 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hangul_Jamo_Extended_B; else return Error; }
#line 3831 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy445:
	++YYCURSOR;
#line 1947 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hangul_Jamo_Extended_B; }
#line 3836 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1949 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

High_Surrogates:
	
#line 3842 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0x0000FFFD) goto yy447;
	++YYCURSOR;
#line 1954 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return High_Surrogates; else return Error; }
#line 3850 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy447:
	++YYCURSOR;
#line 1953 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto High_Surrogates; }
#line 3855 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1955 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

High_Private_Use_Surrogates:
	
#line 3861 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0x0000FFFD) goto yy449;
	++YYCURSOR;
#line 1960 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return High_Private_Use_Surrogates; else return Error; }
#line 3869 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy449:
	++YYCURSOR;
#line 1959 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto High_Private_Use_Surrogates; }
#line 3874 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1961 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Low_Surrogates:
	
#line 3880 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych == 0x0000FFFD) goto yy451;
	++YYCURSOR;
#line 1966 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Low_Surrogates; else return Error; }
#line 3888 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy451:
	++YYCURSOR;
#line 1965 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Low_Surrogates; }
#line 3893 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1967 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Private_Use_Area:
	
#line 3899 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000DFFF) goto yy453;
	if (yych <= 0x0000F8FF) goto yy454;
yy453:
	++YYCURSOR;
#line 1972 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Private_Use_Area; else return Error; }
#line 3909 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy454:
	++YYCURSOR;
#line 1971 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Private_Use_Area; }
#line 3914 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1973 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Compatibility_Ideographs:
	
#line 3920 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000F8FF) goto yy456;
	if (yych <= 0x0000FAFF) goto yy457;
yy456:
	++YYCURSOR;
#line 1978 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility_Ideographs; else return Error; }
#line 3930 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy457:
	++YYCURSOR;
#line 1977 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Compatibility_Ideographs; }
#line 3935 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1979 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Alphabetic_Presentation_Forms:
	
#line 3941 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FAFF) goto yy459;
	if (yych <= 0x0000FB4F) goto yy460;
yy459:
	++YYCURSOR;
#line 1984 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Alphabetic_Presentation_Forms; else return Error; }
#line 3951 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy460:
	++YYCURSOR;
#line 1983 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Alphabetic_Presentation_Forms; }
#line 3956 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1985 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Presentation_Forms_A:
	
#line 3962 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FB4F) goto yy462;
	if (yych <= 0x0000FDFF) goto yy463;
yy462:
	++YYCURSOR;
#line 1990 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Presentation_Forms_A; else return Error; }
#line 3972 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy463:
	++YYCURSOR;
#line 1989 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Presentation_Forms_A; }
#line 3977 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1991 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Variation_Selectors:
	
#line 3983 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FDFF) goto yy465;
	if (yych <= 0x0000FE0F) goto yy466;
yy465:
	++YYCURSOR;
#line 1996 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Variation_Selectors; else return Error; }
#line 3993 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy466:
	++YYCURSOR;
#line 1995 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Variation_Selectors; }
#line 3998 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 1997 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Vertical_Forms:
	
#line 4004 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FE0F) goto yy468;
	if (yych <= 0x0000FE1F) goto yy469;
yy468:
	++YYCURSOR;
#line 2002 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vertical_Forms; else return Error; }
#line 4014 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy469:
	++YYCURSOR;
#line 2001 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Vertical_Forms; }
#line 4019 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2003 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Combining_Half_Marks:
	
#line 4025 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FE1F) goto yy471;
	if (yych <= 0x0000FE2F) goto yy472;
yy471:
	++YYCURSOR;
#line 2008 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Combining_Half_Marks; else return Error; }
#line 4035 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy472:
	++YYCURSOR;
#line 2007 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Combining_Half_Marks; }
#line 4040 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2009 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Compatibility_Forms:
	
#line 4046 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FE2F) goto yy474;
	if (yych <= 0x0000FE4F) goto yy475;
yy474:
	++YYCURSOR;
#line 2014 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility_Forms; else return Error; }
#line 4056 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy475:
	++YYCURSOR;
#line 2013 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Compatibility_Forms; }
#line 4061 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2015 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Small_Form_Variants:
	
#line 4067 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FE4F) goto yy477;
	if (yych <= 0x0000FE6F) goto yy478;
yy477:
	++YYCURSOR;
#line 2020 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Small_Form_Variants; else return Error; }
#line 4077 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy478:
	++YYCURSOR;
#line 2019 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Small_Form_Variants; }
#line 4082 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2021 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Presentation_Forms_B:
	
#line 4088 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FE6F) goto yy480;
	if (yych <= 0x0000FEFF) goto yy481;
yy480:
	++YYCURSOR;
#line 2026 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Presentation_Forms_B; else return Error; }
#line 4098 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy481:
	++YYCURSOR;
#line 2025 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Presentation_Forms_B; }
#line 4103 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2027 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Halfwidth_and_Fullwidth_Forms:
	
#line 4109 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FEFF) goto yy483;
	if (yych <= 0x0000FFEF) goto yy484;
yy483:
	++YYCURSOR;
#line 2032 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Halfwidth_and_Fullwidth_Forms; else return Error; }
#line 4119 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy484:
	++YYCURSOR;
#line 2031 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Halfwidth_and_Fullwidth_Forms; }
#line 4124 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2033 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Specials:
	
#line 4130 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FFEF) goto yy486;
	if (yych <= 0x0000FFFF) goto yy487;
yy486:
	++YYCURSOR;
#line 2038 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Specials; else return Error; }
#line 4140 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy487:
	++YYCURSOR;
#line 2037 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Specials; }
#line 4145 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2039 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Linear_B_Syllabary:
	
#line 4151 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000FFFF) goto yy489;
	if (yych <= 0x0001007F) goto yy490;
yy489:
	++YYCURSOR;
#line 2044 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Linear_B_Syllabary; else return Error; }
#line 4161 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy490:
	++YYCURSOR;
#line 2043 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Linear_B_Syllabary; }
#line 4166 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2045 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Linear_B_Ideograms:
	
#line 4172 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001007F) goto yy492;
	if (yych <= 0x000100FF) goto yy493;
yy492:
	++YYCURSOR;
#line 2050 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Linear_B_Ideograms; else return Error; }
#line 4182 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy493:
	++YYCURSOR;
#line 2049 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Linear_B_Ideograms; }
#line 4187 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2051 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Aegean_Numbers:
	
#line 4193 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000100FF) goto yy495;
	if (yych <= 0x0001013F) goto yy496;
yy495:
	++YYCURSOR;
#line 2056 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Aegean_Numbers; else return Error; }
#line 4203 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy496:
	++YYCURSOR;
#line 2055 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Aegean_Numbers; }
#line 4208 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2057 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ancient_Greek_Numbers:
	
#line 4214 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001013F) goto yy498;
	if (yych <= 0x0001018F) goto yy499;
yy498:
	++YYCURSOR;
#line 2062 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ancient_Greek_Numbers; else return Error; }
#line 4224 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy499:
	++YYCURSOR;
#line 2061 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ancient_Greek_Numbers; }
#line 4229 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2063 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ancient_Symbols:
	
#line 4235 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001018F) goto yy501;
	if (yych <= 0x000101CF) goto yy502;
yy501:
	++YYCURSOR;
#line 2068 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ancient_Symbols; else return Error; }
#line 4245 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy502:
	++YYCURSOR;
#line 2067 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ancient_Symbols; }
#line 4250 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2069 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Phaistos_Disc:
	
#line 4256 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000101CF) goto yy504;
	if (yych <= 0x000101FF) goto yy505;
yy504:
	++YYCURSOR;
#line 2074 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phaistos_Disc; else return Error; }
#line 4266 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy505:
	++YYCURSOR;
#line 2073 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Phaistos_Disc; }
#line 4271 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2075 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Lycian:
	
#line 4277 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001027F) goto yy507;
	if (yych <= 0x0001029F) goto yy508;
yy507:
	++YYCURSOR;
#line 2080 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lycian; else return Error; }
#line 4287 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy508:
	++YYCURSOR;
#line 2079 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Lycian; }
#line 4292 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2081 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Carian:
	
#line 4298 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001029F) goto yy510;
	if (yych <= 0x000102DF) goto yy511;
yy510:
	++YYCURSOR;
#line 2086 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Carian; else return Error; }
#line 4308 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy511:
	++YYCURSOR;
#line 2085 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Carian; }
#line 4313 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2087 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Coptic_Epact_Numbers:
	
#line 4319 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000102DF) goto yy513;
	if (yych <= 0x000102FF) goto yy514;
yy513:
	++YYCURSOR;
#line 2092 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Coptic_Epact_Numbers; else return Error; }
#line 4329 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy514:
	++YYCURSOR;
#line 2091 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Coptic_Epact_Numbers; }
#line 4334 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2093 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Italic:
	
#line 4340 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000102FF) goto yy516;
	if (yych <= 0x0001032F) goto yy517;
yy516:
	++YYCURSOR;
#line 2098 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Italic; else return Error; }
#line 4350 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy517:
	++YYCURSOR;
#line 2097 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Italic; }
#line 4355 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2099 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Gothic:
	
#line 4361 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001032F) goto yy519;
	if (yych <= 0x0001034F) goto yy520;
yy519:
	++YYCURSOR;
#line 2104 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gothic; else return Error; }
#line 4371 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy520:
	++YYCURSOR;
#line 2103 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Gothic; }
#line 4376 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2105 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Permic:
	
#line 4382 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001034F) goto yy522;
	if (yych <= 0x0001037F) goto yy523;
yy522:
	++YYCURSOR;
#line 2110 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Permic; else return Error; }
#line 4392 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy523:
	++YYCURSOR;
#line 2109 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Permic; }
#line 4397 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2111 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ugaritic:
	
#line 4403 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001037F) goto yy525;
	if (yych <= 0x0001039F) goto yy526;
yy525:
	++YYCURSOR;
#line 2116 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ugaritic; else return Error; }
#line 4413 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy526:
	++YYCURSOR;
#line 2115 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ugaritic; }
#line 4418 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2117 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Persian:
	
#line 4424 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001039F) goto yy528;
	if (yych <= 0x000103DF) goto yy529;
yy528:
	++YYCURSOR;
#line 2122 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Persian; else return Error; }
#line 4434 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy529:
	++YYCURSOR;
#line 2121 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Persian; }
#line 4439 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2123 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Deseret:
	
#line 4445 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000103FF) goto yy531;
	if (yych <= 0x0001044F) goto yy532;
yy531:
	++YYCURSOR;
#line 2128 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Deseret; else return Error; }
#line 4455 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy532:
	++YYCURSOR;
#line 2127 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Deseret; }
#line 4460 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2129 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Shavian:
	
#line 4466 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001044F) goto yy534;
	if (yych <= 0x0001047F) goto yy535;
yy534:
	++YYCURSOR;
#line 2134 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Shavian; else return Error; }
#line 4476 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy535:
	++YYCURSOR;
#line 2133 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Shavian; }
#line 4481 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2135 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Osmanya:
	
#line 4487 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001047F) goto yy537;
	if (yych <= 0x000104AF) goto yy538;
yy537:
	++YYCURSOR;
#line 2140 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Osmanya; else return Error; }
#line 4497 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy538:
	++YYCURSOR;
#line 2139 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Osmanya; }
#line 4502 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2141 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Osage:
	
#line 4508 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000104AF) goto yy540;
	if (yych <= 0x000104FF) goto yy541;
yy540:
	++YYCURSOR;
#line 2146 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Osage; else return Error; }
#line 4518 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy541:
	++YYCURSOR;
#line 2145 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Osage; }
#line 4523 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2147 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Elbasan:
	
#line 4529 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000104FF) goto yy543;
	if (yych <= 0x0001052F) goto yy544;
yy543:
	++YYCURSOR;
#line 2152 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Elbasan; else return Error; }
#line 4539 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy544:
	++YYCURSOR;
#line 2151 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Elbasan; }
#line 4544 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2153 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Caucasian_Albanian:
	
#line 4550 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001052F) goto yy546;
	if (yych <= 0x0001056F) goto yy547;
yy546:
	++YYCURSOR;
#line 2158 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Caucasian_Albanian; else return Error; }
#line 4560 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy547:
	++YYCURSOR;
#line 2157 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Caucasian_Albanian; }
#line 4565 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2159 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Vithkuqi:
	
#line 4571 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001056F) goto yy549;
	if (yych <= 0x000105BF) goto yy550;
yy549:
	++YYCURSOR;
#line 2164 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Vithkuqi; else return Error; }
#line 4581 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy550:
	++YYCURSOR;
#line 2163 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Vithkuqi; }
#line 4586 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2165 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Todhri:
	
#line 4592 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000105BF) goto yy552;
	if (yych <= 0x000105FF) goto yy553;
yy552:
	++YYCURSOR;
#line 2170 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Todhri; else return Error; }
#line 4602 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy553:
	++YYCURSOR;
#line 2169 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Todhri; }
#line 4607 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2171 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Linear_A:
	
#line 4613 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000105FF) goto yy555;
	if (yych <= 0x0001077F) goto yy556;
yy555:
	++YYCURSOR;
#line 2176 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Linear_A; else return Error; }
#line 4623 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy556:
	++YYCURSOR;
#line 2175 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Linear_A; }
#line 4628 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2177 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_F:
	
#line 4634 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001077F) goto yy558;
	if (yych <= 0x000107BF) goto yy559;
yy558:
	++YYCURSOR;
#line 2182 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_F; else return Error; }
#line 4644 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy559:
	++YYCURSOR;
#line 2181 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_F; }
#line 4649 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2183 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cypriot_Syllabary:
	
#line 4655 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000107FF) goto yy561;
	if (yych <= 0x0001083F) goto yy562;
yy561:
	++YYCURSOR;
#line 2188 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cypriot_Syllabary; else return Error; }
#line 4665 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy562:
	++YYCURSOR;
#line 2187 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cypriot_Syllabary; }
#line 4670 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2189 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Imperial_Aramaic:
	
#line 4676 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001083F) goto yy564;
	if (yych <= 0x0001085F) goto yy565;
yy564:
	++YYCURSOR;
#line 2194 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Imperial_Aramaic; else return Error; }
#line 4686 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy565:
	++YYCURSOR;
#line 2193 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Imperial_Aramaic; }
#line 4691 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2195 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Palmyrene:
	
#line 4697 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001085F) goto yy567;
	if (yych <= 0x0001087F) goto yy568;
yy567:
	++YYCURSOR;
#line 2200 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Palmyrene; else return Error; }
#line 4707 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy568:
	++YYCURSOR;
#line 2199 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Palmyrene; }
#line 4712 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2201 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Nabataean:
	
#line 4718 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001087F) goto yy570;
	if (yych <= 0x000108AF) goto yy571;
yy570:
	++YYCURSOR;
#line 2206 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nabataean; else return Error; }
#line 4728 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy571:
	++YYCURSOR;
#line 2205 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Nabataean; }
#line 4733 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2207 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hatran:
	
#line 4739 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000108DF) goto yy573;
	if (yych <= 0x000108FF) goto yy574;
yy573:
	++YYCURSOR;
#line 2212 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hatran; else return Error; }
#line 4749 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy574:
	++YYCURSOR;
#line 2211 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hatran; }
#line 4754 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2213 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Phoenician:
	
#line 4760 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000108FF) goto yy576;
	if (yych <= 0x0001091F) goto yy577;
yy576:
	++YYCURSOR;
#line 2218 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Phoenician; else return Error; }
#line 4770 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy577:
	++YYCURSOR;
#line 2217 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Phoenician; }
#line 4775 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2219 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Lydian:
	
#line 4781 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001091F) goto yy579;
	if (yych <= 0x0001093F) goto yy580;
yy579:
	++YYCURSOR;
#line 2224 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lydian; else return Error; }
#line 4791 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy580:
	++YYCURSOR;
#line 2223 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Lydian; }
#line 4796 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2225 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sidetic:
	
#line 4802 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001093F) goto yy582;
	if (yych <= 0x0001095F) goto yy583;
yy582:
	++YYCURSOR;
#line 2230 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sidetic; else return Error; }
#line 4812 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy583:
	++YYCURSOR;
#line 2229 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sidetic; }
#line 4817 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2231 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Meroitic_Hieroglyphs:
	
#line 4823 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001097F) goto yy585;
	if (yych <= 0x0001099F) goto yy586;
yy585:
	++YYCURSOR;
#line 2236 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meroitic_Hieroglyphs; else return Error; }
#line 4833 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy586:
	++YYCURSOR;
#line 2235 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Meroitic_Hieroglyphs; }
#line 4838 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2237 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Meroitic_Cursive:
	
#line 4844 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001099F) goto yy588;
	if (yych <= 0x000109FF) goto yy589;
yy588:
	++YYCURSOR;
#line 2242 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Meroitic_Cursive; else return Error; }
#line 4854 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy589:
	++YYCURSOR;
#line 2241 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Meroitic_Cursive; }
#line 4859 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2243 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kharoshthi:
	
#line 4865 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000109FF) goto yy591;
	if (yych <= 0x00010A5F) goto yy592;
yy591:
	++YYCURSOR;
#line 2248 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kharoshthi; else return Error; }
#line 4875 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy592:
	++YYCURSOR;
#line 2247 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kharoshthi; }
#line 4880 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2249 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_South_Arabian:
	
#line 4886 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010A5F) goto yy594;
	if (yych <= 0x00010A7F) goto yy595;
yy594:
	++YYCURSOR;
#line 2254 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_South_Arabian; else return Error; }
#line 4896 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy595:
	++YYCURSOR;
#line 2253 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_South_Arabian; }
#line 4901 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2255 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_North_Arabian:
	
#line 4907 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010A7F) goto yy597;
	if (yych <= 0x00010A9F) goto yy598;
yy597:
	++YYCURSOR;
#line 2260 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_North_Arabian; else return Error; }
#line 4917 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy598:
	++YYCURSOR;
#line 2259 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_North_Arabian; }
#line 4922 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2261 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Manichaean:
	
#line 4928 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010ABF) goto yy600;
	if (yych <= 0x00010AFF) goto yy601;
yy600:
	++YYCURSOR;
#line 2266 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Manichaean; else return Error; }
#line 4938 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy601:
	++YYCURSOR;
#line 2265 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Manichaean; }
#line 4943 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2267 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Avestan:
	
#line 4949 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010AFF) goto yy603;
	if (yych <= 0x00010B3F) goto yy604;
yy603:
	++YYCURSOR;
#line 2272 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Avestan; else return Error; }
#line 4959 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy604:
	++YYCURSOR;
#line 2271 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Avestan; }
#line 4964 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2273 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Inscriptional_Parthian:
	
#line 4970 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010B3F) goto yy606;
	if (yych <= 0x00010B5F) goto yy607;
yy606:
	++YYCURSOR;
#line 2278 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Inscriptional_Parthian; else return Error; }
#line 4980 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy607:
	++YYCURSOR;
#line 2277 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Inscriptional_Parthian; }
#line 4985 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2279 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Inscriptional_Pahlavi:
	
#line 4991 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010B5F) goto yy609;
	if (yych <= 0x00010B7F) goto yy610;
yy609:
	++YYCURSOR;
#line 2284 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Inscriptional_Pahlavi; else return Error; }
#line 5001 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy610:
	++YYCURSOR;
#line 2283 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Inscriptional_Pahlavi; }
#line 5006 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2285 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Psalter_Pahlavi:
	
#line 5012 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010B7F) goto yy612;
	if (yych <= 0x00010BAF) goto yy613;
yy612:
	++YYCURSOR;
#line 2290 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Psalter_Pahlavi; else return Error; }
#line 5022 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy613:
	++YYCURSOR;
#line 2289 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Psalter_Pahlavi; }
#line 5027 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2291 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Turkic:
	
#line 5033 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010BFF) goto yy615;
	if (yych <= 0x00010C4F) goto yy616;
yy615:
	++YYCURSOR;
#line 2296 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Turkic; else return Error; }
#line 5043 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy616:
	++YYCURSOR;
#line 2295 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Turkic; }
#line 5048 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2297 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Hungarian:
	
#line 5054 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010C7F) goto yy618;
	if (yych <= 0x00010CFF) goto yy619;
yy618:
	++YYCURSOR;
#line 2302 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Hungarian; else return Error; }
#line 5064 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy619:
	++YYCURSOR;
#line 2301 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Hungarian; }
#line 5069 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2303 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Hanifi_Rohingya:
	
#line 5075 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010CFF) goto yy621;
	if (yych <= 0x00010D3F) goto yy622;
yy621:
	++YYCURSOR;
#line 2308 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Hanifi_Rohingya; else return Error; }
#line 5085 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy622:
	++YYCURSOR;
#line 2307 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Hanifi_Rohingya; }
#line 5090 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2309 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Garay:
	
#line 5096 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010D3F) goto yy624;
	if (yych <= 0x00010D8F) goto yy625;
yy624:
	++YYCURSOR;
#line 2314 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Garay; else return Error; }
#line 5106 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy625:
	++YYCURSOR;
#line 2313 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Garay; }
#line 5111 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2315 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Rumi_Numeral_Symbols:
	
#line 5117 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010E5F) goto yy627;
	if (yych <= 0x00010E7F) goto yy628;
yy627:
	++YYCURSOR;
#line 2320 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Rumi_Numeral_Symbols; else return Error; }
#line 5127 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy628:
	++YYCURSOR;
#line 2319 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Rumi_Numeral_Symbols; }
#line 5132 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2321 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Yezidi:
	
#line 5138 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010E7F) goto yy630;
	if (yych <= 0x00010EBF) goto yy631;
yy630:
	++YYCURSOR;
#line 2326 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Yezidi; else return Error; }
#line 5148 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy631:
	++YYCURSOR;
#line 2325 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Yezidi; }
#line 5153 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2327 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Extended_C:
	
#line 5159 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010EBF) goto yy633;
	if (yych <= 0x00010EFF) goto yy634;
yy633:
	++YYCURSOR;
#line 2332 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Extended_C; else return Error; }
#line 5169 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy634:
	++YYCURSOR;
#line 2331 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Extended_C; }
#line 5174 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2333 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Sogdian:
	
#line 5180 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010EFF) goto yy636;
	if (yych <= 0x00010F2F) goto yy637;
yy636:
	++YYCURSOR;
#line 2338 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Sogdian; else return Error; }
#line 5190 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy637:
	++YYCURSOR;
#line 2337 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Sogdian; }
#line 5195 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2339 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sogdian:
	
#line 5201 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010F2F) goto yy639;
	if (yych <= 0x00010F6F) goto yy640;
yy639:
	++YYCURSOR;
#line 2344 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sogdian; else return Error; }
#line 5211 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy640:
	++YYCURSOR;
#line 2343 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sogdian; }
#line 5216 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2345 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Old_Uyghur:
	
#line 5222 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010F6F) goto yy642;
	if (yych <= 0x00010FAF) goto yy643;
yy642:
	++YYCURSOR;
#line 2350 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Old_Uyghur; else return Error; }
#line 5232 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy643:
	++YYCURSOR;
#line 2349 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Old_Uyghur; }
#line 5237 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2351 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Chorasmian:
	
#line 5243 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010FAF) goto yy645;
	if (yych <= 0x00010FDF) goto yy646;
yy645:
	++YYCURSOR;
#line 2356 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Chorasmian; else return Error; }
#line 5253 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy646:
	++YYCURSOR;
#line 2355 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Chorasmian; }
#line 5258 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2357 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Elymaic:
	
#line 5264 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010FDF) goto yy648;
	if (yych <= 0x00010FFF) goto yy649;
yy648:
	++YYCURSOR;
#line 2362 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Elymaic; else return Error; }
#line 5274 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy649:
	++YYCURSOR;
#line 2361 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Elymaic; }
#line 5279 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2363 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Brahmi:
	
#line 5285 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00010FFF) goto yy651;
	if (yych <= 0x0001107F) goto yy652;
yy651:
	++YYCURSOR;
#line 2368 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Brahmi; else return Error; }
#line 5295 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy652:
	++YYCURSOR;
#line 2367 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Brahmi; }
#line 5300 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2369 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kaithi:
	
#line 5306 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001107F) goto yy654;
	if (yych <= 0x000110CF) goto yy655;
yy654:
	++YYCURSOR;
#line 2374 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kaithi; else return Error; }
#line 5316 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy655:
	++YYCURSOR;
#line 2373 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kaithi; }
#line 5321 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2375 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sora_Sompeng:
	
#line 5327 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000110CF) goto yy657;
	if (yych <= 0x000110FF) goto yy658;
yy657:
	++YYCURSOR;
#line 2380 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sora_Sompeng; else return Error; }
#line 5337 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy658:
	++YYCURSOR;
#line 2379 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sora_Sompeng; }
#line 5342 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2381 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Chakma:
	
#line 5348 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000110FF) goto yy660;
	if (yych <= 0x0001114F) goto yy661;
yy660:
	++YYCURSOR;
#line 2386 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Chakma; else return Error; }
#line 5358 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy661:
	++YYCURSOR;
#line 2385 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Chakma; }
#line 5363 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2387 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mahajani:
	
#line 5369 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001114F) goto yy663;
	if (yych <= 0x0001117F) goto yy664;
yy663:
	++YYCURSOR;
#line 2392 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mahajani; else return Error; }
#line 5379 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy664:
	++YYCURSOR;
#line 2391 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mahajani; }
#line 5384 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2393 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sharada:
	
#line 5390 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001117F) goto yy666;
	if (yych <= 0x000111DF) goto yy667;
yy666:
	++YYCURSOR;
#line 2398 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sharada; else return Error; }
#line 5400 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy667:
	++YYCURSOR;
#line 2397 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sharada; }
#line 5405 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2399 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sinhala_Archaic_Numbers:
	
#line 5411 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000111DF) goto yy669;
	if (yych <= 0x000111FF) goto yy670;
yy669:
	++YYCURSOR;
#line 2404 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sinhala_Archaic_Numbers; else return Error; }
#line 5421 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy670:
	++YYCURSOR;
#line 2403 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sinhala_Archaic_Numbers; }
#line 5426 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2405 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Khojki:
	
#line 5432 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000111FF) goto yy672;
	if (yych <= 0x0001124F) goto yy673;
yy672:
	++YYCURSOR;
#line 2410 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khojki; else return Error; }
#line 5442 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy673:
	++YYCURSOR;
#line 2409 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Khojki; }
#line 5447 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2411 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Multani:
	
#line 5453 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001127F) goto yy675;
	if (yych <= 0x000112AF) goto yy676;
yy675:
	++YYCURSOR;
#line 2416 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Multani; else return Error; }
#line 5463 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy676:
	++YYCURSOR;
#line 2415 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Multani; }
#line 5468 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2417 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Khudawadi:
	
#line 5474 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000112AF) goto yy678;
	if (yych <= 0x000112FF) goto yy679;
yy678:
	++YYCURSOR;
#line 2422 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khudawadi; else return Error; }
#line 5484 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy679:
	++YYCURSOR;
#line 2421 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Khudawadi; }
#line 5489 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2423 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Grantha:
	
#line 5495 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000112FF) goto yy681;
	if (yych <= 0x0001137F) goto yy682;
yy681:
	++YYCURSOR;
#line 2428 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Grantha; else return Error; }
#line 5505 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy682:
	++YYCURSOR;
#line 2427 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Grantha; }
#line 5510 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2429 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tulu_Tigalari:
	
#line 5516 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001137F) goto yy684;
	if (yych <= 0x000113FF) goto yy685;
yy684:
	++YYCURSOR;
#line 2434 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tulu_Tigalari; else return Error; }
#line 5526 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy685:
	++YYCURSOR;
#line 2433 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tulu_Tigalari; }
#line 5531 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2435 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Newa:
	
#line 5537 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000113FF) goto yy687;
	if (yych <= 0x0001147F) goto yy688;
yy687:
	++YYCURSOR;
#line 2440 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Newa; else return Error; }
#line 5547 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy688:
	++YYCURSOR;
#line 2439 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Newa; }
#line 5552 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2441 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tirhuta:
	
#line 5558 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001147F) goto yy690;
	if (yych <= 0x000114DF) goto yy691;
yy690:
	++YYCURSOR;
#line 2446 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tirhuta; else return Error; }
#line 5568 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy691:
	++YYCURSOR;
#line 2445 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tirhuta; }
#line 5573 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2447 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Siddham:
	
#line 5579 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001157F) goto yy693;
	if (yych <= 0x000115FF) goto yy694;
yy693:
	++YYCURSOR;
#line 2452 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Siddham; else return Error; }
#line 5589 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy694:
	++YYCURSOR;
#line 2451 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Siddham; }
#line 5594 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2453 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Modi:
	
#line 5600 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000115FF) goto yy696;
	if (yych <= 0x0001165F) goto yy697;
yy696:
	++YYCURSOR;
#line 2458 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Modi; else return Error; }
#line 5610 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy697:
	++YYCURSOR;
#line 2457 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Modi; }
#line 5615 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2459 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mongolian_Supplement:
	
#line 5621 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001165F) goto yy699;
	if (yych <= 0x0001167F) goto yy700;
yy699:
	++YYCURSOR;
#line 2464 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mongolian_Supplement; else return Error; }
#line 5631 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy700:
	++YYCURSOR;
#line 2463 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mongolian_Supplement; }
#line 5636 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2465 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Takri:
	
#line 5642 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001167F) goto yy702;
	if (yych <= 0x000116CF) goto yy703;
yy702:
	++YYCURSOR;
#line 2470 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Takri; else return Error; }
#line 5652 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy703:
	++YYCURSOR;
#line 2469 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Takri; }
#line 5657 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2471 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Myanmar_Extended_C:
	
#line 5663 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000116CF) goto yy705;
	if (yych <= 0x000116FF) goto yy706;
yy705:
	++YYCURSOR;
#line 2476 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Myanmar_Extended_C; else return Error; }
#line 5673 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy706:
	++YYCURSOR;
#line 2475 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Myanmar_Extended_C; }
#line 5678 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2477 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ahom:
	
#line 5684 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000116FF) goto yy708;
	if (yych <= 0x0001174F) goto yy709;
yy708:
	++YYCURSOR;
#line 2482 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ahom; else return Error; }
#line 5694 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy709:
	++YYCURSOR;
#line 2481 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ahom; }
#line 5699 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2483 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Dogra:
	
#line 5705 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000117FF) goto yy711;
	if (yych <= 0x0001184F) goto yy712;
yy711:
	++YYCURSOR;
#line 2488 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Dogra; else return Error; }
#line 5715 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy712:
	++YYCURSOR;
#line 2487 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Dogra; }
#line 5720 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2489 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Warang_Citi:
	
#line 5726 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001189F) goto yy714;
	if (yych <= 0x000118FF) goto yy715;
yy714:
	++YYCURSOR;
#line 2494 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Warang_Citi; else return Error; }
#line 5736 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy715:
	++YYCURSOR;
#line 2493 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Warang_Citi; }
#line 5741 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2495 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Dives_Akuru:
	
#line 5747 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000118FF) goto yy717;
	if (yych <= 0x0001195F) goto yy718;
yy717:
	++YYCURSOR;
#line 2500 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Dives_Akuru; else return Error; }
#line 5757 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy718:
	++YYCURSOR;
#line 2499 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Dives_Akuru; }
#line 5762 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2501 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Nandinagari:
	
#line 5768 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001199F) goto yy720;
	if (yych <= 0x000119FF) goto yy721;
yy720:
	++YYCURSOR;
#line 2506 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nandinagari; else return Error; }
#line 5778 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy721:
	++YYCURSOR;
#line 2505 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Nandinagari; }
#line 5783 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2507 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Zanabazar_Square:
	
#line 5789 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000119FF) goto yy723;
	if (yych <= 0x00011A4F) goto yy724;
yy723:
	++YYCURSOR;
#line 2512 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Zanabazar_Square; else return Error; }
#line 5799 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy724:
	++YYCURSOR;
#line 2511 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Zanabazar_Square; }
#line 5804 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2513 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Soyombo:
	
#line 5810 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011A4F) goto yy726;
	if (yych <= 0x00011AAF) goto yy727;
yy726:
	++YYCURSOR;
#line 2518 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Soyombo; else return Error; }
#line 5820 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy727:
	++YYCURSOR;
#line 2517 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Soyombo; }
#line 5825 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2519 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Unified_Canadian_Aboriginal_Syllabics_Extended_A:
	
#line 5831 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011AAF) goto yy729;
	if (yych <= 0x00011ABF) goto yy730;
yy729:
	++YYCURSOR;
#line 2524 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Unified_Canadian_Aboriginal_Syllabics_Extended_A; else return Error; }
#line 5841 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy730:
	++YYCURSOR;
#line 2523 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Unified_Canadian_Aboriginal_Syllabics_Extended_A; }
#line 5846 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2525 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Pau_Cin_Hau:
	
#line 5852 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011ABF) goto yy732;
	if (yych <= 0x00011AFF) goto yy733;
yy732:
	++YYCURSOR;
#line 2530 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Pau_Cin_Hau; else return Error; }
#line 5862 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy733:
	++YYCURSOR;
#line 2529 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Pau_Cin_Hau; }
#line 5867 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2531 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Devanagari_Extended_A:
	
#line 5873 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011AFF) goto yy735;
	if (yych <= 0x00011B5F) goto yy736;
yy735:
	++YYCURSOR;
#line 2536 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Devanagari_Extended_A; else return Error; }
#line 5883 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy736:
	++YYCURSOR;
#line 2535 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Devanagari_Extended_A; }
#line 5888 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2537 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sharada_Supplement:
	
#line 5894 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011B5F) goto yy738;
	if (yych <= 0x00011B7F) goto yy739;
yy738:
	++YYCURSOR;
#line 2542 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sharada_Supplement; else return Error; }
#line 5904 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy739:
	++YYCURSOR;
#line 2541 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sharada_Supplement; }
#line 5909 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2543 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sunuwar:
	
#line 5915 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011BBF) goto yy741;
	if (yych <= 0x00011BFF) goto yy742;
yy741:
	++YYCURSOR;
#line 2548 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sunuwar; else return Error; }
#line 5925 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy742:
	++YYCURSOR;
#line 2547 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sunuwar; }
#line 5930 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2549 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bhaiksuki:
	
#line 5936 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011BFF) goto yy744;
	if (yych <= 0x00011C6F) goto yy745;
yy744:
	++YYCURSOR;
#line 2554 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bhaiksuki; else return Error; }
#line 5946 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy745:
	++YYCURSOR;
#line 2553 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bhaiksuki; }
#line 5951 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2555 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Marchen:
	
#line 5957 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011C6F) goto yy747;
	if (yych <= 0x00011CBF) goto yy748;
yy747:
	++YYCURSOR;
#line 2560 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Marchen; else return Error; }
#line 5967 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy748:
	++YYCURSOR;
#line 2559 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Marchen; }
#line 5972 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2561 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Masaram_Gondi:
	
#line 5978 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011CFF) goto yy750;
	if (yych <= 0x00011D5F) goto yy751;
yy750:
	++YYCURSOR;
#line 2566 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Masaram_Gondi; else return Error; }
#line 5988 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy751:
	++YYCURSOR;
#line 2565 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Masaram_Gondi; }
#line 5993 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2567 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Gunjala_Gondi:
	
#line 5999 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011D5F) goto yy753;
	if (yych <= 0x00011DAF) goto yy754;
yy753:
	++YYCURSOR;
#line 2572 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gunjala_Gondi; else return Error; }
#line 6009 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy754:
	++YYCURSOR;
#line 2571 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Gunjala_Gondi; }
#line 6014 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2573 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tolong_Siki:
	
#line 6020 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011DAF) goto yy756;
	if (yych <= 0x00011DEF) goto yy757;
yy756:
	++YYCURSOR;
#line 2578 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tolong_Siki; else return Error; }
#line 6030 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy757:
	++YYCURSOR;
#line 2577 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tolong_Siki; }
#line 6035 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2579 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Makasar:
	
#line 6041 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011EDF) goto yy759;
	if (yych <= 0x00011EFF) goto yy760;
yy759:
	++YYCURSOR;
#line 2584 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Makasar; else return Error; }
#line 6051 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy760:
	++YYCURSOR;
#line 2583 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Makasar; }
#line 6056 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2585 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kawi:
	
#line 6062 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011EFF) goto yy762;
	if (yych <= 0x00011F5F) goto yy763;
yy762:
	++YYCURSOR;
#line 2590 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kawi; else return Error; }
#line 6072 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy763:
	++YYCURSOR;
#line 2589 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kawi; }
#line 6077 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2591 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Lisu_Supplement:
	
#line 6083 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011FAF) goto yy765;
	if (yych <= 0x00011FBF) goto yy766;
yy765:
	++YYCURSOR;
#line 2596 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Lisu_Supplement; else return Error; }
#line 6093 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy766:
	++YYCURSOR;
#line 2595 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Lisu_Supplement; }
#line 6098 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2597 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tamil_Supplement:
	
#line 6104 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011FBF) goto yy768;
	if (yych <= 0x00011FFF) goto yy769;
yy768:
	++YYCURSOR;
#line 2602 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tamil_Supplement; else return Error; }
#line 6114 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy769:
	++YYCURSOR;
#line 2601 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tamil_Supplement; }
#line 6119 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2603 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cuneiform:
	
#line 6125 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00011FFF) goto yy771;
	if (yych <= 0x000123FF) goto yy772;
yy771:
	++YYCURSOR;
#line 2608 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cuneiform; else return Error; }
#line 6135 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy772:
	++YYCURSOR;
#line 2607 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cuneiform; }
#line 6140 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2609 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cuneiform_Numbers_and_Punctuation:
	
#line 6146 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000123FF) goto yy774;
	if (yych <= 0x0001247F) goto yy775;
yy774:
	++YYCURSOR;
#line 2614 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cuneiform_Numbers_and_Punctuation; else return Error; }
#line 6156 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy775:
	++YYCURSOR;
#line 2613 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cuneiform_Numbers_and_Punctuation; }
#line 6161 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2615 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Early_Dynastic_Cuneiform:
	
#line 6167 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001247F) goto yy777;
	if (yych <= 0x0001254F) goto yy778;
yy777:
	++YYCURSOR;
#line 2620 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Early_Dynastic_Cuneiform; else return Error; }
#line 6177 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy778:
	++YYCURSOR;
#line 2619 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Early_Dynastic_Cuneiform; }
#line 6182 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2621 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cypro_Minoan:
	
#line 6188 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00012F8F) goto yy780;
	if (yych <= 0x00012FFF) goto yy781;
yy780:
	++YYCURSOR;
#line 2626 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cypro_Minoan; else return Error; }
#line 6198 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy781:
	++YYCURSOR;
#line 2625 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cypro_Minoan; }
#line 6203 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2627 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Egyptian_Hieroglyphs:
	
#line 6209 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00012FFF) goto yy783;
	if (yych <= 0x0001342F) goto yy784;
yy783:
	++YYCURSOR;
#line 2632 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Egyptian_Hieroglyphs; else return Error; }
#line 6219 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy784:
	++YYCURSOR;
#line 2631 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Egyptian_Hieroglyphs; }
#line 6224 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2633 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Egyptian_Hieroglyph_Format_Controls:
	
#line 6230 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001342F) goto yy786;
	if (yych <= 0x0001345F) goto yy787;
yy786:
	++YYCURSOR;
#line 2638 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Egyptian_Hieroglyph_Format_Controls; else return Error; }
#line 6240 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy787:
	++YYCURSOR;
#line 2637 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Egyptian_Hieroglyph_Format_Controls; }
#line 6245 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2639 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Egyptian_Hieroglyphs_Extended_A:
	
#line 6251 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001345F) goto yy789;
	if (yych <= 0x000143FF) goto yy790;
yy789:
	++YYCURSOR;
#line 2644 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Egyptian_Hieroglyphs_Extended_A; else return Error; }
#line 6261 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy790:
	++YYCURSOR;
#line 2643 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Egyptian_Hieroglyphs_Extended_A; }
#line 6266 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2645 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Anatolian_Hieroglyphs:
	
#line 6272 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000143FF) goto yy792;
	if (yych <= 0x0001467F) goto yy793;
yy792:
	++YYCURSOR;
#line 2650 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Anatolian_Hieroglyphs; else return Error; }
#line 6282 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy793:
	++YYCURSOR;
#line 2649 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Anatolian_Hieroglyphs; }
#line 6287 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2651 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Gurung_Khema:
	
#line 6293 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000160FF) goto yy795;
	if (yych <= 0x0001613F) goto yy796;
yy795:
	++YYCURSOR;
#line 2656 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Gurung_Khema; else return Error; }
#line 6303 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy796:
	++YYCURSOR;
#line 2655 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Gurung_Khema; }
#line 6308 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2657 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bamum_Supplement:
	
#line 6314 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000167FF) goto yy798;
	if (yych <= 0x00016A3F) goto yy799;
yy798:
	++YYCURSOR;
#line 2662 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bamum_Supplement; else return Error; }
#line 6324 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy799:
	++YYCURSOR;
#line 2661 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bamum_Supplement; }
#line 6329 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2663 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mro:
	
#line 6335 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016A3F) goto yy801;
	if (yych <= 0x00016A6F) goto yy802;
yy801:
	++YYCURSOR;
#line 2668 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mro; else return Error; }
#line 6345 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy802:
	++YYCURSOR;
#line 2667 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mro; }
#line 6350 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2669 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tangsa:
	
#line 6356 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016A6F) goto yy804;
	if (yych <= 0x00016ACF) goto yy805;
yy804:
	++YYCURSOR;
#line 2674 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangsa; else return Error; }
#line 6366 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy805:
	++YYCURSOR;
#line 2673 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tangsa; }
#line 6371 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2675 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Bassa_Vah:
	
#line 6377 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016ACF) goto yy807;
	if (yych <= 0x00016AFF) goto yy808;
yy807:
	++YYCURSOR;
#line 2680 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Bassa_Vah; else return Error; }
#line 6387 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy808:
	++YYCURSOR;
#line 2679 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Bassa_Vah; }
#line 6392 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2681 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Pahawh_Hmong:
	
#line 6398 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016AFF) goto yy810;
	if (yych <= 0x00016B8F) goto yy811;
yy810:
	++YYCURSOR;
#line 2686 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Pahawh_Hmong; else return Error; }
#line 6408 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy811:
	++YYCURSOR;
#line 2685 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Pahawh_Hmong; }
#line 6413 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2687 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kirat_Rai:
	
#line 6419 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016D3F) goto yy813;
	if (yych <= 0x00016D7F) goto yy814;
yy813:
	++YYCURSOR;
#line 2692 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kirat_Rai; else return Error; }
#line 6429 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy814:
	++YYCURSOR;
#line 2691 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kirat_Rai; }
#line 6434 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2693 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Medefaidrin:
	
#line 6440 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016E3F) goto yy816;
	if (yych <= 0x00016E9F) goto yy817;
yy816:
	++YYCURSOR;
#line 2698 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Medefaidrin; else return Error; }
#line 6450 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy817:
	++YYCURSOR;
#line 2697 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Medefaidrin; }
#line 6455 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2699 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Beria_Erfe:
	
#line 6461 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016E9F) goto yy819;
	if (yych <= 0x00016EDF) goto yy820;
yy819:
	++YYCURSOR;
#line 2704 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Beria_Erfe; else return Error; }
#line 6471 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy820:
	++YYCURSOR;
#line 2703 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Beria_Erfe; }
#line 6476 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2705 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miao:
	
#line 6482 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016EFF) goto yy822;
	if (yych <= 0x00016F9F) goto yy823;
yy822:
	++YYCURSOR;
#line 2710 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miao; else return Error; }
#line 6492 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy823:
	++YYCURSOR;
#line 2709 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miao; }
#line 6497 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2711 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ideographic_Symbols_and_Punctuation:
	
#line 6503 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016FDF) goto yy825;
	if (yych <= 0x00016FFF) goto yy826;
yy825:
	++YYCURSOR;
#line 2716 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ideographic_Symbols_and_Punctuation; else return Error; }
#line 6513 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy826:
	++YYCURSOR;
#line 2715 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ideographic_Symbols_and_Punctuation; }
#line 6518 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2717 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tangut:
	
#line 6524 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00016FFF) goto yy828;
	if (yych <= 0x000187FF) goto yy829;
yy828:
	++YYCURSOR;
#line 2722 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut; else return Error; }
#line 6534 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy829:
	++YYCURSOR;
#line 2721 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tangut; }
#line 6539 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2723 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tangut_Components:
	
#line 6545 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000187FF) goto yy831;
	if (yych <= 0x00018AFF) goto yy832;
yy831:
	++YYCURSOR;
#line 2728 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut_Components; else return Error; }
#line 6555 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy832:
	++YYCURSOR;
#line 2727 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tangut_Components; }
#line 6560 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2729 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Khitan_Small_Script:
	
#line 6566 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00018AFF) goto yy834;
	if (yych <= 0x00018CFF) goto yy835;
yy834:
	++YYCURSOR;
#line 2734 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Khitan_Small_Script; else return Error; }
#line 6576 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy835:
	++YYCURSOR;
#line 2733 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Khitan_Small_Script; }
#line 6581 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2735 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tangut_Supplement:
	
#line 6587 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00018CFF) goto yy837;
	if (yych <= 0x00018D7F) goto yy838;
yy837:
	++YYCURSOR;
#line 2740 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut_Supplement; else return Error; }
#line 6597 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy838:
	++YYCURSOR;
#line 2739 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tangut_Supplement; }
#line 6602 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2741 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tangut_Components_Supplement:
	
#line 6608 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x00018D7F) goto yy840;
	if (yych <= 0x00018DFF) goto yy841;
yy840:
	++YYCURSOR;
#line 2746 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tangut_Components_Supplement; else return Error; }
#line 6618 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy841:
	++YYCURSOR;
#line 2745 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tangut_Components_Supplement; }
#line 6623 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2747 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kana_Extended_B:
	
#line 6629 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001AFEF) goto yy843;
	if (yych <= 0x0001AFFF) goto yy844;
yy843:
	++YYCURSOR;
#line 2752 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kana_Extended_B; else return Error; }
#line 6639 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy844:
	++YYCURSOR;
#line 2751 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kana_Extended_B; }
#line 6644 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2753 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kana_Supplement:
	
#line 6650 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001AFFF) goto yy846;
	if (yych <= 0x0001B0FF) goto yy847;
yy846:
	++YYCURSOR;
#line 2758 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kana_Supplement; else return Error; }
#line 6660 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy847:
	++YYCURSOR;
#line 2757 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kana_Supplement; }
#line 6665 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2759 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kana_Extended_A:
	
#line 6671 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001B0FF) goto yy849;
	if (yych <= 0x0001B12F) goto yy850;
yy849:
	++YYCURSOR;
#line 2764 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kana_Extended_A; else return Error; }
#line 6681 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy850:
	++YYCURSOR;
#line 2763 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kana_Extended_A; }
#line 6686 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2765 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Small_Kana_Extension:
	
#line 6692 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001B12F) goto yy852;
	if (yych <= 0x0001B16F) goto yy853;
yy852:
	++YYCURSOR;
#line 2770 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Small_Kana_Extension; else return Error; }
#line 6702 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy853:
	++YYCURSOR;
#line 2769 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Small_Kana_Extension; }
#line 6707 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2771 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Nushu:
	
#line 6713 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001B16F) goto yy855;
	if (yych <= 0x0001B2FF) goto yy856;
yy855:
	++YYCURSOR;
#line 2776 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nushu; else return Error; }
#line 6723 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy856:
	++YYCURSOR;
#line 2775 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Nushu; }
#line 6728 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2777 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Duployan:
	
#line 6734 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001BBFF) goto yy858;
	if (yych <= 0x0001BC9F) goto yy859;
yy858:
	++YYCURSOR;
#line 2782 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Duployan; else return Error; }
#line 6744 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy859:
	++YYCURSOR;
#line 2781 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Duployan; }
#line 6749 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2783 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Shorthand_Format_Controls:
	
#line 6755 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001BC9F) goto yy861;
	if (yych <= 0x0001BCAF) goto yy862;
yy861:
	++YYCURSOR;
#line 2788 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Shorthand_Format_Controls; else return Error; }
#line 6765 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy862:
	++YYCURSOR;
#line 2787 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Shorthand_Format_Controls; }
#line 6770 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2789 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Symbols_for_Legacy_Computing_Supplement:
	
#line 6776 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001CBFF) goto yy864;
	if (yych <= 0x0001CEBF) goto yy865;
yy864:
	++YYCURSOR;
#line 2794 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Symbols_for_Legacy_Computing_Supplement; else return Error; }
#line 6786 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy865:
	++YYCURSOR;
#line 2793 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Symbols_for_Legacy_Computing_Supplement; }
#line 6791 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2795 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Symbols_Supplement:
	
#line 6797 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001CEBF) goto yy867;
	if (yych <= 0x0001CEFF) goto yy868;
yy867:
	++YYCURSOR;
#line 2800 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols_Supplement; else return Error; }
#line 6807 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy868:
	++YYCURSOR;
#line 2799 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols_Supplement; }
#line 6812 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2801 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Znamenny_Musical_Notation:
	
#line 6818 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001CEFF) goto yy870;
	if (yych <= 0x0001CFCF) goto yy871;
yy870:
	++YYCURSOR;
#line 2806 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Znamenny_Musical_Notation; else return Error; }
#line 6828 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy871:
	++YYCURSOR;
#line 2805 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Znamenny_Musical_Notation; }
#line 6833 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2807 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Byzantine_Musical_Symbols:
	
#line 6839 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001CFFF) goto yy873;
	if (yych <= 0x0001D0FF) goto yy874;
yy873:
	++YYCURSOR;
#line 2812 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Byzantine_Musical_Symbols; else return Error; }
#line 6849 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy874:
	++YYCURSOR;
#line 2811 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Byzantine_Musical_Symbols; }
#line 6854 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2813 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Musical_Symbols:
	
#line 6860 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D0FF) goto yy876;
	if (yych <= 0x0001D1FF) goto yy877;
yy876:
	++YYCURSOR;
#line 2818 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Musical_Symbols; else return Error; }
#line 6870 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy877:
	++YYCURSOR;
#line 2817 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Musical_Symbols; }
#line 6875 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2819 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ancient_Greek_Musical_Notation:
	
#line 6881 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D1FF) goto yy879;
	if (yych <= 0x0001D24F) goto yy880;
yy879:
	++YYCURSOR;
#line 2824 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ancient_Greek_Musical_Notation; else return Error; }
#line 6891 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy880:
	++YYCURSOR;
#line 2823 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ancient_Greek_Musical_Notation; }
#line 6896 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2825 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Kaktovik_Numerals:
	
#line 6902 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D2BF) goto yy882;
	if (yych <= 0x0001D2DF) goto yy883;
yy882:
	++YYCURSOR;
#line 2830 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Kaktovik_Numerals; else return Error; }
#line 6912 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy883:
	++YYCURSOR;
#line 2829 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Kaktovik_Numerals; }
#line 6917 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2831 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mayan_Numerals:
	
#line 6923 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D2DF) goto yy885;
	if (yych <= 0x0001D2FF) goto yy886;
yy885:
	++YYCURSOR;
#line 2836 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mayan_Numerals; else return Error; }
#line 6933 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy886:
	++YYCURSOR;
#line 2835 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mayan_Numerals; }
#line 6938 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2837 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tai_Xuan_Jing_Symbols:
	
#line 6944 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D2FF) goto yy888;
	if (yych <= 0x0001D35F) goto yy889;
yy888:
	++YYCURSOR;
#line 2842 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Xuan_Jing_Symbols; else return Error; }
#line 6954 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy889:
	++YYCURSOR;
#line 2841 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tai_Xuan_Jing_Symbols; }
#line 6959 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2843 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Counting_Rod_Numerals:
	
#line 6965 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D35F) goto yy891;
	if (yych <= 0x0001D37F) goto yy892;
yy891:
	++YYCURSOR;
#line 2848 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Counting_Rod_Numerals; else return Error; }
#line 6975 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy892:
	++YYCURSOR;
#line 2847 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Counting_Rod_Numerals; }
#line 6980 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2849 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mathematical_Alphanumeric_Symbols:
	
#line 6986 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D3FF) goto yy894;
	if (yych <= 0x0001D7FF) goto yy895;
yy894:
	++YYCURSOR;
#line 2854 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mathematical_Alphanumeric_Symbols; else return Error; }
#line 6996 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy895:
	++YYCURSOR;
#line 2853 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mathematical_Alphanumeric_Symbols; }
#line 7001 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2855 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Sutton_SignWriting:
	
#line 7007 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001D7FF) goto yy897;
	if (yych <= 0x0001DAAF) goto yy898;
yy897:
	++YYCURSOR;
#line 2860 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Sutton_SignWriting; else return Error; }
#line 7017 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy898:
	++YYCURSOR;
#line 2859 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Sutton_SignWriting; }
#line 7022 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2861 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Latin_Extended_G:
	
#line 7028 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001DEFF) goto yy900;
	if (yych <= 0x0001DFFF) goto yy901;
yy900:
	++YYCURSOR;
#line 2866 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Latin_Extended_G; else return Error; }
#line 7038 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy901:
	++YYCURSOR;
#line 2865 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Latin_Extended_G; }
#line 7043 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2867 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Glagolitic_Supplement:
	
#line 7049 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001DFFF) goto yy903;
	if (yych <= 0x0001E02F) goto yy904;
yy903:
	++YYCURSOR;
#line 2872 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Glagolitic_Supplement; else return Error; }
#line 7059 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy904:
	++YYCURSOR;
#line 2871 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Glagolitic_Supplement; }
#line 7064 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2873 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Cyrillic_Extended_D:
	
#line 7070 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E02F) goto yy906;
	if (yych <= 0x0001E08F) goto yy907;
yy906:
	++YYCURSOR;
#line 2878 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Cyrillic_Extended_D; else return Error; }
#line 7080 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy907:
	++YYCURSOR;
#line 2877 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Cyrillic_Extended_D; }
#line 7085 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2879 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Nyiakeng_Puachue_Hmong:
	
#line 7091 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E0FF) goto yy909;
	if (yych <= 0x0001E14F) goto yy910;
yy909:
	++YYCURSOR;
#line 2884 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nyiakeng_Puachue_Hmong; else return Error; }
#line 7101 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy910:
	++YYCURSOR;
#line 2883 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Nyiakeng_Puachue_Hmong; }
#line 7106 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2885 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Toto:
	
#line 7112 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E28F) goto yy912;
	if (yych <= 0x0001E2BF) goto yy913;
yy912:
	++YYCURSOR;
#line 2890 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Toto; else return Error; }
#line 7122 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy913:
	++YYCURSOR;
#line 2889 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Toto; }
#line 7127 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2891 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Wancho:
	
#line 7133 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E2BF) goto yy915;
	if (yych <= 0x0001E2FF) goto yy916;
yy915:
	++YYCURSOR;
#line 2896 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Wancho; else return Error; }
#line 7143 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy916:
	++YYCURSOR;
#line 2895 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Wancho; }
#line 7148 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2897 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Nag_Mundari:
	
#line 7154 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E4CF) goto yy918;
	if (yych <= 0x0001E4FF) goto yy919;
yy918:
	++YYCURSOR;
#line 2902 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Nag_Mundari; else return Error; }
#line 7164 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy919:
	++YYCURSOR;
#line 2901 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Nag_Mundari; }
#line 7169 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2903 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ol_Onal:
	
#line 7175 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E5CF) goto yy921;
	if (yych <= 0x0001E5FF) goto yy922;
yy921:
	++YYCURSOR;
#line 2908 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ol_Onal; else return Error; }
#line 7185 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy922:
	++YYCURSOR;
#line 2907 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ol_Onal; }
#line 7190 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2909 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tai_Yo:
	
#line 7196 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E6BF) goto yy924;
	if (yych <= 0x0001E6FF) goto yy925;
yy924:
	++YYCURSOR;
#line 2914 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tai_Yo; else return Error; }
#line 7206 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy925:
	++YYCURSOR;
#line 2913 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tai_Yo; }
#line 7211 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2915 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ethiopic_Extended_B:
	
#line 7217 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E7DF) goto yy927;
	if (yych <= 0x0001E7FF) goto yy928;
yy927:
	++YYCURSOR;
#line 2920 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ethiopic_Extended_B; else return Error; }
#line 7227 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy928:
	++YYCURSOR;
#line 2919 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ethiopic_Extended_B; }
#line 7232 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2921 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mende_Kikakui:
	
#line 7238 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E7FF) goto yy930;
	if (yych <= 0x0001E8DF) goto yy931;
yy930:
	++YYCURSOR;
#line 2926 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mende_Kikakui; else return Error; }
#line 7248 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy931:
	++YYCURSOR;
#line 2925 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mende_Kikakui; }
#line 7253 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2927 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Adlam:
	
#line 7259 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001E8FF) goto yy933;
	if (yych <= 0x0001E95F) goto yy934;
yy933:
	++YYCURSOR;
#line 2932 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Adlam; else return Error; }
#line 7269 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy934:
	++YYCURSOR;
#line 2931 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Adlam; }
#line 7274 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2933 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Indic_Siyaq_Numbers:
	
#line 7280 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001EC6F) goto yy936;
	if (yych <= 0x0001ECBF) goto yy937;
yy936:
	++YYCURSOR;
#line 2938 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Indic_Siyaq_Numbers; else return Error; }
#line 7290 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy937:
	++YYCURSOR;
#line 2937 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Indic_Siyaq_Numbers; }
#line 7295 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2939 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ottoman_Siyaq_Numbers:
	
#line 7301 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001ECFF) goto yy939;
	if (yych <= 0x0001ED4F) goto yy940;
yy939:
	++YYCURSOR;
#line 2944 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ottoman_Siyaq_Numbers; else return Error; }
#line 7311 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy940:
	++YYCURSOR;
#line 2943 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ottoman_Siyaq_Numbers; }
#line 7316 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2945 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Arabic_Mathematical_Alphabetic_Symbols:
	
#line 7322 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001EDFF) goto yy942;
	if (yych <= 0x0001EEFF) goto yy943;
yy942:
	++YYCURSOR;
#line 2950 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Arabic_Mathematical_Alphabetic_Symbols; else return Error; }
#line 7332 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy943:
	++YYCURSOR;
#line 2949 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Arabic_Mathematical_Alphabetic_Symbols; }
#line 7337 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2951 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Mahjong_Tiles:
	
#line 7343 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001EFFF) goto yy945;
	if (yych <= 0x0001F02F) goto yy946;
yy945:
	++YYCURSOR;
#line 2956 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Mahjong_Tiles; else return Error; }
#line 7353 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy946:
	++YYCURSOR;
#line 2955 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Mahjong_Tiles; }
#line 7358 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2957 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Domino_Tiles:
	
#line 7364 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F02F) goto yy948;
	if (yych <= 0x0001F09F) goto yy949;
yy948:
	++YYCURSOR;
#line 2962 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Domino_Tiles; else return Error; }
#line 7374 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy949:
	++YYCURSOR;
#line 2961 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Domino_Tiles; }
#line 7379 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2963 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Playing_Cards:
	
#line 7385 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F09F) goto yy951;
	if (yych <= 0x0001F0FF) goto yy952;
yy951:
	++YYCURSOR;
#line 2968 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Playing_Cards; else return Error; }
#line 7395 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy952:
	++YYCURSOR;
#line 2967 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Playing_Cards; }
#line 7400 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2969 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Enclosed_Alphanumeric_Supplement:
	
#line 7406 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F0FF) goto yy954;
	if (yych <= 0x0001F1FF) goto yy955;
yy954:
	++YYCURSOR;
#line 2974 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_Alphanumeric_Supplement; else return Error; }
#line 7416 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy955:
	++YYCURSOR;
#line 2973 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Enclosed_Alphanumeric_Supplement; }
#line 7421 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2975 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Enclosed_Ideographic_Supplement:
	
#line 7427 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F1FF) goto yy957;
	if (yych <= 0x0001F2FF) goto yy958;
yy957:
	++YYCURSOR;
#line 2980 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Enclosed_Ideographic_Supplement; else return Error; }
#line 7437 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy958:
	++YYCURSOR;
#line 2979 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Enclosed_Ideographic_Supplement; }
#line 7442 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2981 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Miscellaneous_Symbols_and_Pictographs:
	
#line 7448 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F2FF) goto yy960;
	if (yych <= 0x0001F5FF) goto yy961;
yy960:
	++YYCURSOR;
#line 2986 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Miscellaneous_Symbols_and_Pictographs; else return Error; }
#line 7458 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy961:
	++YYCURSOR;
#line 2985 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Miscellaneous_Symbols_and_Pictographs; }
#line 7463 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2987 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Emoticons:
	
#line 7469 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F5FF) goto yy963;
	if (yych <= 0x0001F64F) goto yy964;
yy963:
	++YYCURSOR;
#line 2992 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Emoticons; else return Error; }
#line 7479 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy964:
	++YYCURSOR;
#line 2991 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Emoticons; }
#line 7484 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2993 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Ornamental_Dingbats:
	
#line 7490 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F64F) goto yy966;
	if (yych <= 0x0001F67F) goto yy967;
yy966:
	++YYCURSOR;
#line 2998 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Ornamental_Dingbats; else return Error; }
#line 7500 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy967:
	++YYCURSOR;
#line 2997 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Ornamental_Dingbats; }
#line 7505 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 2999 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Transport_and_Map_Symbols:
	
#line 7511 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F67F) goto yy969;
	if (yych <= 0x0001F6FF) goto yy970;
yy969:
	++YYCURSOR;
#line 3004 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Transport_and_Map_Symbols; else return Error; }
#line 7521 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy970:
	++YYCURSOR;
#line 3003 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Transport_and_Map_Symbols; }
#line 7526 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3005 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Alchemical_Symbols:
	
#line 7532 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F6FF) goto yy972;
	if (yych <= 0x0001F77F) goto yy973;
yy972:
	++YYCURSOR;
#line 3010 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Alchemical_Symbols; else return Error; }
#line 7542 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy973:
	++YYCURSOR;
#line 3009 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Alchemical_Symbols; }
#line 7547 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3011 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Geometric_Shapes_Extended:
	
#line 7553 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F77F) goto yy975;
	if (yych <= 0x0001F7FF) goto yy976;
yy975:
	++YYCURSOR;
#line 3016 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Geometric_Shapes_Extended; else return Error; }
#line 7563 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy976:
	++YYCURSOR;
#line 3015 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Geometric_Shapes_Extended; }
#line 7568 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3017 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplemental_Arrows_C:
	
#line 7574 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F7FF) goto yy978;
	if (yych <= 0x0001F8FF) goto yy979;
yy978:
	++YYCURSOR;
#line 3022 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Arrows_C; else return Error; }
#line 7584 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy979:
	++YYCURSOR;
#line 3021 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplemental_Arrows_C; }
#line 7589 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3023 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplemental_Symbols_and_Pictographs:
	
#line 7595 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F8FF) goto yy981;
	if (yych <= 0x0001F9FF) goto yy982;
yy981:
	++YYCURSOR;
#line 3028 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplemental_Symbols_and_Pictographs; else return Error; }
#line 7605 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy982:
	++YYCURSOR;
#line 3027 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplemental_Symbols_and_Pictographs; }
#line 7610 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3029 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Chess_Symbols:
	
#line 7616 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001F9FF) goto yy984;
	if (yych <= 0x0001FA6F) goto yy985;
yy984:
	++YYCURSOR;
#line 3034 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Chess_Symbols; else return Error; }
#line 7626 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy985:
	++YYCURSOR;
#line 3033 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Chess_Symbols; }
#line 7631 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3035 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Symbols_and_Pictographs_Extended_A:
	
#line 7637 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001FA6F) goto yy987;
	if (yych <= 0x0001FAFF) goto yy988;
yy987:
	++YYCURSOR;
#line 3040 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Symbols_and_Pictographs_Extended_A; else return Error; }
#line 7647 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy988:
	++YYCURSOR;
#line 3039 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Symbols_and_Pictographs_Extended_A; }
#line 7652 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3041 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Symbols_for_Legacy_Computing:
	
#line 7658 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001FAFF) goto yy990;
	if (yych <= 0x0001FBFF) goto yy991;
yy990:
	++YYCURSOR;
#line 3046 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Symbols_for_Legacy_Computing; else return Error; }
#line 7668 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy991:
	++YYCURSOR;
#line 3045 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Symbols_for_Legacy_Computing; }
#line 7673 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3047 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_B:
	
#line 7679 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0001FFFF) goto yy993;
	if (yych <= 0x0002A6DF) goto yy994;
yy993:
	++YYCURSOR;
#line 3052 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_B; else return Error; }
#line 7689 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy994:
	++YYCURSOR;
#line 3051 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_B; }
#line 7694 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3053 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_C:
	
#line 7700 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002A6FF) goto yy996;
	if (yych <= 0x0002B73F) goto yy997;
yy996:
	++YYCURSOR;
#line 3058 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_C; else return Error; }
#line 7710 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy997:
	++YYCURSOR;
#line 3057 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_C; }
#line 7715 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3059 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_D:
	
#line 7721 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002B73F) goto yy999;
	if (yych <= 0x0002B81F) goto yy1000;
yy999:
	++YYCURSOR;
#line 3064 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_D; else return Error; }
#line 7731 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1000:
	++YYCURSOR;
#line 3063 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_D; }
#line 7736 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3065 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_E:
	
#line 7742 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002B81F) goto yy1002;
	if (yych <= 0x0002CEAF) goto yy1003;
yy1002:
	++YYCURSOR;
#line 3070 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_E; else return Error; }
#line 7752 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1003:
	++YYCURSOR;
#line 3069 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_E; }
#line 7757 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3071 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_F:
	
#line 7763 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002CEAF) goto yy1005;
	if (yych <= 0x0002EBEF) goto yy1006;
yy1005:
	++YYCURSOR;
#line 3076 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_F; else return Error; }
#line 7773 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1006:
	++YYCURSOR;
#line 3075 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_F; }
#line 7778 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3077 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_I:
	
#line 7784 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002EBEF) goto yy1008;
	if (yych <= 0x0002EE5F) goto yy1009;
yy1008:
	++YYCURSOR;
#line 3082 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_I; else return Error; }
#line 7794 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1009:
	++YYCURSOR;
#line 3081 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_I; }
#line 7799 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3083 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Compatibility_Ideographs_Supplement:
	
#line 7805 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002F7FF) goto yy1011;
	if (yych <= 0x0002FA1F) goto yy1012;
yy1011:
	++YYCURSOR;
#line 3088 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Compatibility_Ideographs_Supplement; else return Error; }
#line 7815 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1012:
	++YYCURSOR;
#line 3087 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Compatibility_Ideographs_Supplement; }
#line 7820 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3089 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_G:
	
#line 7826 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0002FFFF) goto yy1014;
	if (yych <= 0x0003134F) goto yy1015;
yy1014:
	++YYCURSOR;
#line 3094 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_G; else return Error; }
#line 7836 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1015:
	++YYCURSOR;
#line 3093 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_G; }
#line 7841 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3095 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_H:
	
#line 7847 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0003134F) goto yy1017;
	if (yych <= 0x000323AF) goto yy1018;
yy1017:
	++YYCURSOR;
#line 3100 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_H; else return Error; }
#line 7857 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1018:
	++YYCURSOR;
#line 3099 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_H; }
#line 7862 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3101 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

CJK_Unified_Ideographs_Extension_J:
	
#line 7868 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000323AF) goto yy1020;
	if (yych <= 0x0003347F) goto yy1021;
yy1020:
	++YYCURSOR;
#line 3106 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return CJK_Unified_Ideographs_Extension_J; else return Error; }
#line 7878 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1021:
	++YYCURSOR;
#line 3105 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto CJK_Unified_Ideographs_Extension_J; }
#line 7883 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3107 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Tags:
	
#line 7889 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000DFFFF) goto yy1023;
	if (yych <= 0x000E007F) goto yy1024;
yy1023:
	++YYCURSOR;
#line 3112 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Tags; else return Error; }
#line 7899 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1024:
	++YYCURSOR;
#line 3111 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Tags; }
#line 7904 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3113 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Variation_Selectors_Supplement:
	
#line 7910 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000E00FF) goto yy1026;
	if (yych <= 0x000E01EF) goto yy1027;
yy1026:
	++YYCURSOR;
#line 3118 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Variation_Selectors_Supplement; else return Error; }
#line 7920 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1027:
	++YYCURSOR;
#line 3117 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Variation_Selectors_Supplement; }
#line 7925 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3119 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplementary_Private_Use_Area_A:
	
#line 7931 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x000EFFFF) goto yy1029;
	if (yych <= 0x000FFFFF) goto yy1030;
yy1029:
	++YYCURSOR;
#line 3124 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplementary_Private_Use_Area_A; else return Error; }
#line 7941 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1030:
	++YYCURSOR;
#line 3123 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplementary_Private_Use_Area_A; }
#line 7946 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3125 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

Supplementary_Private_Use_Area_B:
	
#line 7952 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych >= 0x00100000) goto yy1032;
	++YYCURSOR;
#line 3130 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ if (YYCURSOR - 1 == limit) return Supplementary_Private_Use_Area_B; else return Error; }
#line 7960 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
yy1032:
	++YYCURSOR;
#line 3129 "encodings/unicode_blocks_u_encoding_policy_substitute.re"
	{ goto Supplementary_Private_Use_Area_B; }
#line 7965 "encodings/unicode_blocks_u_encoding_policy_substitute.c"
}
#line 3131 "encodings/unicode_blocks_u_encoding_policy_substitute.re"

}

static const uint32_t chars_Basic_Latin[] = {0x0,0x7f};
static const uint32_t chars_Latin_1_Supplement[] = {0x80,0xff};
static const uint32_t chars_Latin_Extended_A[] = {0x100,0x17f};
static const uint32_t chars_Latin_Extended_B[] = {0x180,0x24f};
static const uint32_t chars_IPA_Extensions[] = {0x250,0x2af};
static const uint32_t chars_Spacing_Modifier_Letters[] = {0x2b0,0x2ff};
static const uint32_t chars_Combining_Diacritical_Marks[] = {0x300,0x36f};
static const uint32_t chars_Greek_and_Coptic[] = {0x370,0x3ff};
static const uint32_t chars_Cyrillic[] = {0x400,0x4ff};
static const uint32_t chars_Cyrillic_Supplement[] = {0x500,0x52f};
static const uint32_t chars_Armenian[] = {0x530,0x58f};
static const uint32_t chars_Hebrew[] = {0x590,0x5ff};
static const uint32_t chars_Arabic[] = {0x600,0x6ff};
static const uint32_t chars_Syriac[] = {0x700,0x74f};
static const uint32_t chars_Arabic_Supplement[] = {0x750,0x77f};
static const uint32_t chars_Thaana[] = {0x780,0x7bf};
static const uint32_t chars_NKo[] = {0x7c0,0x7ff};
static const uint32_t chars_Samaritan[] = {0x800,0x83f};
static const uint32_t chars_Mandaic[] = {0x840,0x85f};
static const uint32_t chars_Syriac_Supplement[] = {0x860,0x86f};
static const uint32_t chars_Arabic_Extended_B[] = {0x870,0x89f};
static const uint32_t chars_Arabic_Extended_A[] = {0x8a0,0x8ff};
static const uint32_t chars_Devanagari[] = {0x900,0x97f};
static const uint32_t chars_Bengali[] = {0x980,0x9ff};
static const uint32_t chars_Gurmukhi[] = {0xa00,0xa7f};
static const uint32_t chars_Gujarati[] = {0xa80,0xaff};
static const uint32_t chars_Oriya[] = {0xb00,0xb7f};
static const uint32_t chars_Tamil[] = {0xb80,0xbff};
static const uint32_t chars_Telugu[] = {0xc00,0xc7f};
static const uint32_t chars_Kannada[] = {0xc80,0xcff};
static const uint32_t chars_Malayalam[] = {0xd00,0xd7f};
static const uint32_t chars_Sinhala[] = {0xd80,0xdff};
static const uint32_t chars_Thai[] = {0xe00,0xe7f};
static const uint32_t chars_Lao[] = {0xe80,0xeff};
static const uint32_t chars_Tibetan[] = {0xf00,0xfff};
static const uint32_t chars_Myanmar[] = {0x1000,0x109f};
static const uint32_t chars_Georgian[] = {0x10a0,0x10ff};
static const uint32_t chars_Hangul_Jamo[] = {0x1100,0x11ff};
static const uint32_t chars_Ethiopic[] = {0x1200,0x137f};
static const uint32_t chars_Ethiopic_Supplement[] = {0x1380,0x139f};
static const uint32_t chars_Cherokee[] = {0x13a0,0x13ff};
static const uint32_t chars_Unified_Canadian_Aboriginal_Syllabics[] = {0x1400,0x167f};
static const uint32_t chars_Ogham[] = {0x1680,0x169f};
static const uint32_t chars_Runic[] = {0x16a0,0x16ff};
static const uint32_t chars_Tagalog[] = {0x1700,0x171f};
static const uint32_t chars_Hanunoo[] = {0x1720,0x173f};
static const uint32_t chars_Buhid[] = {0x1740,0x175f};
static const uint32_t chars_Tagbanwa[] = {0x1760,0x177f};
static const uint32_t chars_Khmer[] = {0x1780,0x17ff};
static const uint32_t chars_Mongolian[] = {0x1800,0x18af};
static const uint32_t chars_Unified_Canadian_Aboriginal_Syllabics_Extended[] = {0x18b0,0x18ff};
static const uint32_t chars_Limbu[] = {0x1900,0x194f};
static const uint32_t chars_Tai_Le[] = {0x1950,0x197f};
static const uint32_t chars_New_Tai_Lue[] = {0x1980,0x19df};
static const uint32_t chars_Khmer_Symbols[] = {0x19e0,0x19ff};
static const uint32_t chars_Buginese[] = {0x1a00,0x1a1f};
static const uint32_t chars_Tai_Tham[] = {0x1a20,0x1aaf};
static const uint32_t chars_Combining_Diacritical_Marks_Extended[] = {0x1ab0,0x1aff};
static const uint32_t chars_Balinese[] = {0x1b00,0x1b7f};
static const uint32_t chars_Sundanese[] = {0x1b80,0x1bbf};
static const uint32_t chars_Batak[] = {0x1bc0,0x1bff};
static const uint32_t chars_Lepcha[] = {0x1c00,0x1c4f};
static const uint32_t chars_Ol_Chiki[] = {0x1c50,0x1c7f};
static const uint32_t chars_Cyrillic_Extended_C[] = {0x1c80,0x1c8f};
static const uint32_t chars_Georgian_Extended[] = {0x1c90,0x1cbf};
static const uint32_t chars_Sundanese_Supplement[] = {0x1cc0,0x1ccf};
static const uint32_t chars_Vedic_Extensions[] = {0x1cd0,0x1cff};
static const uint32_t chars_Phonetic_Extensions[] = {0x1d00,0x1d7f};
static const uint32_t chars_Phonetic_Extensions_Supplement[] = {0x1d80,0x1dbf};
static const uint32_t chars_Combining_Diacritical_Marks_Supplement[] = {0x1dc0,0x1dff};
static const uint32_t chars_Latin_Extended_Additional[] = {0x1e00,0x1eff};
static const uint32_t chars_Greek_Extended[] = {0x1f00,0x1fff};
static const uint32_t chars_General_Punctuation[] = {0x2000,0x206f};
static const uint32_t chars_Superscripts_and_Subscripts[] = {0x2070,0x209f};
static const uint32_t chars_Currency_Symbols[] = {0x20a0,0x20cf};
static const uint32_t chars_Combining_Diacritical_Marks_for_Symbols[] = {0x20d0,0x20ff};
static const uint32_t chars_Letterlike_Symbols[] = {0x2100,0x214f};
static const uint32_t chars_Number_Forms[] = {0x2150,0x218f};
static const uint32_t chars_Arrows[] = {0x2190,0x21ff};
static const uint32_t chars_Mathematical_Operators[] = {0x2200,0x22ff};
static const uint32_t chars_Miscellaneous_Technical[] = {0x2300,0x23ff};
static const uint32_t chars_Control_Pictures[] = {0x2400,0x243f};
static const uint32_t chars_Optical_Character_Recognition[] = {0x2440,0x245f};
static const uint32_t chars_Enclosed_Alphanumerics[] = {0x2460,0x24ff};
static const uint32_t chars_Box_Drawing[] = {0x2500,0x257f};
static const uint32_t chars_Block_Elements[] = {0x2580,0x259f};
static const uint32_t chars_Geometric_Shapes[] = {0x25a0,0x25ff};
static const uint32_t chars_Miscellaneous_Symbols[] = {0x2600,0x26ff};
static const uint32_t chars_Dingbats[] = {0x2700,0x27bf};
static const uint32_t chars_Miscellaneous_Mathematical_Symbols_A[] = {0x27c0,0x27ef};
static const uint32_t chars_Supplemental_Arrows_A[] = {0x27f0,0x27ff};
static const uint32_t chars_Braille_Patterns[] = {0x2800,0x28ff};
static const uint32_t chars_Supplemental_Arrows_B[] = {0x2900,0x297f};
static const uint32_t chars_Miscellaneous_Mathematical_Symbols_B[] = {0x2980,0x29ff};
static const uint32_t chars_Supplemental_Mathematical_Operators[] = {0x2a00,0x2aff};
static const uint32_t chars_Miscellaneous_Symbols_and_Arrows[] = {0x2b00,0x2bff};
static const uint32_t chars_Glagolitic[] = {0x2c00,0x2c5f};
static const uint32_t chars_Latin_Extended_C[] = {0x2c60,0x2c7f};
static const uint32_t chars_Coptic[] = {0x2c80,0x2cff};
static const uint32_t chars_Georgian_Supplement[] = {0x2d00,0x2d2f};
static const uint32_t chars_Tifinagh[] = {0x2d30,0x2d7f};
static const uint32_t chars_Ethiopic_Extended[] = {0x2d80,0x2ddf};
static const uint32_t chars_Cyrillic_Extended_A[] = {0x2de0,0x2dff};
static const uint32_t chars_Supplemental_Punctuation[] = {0x2e00,0x2e7f};
static const uint32_t chars_CJK_Radicals_Supplement[] = {0x2e80,0x2eff};
static const uint32_t chars_Kangxi_Radicals[] = {0x2f00,0x2fdf};
static const uint32_t chars_Ideographic_Description_Characters[] = {0x2ff0,0x2fff};
static const uint32_t chars_CJK_Symbols_and_Punctuation[] = {0x3000,0x303f};
static const uint32_t chars_Hiragana[] = {0x3040,0x309f};
static const uint32_t chars_Katakana[] = {0x30a0,0x30ff};
static const uint32_t chars_Bopomofo[] = {0x3100,0x312f};
static const uint32_t chars_Hangul_Compatibility_Jamo[] = {0x3130,0x318f};
static const uint32_t chars_Kanbun[] = {0x3190,0x319f};
static const uint32_t chars_Bopomofo_Extended[] = {0x31a0,0x31bf};
static const uint32_t chars_CJK_Strokes[] = {0x31c0,0x31ef};
static const uint32_t chars_Katakana_Phonetic_Extensions[] = {0x31f0,0x31ff};
static const uint32_t chars_Enclosed_CJK_Letters_and_Months[] = {0x3200,0x32ff};
static const uint32_t chars_CJK_Compatibility[] = {0x3300,0x33ff};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_A[] = {0x3400,0x4dbf};
static const uint32_t chars_Yijing_Hexagram_Symbols[] = {0x4dc0,0x4dff};
static const uint32_t chars_CJK_Unified_Ideographs[] = {0x4e00,0x9fff};
static const uint32_t chars_Yi_Syllables[] = {0xa000,0xa48f};
static const uint32_t chars_Yi_Radicals[] = {0xa490,0xa4cf};
static const uint32_t chars_Lisu[] = {0xa4d0,0xa4ff};
static const uint32_t chars_Vai[] = {0xa500,0xa63f};
static const uint32_t chars_Cyrillic_Extended_B[] = {0xa640,0xa69f};
static const uint32_t chars_Bamum[] = {0xa6a0,0xa6ff};
static const uint32_t chars_Modifier_Tone_Letters[] = {0xa700,0xa71f};
static const uint32_t chars_Latin_Extended_D[] = {0xa720,0xa7ff};
static const uint32_t chars_Syloti_Nagri[] = {0xa800,0xa82f};
static const uint32_t chars_Common_Indic_Number_Forms[] = {0xa830,0xa83f};
static const uint32_t chars_Phags_pa[] = {0xa840,0xa87f};
static const uint32_t chars_Saurashtra[] = {0xa880,0xa8df};
static const uint32_t chars_Devanagari_Extended[] = {0xa8e0,0xa8ff};
static const uint32_t chars_Kayah_Li[] = {0xa900,0xa92f};
static const uint32_t chars_Rejang[] = {0xa930,0xa95f};
static const uint32_t chars_Hangul_Jamo_Extended_A[] = {0xa960,0xa97f};
static const uint32_t chars_Javanese[] = {0xa980,0xa9df};
static const uint32_t chars_Myanmar_Extended_B[] = {0xa9e0,0xa9ff};
static const uint32_t chars_Cham[] = {0xaa00,0xaa5f};
static const uint32_t chars_Myanmar_Extended_A[] = {0xaa60,0xaa7f};
static const uint32_t chars_Tai_Viet[] = {0xaa80,0xaadf};
static const uint32_t chars_Meetei_Mayek_Extensions[] = {0xaae0,0xaaff};
static const uint32_t chars_Ethiopic_Extended_A[] = {0xab00,0xab2f};
static const uint32_t chars_Latin_Extended_E[] = {0xab30,0xab6f};
static const uint32_t chars_Cherokee_Supplement[] = {0xab70,0xabbf};
static const uint32_t chars_Meetei_Mayek[] = {0xabc0,0xabff};
static const uint32_t chars_Hangul_Syllables[] = {0xac00,0xd7af};
static const uint32_t chars_Hangul_Jamo_Extended_B[] = {0xd7b0,0xd7ff};
static const uint32_t chars_High_Surrogates[] = {0xd800,0xdb7f};
static const uint32_t chars_High_Private_Use_Surrogates[] = {0xdb80,0xdbff};
static const uint32_t chars_Low_Surrogates[] = {0xdc00,0xdfff};
static const uint32_t chars_Private_Use_Area[] = {0xe000,0xf8ff};
static const uint32_t chars_CJK_Compatibility_Ideographs[] = {0xf900,0xfaff};
static const uint32_t chars_Alphabetic_Presentation_Forms[] = {0xfb00,0xfb4f};
static const uint32_t chars_Arabic_Presentation_Forms_A[] = {0xfb50,0xfdff};
static const uint32_t chars_Variation_Selectors[] = {0xfe00,0xfe0f};
static const uint32_t chars_Vertical_Forms[] = {0xfe10,0xfe1f};
static const uint32_t chars_Combining_Half_Marks[] = {0xfe20,0xfe2f};
static const uint32_t chars_CJK_Compatibility_Forms[] = {0xfe30,0xfe4f};
static const uint32_t chars_Small_Form_Variants[] = {0xfe50,0xfe6f};
static const uint32_t chars_Arabic_Presentation_Forms_B[] = {0xfe70,0xfeff};
static const uint32_t chars_Halfwidth_and_Fullwidth_Forms[] = {0xff00,0xffef};
static const uint32_t chars_Specials[] = {0xfff0,0xffff};
static const uint32_t chars_Linear_B_Syllabary[] = {0x10000,0x1007f};
static const uint32_t chars_Linear_B_Ideograms[] = {0x10080,0x100ff};
static const uint32_t chars_Aegean_Numbers[] = {0x10100,0x1013f};
static const uint32_t chars_Ancient_Greek_Numbers[] = {0x10140,0x1018f};
static const uint32_t chars_Ancient_Symbols[] = {0x10190,0x101cf};
static const uint32_t chars_Phaistos_Disc[] = {0x101d0,0x101ff};
static const uint32_t chars_Lycian[] = {0x10280,0x1029f};
static const uint32_t chars_Carian[] = {0x102a0,0x102df};
static const uint32_t chars_Coptic_Epact_Numbers[] = {0x102e0,0x102ff};
static const uint32_t chars_Old_Italic[] = {0x10300,0x1032f};
static const uint32_t chars_Gothic[] = {0x10330,0x1034f};
static const uint32_t chars_Old_Permic[] = {0x10350,0x1037f};
static const uint32_t chars_Ugaritic[] = {0x10380,0x1039f};
static const uint32_t chars_Old_Persian[] = {0x103a0,0x103df};
static const uint32_t chars_Deseret[] = {0x10400,0x1044f};
static const uint32_t chars_Shavian[] = {0x10450,0x1047f};
static const uint32_t chars_Osmanya[] = {0x10480,0x104af};
static const uint32_t chars_Osage[] = {0x104b0,0x104ff};
static const uint32_t chars_Elbasan[] = {0x10500,0x1052f};
static const uint32_t chars_Caucasian_Albanian[] = {0x10530,0x1056f};
static const uint32_t chars_Vithkuqi[] = {0x10570,0x105bf};
static const uint32_t chars_Todhri[] = {0x105c0,0x105ff};
static const uint32_t chars_Linear_A[] = {0x10600,0x1077f};
static const uint32_t chars_Latin_Extended_F[] = {0x10780,0x107bf};
static const uint32_t chars_Cypriot_Syllabary[] = {0x10800,0x1083f};
static const uint32_t chars_Imperial_Aramaic[] = {0x10840,0x1085f};
static const uint32_t chars_Palmyrene[] = {0x10860,0x1087f};
static const uint32_t chars_Nabataean[] = {0x10880,0x108af};
static const uint32_t chars_Hatran[] = {0x108e0,0x108ff};
static const uint32_t chars_Phoenician[] = {0x10900,0x1091f};
static const uint32_t chars_Lydian[] = {0x10920,0x1093f};
static const uint32_t chars_Sidetic[] = {0x10940,0x1095f};
static const uint32_t chars_Meroitic_Hieroglyphs[] = {0x10980,0x1099f};
static const uint32_t chars_Meroitic_Cursive[] = {0x109a0,0x109ff};
static const uint32_t chars_Kharoshthi[] = {0x10a00,0x10a5f};
static const uint32_t chars_Old_South_Arabian[] = {0x10a60,0x10a7f};
static const uint32_t chars_Old_North_Arabian[] = {0x10a80,0x10a9f};
static const uint32_t chars_Manichaean[] = {0x10ac0,0x10aff};
static const uint32_t chars_Avestan[] = {0x10b00,0x10b3f};
static const uint32_t chars_Inscriptional_Parthian[] = {0x10b40,0x10b5f};
static const uint32_t chars_Inscriptional_Pahlavi[] = {0x10b60,0x10b7f};
static const uint32_t chars_Psalter_Pahlavi[] = {0x10b80,0x10baf};
static const uint32_t chars_Old_Turkic[] = {0x10c00,0x10c4f};
static const uint32_t chars_Old_Hungarian[] = {0x10c80,0x10cff};
static const uint32_t chars_Hanifi_Rohingya[] = {0x10d00,0x10d3f};
static const uint32_t chars_Garay[] = {0x10d40,0x10d8f};
static const uint32_t chars_Rumi_Numeral_Symbols[] = {0x10e60,0x10e7f};
static const uint32_t chars_Yezidi[] = {0x10e80,0x10ebf};
static const uint32_t chars_Arabic_Extended_C[] = {0x10ec0,0x10eff};
static const uint32_t chars_Old_Sogdian[] = {0x10f00,0x10f2f};
static const uint32_t chars_Sogdian[] = {0x10f30,0x10f6f};
static const uint32_t chars_Old_Uyghur[] = {0x10f70,0x10faf};
static const uint32_t chars_Chorasmian[] = {0x10fb0,0x10fdf};
static const uint32_t chars_Elymaic[] = {0x10fe0,0x10fff};
static const uint32_t chars_Brahmi[] = {0x11000,0x1107f};
static const uint32_t chars_Kaithi[] = {0x11080,0x110cf};
static const uint32_t chars_Sora_Sompeng[] = {0x110d0,0x110ff};
static const uint32_t chars_Chakma[] = {0x11100,0x1114f};
static const uint32_t chars_Mahajani[] = {0x11150,0x1117f};
static const uint32_t chars_Sharada[] = {0x11180,0x111df};
static const uint32_t chars_Sinhala_Archaic_Numbers[] = {0x111e0,0x111ff};
static const uint32_t chars_Khojki[] = {0x11200,0x1124f};
static const uint32_t chars_Multani[] = {0x11280,0x112af};
static const uint32_t chars_Khudawadi[] = {0x112b0,0x112ff};
static const uint32_t chars_Grantha[] = {0x11300,0x1137f};
static const uint32_t chars_Tulu_Tigalari[] = {0x11380,0x113ff};
static const uint32_t chars_Newa[] = {0x11400,0x1147f};
static const uint32_t chars_Tirhuta[] = {0x11480,0x114df};
static const uint32_t chars_Siddham[] = {0x11580,0x115ff};
static const uint32_t chars_Modi[] = {0x11600,0x1165f};
static const uint32_t chars_Mongolian_Supplement[] = {0x11660,0x1167f};
static const uint32_t chars_Takri[] = {0x11680,0x116cf};
static const uint32_t chars_Myanmar_Extended_C[] = {0x116d0,0x116ff};
static const uint32_t chars_Ahom[] = {0x11700,0x1174f};
static const uint32_t chars_Dogra[] = {0x11800,0x1184f};
static const uint32_t chars_Warang_Citi[] = {0x118a0,0x118ff};
static const uint32_t chars_Dives_Akuru[] = {0x11900,0x1195f};
static const uint32_t chars_Nandinagari[] = {0x119a0,0x119ff};
static const uint32_t chars_Zanabazar_Square[] = {0x11a00,0x11a4f};
static const uint32_t chars_Soyombo[] = {0x11a50,0x11aaf};
static const uint32_t chars_Unified_Canadian_Aboriginal_Syllabics_Extended_A[] = {0x11ab0,0x11abf};
static const uint32_t chars_Pau_Cin_Hau[] = {0x11ac0,0x11aff};
static const uint32_t chars_Devanagari_Extended_A[] = {0x11b00,0x11b5f};
static const uint32_t chars_Sharada_Supplement[] = {0x11b60,0x11b7f};
static const uint32_t chars_Sunuwar[] = {0x11bc0,0x11bff};
static const uint32_t chars_Bhaiksuki[] = {0x11c00,0x11c6f};
static const uint32_t chars_Marchen[] = {0x11c70,0x11cbf};
static const uint32_t chars_Masaram_Gondi[] = {0x11d00,0x11d5f};
static const uint32_t chars_Gunjala_Gondi[] = {0x11d60,0x11daf};
static const uint32_t chars_Tolong_Siki[] = {0x11db0,0x11def};
static const uint32_t chars_Makasar[] = {0x11ee0,0x11eff};
static const uint32_t chars_Kawi[] = {0x11f00,0x11f5f};
static const uint32_t chars_Lisu_Supplement[] = {0x11fb0,0x11fbf};
static const uint32_t chars_Tamil_Supplement[] = {0x11fc0,0x11fff};
static const uint32_t chars_Cuneiform[] = {0x12000,0x123ff};
static const uint32_t chars_Cuneiform_Numbers_and_Punctuation[] = {0x12400,0x1247f};
static const uint32_t chars_Early_Dynastic_Cuneiform[] = {0x12480,0x1254f};
static const uint32_t chars_Cypro_Minoan[] = {0x12f90,0x12fff};
static const uint32_t chars_Egyptian_Hieroglyphs[] = {0x13000,0x1342f};
static const uint32_t chars_Egyptian_Hieroglyph_Format_Controls[] = {0x13430,0x1345f};
static const uint32_t chars_Egyptian_Hieroglyphs_Extended_A[] = {0x13460,0x143ff};
static const uint32_t chars_Anatolian_Hieroglyphs[] = {0x14400,0x1467f};
static const uint32_t chars_Gurung_Khema[] = {0x16100,0x1613f};
static const uint32_t chars_Bamum_Supplement[] = {0x16800,0x16a3f};
static const uint32_t chars_Mro[] = {0x16a40,0x16a6f};
static const uint32_t chars_Tangsa[] = {0x16a70,0x16acf};
static const uint32_t chars_Bassa_Vah[] = {0x16ad0,0x16aff};
static const uint32_t chars_Pahawh_Hmong[] = {0x16b00,0x16b8f};
static const uint32_t chars_Kirat_Rai[] = {0x16d40,0x16d7f};
static const uint32_t chars_Medefaidrin[] = {0x16e40,0x16e9f};
static const uint32_t chars_Beria_Erfe[] = {0x16ea0,0x16edf};
static const uint32_t chars_Miao[] = {0x16f00,0x16f9f};
static const uint32_t chars_Ideographic_Symbols_and_Punctuation[] = {0x16fe0,0x16fff};
static const uint32_t chars_Tangut[] = {0x17000,0x187ff};
static const uint32_t chars_Tangut_Components[] = {0x18800,0x18aff};
static const uint32_t chars_Khitan_Small_Script[] = {0x18b00,0x18cff};
static const uint32_t chars_Tangut_Supplement[] = {0x18d00,0x18d7f};
static const uint32_t chars_Tangut_Components_Supplement[] = {0x18d80,0x18dff};
static const uint32_t chars_Kana_Extended_B[] = {0x1aff0,0x1afff};
static const uint32_t chars_Kana_Supplement[] = {0x1b000,0x1b0ff};
static const uint32_t chars_Kana_Extended_A[] = {0x1b100,0x1b12f};
static const uint32_t chars_Small_Kana_Extension[] = {0x1b130,0x1b16f};
static const uint32_t chars_Nushu[] = {0x1b170,0x1b2ff};
static const uint32_t chars_Duployan[] = {0x1bc00,0x1bc9f};
static const uint32_t chars_Shorthand_Format_Controls[] = {0x1bca0,0x1bcaf};
static const uint32_t chars_Symbols_for_Legacy_Computing_Supplement[] = {0x1cc00,0x1cebf};
static const uint32_t chars_Miscellaneous_Symbols_Supplement[] = {0x1cec0,0x1ceff};
static const uint32_t chars_Znamenny_Musical_Notation[] = {0x1cf00,0x1cfcf};
static const uint32_t chars_Byzantine_Musical_Symbols[] = {0x1d000,0x1d0ff};
static const uint32_t chars_Musical_Symbols[] = {0x1d100,0x1d1ff};
static const uint32_t chars_Ancient_Greek_Musical_Notation[] = {0x1d200,0x1d24f};
static const uint32_t chars_Kaktovik_Numerals[] = {0x1d2c0,0x1d2df};
static const uint32_t chars_Mayan_Numerals[] = {0x1d2e0,0x1d2ff};
static const uint32_t chars_Tai_Xuan_Jing_Symbols[] = {0x1d300,0x1d35f};
static const uint32_t chars_Counting_Rod_Numerals[] = {0x1d360,0x1d37f};
static const uint32_t chars_Mathematical_Alphanumeric_Symbols[] = {0x1d400,0x1d7ff};
static const uint32_t chars_Sutton_SignWriting[] = {0x1d800,0x1daaf};
static const uint32_t chars_Latin_Extended_G[] = {0x1df00,0x1dfff};
static const uint32_t chars_Glagolitic_Supplement[] = {0x1e000,0x1e02f};
static const uint32_t chars_Cyrillic_Extended_D[] = {0x1e030,0x1e08f};
static const uint32_t chars_Nyiakeng_Puachue_Hmong[] = {0x1e100,0x1e14f};
static const uint32_t chars_Toto[] = {0x1e290,0x1e2bf};
static const uint32_t chars_Wancho[] = {0x1e2c0,0x1e2ff};
static const uint32_t chars_Nag_Mundari[] = {0x1e4d0,0x1e4ff};
static const uint32_t chars_Ol_Onal[] = {0x1e5d0,0x1e5ff};
static const uint32_t chars_Tai_Yo[] = {0x1e6c0,0x1e6ff};
static const uint32_t chars_Ethiopic_Extended_B[] = {0x1e7e0,0x1e7ff};
static const uint32_t chars_Mende_Kikakui[] = {0x1e800,0x1e8df};
static const uint32_t chars_Adlam[] = {0x1e900,0x1e95f};
static const uint32_t chars_Indic_Siyaq_Numbers[] = {0x1ec70,0x1ecbf};
static const uint32_t chars_Ottoman_Siyaq_Numbers[] = {0x1ed00,0x1ed4f};
static const uint32_t chars_Arabic_Mathematical_Alphabetic_Symbols[] = {0x1ee00,0x1eeff};
static const uint32_t chars_Mahjong_Tiles[] = {0x1f000,0x1f02f};
static const uint32_t chars_Domino_Tiles[] = {0x1f030,0x1f09f};
static const uint32_t chars_Playing_Cards[] = {0x1f0a0,0x1f0ff};
static const uint32_t chars_Enclosed_Alphanumeric_Supplement[] = {0x1f100,0x1f1ff};
static const uint32_t chars_Enclosed_Ideographic_Supplement[] = {0x1f200,0x1f2ff};
static const uint32_t chars_Miscellaneous_Symbols_and_Pictographs[] = {0x1f300,0x1f5ff};
static const uint32_t chars_Emoticons[] = {0x1f600,0x1f64f};
static const uint32_t chars_Ornamental_Dingbats[] = {0x1f650,0x1f67f};
static const uint32_t chars_Transport_and_Map_Symbols[] = {0x1f680,0x1f6ff};
static const uint32_t chars_Alchemical_Symbols[] = {0x1f700,0x1f77f};
static const uint32_t chars_Geometric_Shapes_Extended[] = {0x1f780,0x1f7ff};
static const uint32_t chars_Supplemental_Arrows_C[] = {0x1f800,0x1f8ff};
static const uint32_t chars_Supplemental_Symbols_and_Pictographs[] = {0x1f900,0x1f9ff};
static const uint32_t chars_Chess_Symbols[] = {0x1fa00,0x1fa6f};
static const uint32_t chars_Symbols_and_Pictographs_Extended_A[] = {0x1fa70,0x1faff};
static const uint32_t chars_Symbols_for_Legacy_Computing[] = {0x1fb00,0x1fbff};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_B[] = {0x20000,0x2a6df};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_C[] = {0x2a700,0x2b73f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_D[] = {0x2b740,0x2b81f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_E[] = {0x2b820,0x2ceaf};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_F[] = {0x2ceb0,0x2ebef};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_I[] = {0x2ebf0,0x2ee5f};
static const uint32_t chars_CJK_Compatibility_Ideographs_Supplement[] = {0x2f800,0x2fa1f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_G[] = {0x30000,0x3134f};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_H[] = {0x31350,0x323af};
static const uint32_t chars_CJK_Unified_Ideographs_Extension_J[] = {0x323b0,0x3347f};
static const uint32_t chars_Tags[] = {0xe0000,0xe007f};
static const uint32_t chars_Variation_Selectors_Supplement[] = {0xe0100,0xe01ef};
static const uint32_t chars_Supplementary_Private_Use_Area_A[] = {0xf0000,0xfffff};
static const uint32_t chars_Supplementary_Private_Use_Area_B[] = {0x100000,0x10ffff};

static uint32_t encode_utf32(uint32_t first, uint32_t last, uint32_t* s) {
	uint32_t* const s0 = s;
	for (uint32_t i = first; i <= last; ++i) *s++ = i;
	for (uint32_t i = 0; i < 1; ++i) *s++ = (first == 0) ? 0xFFFFffff : 0;
	return s - s0;
}

int main() {
	YYCTYPE *buffer_Basic_Latin = new YYCTYPE[129];
	uint32_t buffer_Basic_Latin_len = encode_utf32(chars_Basic_Latin[0], chars_Basic_Latin[1], buffer_Basic_Latin) - 1;
	if (scan(buffer_Basic_Latin, buffer_Basic_Latin + buffer_Basic_Latin_len, Basic_Latin) != Basic_Latin)
		printf("test 'Basic_Latin' failed\n");
	delete[] buffer_Basic_Latin;

	YYCTYPE *buffer_Latin_1_Supplement = new YYCTYPE[129];
	uint32_t buffer_Latin_1_Supplement_len = encode_utf32(chars_Latin_1_Supplement[0], chars_Latin_1_Supplement[1], buffer_Latin_1_Supplement) - 1;
	if (scan(buffer_Latin_1_Supplement, buffer_Latin_1_Supplement + buffer_Latin_1_Supplement_len, Latin_1_Supplement) != Latin_1_Supplement)
		printf("test 'Latin_1_Supplement' failed\n");
	delete[] buffer_Latin_1_Supplement;

	YYCTYPE *buffer_Latin_Extended_A = new YYCTYPE[129];
	uint32_t buffer_Latin_Extended_A_len = encode_utf32(chars_Latin_Extended_A[0], chars_Latin_Extended_A[1], buffer_Latin_Extended_A) - 1;
	if (scan(buffer_Latin_Extended_A, buffer_Latin_Extended_A + buffer_Latin_Extended_A_len, Latin_Extended_A) != Latin_Extended_A)
		printf("test 'Latin_Extended_A' failed\n");
	delete[] buffer_Latin_Extended_A;

	YYCTYPE *buffer_Latin_Extended_B = new YYCTYPE[209];
	uint32_t buffer_Latin_Extended_B_len = encode_utf32(chars_Latin_Extended_B[0], chars_Latin_Extended_B[1], buffer_Latin_Extended_B) - 1;
	if (scan(buffer_Latin_Extended_B, buffer_Latin_Extended_B + buffer_Latin_Extended_B_len, Latin_Extended_B) != Latin_Extended_B)
		printf("test 'Latin_Extended_B' failed\n");
	delete[] buffer_Latin_Extended_B;

	YYCTYPE *buffer_IPA_Extensions = new YYCTYPE[97];
	uint32_t buffer_IPA_Extensions_len = encode_utf32(chars_IPA_Extensions[0], chars_IPA_Extensions[1], buffer_IPA_Extensions) - 1;
	if (scan(buffer_IPA_Extensions, buffer_IPA_Extensions + buffer_IPA_Extensions_len, IPA_Extensions) != IPA_Extensions)
		printf("test 'IPA_Extensions' failed\n");
	delete[] buffer_IPA_Extensions;

	YYCTYPE *buffer_Spacing_Modifier_Letters = new YYCTYPE[81];
	uint32_t buffer_Spacing_Modifier_Letters_len = encode_utf32(chars_Spacing_Modifier_Letters[0], chars_Spacing_Modifier_Letters[1], buffer_Spacing_Modifier_Letters) - 1;
	if (scan(buffer_Spacing_Modifier_Letters, buffer_Spacing_Modifier_Letters + buffer_Spacing_Modifier_Letters_len, Spacing_Modifier_Letters) != Spacing_Modifier_Letters)
		printf("test 'Spacing_Modifier_Letters' failed\n");
	delete[] buffer_Spacing_Modifier_Letters;

	YYCTYPE *buffer_Combining_Diacritical_Marks = new YYCTYPE[113];
	uint32_t buffer_Combining_Diacritical_Marks_len = encode_utf32(chars_Combining_Diacritical_Marks[0], chars_Combining_Diacritical_Marks[1], buffer_Combining_Diacritical_Marks) - 1;
	if (scan(buffer_Combining_Diacritical_Marks, buffer_Combining_Diacritical_Marks + buffer_Combining_Diacritical_Marks_len, Combining_Diacritical_Marks) != Combining_Diacritical_Marks)
		printf("test 'Combining_Diacritical_Marks' failed\n");
	delete[] buffer_Combining_Diacritical_Marks;

	YYCTYPE *buffer_Greek_and_Coptic = new YYCTYPE[145];
	uint32_t buffer_Greek_and_Coptic_len = encode_utf32(chars_Greek_and_Coptic[0], chars_Greek_and_Coptic[1], buffer_Greek_and_Coptic) - 1;
	if (scan(buffer_Greek_and_Coptic, buffer_Greek_and_Coptic + buffer_Greek_and_Coptic_len, Greek_and_Coptic) != Greek_and_Coptic)
		printf("test 'Greek_and_Coptic' failed\n");
	delete[] buffer_Greek_and_Coptic;

	YYCTYPE *buffer_Cyrillic = new YYCTYPE[257];
	uint32_t buffer_Cyrillic_len = encode_utf32(chars_Cyrillic[0], chars_Cyrillic[1], buffer_Cyrillic) - 1;
	if (scan(buffer_Cyrillic, buffer_Cyrillic + buffer_Cyrillic_len, Cyrillic) != Cyrillic)
		printf("test 'Cyrillic' failed\n");
	delete[] buffer_Cyrillic;

	YYCTYPE *buffer_Cyrillic_Supplement = new YYCTYPE[49];
	uint32_t buffer_Cyrillic_Supplement_len = encode_utf32(chars_Cyrillic_Supplement[0], chars_Cyrillic_Supplement[1], buffer_Cyrillic_Supplement) - 1;
	if (scan(buffer_Cyrillic_Supplement, buffer_Cyrillic_Supplement + buffer_Cyrillic_Supplement_len, Cyrillic_Supplement) != Cyrillic_Supplement)
		printf("test 'Cyrillic_Supplement' failed\n");
	delete[] buffer_Cyrillic_Supplement;

	YYCTYPE *buffer_Armenian = new YYCTYPE[97];
	uint32_t buffer_Armenian_len = encode_utf32(chars_Armenian[0], chars_Armenian[1], buffer_Armenian) - 1;
	if (scan(buffer_Armenian, buffer_Armenian + buffer_Armenian_len, Armenian) != Armenian)
		printf("test 'Armenian' failed\n");
	delete[] buffer_Armenian;

	YYCTYPE *buffer_Hebrew = new YYCTYPE[113];
	uint32_t buffer_Hebrew_len = encode_utf32(chars_Hebrew[0], chars_Hebrew[1], buffer_Hebrew) - 1;
	if (scan(buffer_Hebrew, buffer_Hebrew + buffer_Hebrew_len, Hebrew) != Hebrew)
		printf("test 'Hebrew' failed\n");
	delete[] buffer_Hebrew;

	YYCTYPE *buffer_Arabic = new YYCTYPE[257];
	uint32_t buffer_Arabic_len = encode_utf32(chars_Arabic[0], chars_Arabic[1], buffer_Arabic) - 1;
	if (scan(buffer_Arabic, buffer_Arabic + buffer_Arabic_len, Arabic) != Arabic)
		printf("test 'Arabic' failed\n");
	delete[] buffer_Arabic;

	YYCTYPE *buffer_Syriac = new YYCTYPE[81];
	uint32_t buffer_Syriac_len = encode_utf32(chars_Syriac[0], chars_Syriac[1], buffer_Syriac) - 1;
	if (scan(buffer_Syriac, buffer_Syriac + buffer_Syriac_len, Syriac) != Syriac)
		printf("test 'Syriac' failed\n");
	delete[] buffer_Syriac;

	YYCTYPE *buffer_Arabic_Supplement = new YYCTYPE[49];
	uint32_t buffer_Arabic_Supplement_len = encode_utf32(chars_Arabic_Supplement[0], chars_Arabic_Supplement[1], buffer_Arabic_Supplement) - 1;
	if (scan(buffer_Arabic_Supplement, buffer_Arabic_Supplement + buffer_Arabic_Supplement_len, Arabic_Supplement) != Arabic_Supplement)
		printf("test 'Arabic_Supplement' failed\n");
	delete[] buffer_Arabic_Supplement;

	YYCTYPE *buffer_Thaana = new YYCTYPE[65];
	uint32_t buffer_Thaana_len = encode_utf32(chars_Thaana[0], chars_Thaana[1], buffer_Thaana) - 1;
	if (scan(buffer_Thaana, buffer_Thaana + buffer_Thaana_len, Thaana) != Thaana)
		printf("test 'Thaana' failed\n");
	delete[] buffer_Thaana;

	YYCTYPE *buffer_NKo = new YYCTYPE[65];
	uint32_t buffer_NKo_len = encode_utf32(chars_NKo[0], chars_NKo[1], buffer_NKo) - 1;
	if (scan(buffer_NKo, buffer_NKo + buffer_NKo_len, NKo) != NKo)
		printf("test 'NKo' failed\n");
	delete[] buffer_NKo;

	YYCTYPE *buffer_Samaritan = new YYCTYPE[65];
	uint32_t buffer_Samaritan_len = encode_utf32(chars_Samaritan[0], chars_Samaritan[1], buffer_Samaritan) - 1;
	if (scan(buffer_Samaritan, buffer_Samaritan + buffer_Samaritan_len, Samaritan) != Samaritan)
		printf("test 'Samaritan' failed\n");
	delete[] buffer_Samaritan;

	YYCTYPE *buffer_Mandaic = new YYCTYPE[33];
	uint32_t buffer_Mandaic_len = encode_utf32(chars_Mandaic[0], chars_Mandaic[1], buffer_Mandaic) - 1;
	if (scan(buffer_Mandaic, buffer_Mandaic + buffer_Mandaic_len, Mandaic) != Mandaic)
		printf("test 'Mandaic' failed\n");
	delete[] buffer_Mandaic;

	YYCTYPE *buffer_Syriac_Supplement = new YYCTYPE[17];
	uint32_t buffer_Syriac_Supplement_len = encode_utf32(chars_Syriac_Supplement[0], chars_Syriac_Supplement[1], buffer_Syriac_Supplement) - 1;
	if (scan(buffer_Syriac_Supplement, buffer_Syriac_Supplement + buffer_Syriac_Supplement_len, Syriac_Supplement) != Syriac_Supplement)
		printf("test 'Syriac_Supplement' failed\n");
	delete[] buffer_Syriac_Supplement;

	YYCTYPE *buffer_Arabic_Extended_B = new YYCTYPE[49];
	uint32_t buffer_Arabic_Extended_B_len = encode_utf32(chars_Arabic_Extended_B[0], chars_Arabic_Extended_B[1], buffer_Arabic_Extended_B) - 1;
	if (scan(buffer_Arabic_Extended_B, buffer_Arabic_Extended_B + buffer_Arabic_Extended_B_len, Arabic_Extended_B) != Arabic_Extended_B)
		printf("test 'Arabic_Extended_B' failed\n");
	delete[] buffer_Arabic_Extended_B;

	YYCTYPE *buffer_Arabic_Extended_A = new YYCTYPE[97];
	uint32_t buffer_Arabic_Extended_A_len = encode_utf32(chars_Arabic_Extended_A[0], chars_Arabic_Extended_A[1], buffer_Arabic_Extended_A) - 1;
	if (scan(buffer_Arabic_Extended_A, buffer_Arabic_Extended_A + buffer_Arabic_Extended_A_len, Arabic_Extended_A) != Arabic_Extended_A)
		printf("test 'Arabic_Extended_A' failed\n");
	delete[] buffer_Arabic_Extended_A;

	YYCTYPE *buffer_Devanagari = new YYCTYPE[129];
	uint32_t buffer_Devanagari_len = encode_utf32(chars_Devanagari[0], chars_Devanagari[1], buffer_Devanagari) - 1;
	if (scan(buffer_Devanagari, buffer_Devanagari + buffer_Devanagari_len, Devanagari) != Devanagari)
		printf("test 'Devanagari' failed\n");
	delete[] buffer_Devanagari;

	YYCTYPE *buffer_Bengali = new YYCTYPE[129];
	uint32_t buffer_Bengali_len = encode_utf32(chars_Bengali[0], chars_Bengali[1], buffer_Bengali) - 1;
	if (scan(buffer_Bengali, buffer_Bengali + buffer_Bengali_len, Bengali) != Bengali)
		printf("test 'Bengali' failed\n");
	delete[] buffer_Bengali;

	YYCTYPE *buffer_Gurmukhi = new YYCTYPE[129];
	uint32_t buffer_Gurmukhi_len = encode_utf32(chars_Gurmukhi[0], chars_Gurmukhi[1], buffer_Gurmukhi) - 1;
	if (scan(buffer_Gurmukhi, buffer_Gurmukhi + buffer_Gurmukhi_len, Gurmukhi) != Gurmukhi)
		printf("test 'Gurmukhi' failed\n");
	delete[] buffer_Gurmukhi;

	YYCTYPE *buffer_Gujarati = new YYCTYPE[129];
	uint32_t buffer_Gujarati_len = encode_utf32(chars_Gujarati[0], chars_Gujarati[1], buffer_Gujarati) - 1;
	if (scan(buffer_Gujarati, buffer_Gujarati + buffer_Gujarati_len, Gujarati) != Gujarati)
		printf("test 'Gujarati' failed\n");
	delete[] buffer_Gujarati;

	YYCTYPE *buffer_Oriya = new YYCTYPE[129];
	uint32_t buffer_Oriya_len = encode_utf32(chars_Oriya[0], chars_Oriya[1], buffer_Oriya) - 1;
	if (scan(buffer_Oriya, buffer_Oriya + buffer_Oriya_len, Oriya) != Oriya)
		printf("test 'Oriya' failed\n");
	delete[] buffer_Oriya;

	YYCTYPE *buffer_Tamil = new YYCTYPE[129];
	uint32_t buffer_Tamil_len = encode_utf32(chars_Tamil[0], chars_Tamil[1], buffer_Tamil) - 1;
	if (scan(buffer_Tamil, buffer_Tamil + buffer_Tamil_len, Tamil) != Tamil)
		printf("test 'Tamil' failed\n");
	delete[] buffer_Tamil;

	YYCTYPE *buffer_Telugu = new YYCTYPE[129];
	uint32_t buffer_Telugu_len = encode_utf32(chars_Telugu[0], chars_Telugu[1], buffer_Telugu) - 1;
	if (scan(buffer_Telugu, buffer_Telugu + buffer_Telugu_len, Telugu) != Telugu)
		printf("test 'Telugu' failed\n");
	delete[] buffer_Telugu;

	YYCTYPE *buffer_Kannada = new YYCTYPE[129];
	uint32_t buffer_Kannada_len = encode_utf32(chars_Kannada[0], chars_Kannada[1], buffer_Kannada) - 1;
	if (scan(buffer_Kannada, buffer_Kannada + buffer_Kannada_len, Kannada) != Kannada)
		printf("test 'Kannada' failed\n");
	delete[] buffer_Kannada;

	YYCTYPE *buffer_Malayalam = new YYCTYPE[129];
	uint32_t buffer_Malayalam_len = encode_utf32(chars_Malayalam[0], chars_Malayalam[1], buffer_Malayalam) - 1;
	if (scan(buffer_Malayalam, buffer_Malayalam + buffer_Malayalam_len, Malayalam) != Malayalam)
		printf("test 'Malayalam' failed\n");
	delete[] buffer_Malayalam;

	YYCTYPE *buffer_Sinhala = new YYCTYPE[129];
	uint32_t buffer_Sinhala_len = encode_utf32(chars_Sinhala[0], chars_Sinhala[1], buffer_Sinhala) - 1;
	if (scan(buffer_Sinhala, buffer_Sinhala + buffer_Sinhala_len, Sinhala) != Sinhala)
		printf("test 'Sinhala' failed\n");
	delete[] buffer_Sinhala;

	YYCTYPE *buffer_Thai = new YYCTYPE[129];
	uint32_t buffer_Thai_len = encode_utf32(chars_Thai[0], chars_Thai[1], buffer_Thai) - 1;
	if (scan(buffer_Thai, buffer_Thai + buffer_Thai_len, Thai) != Thai)
		printf("test 'Thai' failed\n");
	delete[] buffer_Thai;

	YYCTYPE *buffer_Lao = new YYCTYPE[129];
	uint32_t buffer_Lao_len = encode_utf32(chars_Lao[0], chars_Lao[1], buffer_Lao) - 1;
	if (scan(buffer_Lao, buffer_Lao + buffer_Lao_len, Lao) != Lao)
		printf("test 'Lao' failed\n");
	delete[] buffer_Lao;

	YYCTYPE *buffer_Tibetan = new YYCTYPE[257];
	uint32_t buffer_Tibetan_len = encode_utf32(chars_Tibetan[0], chars_Tibetan[1], buffer_Tibetan) - 1;
	if (scan(buffer_Tibetan, buffer_Tibetan + buffer_Tibetan_len, Tibetan) != Tibetan)
		printf("test 'Tibetan' failed\n");
	delete[] buffer_Tibetan;

	YYCTYPE *buffer_Myanmar = new YYCTYPE[161];
	uint32_t buffer_Myanmar_len = encode_utf32(chars_Myanmar[0], chars_Myanmar[1], buffer_Myanmar) - 1;
	if (scan(buffer_Myanmar, buffer_Myanmar + buffer_Myanmar_len, Myanmar) != Myanmar)
		printf("test 'Myanmar' failed\n");
	delete[] buffer_Myanmar;

	YYCTYPE *buffer_Georgian = new YYCTYPE[97];
	uint32_t buffer_Georgian_len = encode_utf32(chars_Georgian[0], chars_Georgian[1], buffer_Georgian) - 1;
	if (scan(buffer_Georgian, buffer_Georgian + buffer_Georgian_len, Georgian) != Georgian)
		printf("test 'Georgian' failed\n");
	delete[] buffer_Georgian;

	YYCTYPE *buffer_Hangul_Jamo = new YYCTYPE[257];
	uint32_t buffer_Hangul_Jamo_len = encode_utf32(chars_Hangul_Jamo[0], chars_Hangul_Jamo[1], buffer_Hangul_Jamo) - 1;
	if (scan(buffer_Hangul_Jamo, buffer_Hangul_Jamo + buffer_Hangul_Jamo_len, Hangul_Jamo) != Hangul_Jamo)
		printf("test 'Hangul_Jamo' failed\n");
	delete[] buffer_Hangul_Jamo;

	YYCTYPE *buffer_Ethiopic = new YYCTYPE[385];
	uint32_t buffer_Ethiopic_len = encode_utf32(chars_Ethiopic[0], chars_Ethiopic[1], buffer_Ethiopic) - 1;
	if (scan(buffer_Ethiopic, buffer_Ethiopic + buffer_Ethiopic_len, Ethiopic) != Ethiopic)
		printf("test 'Ethiopic' failed\n");
	delete[] buffer_Ethiopic;

	YYCTYPE *buffer_Ethiopic_Supplement = new YYCTYPE[33];
	uint32_t buffer_Ethiopic_Supplement_len = encode_utf32(chars_Ethiopic_Supplement[0], chars_Ethiopic_Supplement[1], buffer_Ethiopic_Supplement) - 1;
	if (scan(buffer_Ethiopic_Supplement, buffer_Ethiopic_Supplement + buffer_Ethiopic_Supplement_len, Ethiopic_Supplement) != Ethiopic_Supplement)
		printf("test 'Ethiopic_Supplement' failed\n");
	delete[] buffer_Ethiopic_Supplement;

	YYCTYPE *buffer_Cherokee = new YYCTYPE[97];
	uint32_t buffer_Cherokee_len = encode_utf32(chars_Cherokee[0], chars_Cherokee[1], buffer_Cherokee) - 1;
	if (scan(buffer_Cherokee, buffer_Cherokee + buffer_Cherokee_len, Cherokee) != Cherokee)
		printf("test 'Cherokee' failed\n");
	delete[] buffer_Cherokee;

	YYCTYPE *buffer_Unified_Canadian_Aboriginal_Syllabics = new YYCTYPE[641];
	uint32_t buffer_Unified_Canadian_Aboriginal_Syllabics_len = encode_utf32(chars_Unified_Canadian_Aboriginal_Syllabics[0], chars_Unified_Canadian_Aboriginal_Syllabics[1], buffer_Unified_Canadian_Aboriginal_Syllabics) - 1;
	if (scan(buffer_Unified_Canadian_Aboriginal_Syllabics, buffer_Unified_Canadian_Aboriginal_Syllabics + buffer_Unified_Canadian_Aboriginal_Syllabics_len, Unified_Canadian_Aboriginal_Syllabics) != Unified_Canadian_Aboriginal_Syllabics)
		printf("test 'Unified_Canadian_Aboriginal_Syllabics' failed\n");
	delete[] buffer_Unified_Canadian_Aboriginal_Syllabics;

	YYCTYPE *buffer_Ogham = new YYCTYPE[33];
	uint32_t buffer_Ogham_len = encode_utf32(chars_Ogham[0], chars_Ogham[1], buffer_Ogham) - 1;
	if (scan(buffer_Ogham, buffer_Ogham + buffer_Ogham_len, Ogham) != Ogham)
		printf("test 'Ogham' failed\n");
	delete[] buffer_Ogham;

	YYCTYPE *buffer_Runic = new YYCTYPE[97];
	uint32_t buffer_Runic_len = encode_utf32(chars_Runic[0], chars_Runic[1], buffer_Runic) - 1;
	if (scan(buffer_Runic, buffer_Runic + buffer_Runic_len, Runic) != Runic)
		printf("test 'Runic' failed\n");
	delete[] buffer_Runic;

	YYCTYPE *buffer_Tagalog = new YYCTYPE[33];
	uint32_t buffer_Tagalog_len = encode_utf32(chars_Tagalog[0], chars_Tagalog[1], buffer_Tagalog) - 1;
	if (scan(buffer_Tagalog, buffer_Tagalog + buffer_Tagalog_len, Tagalog) != Tagalog)
		printf("test 'Tagalog' failed\n");
	delete[] buffer_Tagalog;

	YYCTYPE *buffer_Hanunoo = new YYCTYPE[33];
	uint32_t buffer_Hanunoo_len = encode_utf32(chars_Hanunoo[0], chars_Hanunoo[1], buffer_Hanunoo) - 1;
	if (scan(buffer_Hanunoo, buffer_Hanunoo + buffer_Hanunoo_len, Hanunoo) != Hanunoo)
		printf("test 'Hanunoo' failed\n");
	delete[] buffer_Hanunoo;

	YYCTYPE *buffer_Buhid = new YYCTYPE[33];
	uint32_t buffer_Buhid_len = encode_utf32(chars_Buhid[0], chars_Buhid[1], buffer_Buhid) - 1;
	if (scan(buffer_Buhid, buffer_Buhid + buffer_Buhid_len, Buhid) != Buhid)
		printf("test 'Buhid' failed\n");
	delete[] buffer_Buhid;

	YYCTYPE *buffer_Tagbanwa = new YYCTYPE[33];
	uint32_t buffer_Tagbanwa_len = encode_utf32(chars_Tagbanwa[0], chars_Tagbanwa[1], buffer_Tagbanwa) - 1;
	if (scan(buffer_Tagbanwa, buffer_Tagbanwa + buffer_Tagbanwa_len, Tagbanwa) != Tagbanwa)
		printf("test 'Tagbanwa' failed\n");
	delete[] buffer_Tagbanwa;

	YYCTYPE *buffer_Khmer = new YYCTYPE[129];
	uint32_t buffer_Khmer_len = encode_utf32(chars_Khmer[0], chars_Khmer[1], buffer_Khmer) - 1;
	if (scan(buffer_Khmer, buffer_Khmer + buffer_Khmer_len, Khmer) != Khmer)
		printf("test 'Khmer' failed\n");
	delete[] buffer_Khmer;

	YYCTYPE *buffer_Mongolian = new YYCTYPE[177];
	uint32_t buffer_Mongolian_len = encode_utf32(chars_Mongolian[0], chars_Mongolian[1], buffer_Mongolian) - 1;
	if (scan(buffer_Mongolian, buffer_Mongolian + buffer_Mongolian_len, Mongolian) != Mongolian)
		printf("test 'Mongolian' failed\n");
	delete[] buffer_Mongolian;

	YYCTYPE *buffer_Unified_Canadian_Aboriginal_Syllabics_Extended = new YYCTYPE[81];
	uint32_t buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_len = encode_utf32(chars_Unified_Canadian_Aboriginal_Syllabics_Extended[0], chars_Unified_Canadian_Aboriginal_Syllabics_Extended[1], buffer_Unified_Canadian_Aboriginal_Syllabics_Extended) - 1;
	if (scan(buffer_Unified_Canadian_Aboriginal_Syllabics_Extended, buffer_Unified_Canadian_Aboriginal_Syllabics_Extended + buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_len, Unified_Canadian_Aboriginal_Syllabics_Extended) != Unified_Canadian_Aboriginal_Syllabics_Extended)
		printf("test 'Unified_Canadian_Aboriginal_Syllabics_Extended' failed\n");
	delete[] buffer_Unified_Canadian_Aboriginal_Syllabics_Extended;

	YYCTYPE *buffer_Limbu = new YYCTYPE[81];
	uint32_t buffer_Limbu_len = encode_utf32(chars_Limbu[0], chars_Limbu[1], buffer_Limbu) - 1;
	if (scan(buffer_Limbu, buffer_Limbu + buffer_Limbu_len, Limbu) != Limbu)
		printf("test 'Limbu' failed\n");
	delete[] buffer_Limbu;

	YYCTYPE *buffer_Tai_Le = new YYCTYPE[49];
	uint32_t buffer_Tai_Le_len = encode_utf32(chars_Tai_Le[0], chars_Tai_Le[1], buffer_Tai_Le) - 1;
	if (scan(buffer_Tai_Le, buffer_Tai_Le + buffer_Tai_Le_len, Tai_Le) != Tai_Le)
		printf("test 'Tai_Le' failed\n");
	delete[] buffer_Tai_Le;

	YYCTYPE *buffer_New_Tai_Lue = new YYCTYPE[97];
	uint32_t buffer_New_Tai_Lue_len = encode_utf32(chars_New_Tai_Lue[0], chars_New_Tai_Lue[1], buffer_New_Tai_Lue) - 1;
	if (scan(buffer_New_Tai_Lue, buffer_New_Tai_Lue + buffer_New_Tai_Lue_len, New_Tai_Lue) != New_Tai_Lue)
		printf("test 'New_Tai_Lue' failed\n");
	delete[] buffer_New_Tai_Lue;

	YYCTYPE *buffer_Khmer_Symbols = new YYCTYPE[33];
	uint32_t buffer_Khmer_Symbols_len = encode_utf32(chars_Khmer_Symbols[0], chars_Khmer_Symbols[1], buffer_Khmer_Symbols) - 1;
	if (scan(buffer_Khmer_Symbols, buffer_Khmer_Symbols + buffer_Khmer_Symbols_len, Khmer_Symbols) != Khmer_Symbols)
		printf("test 'Khmer_Symbols' failed\n");
	delete[] buffer_Khmer_Symbols;

	YYCTYPE *buffer_Buginese = new YYCTYPE[33];
	uint32_t buffer_Buginese_len = encode_utf32(chars_Buginese[0], chars_Buginese[1], buffer_Buginese) - 1;
	if (scan(buffer_Buginese, buffer_Buginese + buffer_Buginese_len, Buginese) != Buginese)
		printf("test 'Buginese' failed\n");
	delete[] buffer_Buginese;

	YYCTYPE *buffer_Tai_Tham = new YYCTYPE[145];
	uint32_t buffer_Tai_Tham_len = encode_utf32(chars_Tai_Tham[0], chars_Tai_Tham[1], buffer_Tai_Tham) - 1;
	if (scan(buffer_Tai_Tham, buffer_Tai_Tham + buffer_Tai_Tham_len, Tai_Tham) != Tai_Tham)
		printf("test 'Tai_Tham' failed\n");
	delete[] buffer_Tai_Tham;

	YYCTYPE *buffer_Combining_Diacritical_Marks_Extended = new YYCTYPE[81];
	uint32_t buffer_Combining_Diacritical_Marks_Extended_len = encode_utf32(chars_Combining_Diacritical_Marks_Extended[0], chars_Combining_Diacritical_Marks_Extended[1], buffer_Combining_Diacritical_Marks_Extended) - 1;
	if (scan(buffer_Combining_Diacritical_Marks_Extended, buffer_Combining_Diacritical_Marks_Extended + buffer_Combining_Diacritical_Marks_Extended_len, Combining_Diacritical_Marks_Extended) != Combining_Diacritical_Marks_Extended)
		printf("test 'Combining_Diacritical_Marks_Extended' failed\n");
	delete[] buffer_Combining_Diacritical_Marks_Extended;

	YYCTYPE *buffer_Balinese = new YYCTYPE[129];
	uint32_t buffer_Balinese_len = encode_utf32(chars_Balinese[0], chars_Balinese[1], buffer_Balinese) - 1;
	if (scan(buffer_Balinese, buffer_Balinese + buffer_Balinese_len, Balinese) != Balinese)
		printf("test 'Balinese' failed\n");
	delete[] buffer_Balinese;

	YYCTYPE *buffer_Sundanese = new YYCTYPE[65];
	uint32_t buffer_Sundanese_len = encode_utf32(chars_Sundanese[0], chars_Sundanese[1], buffer_Sundanese) - 1;
	if (scan(buffer_Sundanese, buffer_Sundanese + buffer_Sundanese_len, Sundanese) != Sundanese)
		printf("test 'Sundanese' failed\n");
	delete[] buffer_Sundanese;

	YYCTYPE *buffer_Batak = new YYCTYPE[65];
	uint32_t buffer_Batak_len = encode_utf32(chars_Batak[0], chars_Batak[1], buffer_Batak) - 1;
	if (scan(buffer_Batak, buffer_Batak + buffer_Batak_len, Batak) != Batak)
		printf("test 'Batak' failed\n");
	delete[] buffer_Batak;

	YYCTYPE *buffer_Lepcha = new YYCTYPE[81];
	uint32_t buffer_Lepcha_len = encode_utf32(chars_Lepcha[0], chars_Lepcha[1], buffer_Lepcha) - 1;
	if (scan(buffer_Lepcha, buffer_Lepcha + buffer_Lepcha_len, Lepcha) != Lepcha)
		printf("test 'Lepcha' failed\n");
	delete[] buffer_Lepcha;

	YYCTYPE *buffer_Ol_Chiki = new YYCTYPE[49];
	uint32_t buffer_Ol_Chiki_len = encode_utf32(chars_Ol_Chiki[0], chars_Ol_Chiki[1], buffer_Ol_Chiki) - 1;
	if (scan(buffer_Ol_Chiki, buffer_Ol_Chiki + buffer_Ol_Chiki_len, Ol_Chiki) != Ol_Chiki)
		printf("test 'Ol_Chiki' failed\n");
	delete[] buffer_Ol_Chiki;

	YYCTYPE *buffer_Cyrillic_Extended_C = new YYCTYPE[17];
	uint32_t buffer_Cyrillic_Extended_C_len = encode_utf32(chars_Cyrillic_Extended_C[0], chars_Cyrillic_Extended_C[1], buffer_Cyrillic_Extended_C) - 1;
	if (scan(buffer_Cyrillic_Extended_C, buffer_Cyrillic_Extended_C + buffer_Cyrillic_Extended_C_len, Cyrillic_Extended_C) != Cyrillic_Extended_C)
		printf("test 'Cyrillic_Extended_C' failed\n");
	delete[] buffer_Cyrillic_Extended_C;

	YYCTYPE *buffer_Georgian_Extended = new YYCTYPE[49];
	uint32_t buffer_Georgian_Extended_len = encode_utf32(chars_Georgian_Extended[0], chars_Georgian_Extended[1], buffer_Georgian_Extended) - 1;
	if (scan(buffer_Georgian_Extended, buffer_Georgian_Extended + buffer_Georgian_Extended_len, Georgian_Extended) != Georgian_Extended)
		printf("test 'Georgian_Extended' failed\n");
	delete[] buffer_Georgian_Extended;

	YYCTYPE *buffer_Sundanese_Supplement = new YYCTYPE[17];
	uint32_t buffer_Sundanese_Supplement_len = encode_utf32(chars_Sundanese_Supplement[0], chars_Sundanese_Supplement[1], buffer_Sundanese_Supplement) - 1;
	if (scan(buffer_Sundanese_Supplement, buffer_Sundanese_Supplement + buffer_Sundanese_Supplement_len, Sundanese_Supplement) != Sundanese_Supplement)
		printf("test 'Sundanese_Supplement' failed\n");
	delete[] buffer_Sundanese_Supplement;

	YYCTYPE *buffer_Vedic_Extensions = new YYCTYPE[49];
	uint32_t buffer_Vedic_Extensions_len = encode_utf32(chars_Vedic_Extensions[0], chars_Vedic_Extensions[1], buffer_Vedic_Extensions) - 1;
	if (scan(buffer_Vedic_Extensions, buffer_Vedic_Extensions + buffer_Vedic_Extensions_len, Vedic_Extensions) != Vedic_Extensions)
		printf("test 'Vedic_Extensions' failed\n");
	delete[] buffer_Vedic_Extensions;

	YYCTYPE *buffer_Phonetic_Extensions = new YYCTYPE[129];
	uint32_t buffer_Phonetic_Extensions_len = encode_utf32(chars_Phonetic_Extensions[0], chars_Phonetic_Extensions[1], buffer_Phonetic_Extensions) - 1;
	if (scan(buffer_Phonetic_Extensions, buffer_Phonetic_Extensions + buffer_Phonetic_Extensions_len, Phonetic_Extensions) != Phonetic_Extensions)
		printf("test 'Phonetic_Extensions' failed\n");
	delete[] buffer_Phonetic_Extensions;

	YYCTYPE *buffer_Phonetic_Extensions_Supplement = new YYCTYPE[65];
	uint32_t buffer_Phonetic_Extensions_Supplement_len = encode_utf32(chars_Phonetic_Extensions_Supplement[0], chars_Phonetic_Extensions_Supplement[1], buffer_Phonetic_Extensions_Supplement) - 1;
	if (scan(buffer_Phonetic_Extensions_Supplement, buffer_Phonetic_Extensions_Supplement + buffer_Phonetic_Extensions_Supplement_len, Phonetic_Extensions_Supplement) != Phonetic_Extensions_Supplement)
		printf("test 'Phonetic_Extensions_Supplement' failed\n");
	delete[] buffer_Phonetic_Extensions_Supplement;

	YYCTYPE *buffer_Combining_Diacritical_Marks_Supplement = new YYCTYPE[65];
	uint32_t buffer_Combining_Diacritical_Marks_Supplement_len = encode_utf32(chars_Combining_Diacritical_Marks_Supplement[0], chars_Combining_Diacritical_Marks_Supplement[1], buffer_Combining_Diacritical_Marks_Supplement) - 1;
	if (scan(buffer_Combining_Diacritical_Marks_Supplement, buffer_Combining_Diacritical_Marks_Supplement + buffer_Combining_Diacritical_Marks_Supplement_len, Combining_Diacritical_Marks_Supplement) != Combining_Diacritical_Marks_Supplement)
		printf("test 'Combining_Diacritical_Marks_Supplement' failed\n");
	delete[] buffer_Combining_Diacritical_Marks_Supplement;

	YYCTYPE *buffer_Latin_Extended_Additional = new YYCTYPE[257];
	uint32_t buffer_Latin_Extended_Additional_len = encode_utf32(chars_Latin_Extended_Additional[0], chars_Latin_Extended_Additional[1], buffer_Latin_Extended_Additional) - 1;
	if (scan(buffer_Latin_Extended_Additional, buffer_Latin_Extended_Additional + buffer_Latin_Extended_Additional_len, Latin_Extended_Additional) != Latin_Extended_Additional)
		printf("test 'Latin_Extended_Additional' failed\n");
	delete[] buffer_Latin_Extended_Additional;

	YYCTYPE *buffer_Greek_Extended = new YYCTYPE[257];
	uint32_t buffer_Greek_Extended_len = encode_utf32(chars_Greek_Extended[0], chars_Greek_Extended[1], buffer_Greek_Extended) - 1;
	if (scan(buffer_Greek_Extended, buffer_Greek_Extended + buffer_Greek_Extended_len, Greek_Extended) != Greek_Extended)
		printf("test 'Greek_Extended' failed\n");
	delete[] buffer_Greek_Extended;

	YYCTYPE *buffer_General_Punctuation = new YYCTYPE[113];
	uint32_t buffer_General_Punctuation_len = encode_utf32(chars_General_Punctuation[0], chars_General_Punctuation[1], buffer_General_Punctuation) - 1;
	if (scan(buffer_General_Punctuation, buffer_General_Punctuation + buffer_General_Punctuation_len, General_Punctuation) != General_Punctuation)
		printf("test 'General_Punctuation' failed\n");
	delete[] buffer_General_Punctuation;

	YYCTYPE *buffer_Superscripts_and_Subscripts = new YYCTYPE[49];
	uint32_t buffer_Superscripts_and_Subscripts_len = encode_utf32(chars_Superscripts_and_Subscripts[0], chars_Superscripts_and_Subscripts[1], buffer_Superscripts_and_Subscripts) - 1;
	if (scan(buffer_Superscripts_and_Subscripts, buffer_Superscripts_and_Subscripts + buffer_Superscripts_and_Subscripts_len, Superscripts_and_Subscripts) != Superscripts_and_Subscripts)
		printf("test 'Superscripts_and_Subscripts' failed\n");
	delete[] buffer_Superscripts_and_Subscripts;

	YYCTYPE *buffer_Currency_Symbols = new YYCTYPE[49];
	uint32_t buffer_Currency_Symbols_len = encode_utf32(chars_Currency_Symbols[0], chars_Currency_Symbols[1], buffer_Currency_Symbols) - 1;
	if (scan(buffer_Currency_Symbols, buffer_Currency_Symbols + buffer_Currency_Symbols_len, Currency_Symbols) != Currency_Symbols)
		printf("test 'Currency_Symbols' failed\n");
	delete[] buffer_Currency_Symbols;

	YYCTYPE *buffer_Combining_Diacritical_Marks_for_Symbols = new YYCTYPE[49];
	uint32_t buffer_Combining_Diacritical_Marks_for_Symbols_len = encode_utf32(chars_Combining_Diacritical_Marks_for_Symbols[0], chars_Combining_Diacritical_Marks_for_Symbols[1], buffer_Combining_Diacritical_Marks_for_Symbols) - 1;
	if (scan(buffer_Combining_Diacritical_Marks_for_Symbols, buffer_Combining_Diacritical_Marks_for_Symbols + buffer_Combining_Diacritical_Marks_for_Symbols_len, Combining_Diacritical_Marks_for_Symbols) != Combining_Diacritical_Marks_for_Symbols)
		printf("test 'Combining_Diacritical_Marks_for_Symbols' failed\n");
	delete[] buffer_Combining_Diacritical_Marks_for_Symbols;

	YYCTYPE *buffer_Letterlike_Symbols = new YYCTYPE[81];
	uint32_t buffer_Letterlike_Symbols_len = encode_utf32(chars_Letterlike_Symbols[0], chars_Letterlike_Symbols[1], buffer_Letterlike_Symbols) - 1;
	if (scan(buffer_Letterlike_Symbols, buffer_Letterlike_Symbols + buffer_Letterlike_Symbols_len, Letterlike_Symbols) != Letterlike_Symbols)
		printf("test 'Letterlike_Symbols' failed\n");
	delete[] buffer_Letterlike_Symbols;

	YYCTYPE *buffer_Number_Forms = new YYCTYPE[65];
	uint32_t buffer_Number_Forms_len = encode_utf32(chars_Number_Forms[0], chars_Number_Forms[1], buffer_Number_Forms) - 1;
	if (scan(buffer_Number_Forms, buffer_Number_Forms + buffer_Number_Forms_len, Number_Forms) != Number_Forms)
		printf("test 'Number_Forms' failed\n");
	delete[] buffer_Number_Forms;

	YYCTYPE *buffer_Arrows = new YYCTYPE[113];
	uint32_t buffer_Arrows_len = encode_utf32(chars_Arrows[0], chars_Arrows[1], buffer_Arrows) - 1;
	if (scan(buffer_Arrows, buffer_Arrows + buffer_Arrows_len, Arrows) != Arrows)
		printf("test 'Arrows' failed\n");
	delete[] buffer_Arrows;

	YYCTYPE *buffer_Mathematical_Operators = new YYCTYPE[257];
	uint32_t buffer_Mathematical_Operators_len = encode_utf32(chars_Mathematical_Operators[0], chars_Mathematical_Operators[1], buffer_Mathematical_Operators) - 1;
	if (scan(buffer_Mathematical_Operators, buffer_Mathematical_Operators + buffer_Mathematical_Operators_len, Mathematical_Operators) != Mathematical_Operators)
		printf("test 'Mathematical_Operators' failed\n");
	delete[] buffer_Mathematical_Operators;

	YYCTYPE *buffer_Miscellaneous_Technical = new YYCTYPE[257];
	uint32_t buffer_Miscellaneous_Technical_len = encode_utf32(chars_Miscellaneous_Technical[0], chars_Miscellaneous_Technical[1], buffer_Miscellaneous_Technical) - 1;
	if (scan(buffer_Miscellaneous_Technical, buffer_Miscellaneous_Technical + buffer_Miscellaneous_Technical_len, Miscellaneous_Technical) != Miscellaneous_Technical)
		printf("test 'Miscellaneous_Technical' failed\n");
	delete[] buffer_Miscellaneous_Technical;

	YYCTYPE *buffer_Control_Pictures = new YYCTYPE[65];
	uint32_t buffer_Control_Pictures_len = encode_utf32(chars_Control_Pictures[0], chars_Control_Pictures[1], buffer_Control_Pictures) - 1;
	if (scan(buffer_Control_Pictures, buffer_Control_Pictures + buffer_Control_Pictures_len, Control_Pictures) != Control_Pictures)
		printf("test 'Control_Pictures' failed\n");
	delete[] buffer_Control_Pictures;

	YYCTYPE *buffer_Optical_Character_Recognition = new YYCTYPE[33];
	uint32_t buffer_Optical_Character_Recognition_len = encode_utf32(chars_Optical_Character_Recognition[0], chars_Optical_Character_Recognition[1], buffer_Optical_Character_Recognition) - 1;
	if (scan(buffer_Optical_Character_Recognition, buffer_Optical_Character_Recognition + buffer_Optical_Character_Recognition_len, Optical_Character_Recognition) != Optical_Character_Recognition)
		printf("test 'Optical_Character_Recognition' failed\n");
	delete[] buffer_Optical_Character_Recognition;

	YYCTYPE *buffer_Enclosed_Alphanumerics = new YYCTYPE[161];
	uint32_t buffer_Enclosed_Alphanumerics_len = encode_utf32(chars_Enclosed_Alphanumerics[0], chars_Enclosed_Alphanumerics[1], buffer_Enclosed_Alphanumerics) - 1;
	if (scan(buffer_Enclosed_Alphanumerics, buffer_Enclosed_Alphanumerics + buffer_Enclosed_Alphanumerics_len, Enclosed_Alphanumerics) != Enclosed_Alphanumerics)
		printf("test 'Enclosed_Alphanumerics' failed\n");
	delete[] buffer_Enclosed_Alphanumerics;

	YYCTYPE *buffer_Box_Drawing = new YYCTYPE[129];
	uint32_t buffer_Box_Drawing_len = encode_utf32(chars_Box_Drawing[0], chars_Box_Drawing[1], buffer_Box_Drawing) - 1;
	if (scan(buffer_Box_Drawing, buffer_Box_Drawing + buffer_Box_Drawing_len, Box_Drawing) != Box_Drawing)
		printf("test 'Box_Drawing' failed\n");
	delete[] buffer_Box_Drawing;

	YYCTYPE *buffer_Block_Elements = new YYCTYPE[33];
	uint32_t buffer_Block_Elements_len = encode_utf32(chars_Block_Elements[0], chars_Block_Elements[1], buffer_Block_Elements) - 1;
	if (scan(buffer_Block_Elements, buffer_Block_Elements + buffer_Block_Elements_len, Block_Elements) != Block_Elements)
		printf("test 'Block_Elements' failed\n");
	delete[] buffer_Block_Elements;

	YYCTYPE *buffer_Geometric_Shapes = new YYCTYPE[97];
	uint32_t buffer_Geometric_Shapes_len = encode_utf32(chars_Geometric_Shapes[0], chars_Geometric_Shapes[1], buffer_Geometric_Shapes) - 1;
	if (scan(buffer_Geometric_Shapes, buffer_Geometric_Shapes + buffer_Geometric_Shapes_len, Geometric_Shapes) != Geometric_Shapes)
		printf("test 'Geometric_Shapes' failed\n");
	delete[] buffer_Geometric_Shapes;

	YYCTYPE *buffer_Miscellaneous_Symbols = new YYCTYPE[257];
	uint32_t buffer_Miscellaneous_Symbols_len = encode_utf32(chars_Miscellaneous_Symbols[0], chars_Miscellaneous_Symbols[1], buffer_Miscellaneous_Symbols) - 1;
	if (scan(buffer_Miscellaneous_Symbols, buffer_Miscellaneous_Symbols + buffer_Miscellaneous_Symbols_len, Miscellaneous_Symbols) != Miscellaneous_Symbols)
		printf("test 'Miscellaneous_Symbols' failed\n");
	delete[] buffer_Miscellaneous_Symbols;

	YYCTYPE *buffer_Dingbats = new YYCTYPE[193];
	uint32_t buffer_Dingbats_len = encode_utf32(chars_Dingbats[0], chars_Dingbats[1], buffer_Dingbats) - 1;
	if (scan(buffer_Dingbats, buffer_Dingbats + buffer_Dingbats_len, Dingbats) != Dingbats)
		printf("test 'Dingbats' failed\n");
	delete[] buffer_Dingbats;

	YYCTYPE *buffer_Miscellaneous_Mathematical_Symbols_A = new YYCTYPE[49];
	uint32_t buffer_Miscellaneous_Mathematical_Symbols_A_len = encode_utf32(chars_Miscellaneous_Mathematical_Symbols_A[0], chars_Miscellaneous_Mathematical_Symbols_A[1], buffer_Miscellaneous_Mathematical_Symbols_A) - 1;
	if (scan(buffer_Miscellaneous_Mathematical_Symbols_A, buffer_Miscellaneous_Mathematical_Symbols_A + buffer_Miscellaneous_Mathematical_Symbols_A_len, Miscellaneous_Mathematical_Symbols_A) != Miscellaneous_Mathematical_Symbols_A)
		printf("test 'Miscellaneous_Mathematical_Symbols_A' failed\n");
	delete[] buffer_Miscellaneous_Mathematical_Symbols_A;

	YYCTYPE *buffer_Supplemental_Arrows_A = new YYCTYPE[17];
	uint32_t buffer_Supplemental_Arrows_A_len = encode_utf32(chars_Supplemental_Arrows_A[0], chars_Supplemental_Arrows_A[1], buffer_Supplemental_Arrows_A) - 1;
	if (scan(buffer_Supplemental_Arrows_A, buffer_Supplemental_Arrows_A + buffer_Supplemental_Arrows_A_len, Supplemental_Arrows_A) != Supplemental_Arrows_A)
		printf("test 'Supplemental_Arrows_A' failed\n");
	delete[] buffer_Supplemental_Arrows_A;

	YYCTYPE *buffer_Braille_Patterns = new YYCTYPE[257];
	uint32_t buffer_Braille_Patterns_len = encode_utf32(chars_Braille_Patterns[0], chars_Braille_Patterns[1], buffer_Braille_Patterns) - 1;
	if (scan(buffer_Braille_Patterns, buffer_Braille_Patterns + buffer_Braille_Patterns_len, Braille_Patterns) != Braille_Patterns)
		printf("test 'Braille_Patterns' failed\n");
	delete[] buffer_Braille_Patterns;

	YYCTYPE *buffer_Supplemental_Arrows_B = new YYCTYPE[129];
	uint32_t buffer_Supplemental_Arrows_B_len = encode_utf32(chars_Supplemental_Arrows_B[0], chars_Supplemental_Arrows_B[1], buffer_Supplemental_Arrows_B) - 1;
	if (scan(buffer_Supplemental_Arrows_B, buffer_Supplemental_Arrows_B + buffer_Supplemental_Arrows_B_len, Supplemental_Arrows_B) != Supplemental_Arrows_B)
		printf("test 'Supplemental_Arrows_B' failed\n");
	delete[] buffer_Supplemental_Arrows_B;

	YYCTYPE *buffer_Miscellaneous_Mathematical_Symbols_B = new YYCTYPE[129];
	uint32_t buffer_Miscellaneous_Mathematical_Symbols_B_len = encode_utf32(chars_Miscellaneous_Mathematical_Symbols_B[0], chars_Miscellaneous_Mathematical_Symbols_B[1], buffer_Miscellaneous_Mathematical_Symbols_B) - 1;
	if (scan(buffer_Miscellaneous_Mathematical_Symbols_B, buffer_Miscellaneous_Mathematical_Symbols_B + buffer_Miscellaneous_Mathematical_Symbols_B_len, Miscellaneous_Mathematical_Symbols_B) != Miscellaneous_Mathematical_Symbols_B)
		printf("test 'Miscellaneous_Mathematical_Symbols_B' failed\n");
	delete[] buffer_Miscellaneous_Mathematical_Symbols_B;

	YYCTYPE *buffer_Supplemental_Mathematical_Operators = new YYCTYPE[257];
	uint32_t buffer_Supplemental_Mathematical_Operators_len = encode_utf32(chars_Supplemental_Mathematical_Operators[0], chars_Supplemental_Mathematical_Operators[1], buffer_Supplemental_Mathematical_Operators) - 1;
	if (scan(buffer_Supplemental_Mathematical_Operators, buffer_Supplemental_Mathematical_Operators + buffer_Supplemental_Mathematical_Operators_len, Supplemental_Mathematical_Operators) != Supplemental_Mathematical_Operators)
		printf("test 'Supplemental_Mathematical_Operators' failed\n");
	delete[] buffer_Supplemental_Mathematical_Operators;

	YYCTYPE *buffer_Miscellaneous_Symbols_and_Arrows = new YYCTYPE[257];
	uint32_t buffer_Miscellaneous_Symbols_and_Arrows_len = encode_utf32(chars_Miscellaneous_Symbols_and_Arrows[0], chars_Miscellaneous_Symbols_and_Arrows[1], buffer_Miscellaneous_Symbols_and_Arrows) - 1;
	if (scan(buffer_Miscellaneous_Symbols_and_Arrows, buffer_Miscellaneous_Symbols_and_Arrows + buffer_Miscellaneous_Symbols_and_Arrows_len, Miscellaneous_Symbols_and_Arrows) != Miscellaneous_Symbols_and_Arrows)
		printf("test 'Miscellaneous_Symbols_and_Arrows' failed\n");
	delete[] buffer_Miscellaneous_Symbols_and_Arrows;

	YYCTYPE *buffer_Glagolitic = new YYCTYPE[97];
	uint32_t buffer_Glagolitic_len = encode_utf32(chars_Glagolitic[0], chars_Glagolitic[1], buffer_Glagolitic) - 1;
	if (scan(buffer_Glagolitic, buffer_Glagolitic + buffer_Glagolitic_len, Glagolitic) != Glagolitic)
		printf("test 'Glagolitic' failed\n");
	delete[] buffer_Glagolitic;

	YYCTYPE *buffer_Latin_Extended_C = new YYCTYPE[33];
	uint32_t buffer_Latin_Extended_C_len = encode_utf32(chars_Latin_Extended_C[0], chars_Latin_Extended_C[1], buffer_Latin_Extended_C) - 1;
	if (scan(buffer_Latin_Extended_C, buffer_Latin_Extended_C + buffer_Latin_Extended_C_len, Latin_Extended_C) != Latin_Extended_C)
		printf("test 'Latin_Extended_C' failed\n");
	delete[] buffer_Latin_Extended_C;

	YYCTYPE *buffer_Coptic = new YYCTYPE[129];
	uint32_t buffer_Coptic_len = encode_utf32(chars_Coptic[0], chars_Coptic[1], buffer_Coptic) - 1;
	if (scan(buffer_Coptic, buffer_Coptic + buffer_Coptic_len, Coptic) != Coptic)
		printf("test 'Coptic' failed\n");
	delete[] buffer_Coptic;

	YYCTYPE *buffer_Georgian_Supplement = new YYCTYPE[49];
	uint32_t buffer_Georgian_Supplement_len = encode_utf32(chars_Georgian_Supplement[0], chars_Georgian_Supplement[1], buffer_Georgian_Supplement) - 1;
	if (scan(buffer_Georgian_Supplement, buffer_Georgian_Supplement + buffer_Georgian_Supplement_len, Georgian_Supplement) != Georgian_Supplement)
		printf("test 'Georgian_Supplement' failed\n");
	delete[] buffer_Georgian_Supplement;

	YYCTYPE *buffer_Tifinagh = new YYCTYPE[81];
	uint32_t buffer_Tifinagh_len = encode_utf32(chars_Tifinagh[0], chars_Tifinagh[1], buffer_Tifinagh) - 1;
	if (scan(buffer_Tifinagh, buffer_Tifinagh + buffer_Tifinagh_len, Tifinagh) != Tifinagh)
		printf("test 'Tifinagh' failed\n");
	delete[] buffer_Tifinagh;

	YYCTYPE *buffer_Ethiopic_Extended = new YYCTYPE[97];
	uint32_t buffer_Ethiopic_Extended_len = encode_utf32(chars_Ethiopic_Extended[0], chars_Ethiopic_Extended[1], buffer_Ethiopic_Extended) - 1;
	if (scan(buffer_Ethiopic_Extended, buffer_Ethiopic_Extended + buffer_Ethiopic_Extended_len, Ethiopic_Extended) != Ethiopic_Extended)
		printf("test 'Ethiopic_Extended' failed\n");
	delete[] buffer_Ethiopic_Extended;

	YYCTYPE *buffer_Cyrillic_Extended_A = new YYCTYPE[33];
	uint32_t buffer_Cyrillic_Extended_A_len = encode_utf32(chars_Cyrillic_Extended_A[0], chars_Cyrillic_Extended_A[1], buffer_Cyrillic_Extended_A) - 1;
	if (scan(buffer_Cyrillic_Extended_A, buffer_Cyrillic_Extended_A + buffer_Cyrillic_Extended_A_len, Cyrillic_Extended_A) != Cyrillic_Extended_A)
		printf("test 'Cyrillic_Extended_A' failed\n");
	delete[] buffer_Cyrillic_Extended_A;

	YYCTYPE *buffer_Supplemental_Punctuation = new YYCTYPE[129];
	uint32_t buffer_Supplemental_Punctuation_len = encode_utf32(chars_Supplemental_Punctuation[0], chars_Supplemental_Punctuation[1], buffer_Supplemental_Punctuation) - 1;
	if (scan(buffer_Supplemental_Punctuation, buffer_Supplemental_Punctuation + buffer_Supplemental_Punctuation_len, Supplemental_Punctuation) != Supplemental_Punctuation)
		printf("test 'Supplemental_Punctuation' failed\n");
	delete[] buffer_Supplemental_Punctuation;

	YYCTYPE *buffer_CJK_Radicals_Supplement = new YYCTYPE[129];
	uint32_t buffer_CJK_Radicals_Supplement_len = encode_utf32(chars_CJK_Radicals_Supplement[0], chars_CJK_Radicals_Supplement[1], buffer_CJK_Radicals_Supplement) - 1;
	if (scan(buffer_CJK_Radicals_Supplement, buffer_CJK_Radicals_Supplement + buffer_CJK_Radicals_Supplement_len, CJK_Radicals_Supplement) != CJK_Radicals_Supplement)
		printf("test 'CJK_Radicals_Supplement' failed\n");
	delete[] buffer_CJK_Radicals_Supplement;

	YYCTYPE *buffer_Kangxi_Radicals = new YYCTYPE[225];
	uint32_t buffer_Kangxi_Radicals_len = encode_utf32(chars_Kangxi_Radicals[0], chars_Kangxi_Radicals[1], buffer_Kangxi_Radicals) - 1;
	if (scan(buffer_Kangxi_Radicals, buffer_Kangxi_Radicals + buffer_Kangxi_Radicals_len, Kangxi_Radicals) != Kangxi_Radicals)
		printf("test 'Kangxi_Radicals' failed\n");
	delete[] buffer_Kangxi_Radicals;

	YYCTYPE *buffer_Ideographic_Description_Characters = new YYCTYPE[17];
	uint32_t buffer_Ideographic_Description_Characters_len = encode_utf32(chars_Ideographic_Description_Characters[0], chars_Ideographic_Description_Characters[1], buffer_Ideographic_Description_Characters) - 1;
	if (scan(buffer_Ideographic_Description_Characters, buffer_Ideographic_Description_Characters + buffer_Ideographic_Description_Characters_len, Ideographic_Description_Characters) != Ideographic_Description_Characters)
		printf("test 'Ideographic_Description_Characters' failed\n");
	delete[] buffer_Ideographic_Description_Characters;

	YYCTYPE *buffer_CJK_Symbols_and_Punctuation = new YYCTYPE[65];
	uint32_t buffer_CJK_Symbols_and_Punctuation_len = encode_utf32(chars_CJK_Symbols_and_Punctuation[0], chars_CJK_Symbols_and_Punctuation[1], buffer_CJK_Symbols_and_Punctuation) - 1;
	if (scan(buffer_CJK_Symbols_and_Punctuation, buffer_CJK_Symbols_and_Punctuation + buffer_CJK_Symbols_and_Punctuation_len, CJK_Symbols_and_Punctuation) != CJK_Symbols_and_Punctuation)
		printf("test 'CJK_Symbols_and_Punctuation' failed\n");
	delete[] buffer_CJK_Symbols_and_Punctuation;

	YYCTYPE *buffer_Hiragana = new YYCTYPE[97];
	uint32_t buffer_Hiragana_len = encode_utf32(chars_Hiragana[0], chars_Hiragana[1], buffer_Hiragana) - 1;
	if (scan(buffer_Hiragana, buffer_Hiragana + buffer_Hiragana_len, Hiragana) != Hiragana)
		printf("test 'Hiragana' failed\n");
	delete[] buffer_Hiragana;

	YYCTYPE *buffer_Katakana = new YYCTYPE[97];
	uint32_t buffer_Katakana_len = encode_utf32(chars_Katakana[0], chars_Katakana[1], buffer_Katakana) - 1;
	if (scan(buffer_Katakana, buffer_Katakana + buffer_Katakana_len, Katakana) != Katakana)
		printf("test 'Katakana' failed\n");
	delete[] buffer_Katakana;

	YYCTYPE *buffer_Bopomofo = new YYCTYPE[49];
	uint32_t buffer_Bopomofo_len = encode_utf32(chars_Bopomofo[0], chars_Bopomofo[1], buffer_Bopomofo) - 1;
	if (scan(buffer_Bopomofo, buffer_Bopomofo + buffer_Bopomofo_len, Bopomofo) != Bopomofo)
		printf("test 'Bopomofo' failed\n");
	delete[] buffer_Bopomofo;

	YYCTYPE *buffer_Hangul_Compatibility_Jamo = new YYCTYPE[97];
	uint32_t buffer_Hangul_Compatibility_Jamo_len = encode_utf32(chars_Hangul_Compatibility_Jamo[0], chars_Hangul_Compatibility_Jamo[1], buffer_Hangul_Compatibility_Jamo) - 1;
	if (scan(buffer_Hangul_Compatibility_Jamo, buffer_Hangul_Compatibility_Jamo + buffer_Hangul_Compatibility_Jamo_len, Hangul_Compatibility_Jamo) != Hangul_Compatibility_Jamo)
		printf("test 'Hangul_Compatibility_Jamo' failed\n");
	delete[] buffer_Hangul_Compatibility_Jamo;

	YYCTYPE *buffer_Kanbun = new YYCTYPE[17];
	uint32_t buffer_Kanbun_len = encode_utf32(chars_Kanbun[0], chars_Kanbun[1], buffer_Kanbun) - 1;
	if (scan(buffer_Kanbun, buffer_Kanbun + buffer_Kanbun_len, Kanbun) != Kanbun)
		printf("test 'Kanbun' failed\n");
	delete[] buffer_Kanbun;

	YYCTYPE *buffer_Bopomofo_Extended = new YYCTYPE[33];
	uint32_t buffer_Bopomofo_Extended_len = encode_utf32(chars_Bopomofo_Extended[0], chars_Bopomofo_Extended[1], buffer_Bopomofo_Extended) - 1;
	if (scan(buffer_Bopomofo_Extended, buffer_Bopomofo_Extended + buffer_Bopomofo_Extended_len, Bopomofo_Extended) != Bopomofo_Extended)
		printf("test 'Bopomofo_Extended' failed\n");
	delete[] buffer_Bopomofo_Extended;

	YYCTYPE *buffer_CJK_Strokes = new YYCTYPE[49];
	uint32_t buffer_CJK_Strokes_len = encode_utf32(chars_CJK_Strokes[0], chars_CJK_Strokes[1], buffer_CJK_Strokes) - 1;
	if (scan(buffer_CJK_Strokes, buffer_CJK_Strokes + buffer_CJK_Strokes_len, CJK_Strokes) != CJK_Strokes)
		printf("test 'CJK_Strokes' failed\n");
	delete[] buffer_CJK_Strokes;

	YYCTYPE *buffer_Katakana_Phonetic_Extensions = new YYCTYPE[17];
	uint32_t buffer_Katakana_Phonetic_Extensions_len = encode_utf32(chars_Katakana_Phonetic_Extensions[0], chars_Katakana_Phonetic_Extensions[1], buffer_Katakana_Phonetic_Extensions) - 1;
	if (scan(buffer_Katakana_Phonetic_Extensions, buffer_Katakana_Phonetic_Extensions + buffer_Katakana_Phonetic_Extensions_len, Katakana_Phonetic_Extensions) != Katakana_Phonetic_Extensions)
		printf("test 'Katakana_Phonetic_Extensions' failed\n");
	delete[] buffer_Katakana_Phonetic_Extensions;

	YYCTYPE *buffer_Enclosed_CJK_Letters_and_Months = new YYCTYPE[257];
	uint32_t buffer_Enclosed_CJK_Letters_and_Months_len = encode_utf32(chars_Enclosed_CJK_Letters_and_Months[0], chars_Enclosed_CJK_Letters_and_Months[1], buffer_Enclosed_CJK_Letters_and_Months) - 1;
	if (scan(buffer_Enclosed_CJK_Letters_and_Months, buffer_Enclosed_CJK_Letters_and_Months + buffer_Enclosed_CJK_Letters_and_Months_len, Enclosed_CJK_Letters_and_Months) != Enclosed_CJK_Letters_and_Months)
		printf("test 'Enclosed_CJK_Letters_and_Months' failed\n");
	delete[] buffer_Enclosed_CJK_Letters_and_Months;

	YYCTYPE *buffer_CJK_Compatibility = new YYCTYPE[257];
	uint32_t buffer_CJK_Compatibility_len = encode_utf32(chars_CJK_Compatibility[0], chars_CJK_Compatibility[1], buffer_CJK_Compatibility) - 1;
	if (scan(buffer_CJK_Compatibility, buffer_CJK_Compatibility + buffer_CJK_Compatibility_len, CJK_Compatibility) != CJK_Compatibility)
		printf("test 'CJK_Compatibility' failed\n");
	delete[] buffer_CJK_Compatibility;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_A = new YYCTYPE[6593];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_A_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_A[0], chars_CJK_Unified_Ideographs_Extension_A[1], buffer_CJK_Unified_Ideographs_Extension_A) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_A, buffer_CJK_Unified_Ideographs_Extension_A + buffer_CJK_Unified_Ideographs_Extension_A_len, CJK_Unified_Ideographs_Extension_A) != CJK_Unified_Ideographs_Extension_A)
		printf("test 'CJK_Unified_Ideographs_Extension_A' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_A;

	YYCTYPE *buffer_Yijing_Hexagram_Symbols = new YYCTYPE[65];
	uint32_t buffer_Yijing_Hexagram_Symbols_len = encode_utf32(chars_Yijing_Hexagram_Symbols[0], chars_Yijing_Hexagram_Symbols[1], buffer_Yijing_Hexagram_Symbols) - 1;
	if (scan(buffer_Yijing_Hexagram_Symbols, buffer_Yijing_Hexagram_Symbols + buffer_Yijing_Hexagram_Symbols_len, Yijing_Hexagram_Symbols) != Yijing_Hexagram_Symbols)
		printf("test 'Yijing_Hexagram_Symbols' failed\n");
	delete[] buffer_Yijing_Hexagram_Symbols;

	YYCTYPE *buffer_CJK_Unified_Ideographs = new YYCTYPE[20993];
	uint32_t buffer_CJK_Unified_Ideographs_len = encode_utf32(chars_CJK_Unified_Ideographs[0], chars_CJK_Unified_Ideographs[1], buffer_CJK_Unified_Ideographs) - 1;
	if (scan(buffer_CJK_Unified_Ideographs, buffer_CJK_Unified_Ideographs + buffer_CJK_Unified_Ideographs_len, CJK_Unified_Ideographs) != CJK_Unified_Ideographs)
		printf("test 'CJK_Unified_Ideographs' failed\n");
	delete[] buffer_CJK_Unified_Ideographs;

	YYCTYPE *buffer_Yi_Syllables = new YYCTYPE[1169];
	uint32_t buffer_Yi_Syllables_len = encode_utf32(chars_Yi_Syllables[0], chars_Yi_Syllables[1], buffer_Yi_Syllables) - 1;
	if (scan(buffer_Yi_Syllables, buffer_Yi_Syllables + buffer_Yi_Syllables_len, Yi_Syllables) != Yi_Syllables)
		printf("test 'Yi_Syllables' failed\n");
	delete[] buffer_Yi_Syllables;

	YYCTYPE *buffer_Yi_Radicals = new YYCTYPE[65];
	uint32_t buffer_Yi_Radicals_len = encode_utf32(chars_Yi_Radicals[0], chars_Yi_Radicals[1], buffer_Yi_Radicals) - 1;
	if (scan(buffer_Yi_Radicals, buffer_Yi_Radicals + buffer_Yi_Radicals_len, Yi_Radicals) != Yi_Radicals)
		printf("test 'Yi_Radicals' failed\n");
	delete[] buffer_Yi_Radicals;

	YYCTYPE *buffer_Lisu = new YYCTYPE[49];
	uint32_t buffer_Lisu_len = encode_utf32(chars_Lisu[0], chars_Lisu[1], buffer_Lisu) - 1;
	if (scan(buffer_Lisu, buffer_Lisu + buffer_Lisu_len, Lisu) != Lisu)
		printf("test 'Lisu' failed\n");
	delete[] buffer_Lisu;

	YYCTYPE *buffer_Vai = new YYCTYPE[321];
	uint32_t buffer_Vai_len = encode_utf32(chars_Vai[0], chars_Vai[1], buffer_Vai) - 1;
	if (scan(buffer_Vai, buffer_Vai + buffer_Vai_len, Vai) != Vai)
		printf("test 'Vai' failed\n");
	delete[] buffer_Vai;

	YYCTYPE *buffer_Cyrillic_Extended_B = new YYCTYPE[97];
	uint32_t buffer_Cyrillic_Extended_B_len = encode_utf32(chars_Cyrillic_Extended_B[0], chars_Cyrillic_Extended_B[1], buffer_Cyrillic_Extended_B) - 1;
	if (scan(buffer_Cyrillic_Extended_B, buffer_Cyrillic_Extended_B + buffer_Cyrillic_Extended_B_len, Cyrillic_Extended_B) != Cyrillic_Extended_B)
		printf("test 'Cyrillic_Extended_B' failed\n");
	delete[] buffer_Cyrillic_Extended_B;

	YYCTYPE *buffer_Bamum = new YYCTYPE[97];
	uint32_t buffer_Bamum_len = encode_utf32(chars_Bamum[0], chars_Bamum[1], buffer_Bamum) - 1;
	if (scan(buffer_Bamum, buffer_Bamum + buffer_Bamum_len, Bamum) != Bamum)
		printf("test 'Bamum' failed\n");
	delete[] buffer_Bamum;

	YYCTYPE *buffer_Modifier_Tone_Letters = new YYCTYPE[33];
	uint32_t buffer_Modifier_Tone_Letters_len = encode_utf32(chars_Modifier_Tone_Letters[0], chars_Modifier_Tone_Letters[1], buffer_Modifier_Tone_Letters) - 1;
	if (scan(buffer_Modifier_Tone_Letters, buffer_Modifier_Tone_Letters + buffer_Modifier_Tone_Letters_len, Modifier_Tone_Letters) != Modifier_Tone_Letters)
		printf("test 'Modifier_Tone_Letters' failed\n");
	delete[] buffer_Modifier_Tone_Letters;

	YYCTYPE *buffer_Latin_Extended_D = new YYCTYPE[225];
	uint32_t buffer_Latin_Extended_D_len = encode_utf32(chars_Latin_Extended_D[0], chars_Latin_Extended_D[1], buffer_Latin_Extended_D) - 1;
	if (scan(buffer_Latin_Extended_D, buffer_Latin_Extended_D + buffer_Latin_Extended_D_len, Latin_Extended_D) != Latin_Extended_D)
		printf("test 'Latin_Extended_D' failed\n");
	delete[] buffer_Latin_Extended_D;

	YYCTYPE *buffer_Syloti_Nagri = new YYCTYPE[49];
	uint32_t buffer_Syloti_Nagri_len = encode_utf32(chars_Syloti_Nagri[0], chars_Syloti_Nagri[1], buffer_Syloti_Nagri) - 1;
	if (scan(buffer_Syloti_Nagri, buffer_Syloti_Nagri + buffer_Syloti_Nagri_len, Syloti_Nagri) != Syloti_Nagri)
		printf("test 'Syloti_Nagri' failed\n");
	delete[] buffer_Syloti_Nagri;

	YYCTYPE *buffer_Common_Indic_Number_Forms = new YYCTYPE[17];
	uint32_t buffer_Common_Indic_Number_Forms_len = encode_utf32(chars_Common_Indic_Number_Forms[0], chars_Common_Indic_Number_Forms[1], buffer_Common_Indic_Number_Forms) - 1;
	if (scan(buffer_Common_Indic_Number_Forms, buffer_Common_Indic_Number_Forms + buffer_Common_Indic_Number_Forms_len, Common_Indic_Number_Forms) != Common_Indic_Number_Forms)
		printf("test 'Common_Indic_Number_Forms' failed\n");
	delete[] buffer_Common_Indic_Number_Forms;

	YYCTYPE *buffer_Phags_pa = new YYCTYPE[65];
	uint32_t buffer_Phags_pa_len = encode_utf32(chars_Phags_pa[0], chars_Phags_pa[1], buffer_Phags_pa) - 1;
	if (scan(buffer_Phags_pa, buffer_Phags_pa + buffer_Phags_pa_len, Phags_pa) != Phags_pa)
		printf("test 'Phags_pa' failed\n");
	delete[] buffer_Phags_pa;

	YYCTYPE *buffer_Saurashtra = new YYCTYPE[97];
	uint32_t buffer_Saurashtra_len = encode_utf32(chars_Saurashtra[0], chars_Saurashtra[1], buffer_Saurashtra) - 1;
	if (scan(buffer_Saurashtra, buffer_Saurashtra + buffer_Saurashtra_len, Saurashtra) != Saurashtra)
		printf("test 'Saurashtra' failed\n");
	delete[] buffer_Saurashtra;

	YYCTYPE *buffer_Devanagari_Extended = new YYCTYPE[33];
	uint32_t buffer_Devanagari_Extended_len = encode_utf32(chars_Devanagari_Extended[0], chars_Devanagari_Extended[1], buffer_Devanagari_Extended) - 1;
	if (scan(buffer_Devanagari_Extended, buffer_Devanagari_Extended + buffer_Devanagari_Extended_len, Devanagari_Extended) != Devanagari_Extended)
		printf("test 'Devanagari_Extended' failed\n");
	delete[] buffer_Devanagari_Extended;

	YYCTYPE *buffer_Kayah_Li = new YYCTYPE[49];
	uint32_t buffer_Kayah_Li_len = encode_utf32(chars_Kayah_Li[0], chars_Kayah_Li[1], buffer_Kayah_Li) - 1;
	if (scan(buffer_Kayah_Li, buffer_Kayah_Li + buffer_Kayah_Li_len, Kayah_Li) != Kayah_Li)
		printf("test 'Kayah_Li' failed\n");
	delete[] buffer_Kayah_Li;

	YYCTYPE *buffer_Rejang = new YYCTYPE[49];
	uint32_t buffer_Rejang_len = encode_utf32(chars_Rejang[0], chars_Rejang[1], buffer_Rejang) - 1;
	if (scan(buffer_Rejang, buffer_Rejang + buffer_Rejang_len, Rejang) != Rejang)
		printf("test 'Rejang' failed\n");
	delete[] buffer_Rejang;

	YYCTYPE *buffer_Hangul_Jamo_Extended_A = new YYCTYPE[33];
	uint32_t buffer_Hangul_Jamo_Extended_A_len = encode_utf32(chars_Hangul_Jamo_Extended_A[0], chars_Hangul_Jamo_Extended_A[1], buffer_Hangul_Jamo_Extended_A) - 1;
	if (scan(buffer_Hangul_Jamo_Extended_A, buffer_Hangul_Jamo_Extended_A + buffer_Hangul_Jamo_Extended_A_len, Hangul_Jamo_Extended_A) != Hangul_Jamo_Extended_A)
		printf("test 'Hangul_Jamo_Extended_A' failed\n");
	delete[] buffer_Hangul_Jamo_Extended_A;

	YYCTYPE *buffer_Javanese = new YYCTYPE[97];
	uint32_t buffer_Javanese_len = encode_utf32(chars_Javanese[0], chars_Javanese[1], buffer_Javanese) - 1;
	if (scan(buffer_Javanese, buffer_Javanese + buffer_Javanese_len, Javanese) != Javanese)
		printf("test 'Javanese' failed\n");
	delete[] buffer_Javanese;

	YYCTYPE *buffer_Myanmar_Extended_B = new YYCTYPE[33];
	uint32_t buffer_Myanmar_Extended_B_len = encode_utf32(chars_Myanmar_Extended_B[0], chars_Myanmar_Extended_B[1], buffer_Myanmar_Extended_B) - 1;
	if (scan(buffer_Myanmar_Extended_B, buffer_Myanmar_Extended_B + buffer_Myanmar_Extended_B_len, Myanmar_Extended_B) != Myanmar_Extended_B)
		printf("test 'Myanmar_Extended_B' failed\n");
	delete[] buffer_Myanmar_Extended_B;

	YYCTYPE *buffer_Cham = new YYCTYPE[97];
	uint32_t buffer_Cham_len = encode_utf32(chars_Cham[0], chars_Cham[1], buffer_Cham) - 1;
	if (scan(buffer_Cham, buffer_Cham + buffer_Cham_len, Cham) != Cham)
		printf("test 'Cham' failed\n");
	delete[] buffer_Cham;

	YYCTYPE *buffer_Myanmar_Extended_A = new YYCTYPE[33];
	uint32_t buffer_Myanmar_Extended_A_len = encode_utf32(chars_Myanmar_Extended_A[0], chars_Myanmar_Extended_A[1], buffer_Myanmar_Extended_A) - 1;
	if (scan(buffer_Myanmar_Extended_A, buffer_Myanmar_Extended_A + buffer_Myanmar_Extended_A_len, Myanmar_Extended_A) != Myanmar_Extended_A)
		printf("test 'Myanmar_Extended_A' failed\n");
	delete[] buffer_Myanmar_Extended_A;

	YYCTYPE *buffer_Tai_Viet = new YYCTYPE[97];
	uint32_t buffer_Tai_Viet_len = encode_utf32(chars_Tai_Viet[0], chars_Tai_Viet[1], buffer_Tai_Viet) - 1;
	if (scan(buffer_Tai_Viet, buffer_Tai_Viet + buffer_Tai_Viet_len, Tai_Viet) != Tai_Viet)
		printf("test 'Tai_Viet' failed\n");
	delete[] buffer_Tai_Viet;

	YYCTYPE *buffer_Meetei_Mayek_Extensions = new YYCTYPE[33];
	uint32_t buffer_Meetei_Mayek_Extensions_len = encode_utf32(chars_Meetei_Mayek_Extensions[0], chars_Meetei_Mayek_Extensions[1], buffer_Meetei_Mayek_Extensions) - 1;
	if (scan(buffer_Meetei_Mayek_Extensions, buffer_Meetei_Mayek_Extensions + buffer_Meetei_Mayek_Extensions_len, Meetei_Mayek_Extensions) != Meetei_Mayek_Extensions)
		printf("test 'Meetei_Mayek_Extensions' failed\n");
	delete[] buffer_Meetei_Mayek_Extensions;

	YYCTYPE *buffer_Ethiopic_Extended_A = new YYCTYPE[49];
	uint32_t buffer_Ethiopic_Extended_A_len = encode_utf32(chars_Ethiopic_Extended_A[0], chars_Ethiopic_Extended_A[1], buffer_Ethiopic_Extended_A) - 1;
	if (scan(buffer_Ethiopic_Extended_A, buffer_Ethiopic_Extended_A + buffer_Ethiopic_Extended_A_len, Ethiopic_Extended_A) != Ethiopic_Extended_A)
		printf("test 'Ethiopic_Extended_A' failed\n");
	delete[] buffer_Ethiopic_Extended_A;

	YYCTYPE *buffer_Latin_Extended_E = new YYCTYPE[65];
	uint32_t buffer_Latin_Extended_E_len = encode_utf32(chars_Latin_Extended_E[0], chars_Latin_Extended_E[1], buffer_Latin_Extended_E) - 1;
	if (scan(buffer_Latin_Extended_E, buffer_Latin_Extended_E + buffer_Latin_Extended_E_len, Latin_Extended_E) != Latin_Extended_E)
		printf("test 'Latin_Extended_E' failed\n");
	delete[] buffer_Latin_Extended_E;

	YYCTYPE *buffer_Cherokee_Supplement = new YYCTYPE[81];
	uint32_t buffer_Cherokee_Supplement_len = encode_utf32(chars_Cherokee_Supplement[0], chars_Cherokee_Supplement[1], buffer_Cherokee_Supplement) - 1;
	if (scan(buffer_Cherokee_Supplement, buffer_Cherokee_Supplement + buffer_Cherokee_Supplement_len, Cherokee_Supplement) != Cherokee_Supplement)
		printf("test 'Cherokee_Supplement' failed\n");
	delete[] buffer_Cherokee_Supplement;

	YYCTYPE *buffer_Meetei_Mayek = new YYCTYPE[65];
	uint32_t buffer_Meetei_Mayek_len = encode_utf32(chars_Meetei_Mayek[0], chars_Meetei_Mayek[1], buffer_Meetei_Mayek) - 1;
	if (scan(buffer_Meetei_Mayek, buffer_Meetei_Mayek + buffer_Meetei_Mayek_len, Meetei_Mayek) != Meetei_Mayek)
		printf("test 'Meetei_Mayek' failed\n");
	delete[] buffer_Meetei_Mayek;

	YYCTYPE *buffer_Hangul_Syllables = new YYCTYPE[11185];
	uint32_t buffer_Hangul_Syllables_len = encode_utf32(chars_Hangul_Syllables[0], chars_Hangul_Syllables[1], buffer_Hangul_Syllables) - 1;
	if (scan(buffer_Hangul_Syllables, buffer_Hangul_Syllables + buffer_Hangul_Syllables_len, Hangul_Syllables) != Hangul_Syllables)
		printf("test 'Hangul_Syllables' failed\n");
	delete[] buffer_Hangul_Syllables;

	YYCTYPE *buffer_Hangul_Jamo_Extended_B = new YYCTYPE[81];
	uint32_t buffer_Hangul_Jamo_Extended_B_len = encode_utf32(chars_Hangul_Jamo_Extended_B[0], chars_Hangul_Jamo_Extended_B[1], buffer_Hangul_Jamo_Extended_B) - 1;
	if (scan(buffer_Hangul_Jamo_Extended_B, buffer_Hangul_Jamo_Extended_B + buffer_Hangul_Jamo_Extended_B_len, Hangul_Jamo_Extended_B) != Hangul_Jamo_Extended_B)
		printf("test 'Hangul_Jamo_Extended_B' failed\n");
	delete[] buffer_Hangul_Jamo_Extended_B;

	YYCTYPE *buffer_High_Surrogates = new YYCTYPE[897];
	uint32_t buffer_High_Surrogates_len = encode_utf32(chars_High_Surrogates[0], chars_High_Surrogates[1], buffer_High_Surrogates) - 1;
	if (scan(buffer_High_Surrogates, buffer_High_Surrogates + buffer_High_Surrogates_len, High_Surrogates) != High_Surrogates)
		printf("test 'High_Surrogates' failed\n");
	delete[] buffer_High_Surrogates;

	YYCTYPE *buffer_High_Private_Use_Surrogates = new YYCTYPE[129];
	uint32_t buffer_High_Private_Use_Surrogates_len = encode_utf32(chars_High_Private_Use_Surrogates[0], chars_High_Private_Use_Surrogates[1], buffer_High_Private_Use_Surrogates) - 1;
	if (scan(buffer_High_Private_Use_Surrogates, buffer_High_Private_Use_Surrogates + buffer_High_Private_Use_Surrogates_len, High_Private_Use_Surrogates) != High_Private_Use_Surrogates)
		printf("test 'High_Private_Use_Surrogates' failed\n");
	delete[] buffer_High_Private_Use_Surrogates;

	YYCTYPE *buffer_Low_Surrogates = new YYCTYPE[1025];
	uint32_t buffer_Low_Surrogates_len = encode_utf32(chars_Low_Surrogates[0], chars_Low_Surrogates[1], buffer_Low_Surrogates) - 1;
	if (scan(buffer_Low_Surrogates, buffer_Low_Surrogates + buffer_Low_Surrogates_len, Low_Surrogates) != Low_Surrogates)
		printf("test 'Low_Surrogates' failed\n");
	delete[] buffer_Low_Surrogates;

	YYCTYPE *buffer_Private_Use_Area = new YYCTYPE[6401];
	uint32_t buffer_Private_Use_Area_len = encode_utf32(chars_Private_Use_Area[0], chars_Private_Use_Area[1], buffer_Private_Use_Area) - 1;
	if (scan(buffer_Private_Use_Area, buffer_Private_Use_Area + buffer_Private_Use_Area_len, Private_Use_Area) != Private_Use_Area)
		printf("test 'Private_Use_Area' failed\n");
	delete[] buffer_Private_Use_Area;

	YYCTYPE *buffer_CJK_Compatibility_Ideographs = new YYCTYPE[513];
	uint32_t buffer_CJK_Compatibility_Ideographs_len = encode_utf32(chars_CJK_Compatibility_Ideographs[0], chars_CJK_Compatibility_Ideographs[1], buffer_CJK_Compatibility_Ideographs) - 1;
	if (scan(buffer_CJK_Compatibility_Ideographs, buffer_CJK_Compatibility_Ideographs + buffer_CJK_Compatibility_Ideographs_len, CJK_Compatibility_Ideographs) != CJK_Compatibility_Ideographs)
		printf("test 'CJK_Compatibility_Ideographs' failed\n");
	delete[] buffer_CJK_Compatibility_Ideographs;

	YYCTYPE *buffer_Alphabetic_Presentation_Forms = new YYCTYPE[81];
	uint32_t buffer_Alphabetic_Presentation_Forms_len = encode_utf32(chars_Alphabetic_Presentation_Forms[0], chars_Alphabetic_Presentation_Forms[1], buffer_Alphabetic_Presentation_Forms) - 1;
	if (scan(buffer_Alphabetic_Presentation_Forms, buffer_Alphabetic_Presentation_Forms + buffer_Alphabetic_Presentation_Forms_len, Alphabetic_Presentation_Forms) != Alphabetic_Presentation_Forms)
		printf("test 'Alphabetic_Presentation_Forms' failed\n");
	delete[] buffer_Alphabetic_Presentation_Forms;

	YYCTYPE *buffer_Arabic_Presentation_Forms_A = new YYCTYPE[689];
	uint32_t buffer_Arabic_Presentation_Forms_A_len = encode_utf32(chars_Arabic_Presentation_Forms_A[0], chars_Arabic_Presentation_Forms_A[1], buffer_Arabic_Presentation_Forms_A) - 1;
	if (scan(buffer_Arabic_Presentation_Forms_A, buffer_Arabic_Presentation_Forms_A + buffer_Arabic_Presentation_Forms_A_len, Arabic_Presentation_Forms_A) != Arabic_Presentation_Forms_A)
		printf("test 'Arabic_Presentation_Forms_A' failed\n");
	delete[] buffer_Arabic_Presentation_Forms_A;

	YYCTYPE *buffer_Variation_Selectors = new YYCTYPE[17];
	uint32_t buffer_Variation_Selectors_len = encode_utf32(chars_Variation_Selectors[0], chars_Variation_Selectors[1], buffer_Variation_Selectors) - 1;
	if (scan(buffer_Variation_Selectors, buffer_Variation_Selectors + buffer_Variation_Selectors_len, Variation_Selectors) != Variation_Selectors)
		printf("test 'Variation_Selectors' failed\n");
	delete[] buffer_Variation_Selectors;

	YYCTYPE *buffer_Vertical_Forms = new YYCTYPE[17];
	uint32_t buffer_Vertical_Forms_len = encode_utf32(chars_Vertical_Forms[0], chars_Vertical_Forms[1], buffer_Vertical_Forms) - 1;
	if (scan(buffer_Vertical_Forms, buffer_Vertical_Forms + buffer_Vertical_Forms_len, Vertical_Forms) != Vertical_Forms)
		printf("test 'Vertical_Forms' failed\n");
	delete[] buffer_Vertical_Forms;

	YYCTYPE *buffer_Combining_Half_Marks = new YYCTYPE[17];
	uint32_t buffer_Combining_Half_Marks_len = encode_utf32(chars_Combining_Half_Marks[0], chars_Combining_Half_Marks[1], buffer_Combining_Half_Marks) - 1;
	if (scan(buffer_Combining_Half_Marks, buffer_Combining_Half_Marks + buffer_Combining_Half_Marks_len, Combining_Half_Marks) != Combining_Half_Marks)
		printf("test 'Combining_Half_Marks' failed\n");
	delete[] buffer_Combining_Half_Marks;

	YYCTYPE *buffer_CJK_Compatibility_Forms = new YYCTYPE[33];
	uint32_t buffer_CJK_Compatibility_Forms_len = encode_utf32(chars_CJK_Compatibility_Forms[0], chars_CJK_Compatibility_Forms[1], buffer_CJK_Compatibility_Forms) - 1;
	if (scan(buffer_CJK_Compatibility_Forms, buffer_CJK_Compatibility_Forms + buffer_CJK_Compatibility_Forms_len, CJK_Compatibility_Forms) != CJK_Compatibility_Forms)
		printf("test 'CJK_Compatibility_Forms' failed\n");
	delete[] buffer_CJK_Compatibility_Forms;

	YYCTYPE *buffer_Small_Form_Variants = new YYCTYPE[33];
	uint32_t buffer_Small_Form_Variants_len = encode_utf32(chars_Small_Form_Variants[0], chars_Small_Form_Variants[1], buffer_Small_Form_Variants) - 1;
	if (scan(buffer_Small_Form_Variants, buffer_Small_Form_Variants + buffer_Small_Form_Variants_len, Small_Form_Variants) != Small_Form_Variants)
		printf("test 'Small_Form_Variants' failed\n");
	delete[] buffer_Small_Form_Variants;

	YYCTYPE *buffer_Arabic_Presentation_Forms_B = new YYCTYPE[145];
	uint32_t buffer_Arabic_Presentation_Forms_B_len = encode_utf32(chars_Arabic_Presentation_Forms_B[0], chars_Arabic_Presentation_Forms_B[1], buffer_Arabic_Presentation_Forms_B) - 1;
	if (scan(buffer_Arabic_Presentation_Forms_B, buffer_Arabic_Presentation_Forms_B + buffer_Arabic_Presentation_Forms_B_len, Arabic_Presentation_Forms_B) != Arabic_Presentation_Forms_B)
		printf("test 'Arabic_Presentation_Forms_B' failed\n");
	delete[] buffer_Arabic_Presentation_Forms_B;

	YYCTYPE *buffer_Halfwidth_and_Fullwidth_Forms = new YYCTYPE[241];
	uint32_t buffer_Halfwidth_and_Fullwidth_Forms_len = encode_utf32(chars_Halfwidth_and_Fullwidth_Forms[0], chars_Halfwidth_and_Fullwidth_Forms[1], buffer_Halfwidth_and_Fullwidth_Forms) - 1;
	if (scan(buffer_Halfwidth_and_Fullwidth_Forms, buffer_Halfwidth_and_Fullwidth_Forms + buffer_Halfwidth_and_Fullwidth_Forms_len, Halfwidth_and_Fullwidth_Forms) != Halfwidth_and_Fullwidth_Forms)
		printf("test 'Halfwidth_and_Fullwidth_Forms' failed\n");
	delete[] buffer_Halfwidth_and_Fullwidth_Forms;

	YYCTYPE *buffer_Specials = new YYCTYPE[17];
	uint32_t buffer_Specials_len = encode_utf32(chars_Specials[0], chars_Specials[1], buffer_Specials) - 1;
	if (scan(buffer_Specials, buffer_Specials + buffer_Specials_len, Specials) != Specials)
		printf("test 'Specials' failed\n");
	delete[] buffer_Specials;

	YYCTYPE *buffer_Linear_B_Syllabary = new YYCTYPE[129];
	uint32_t buffer_Linear_B_Syllabary_len = encode_utf32(chars_Linear_B_Syllabary[0], chars_Linear_B_Syllabary[1], buffer_Linear_B_Syllabary) - 1;
	if (scan(buffer_Linear_B_Syllabary, buffer_Linear_B_Syllabary + buffer_Linear_B_Syllabary_len, Linear_B_Syllabary) != Linear_B_Syllabary)
		printf("test 'Linear_B_Syllabary' failed\n");
	delete[] buffer_Linear_B_Syllabary;

	YYCTYPE *buffer_Linear_B_Ideograms = new YYCTYPE[129];
	uint32_t buffer_Linear_B_Ideograms_len = encode_utf32(chars_Linear_B_Ideograms[0], chars_Linear_B_Ideograms[1], buffer_Linear_B_Ideograms) - 1;
	if (scan(buffer_Linear_B_Ideograms, buffer_Linear_B_Ideograms + buffer_Linear_B_Ideograms_len, Linear_B_Ideograms) != Linear_B_Ideograms)
		printf("test 'Linear_B_Ideograms' failed\n");
	delete[] buffer_Linear_B_Ideograms;

	YYCTYPE *buffer_Aegean_Numbers = new YYCTYPE[65];
	uint32_t buffer_Aegean_Numbers_len = encode_utf32(chars_Aegean_Numbers[0], chars_Aegean_Numbers[1], buffer_Aegean_Numbers) - 1;
	if (scan(buffer_Aegean_Numbers, buffer_Aegean_Numbers + buffer_Aegean_Numbers_len, Aegean_Numbers) != Aegean_Numbers)
		printf("test 'Aegean_Numbers' failed\n");
	delete[] buffer_Aegean_Numbers;

	YYCTYPE *buffer_Ancient_Greek_Numbers = new YYCTYPE[81];
	uint32_t buffer_Ancient_Greek_Numbers_len = encode_utf32(chars_Ancient_Greek_Numbers[0], chars_Ancient_Greek_Numbers[1], buffer_Ancient_Greek_Numbers) - 1;
	if (scan(buffer_Ancient_Greek_Numbers, buffer_Ancient_Greek_Numbers + buffer_Ancient_Greek_Numbers_len, Ancient_Greek_Numbers) != Ancient_Greek_Numbers)
		printf("test 'Ancient_Greek_Numbers' failed\n");
	delete[] buffer_Ancient_Greek_Numbers;

	YYCTYPE *buffer_Ancient_Symbols = new YYCTYPE[65];
	uint32_t buffer_Ancient_Symbols_len = encode_utf32(chars_Ancient_Symbols[0], chars_Ancient_Symbols[1], buffer_Ancient_Symbols) - 1;
	if (scan(buffer_Ancient_Symbols, buffer_Ancient_Symbols + buffer_Ancient_Symbols_len, Ancient_Symbols) != Ancient_Symbols)
		printf("test 'Ancient_Symbols' failed\n");
	delete[] buffer_Ancient_Symbols;

	YYCTYPE *buffer_Phaistos_Disc = new YYCTYPE[49];
	uint32_t buffer_Phaistos_Disc_len = encode_utf32(chars_Phaistos_Disc[0], chars_Phaistos_Disc[1], buffer_Phaistos_Disc) - 1;
	if (scan(buffer_Phaistos_Disc, buffer_Phaistos_Disc + buffer_Phaistos_Disc_len, Phaistos_Disc) != Phaistos_Disc)
		printf("test 'Phaistos_Disc' failed\n");
	delete[] buffer_Phaistos_Disc;

	YYCTYPE *buffer_Lycian = new YYCTYPE[33];
	uint32_t buffer_Lycian_len = encode_utf32(chars_Lycian[0], chars_Lycian[1], buffer_Lycian) - 1;
	if (scan(buffer_Lycian, buffer_Lycian + buffer_Lycian_len, Lycian) != Lycian)
		printf("test 'Lycian' failed\n");
	delete[] buffer_Lycian;

	YYCTYPE *buffer_Carian = new YYCTYPE[65];
	uint32_t buffer_Carian_len = encode_utf32(chars_Carian[0], chars_Carian[1], buffer_Carian) - 1;
	if (scan(buffer_Carian, buffer_Carian + buffer_Carian_len, Carian) != Carian)
		printf("test 'Carian' failed\n");
	delete[] buffer_Carian;

	YYCTYPE *buffer_Coptic_Epact_Numbers = new YYCTYPE[33];
	uint32_t buffer_Coptic_Epact_Numbers_len = encode_utf32(chars_Coptic_Epact_Numbers[0], chars_Coptic_Epact_Numbers[1], buffer_Coptic_Epact_Numbers) - 1;
	if (scan(buffer_Coptic_Epact_Numbers, buffer_Coptic_Epact_Numbers + buffer_Coptic_Epact_Numbers_len, Coptic_Epact_Numbers) != Coptic_Epact_Numbers)
		printf("test 'Coptic_Epact_Numbers' failed\n");
	delete[] buffer_Coptic_Epact_Numbers;

	YYCTYPE *buffer_Old_Italic = new YYCTYPE[49];
	uint32_t buffer_Old_Italic_len = encode_utf32(chars_Old_Italic[0], chars_Old_Italic[1], buffer_Old_Italic) - 1;
	if (scan(buffer_Old_Italic, buffer_Old_Italic + buffer_Old_Italic_len, Old_Italic) != Old_Italic)
		printf("test 'Old_Italic' failed\n");
	delete[] buffer_Old_Italic;

	YYCTYPE *buffer_Gothic = new YYCTYPE[33];
	uint32_t buffer_Gothic_len = encode_utf32(chars_Gothic[0], chars_Gothic[1], buffer_Gothic) - 1;
	if (scan(buffer_Gothic, buffer_Gothic + buffer_Gothic_len, Gothic) != Gothic)
		printf("test 'Gothic' failed\n");
	delete[] buffer_Gothic;

	YYCTYPE *buffer_Old_Permic = new YYCTYPE[49];
	uint32_t buffer_Old_Permic_len = encode_utf32(chars_Old_Permic[0], chars_Old_Permic[1], buffer_Old_Permic) - 1;
	if (scan(buffer_Old_Permic, buffer_Old_Permic + buffer_Old_Permic_len, Old_Permic) != Old_Permic)
		printf("test 'Old_Permic' failed\n");
	delete[] buffer_Old_Permic;

	YYCTYPE *buffer_Ugaritic = new YYCTYPE[33];
	uint32_t buffer_Ugaritic_len = encode_utf32(chars_Ugaritic[0], chars_Ugaritic[1], buffer_Ugaritic) - 1;
	if (scan(buffer_Ugaritic, buffer_Ugaritic + buffer_Ugaritic_len, Ugaritic) != Ugaritic)
		printf("test 'Ugaritic' failed\n");
	delete[] buffer_Ugaritic;

	YYCTYPE *buffer_Old_Persian = new YYCTYPE[65];
	uint32_t buffer_Old_Persian_len = encode_utf32(chars_Old_Persian[0], chars_Old_Persian[1], buffer_Old_Persian) - 1;
	if (scan(buffer_Old_Persian, buffer_Old_Persian + buffer_Old_Persian_len, Old_Persian) != Old_Persian)
		printf("test 'Old_Persian' failed\n");
	delete[] buffer_Old_Persian;

	YYCTYPE *buffer_Deseret = new YYCTYPE[81];
	uint32_t buffer_Deseret_len = encode_utf32(chars_Deseret[0], chars_Deseret[1], buffer_Deseret) - 1;
	if (scan(buffer_Deseret, buffer_Deseret + buffer_Deseret_len, Deseret) != Deseret)
		printf("test 'Deseret' failed\n");
	delete[] buffer_Deseret;

	YYCTYPE *buffer_Shavian = new YYCTYPE[49];
	uint32_t buffer_Shavian_len = encode_utf32(chars_Shavian[0], chars_Shavian[1], buffer_Shavian) - 1;
	if (scan(buffer_Shavian, buffer_Shavian + buffer_Shavian_len, Shavian) != Shavian)
		printf("test 'Shavian' failed\n");
	delete[] buffer_Shavian;

	YYCTYPE *buffer_Osmanya = new YYCTYPE[49];
	uint32_t buffer_Osmanya_len = encode_utf32(chars_Osmanya[0], chars_Osmanya[1], buffer_Osmanya) - 1;
	if (scan(buffer_Osmanya, buffer_Osmanya + buffer_Osmanya_len, Osmanya) != Osmanya)
		printf("test 'Osmanya' failed\n");
	delete[] buffer_Osmanya;

	YYCTYPE *buffer_Osage = new YYCTYPE[81];
	uint32_t buffer_Osage_len = encode_utf32(chars_Osage[0], chars_Osage[1], buffer_Osage) - 1;
	if (scan(buffer_Osage, buffer_Osage + buffer_Osage_len, Osage) != Osage)
		printf("test 'Osage' failed\n");
	delete[] buffer_Osage;

	YYCTYPE *buffer_Elbasan = new YYCTYPE[49];
	uint32_t buffer_Elbasan_len = encode_utf32(chars_Elbasan[0], chars_Elbasan[1], buffer_Elbasan) - 1;
	if (scan(buffer_Elbasan, buffer_Elbasan + buffer_Elbasan_len, Elbasan) != Elbasan)
		printf("test 'Elbasan' failed\n");
	delete[] buffer_Elbasan;

	YYCTYPE *buffer_Caucasian_Albanian = new YYCTYPE[65];
	uint32_t buffer_Caucasian_Albanian_len = encode_utf32(chars_Caucasian_Albanian[0], chars_Caucasian_Albanian[1], buffer_Caucasian_Albanian) - 1;
	if (scan(buffer_Caucasian_Albanian, buffer_Caucasian_Albanian + buffer_Caucasian_Albanian_len, Caucasian_Albanian) != Caucasian_Albanian)
		printf("test 'Caucasian_Albanian' failed\n");
	delete[] buffer_Caucasian_Albanian;

	YYCTYPE *buffer_Vithkuqi = new YYCTYPE[81];
	uint32_t buffer_Vithkuqi_len = encode_utf32(chars_Vithkuqi[0], chars_Vithkuqi[1], buffer_Vithkuqi) - 1;
	if (scan(buffer_Vithkuqi, buffer_Vithkuqi + buffer_Vithkuqi_len, Vithkuqi) != Vithkuqi)
		printf("test 'Vithkuqi' failed\n");
	delete[] buffer_Vithkuqi;

	YYCTYPE *buffer_Todhri = new YYCTYPE[65];
	uint32_t buffer_Todhri_len = encode_utf32(chars_Todhri[0], chars_Todhri[1], buffer_Todhri) - 1;
	if (scan(buffer_Todhri, buffer_Todhri + buffer_Todhri_len, Todhri) != Todhri)
		printf("test 'Todhri' failed\n");
	delete[] buffer_Todhri;

	YYCTYPE *buffer_Linear_A = new YYCTYPE[385];
	uint32_t buffer_Linear_A_len = encode_utf32(chars_Linear_A[0], chars_Linear_A[1], buffer_Linear_A) - 1;
	if (scan(buffer_Linear_A, buffer_Linear_A + buffer_Linear_A_len, Linear_A) != Linear_A)
		printf("test 'Linear_A' failed\n");
	delete[] buffer_Linear_A;

	YYCTYPE *buffer_Latin_Extended_F = new YYCTYPE[65];
	uint32_t buffer_Latin_Extended_F_len = encode_utf32(chars_Latin_Extended_F[0], chars_Latin_Extended_F[1], buffer_Latin_Extended_F) - 1;
	if (scan(buffer_Latin_Extended_F, buffer_Latin_Extended_F + buffer_Latin_Extended_F_len, Latin_Extended_F) != Latin_Extended_F)
		printf("test 'Latin_Extended_F' failed\n");
	delete[] buffer_Latin_Extended_F;

	YYCTYPE *buffer_Cypriot_Syllabary = new YYCTYPE[65];
	uint32_t buffer_Cypriot_Syllabary_len = encode_utf32(chars_Cypriot_Syllabary[0], chars_Cypriot_Syllabary[1], buffer_Cypriot_Syllabary) - 1;
	if (scan(buffer_Cypriot_Syllabary, buffer_Cypriot_Syllabary + buffer_Cypriot_Syllabary_len, Cypriot_Syllabary) != Cypriot_Syllabary)
		printf("test 'Cypriot_Syllabary' failed\n");
	delete[] buffer_Cypriot_Syllabary;

	YYCTYPE *buffer_Imperial_Aramaic = new YYCTYPE[33];
	uint32_t buffer_Imperial_Aramaic_len = encode_utf32(chars_Imperial_Aramaic[0], chars_Imperial_Aramaic[1], buffer_Imperial_Aramaic) - 1;
	if (scan(buffer_Imperial_Aramaic, buffer_Imperial_Aramaic + buffer_Imperial_Aramaic_len, Imperial_Aramaic) != Imperial_Aramaic)
		printf("test 'Imperial_Aramaic' failed\n");
	delete[] buffer_Imperial_Aramaic;

	YYCTYPE *buffer_Palmyrene = new YYCTYPE[33];
	uint32_t buffer_Palmyrene_len = encode_utf32(chars_Palmyrene[0], chars_Palmyrene[1], buffer_Palmyrene) - 1;
	if (scan(buffer_Palmyrene, buffer_Palmyrene + buffer_Palmyrene_len, Palmyrene) != Palmyrene)
		printf("test 'Palmyrene' failed\n");
	delete[] buffer_Palmyrene;

	YYCTYPE *buffer_Nabataean = new YYCTYPE[49];
	uint32_t buffer_Nabataean_len = encode_utf32(chars_Nabataean[0], chars_Nabataean[1], buffer_Nabataean) - 1;
	if (scan(buffer_Nabataean, buffer_Nabataean + buffer_Nabataean_len, Nabataean) != Nabataean)
		printf("test 'Nabataean' failed\n");
	delete[] buffer_Nabataean;

	YYCTYPE *buffer_Hatran = new YYCTYPE[33];
	uint32_t buffer_Hatran_len = encode_utf32(chars_Hatran[0], chars_Hatran[1], buffer_Hatran) - 1;
	if (scan(buffer_Hatran, buffer_Hatran + buffer_Hatran_len, Hatran) != Hatran)
		printf("test 'Hatran' failed\n");
	delete[] buffer_Hatran;

	YYCTYPE *buffer_Phoenician = new YYCTYPE[33];
	uint32_t buffer_Phoenician_len = encode_utf32(chars_Phoenician[0], chars_Phoenician[1], buffer_Phoenician) - 1;
	if (scan(buffer_Phoenician, buffer_Phoenician + buffer_Phoenician_len, Phoenician) != Phoenician)
		printf("test 'Phoenician' failed\n");
	delete[] buffer_Phoenician;

	YYCTYPE *buffer_Lydian = new YYCTYPE[33];
	uint32_t buffer_Lydian_len = encode_utf32(chars_Lydian[0], chars_Lydian[1], buffer_Lydian) - 1;
	if (scan(buffer_Lydian, buffer_Lydian + buffer_Lydian_len, Lydian) != Lydian)
		printf("test 'Lydian' failed\n");
	delete[] buffer_Lydian;

	YYCTYPE *buffer_Sidetic = new YYCTYPE[33];
	uint32_t buffer_Sidetic_len = encode_utf32(chars_Sidetic[0], chars_Sidetic[1], buffer_Sidetic) - 1;
	if (scan(buffer_Sidetic, buffer_Sidetic + buffer_Sidetic_len, Sidetic) != Sidetic)
		printf("test 'Sidetic' failed\n");
	delete[] buffer_Sidetic;

	YYCTYPE *buffer_Meroitic_Hieroglyphs = new YYCTYPE[33];
	uint32_t buffer_Meroitic_Hieroglyphs_len = encode_utf32(chars_Meroitic_Hieroglyphs[0], chars_Meroitic_Hieroglyphs[1], buffer_Meroitic_Hieroglyphs) - 1;
	if (scan(buffer_Meroitic_Hieroglyphs, buffer_Meroitic_Hieroglyphs + buffer_Meroitic_Hieroglyphs_len, Meroitic_Hieroglyphs) != Meroitic_Hieroglyphs)
		printf("test 'Meroitic_Hieroglyphs' failed\n");
	delete[] buffer_Meroitic_Hieroglyphs;

	YYCTYPE *buffer_Meroitic_Cursive = new YYCTYPE[97];
	uint32_t buffer_Meroitic_Cursive_len = encode_utf32(chars_Meroitic_Cursive[0], chars_Meroitic_Cursive[1], buffer_Meroitic_Cursive) - 1;
	if (scan(buffer_Meroitic_Cursive, buffer_Meroitic_Cursive + buffer_Meroitic_Cursive_len, Meroitic_Cursive) != Meroitic_Cursive)
		printf("test 'Meroitic_Cursive' failed\n");
	delete[] buffer_Meroitic_Cursive;

	YYCTYPE *buffer_Kharoshthi = new YYCTYPE[97];
	uint32_t buffer_Kharoshthi_len = encode_utf32(chars_Kharoshthi[0], chars_Kharoshthi[1], buffer_Kharoshthi) - 1;
	if (scan(buffer_Kharoshthi, buffer_Kharoshthi + buffer_Kharoshthi_len, Kharoshthi) != Kharoshthi)
		printf("test 'Kharoshthi' failed\n");
	delete[] buffer_Kharoshthi;

	YYCTYPE *buffer_Old_South_Arabian = new YYCTYPE[33];
	uint32_t buffer_Old_South_Arabian_len = encode_utf32(chars_Old_South_Arabian[0], chars_Old_South_Arabian[1], buffer_Old_South_Arabian) - 1;
	if (scan(buffer_Old_South_Arabian, buffer_Old_South_Arabian + buffer_Old_South_Arabian_len, Old_South_Arabian) != Old_South_Arabian)
		printf("test 'Old_South_Arabian' failed\n");
	delete[] buffer_Old_South_Arabian;

	YYCTYPE *buffer_Old_North_Arabian = new YYCTYPE[33];
	uint32_t buffer_Old_North_Arabian_len = encode_utf32(chars_Old_North_Arabian[0], chars_Old_North_Arabian[1], buffer_Old_North_Arabian) - 1;
	if (scan(buffer_Old_North_Arabian, buffer_Old_North_Arabian + buffer_Old_North_Arabian_len, Old_North_Arabian) != Old_North_Arabian)
		printf("test 'Old_North_Arabian' failed\n");
	delete[] buffer_Old_North_Arabian;

	YYCTYPE *buffer_Manichaean = new YYCTYPE[65];
	uint32_t buffer_Manichaean_len = encode_utf32(chars_Manichaean[0], chars_Manichaean[1], buffer_Manichaean) - 1;
	if (scan(buffer_Manichaean, buffer_Manichaean + buffer_Manichaean_len, Manichaean) != Manichaean)
		printf("test 'Manichaean' failed\n");
	delete[] buffer_Manichaean;

	YYCTYPE *buffer_Avestan = new YYCTYPE[65];
	uint32_t buffer_Avestan_len = encode_utf32(chars_Avestan[0], chars_Avestan[1], buffer_Avestan) - 1;
	if (scan(buffer_Avestan, buffer_Avestan + buffer_Avestan_len, Avestan) != Avestan)
		printf("test 'Avestan' failed\n");
	delete[] buffer_Avestan;

	YYCTYPE *buffer_Inscriptional_Parthian = new YYCTYPE[33];
	uint32_t buffer_Inscriptional_Parthian_len = encode_utf32(chars_Inscriptional_Parthian[0], chars_Inscriptional_Parthian[1], buffer_Inscriptional_Parthian) - 1;
	if (scan(buffer_Inscriptional_Parthian, buffer_Inscriptional_Parthian + buffer_Inscriptional_Parthian_len, Inscriptional_Parthian) != Inscriptional_Parthian)
		printf("test 'Inscriptional_Parthian' failed\n");
	delete[] buffer_Inscriptional_Parthian;

	YYCTYPE *buffer_Inscriptional_Pahlavi = new YYCTYPE[33];
	uint32_t buffer_Inscriptional_Pahlavi_len = encode_utf32(chars_Inscriptional_Pahlavi[0], chars_Inscriptional_Pahlavi[1], buffer_Inscriptional_Pahlavi) - 1;
	if (scan(buffer_Inscriptional_Pahlavi, buffer_Inscriptional_Pahlavi + buffer_Inscriptional_Pahlavi_len, Inscriptional_Pahlavi) != Inscriptional_Pahlavi)
		printf("test 'Inscriptional_Pahlavi' failed\n");
	delete[] buffer_Inscriptional_Pahlavi;

	YYCTYPE *buffer_Psalter_Pahlavi = new YYCTYPE[49];
	uint32_t buffer_Psalter_Pahlavi_len = encode_utf32(chars_Psalter_Pahlavi[0], chars_Psalter_Pahlavi[1], buffer_Psalter_Pahlavi) - 1;
	if (scan(buffer_Psalter_Pahlavi, buffer_Psalter_Pahlavi + buffer_Psalter_Pahlavi_len, Psalter_Pahlavi) != Psalter_Pahlavi)
		printf("test 'Psalter_Pahlavi' failed\n");
	delete[] buffer_Psalter_Pahlavi;

	YYCTYPE *buffer_Old_Turkic = new YYCTYPE[81];
	uint32_t buffer_Old_Turkic_len = encode_utf32(chars_Old_Turkic[0], chars_Old_Turkic[1], buffer_Old_Turkic) - 1;
	if (scan(buffer_Old_Turkic, buffer_Old_Turkic + buffer_Old_Turkic_len, Old_Turkic) != Old_Turkic)
		printf("test 'Old_Turkic' failed\n");
	delete[] buffer_Old_Turkic;

	YYCTYPE *buffer_Old_Hungarian = new YYCTYPE[129];
	uint32_t buffer_Old_Hungarian_len = encode_utf32(chars_Old_Hungarian[0], chars_Old_Hungarian[1], buffer_Old_Hungarian) - 1;
	if (scan(buffer_Old_Hungarian, buffer_Old_Hungarian + buffer_Old_Hungarian_len, Old_Hungarian) != Old_Hungarian)
		printf("test 'Old_Hungarian' failed\n");
	delete[] buffer_Old_Hungarian;

	YYCTYPE *buffer_Hanifi_Rohingya = new YYCTYPE[65];
	uint32_t buffer_Hanifi_Rohingya_len = encode_utf32(chars_Hanifi_Rohingya[0], chars_Hanifi_Rohingya[1], buffer_Hanifi_Rohingya) - 1;
	if (scan(buffer_Hanifi_Rohingya, buffer_Hanifi_Rohingya + buffer_Hanifi_Rohingya_len, Hanifi_Rohingya) != Hanifi_Rohingya)
		printf("test 'Hanifi_Rohingya' failed\n");
	delete[] buffer_Hanifi_Rohingya;

	YYCTYPE *buffer_Garay = new YYCTYPE[81];
	uint32_t buffer_Garay_len = encode_utf32(chars_Garay[0], chars_Garay[1], buffer_Garay) - 1;
	if (scan(buffer_Garay, buffer_Garay + buffer_Garay_len, Garay) != Garay)
		printf("test 'Garay' failed\n");
	delete[] buffer_Garay;

	YYCTYPE *buffer_Rumi_Numeral_Symbols = new YYCTYPE[33];
	uint32_t buffer_Rumi_Numeral_Symbols_len = encode_utf32(chars_Rumi_Numeral_Symbols[0], chars_Rumi_Numeral_Symbols[1], buffer_Rumi_Numeral_Symbols) - 1;
	if (scan(buffer_Rumi_Numeral_Symbols, buffer_Rumi_Numeral_Symbols + buffer_Rumi_Numeral_Symbols_len, Rumi_Numeral_Symbols) != Rumi_Numeral_Symbols)
		printf("test 'Rumi_Numeral_Symbols' failed\n");
	delete[] buffer_Rumi_Numeral_Symbols;

	YYCTYPE *buffer_Yezidi = new YYCTYPE[65];
	uint32_t buffer_Yezidi_len = encode_utf32(chars_Yezidi[0], chars_Yezidi[1], buffer_Yezidi) - 1;
	if (scan(buffer_Yezidi, buffer_Yezidi + buffer_Yezidi_len, Yezidi) != Yezidi)
		printf("test 'Yezidi' failed\n");
	delete[] buffer_Yezidi;

	YYCTYPE *buffer_Arabic_Extended_C = new YYCTYPE[65];
	uint32_t buffer_Arabic_Extended_C_len = encode_utf32(chars_Arabic_Extended_C[0], chars_Arabic_Extended_C[1], buffer_Arabic_Extended_C) - 1;
	if (scan(buffer_Arabic_Extended_C, buffer_Arabic_Extended_C + buffer_Arabic_Extended_C_len, Arabic_Extended_C) != Arabic_Extended_C)
		printf("test 'Arabic_Extended_C' failed\n");
	delete[] buffer_Arabic_Extended_C;

	YYCTYPE *buffer_Old_Sogdian = new YYCTYPE[49];
	uint32_t buffer_Old_Sogdian_len = encode_utf32(chars_Old_Sogdian[0], chars_Old_Sogdian[1], buffer_Old_Sogdian) - 1;
	if (scan(buffer_Old_Sogdian, buffer_Old_Sogdian + buffer_Old_Sogdian_len, Old_Sogdian) != Old_Sogdian)
		printf("test 'Old_Sogdian' failed\n");
	delete[] buffer_Old_Sogdian;

	YYCTYPE *buffer_Sogdian = new YYCTYPE[65];
	uint32_t buffer_Sogdian_len = encode_utf32(chars_Sogdian[0], chars_Sogdian[1], buffer_Sogdian) - 1;
	if (scan(buffer_Sogdian, buffer_Sogdian + buffer_Sogdian_len, Sogdian) != Sogdian)
		printf("test 'Sogdian' failed\n");
	delete[] buffer_Sogdian;

	YYCTYPE *buffer_Old_Uyghur = new YYCTYPE[65];
	uint32_t buffer_Old_Uyghur_len = encode_utf32(chars_Old_Uyghur[0], chars_Old_Uyghur[1], buffer_Old_Uyghur) - 1;
	if (scan(buffer_Old_Uyghur, buffer_Old_Uyghur + buffer_Old_Uyghur_len, Old_Uyghur) != Old_Uyghur)
		printf("test 'Old_Uyghur' failed\n");
	delete[] buffer_Old_Uyghur;

	YYCTYPE *buffer_Chorasmian = new YYCTYPE[49];
	uint32_t buffer_Chorasmian_len = encode_utf32(chars_Chorasmian[0], chars_Chorasmian[1], buffer_Chorasmian) - 1;
	if (scan(buffer_Chorasmian, buffer_Chorasmian + buffer_Chorasmian_len, Chorasmian) != Chorasmian)
		printf("test 'Chorasmian' failed\n");
	delete[] buffer_Chorasmian;

	YYCTYPE *buffer_Elymaic = new YYCTYPE[33];
	uint32_t buffer_Elymaic_len = encode_utf32(chars_Elymaic[0], chars_Elymaic[1], buffer_Elymaic) - 1;
	if (scan(buffer_Elymaic, buffer_Elymaic + buffer_Elymaic_len, Elymaic) != Elymaic)
		printf("test 'Elymaic' failed\n");
	delete[] buffer_Elymaic;

	YYCTYPE *buffer_Brahmi = new YYCTYPE[129];
	uint32_t buffer_Brahmi_len = encode_utf32(chars_Brahmi[0], chars_Brahmi[1], buffer_Brahmi) - 1;
	if (scan(buffer_Brahmi, buffer_Brahmi + buffer_Brahmi_len, Brahmi) != Brahmi)
		printf("test 'Brahmi' failed\n");
	delete[] buffer_Brahmi;

	YYCTYPE *buffer_Kaithi = new YYCTYPE[81];
	uint32_t buffer_Kaithi_len = encode_utf32(chars_Kaithi[0], chars_Kaithi[1], buffer_Kaithi) - 1;
	if (scan(buffer_Kaithi, buffer_Kaithi + buffer_Kaithi_len, Kaithi) != Kaithi)
		printf("test 'Kaithi' failed\n");
	delete[] buffer_Kaithi;

	YYCTYPE *buffer_Sora_Sompeng = new YYCTYPE[49];
	uint32_t buffer_Sora_Sompeng_len = encode_utf32(chars_Sora_Sompeng[0], chars_Sora_Sompeng[1], buffer_Sora_Sompeng) - 1;
	if (scan(buffer_Sora_Sompeng, buffer_Sora_Sompeng + buffer_Sora_Sompeng_len, Sora_Sompeng) != Sora_Sompeng)
		printf("test 'Sora_Sompeng' failed\n");
	delete[] buffer_Sora_Sompeng;

	YYCTYPE *buffer_Chakma = new YYCTYPE[81];
	uint32_t buffer_Chakma_len = encode_utf32(chars_Chakma[0], chars_Chakma[1], buffer_Chakma) - 1;
	if (scan(buffer_Chakma, buffer_Chakma + buffer_Chakma_len, Chakma) != Chakma)
		printf("test 'Chakma' failed\n");
	delete[] buffer_Chakma;

	YYCTYPE *buffer_Mahajani = new YYCTYPE[49];
	uint32_t buffer_Mahajani_len = encode_utf32(chars_Mahajani[0], chars_Mahajani[1], buffer_Mahajani) - 1;
	if (scan(buffer_Mahajani, buffer_Mahajani + buffer_Mahajani_len, Mahajani) != Mahajani)
		printf("test 'Mahajani' failed\n");
	delete[] buffer_Mahajani;

	YYCTYPE *buffer_Sharada = new YYCTYPE[97];
	uint32_t buffer_Sharada_len = encode_utf32(chars_Sharada[0], chars_Sharada[1], buffer_Sharada) - 1;
	if (scan(buffer_Sharada, buffer_Sharada + buffer_Sharada_len, Sharada) != Sharada)
		printf("test 'Sharada' failed\n");
	delete[] buffer_Sharada;

	YYCTYPE *buffer_Sinhala_Archaic_Numbers = new YYCTYPE[33];
	uint32_t buffer_Sinhala_Archaic_Numbers_len = encode_utf32(chars_Sinhala_Archaic_Numbers[0], chars_Sinhala_Archaic_Numbers[1], buffer_Sinhala_Archaic_Numbers) - 1;
	if (scan(buffer_Sinhala_Archaic_Numbers, buffer_Sinhala_Archaic_Numbers + buffer_Sinhala_Archaic_Numbers_len, Sinhala_Archaic_Numbers) != Sinhala_Archaic_Numbers)
		printf("test 'Sinhala_Archaic_Numbers' failed\n");
	delete[] buffer_Sinhala_Archaic_Numbers;

	YYCTYPE *buffer_Khojki = new YYCTYPE[81];
	uint32_t buffer_Khojki_len = encode_utf32(chars_Khojki[0], chars_Khojki[1], buffer_Khojki) - 1;
	if (scan(buffer_Khojki, buffer_Khojki + buffer_Khojki_len, Khojki) != Khojki)
		printf("test 'Khojki' failed\n");
	delete[] buffer_Khojki;

	YYCTYPE *buffer_Multani = new YYCTYPE[49];
	uint32_t buffer_Multani_len = encode_utf32(chars_Multani[0], chars_Multani[1], buffer_Multani) - 1;
	if (scan(buffer_Multani, buffer_Multani + buffer_Multani_len, Multani) != Multani)
		printf("test 'Multani' failed\n");
	delete[] buffer_Multani;

	YYCTYPE *buffer_Khudawadi = new YYCTYPE[81];
	uint32_t buffer_Khudawadi_len = encode_utf32(chars_Khudawadi[0], chars_Khudawadi[1], buffer_Khudawadi) - 1;
	if (scan(buffer_Khudawadi, buffer_Khudawadi + buffer_Khudawadi_len, Khudawadi) != Khudawadi)
		printf("test 'Khudawadi' failed\n");
	delete[] buffer_Khudawadi;

	YYCTYPE *buffer_Grantha = new YYCTYPE[129];
	uint32_t buffer_Grantha_len = encode_utf32(chars_Grantha[0], chars_Grantha[1], buffer_Grantha) - 1;
	if (scan(buffer_Grantha, buffer_Grantha + buffer_Grantha_len, Grantha) != Grantha)
		printf("test 'Grantha' failed\n");
	delete[] buffer_Grantha;

	YYCTYPE *buffer_Tulu_Tigalari = new YYCTYPE[129];
	uint32_t buffer_Tulu_Tigalari_len = encode_utf32(chars_Tulu_Tigalari[0], chars_Tulu_Tigalari[1], buffer_Tulu_Tigalari) - 1;
	if (scan(buffer_Tulu_Tigalari, buffer_Tulu_Tigalari + buffer_Tulu_Tigalari_len, Tulu_Tigalari) != Tulu_Tigalari)
		printf("test 'Tulu_Tigalari' failed\n");
	delete[] buffer_Tulu_Tigalari;

	YYCTYPE *buffer_Newa = new YYCTYPE[129];
	uint32_t buffer_Newa_len = encode_utf32(chars_Newa[0], chars_Newa[1], buffer_Newa) - 1;
	if (scan(buffer_Newa, buffer_Newa + buffer_Newa_len, Newa) != Newa)
		printf("test 'Newa' failed\n");
	delete[] buffer_Newa;

	YYCTYPE *buffer_Tirhuta = new YYCTYPE[97];
	uint32_t buffer_Tirhuta_len = encode_utf32(chars_Tirhuta[0], chars_Tirhuta[1], buffer_Tirhuta) - 1;
	if (scan(buffer_Tirhuta, buffer_Tirhuta + buffer_Tirhuta_len, Tirhuta) != Tirhuta)
		printf("test 'Tirhuta' failed\n");
	delete[] buffer_Tirhuta;

	YYCTYPE *buffer_Siddham = new YYCTYPE[129];
	uint32_t buffer_Siddham_len = encode_utf32(chars_Siddham[0], chars_Siddham[1], buffer_Siddham) - 1;
	if (scan(buffer_Siddham, buffer_Siddham + buffer_Siddham_len, Siddham) != Siddham)
		printf("test 'Siddham' failed\n");
	delete[] buffer_Siddham;

	YYCTYPE *buffer_Modi = new YYCTYPE[97];
	uint32_t buffer_Modi_len = encode_utf32(chars_Modi[0], chars_Modi[1], buffer_Modi) - 1;
	if (scan(buffer_Modi, buffer_Modi + buffer_Modi_len, Modi) != Modi)
		printf("test 'Modi' failed\n");
	delete[] buffer_Modi;

	YYCTYPE *buffer_Mongolian_Supplement = new YYCTYPE[33];
	uint32_t buffer_Mongolian_Supplement_len = encode_utf32(chars_Mongolian_Supplement[0], chars_Mongolian_Supplement[1], buffer_Mongolian_Supplement) - 1;
	if (scan(buffer_Mongolian_Supplement, buffer_Mongolian_Supplement + buffer_Mongolian_Supplement_len, Mongolian_Supplement) != Mongolian_Supplement)
		printf("test 'Mongolian_Supplement' failed\n");
	delete[] buffer_Mongolian_Supplement;

	YYCTYPE *buffer_Takri = new YYCTYPE[81];
	uint32_t buffer_Takri_len = encode_utf32(chars_Takri[0], chars_Takri[1], buffer_Takri) - 1;
	if (scan(buffer_Takri, buffer_Takri + buffer_Takri_len, Takri) != Takri)
		printf("test 'Takri' failed\n");
	delete[] buffer_Takri;

	YYCTYPE *buffer_Myanmar_Extended_C = new YYCTYPE[49];
	uint32_t buffer_Myanmar_Extended_C_len = encode_utf32(chars_Myanmar_Extended_C[0], chars_Myanmar_Extended_C[1], buffer_Myanmar_Extended_C) - 1;
	if (scan(buffer_Myanmar_Extended_C, buffer_Myanmar_Extended_C + buffer_Myanmar_Extended_C_len, Myanmar_Extended_C) != Myanmar_Extended_C)
		printf("test 'Myanmar_Extended_C' failed\n");
	delete[] buffer_Myanmar_Extended_C;

	YYCTYPE *buffer_Ahom = new YYCTYPE[81];
	uint32_t buffer_Ahom_len = encode_utf32(chars_Ahom[0], chars_Ahom[1], buffer_Ahom) - 1;
	if (scan(buffer_Ahom, buffer_Ahom + buffer_Ahom_len, Ahom) != Ahom)
		printf("test 'Ahom' failed\n");
	delete[] buffer_Ahom;

	YYCTYPE *buffer_Dogra = new YYCTYPE[81];
	uint32_t buffer_Dogra_len = encode_utf32(chars_Dogra[0], chars_Dogra[1], buffer_Dogra) - 1;
	if (scan(buffer_Dogra, buffer_Dogra + buffer_Dogra_len, Dogra) != Dogra)
		printf("test 'Dogra' failed\n");
	delete[] buffer_Dogra;

	YYCTYPE *buffer_Warang_Citi = new YYCTYPE[97];
	uint32_t buffer_Warang_Citi_len = encode_utf32(chars_Warang_Citi[0], chars_Warang_Citi[1], buffer_Warang_Citi) - 1;
	if (scan(buffer_Warang_Citi, buffer_Warang_Citi + buffer_Warang_Citi_len, Warang_Citi) != Warang_Citi)
		printf("test 'Warang_Citi' failed\n");
	delete[] buffer_Warang_Citi;

	YYCTYPE *buffer_Dives_Akuru = new YYCTYPE[97];
	uint32_t buffer_Dives_Akuru_len = encode_utf32(chars_Dives_Akuru[0], chars_Dives_Akuru[1], buffer_Dives_Akuru) - 1;
	if (scan(buffer_Dives_Akuru, buffer_Dives_Akuru + buffer_Dives_Akuru_len, Dives_Akuru) != Dives_Akuru)
		printf("test 'Dives_Akuru' failed\n");
	delete[] buffer_Dives_Akuru;

	YYCTYPE *buffer_Nandinagari = new YYCTYPE[97];
	uint32_t buffer_Nandinagari_len = encode_utf32(chars_Nandinagari[0], chars_Nandinagari[1], buffer_Nandinagari) - 1;
	if (scan(buffer_Nandinagari, buffer_Nandinagari + buffer_Nandinagari_len, Nandinagari) != Nandinagari)
		printf("test 'Nandinagari' failed\n");
	delete[] buffer_Nandinagari;

	YYCTYPE *buffer_Zanabazar_Square = new YYCTYPE[81];
	uint32_t buffer_Zanabazar_Square_len = encode_utf32(chars_Zanabazar_Square[0], chars_Zanabazar_Square[1], buffer_Zanabazar_Square) - 1;
	if (scan(buffer_Zanabazar_Square, buffer_Zanabazar_Square + buffer_Zanabazar_Square_len, Zanabazar_Square) != Zanabazar_Square)
		printf("test 'Zanabazar_Square' failed\n");
	delete[] buffer_Zanabazar_Square;

	YYCTYPE *buffer_Soyombo = new YYCTYPE[97];
	uint32_t buffer_Soyombo_len = encode_utf32(chars_Soyombo[0], chars_Soyombo[1], buffer_Soyombo) - 1;
	if (scan(buffer_Soyombo, buffer_Soyombo + buffer_Soyombo_len, Soyombo) != Soyombo)
		printf("test 'Soyombo' failed\n");
	delete[] buffer_Soyombo;

	YYCTYPE *buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A = new YYCTYPE[17];
	uint32_t buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A_len = encode_utf32(chars_Unified_Canadian_Aboriginal_Syllabics_Extended_A[0], chars_Unified_Canadian_Aboriginal_Syllabics_Extended_A[1], buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A) - 1;
	if (scan(buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A, buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A + buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A_len, Unified_Canadian_Aboriginal_Syllabics_Extended_A) != Unified_Canadian_Aboriginal_Syllabics_Extended_A)
		printf("test 'Unified_Canadian_Aboriginal_Syllabics_Extended_A' failed\n");
	delete[] buffer_Unified_Canadian_Aboriginal_Syllabics_Extended_A;

	YYCTYPE *buffer_Pau_Cin_Hau = new YYCTYPE[65];
	uint32_t buffer_Pau_Cin_Hau_len = encode_utf32(chars_Pau_Cin_Hau[0], chars_Pau_Cin_Hau[1], buffer_Pau_Cin_Hau) - 1;
	if (scan(buffer_Pau_Cin_Hau, buffer_Pau_Cin_Hau + buffer_Pau_Cin_Hau_len, Pau_Cin_Hau) != Pau_Cin_Hau)
		printf("test 'Pau_Cin_Hau' failed\n");
	delete[] buffer_Pau_Cin_Hau;

	YYCTYPE *buffer_Devanagari_Extended_A = new YYCTYPE[97];
	uint32_t buffer_Devanagari_Extended_A_len = encode_utf32(chars_Devanagari_Extended_A[0], chars_Devanagari_Extended_A[1], buffer_Devanagari_Extended_A) - 1;
	if (scan(buffer_Devanagari_Extended_A, buffer_Devanagari_Extended_A + buffer_Devanagari_Extended_A_len, Devanagari_Extended_A) != Devanagari_Extended_A)
		printf("test 'Devanagari_Extended_A' failed\n");
	delete[] buffer_Devanagari_Extended_A;

	YYCTYPE *buffer_Sharada_Supplement = new YYCTYPE[33];
	uint32_t buffer_Sharada_Supplement_len = encode_utf32(chars_Sharada_Supplement[0], chars_Sharada_Supplement[1], buffer_Sharada_Supplement) - 1;
	if (scan(buffer_Sharada_Supplement, buffer_Sharada_Supplement + buffer_Sharada_Supplement_len, Sharada_Supplement) != Sharada_Supplement)
		printf("test 'Sharada_Supplement' failed\n");
	delete[] buffer_Sharada_Supplement;

	YYCTYPE *buffer_Sunuwar = new YYCTYPE[65];
	uint32_t buffer_Sunuwar_len = encode_utf32(chars_Sunuwar[0], chars_Sunuwar[1], buffer_Sunuwar) - 1;
	if (scan(buffer_Sunuwar, buffer_Sunuwar + buffer_Sunuwar_len, Sunuwar) != Sunuwar)
		printf("test 'Sunuwar' failed\n");
	delete[] buffer_Sunuwar;

	YYCTYPE *buffer_Bhaiksuki = new YYCTYPE[113];
	uint32_t buffer_Bhaiksuki_len = encode_utf32(chars_Bhaiksuki[0], chars_Bhaiksuki[1], buffer_Bhaiksuki) - 1;
	if (scan(buffer_Bhaiksuki, buffer_Bhaiksuki + buffer_Bhaiksuki_len, Bhaiksuki) != Bhaiksuki)
		printf("test 'Bhaiksuki' failed\n");
	delete[] buffer_Bhaiksuki;

	YYCTYPE *buffer_Marchen = new YYCTYPE[81];
	uint32_t buffer_Marchen_len = encode_utf32(chars_Marchen[0], chars_Marchen[1], buffer_Marchen) - 1;
	if (scan(buffer_Marchen, buffer_Marchen + buffer_Marchen_len, Marchen) != Marchen)
		printf("test 'Marchen' failed\n");
	delete[] buffer_Marchen;

	YYCTYPE *buffer_Masaram_Gondi = new YYCTYPE[97];
	uint32_t buffer_Masaram_Gondi_len = encode_utf32(chars_Masaram_Gondi[0], chars_Masaram_Gondi[1], buffer_Masaram_Gondi) - 1;
	if (scan(buffer_Masaram_Gondi, buffer_Masaram_Gondi + buffer_Masaram_Gondi_len, Masaram_Gondi) != Masaram_Gondi)
		printf("test 'Masaram_Gondi' failed\n");
	delete[] buffer_Masaram_Gondi;

	YYCTYPE *buffer_Gunjala_Gondi = new YYCTYPE[81];
	uint32_t buffer_Gunjala_Gondi_len = encode_utf32(chars_Gunjala_Gondi[0], chars_Gunjala_Gondi[1], buffer_Gunjala_Gondi) - 1;
	if (scan(buffer_Gunjala_Gondi, buffer_Gunjala_Gondi + buffer_Gunjala_Gondi_len, Gunjala_Gondi) != Gunjala_Gondi)
		printf("test 'Gunjala_Gondi' failed\n");
	delete[] buffer_Gunjala_Gondi;

	YYCTYPE *buffer_Tolong_Siki = new YYCTYPE[65];
	uint32_t buffer_Tolong_Siki_len = encode_utf32(chars_Tolong_Siki[0], chars_Tolong_Siki[1], buffer_Tolong_Siki) - 1;
	if (scan(buffer_Tolong_Siki, buffer_Tolong_Siki + buffer_Tolong_Siki_len, Tolong_Siki) != Tolong_Siki)
		printf("test 'Tolong_Siki' failed\n");
	delete[] buffer_Tolong_Siki;

	YYCTYPE *buffer_Makasar = new YYCTYPE[33];
	uint32_t buffer_Makasar_len = encode_utf32(chars_Makasar[0], chars_Makasar[1], buffer_Makasar) - 1;
	if (scan(buffer_Makasar, buffer_Makasar + buffer_Makasar_len, Makasar) != Makasar)
		printf("test 'Makasar' failed\n");
	delete[] buffer_Makasar;

	YYCTYPE *buffer_Kawi = new YYCTYPE[97];
	uint32_t buffer_Kawi_len = encode_utf32(chars_Kawi[0], chars_Kawi[1], buffer_Kawi) - 1;
	if (scan(buffer_Kawi, buffer_Kawi + buffer_Kawi_len, Kawi) != Kawi)
		printf("test 'Kawi' failed\n");
	delete[] buffer_Kawi;

	YYCTYPE *buffer_Lisu_Supplement = new YYCTYPE[17];
	uint32_t buffer_Lisu_Supplement_len = encode_utf32(chars_Lisu_Supplement[0], chars_Lisu_Supplement[1], buffer_Lisu_Supplement) - 1;
	if (scan(buffer_Lisu_Supplement, buffer_Lisu_Supplement + buffer_Lisu_Supplement_len, Lisu_Supplement) != Lisu_Supplement)
		printf("test 'Lisu_Supplement' failed\n");
	delete[] buffer_Lisu_Supplement;

	YYCTYPE *buffer_Tamil_Supplement = new YYCTYPE[65];
	uint32_t buffer_Tamil_Supplement_len = encode_utf32(chars_Tamil_Supplement[0], chars_Tamil_Supplement[1], buffer_Tamil_Supplement) - 1;
	if (scan(buffer_Tamil_Supplement, buffer_Tamil_Supplement + buffer_Tamil_Supplement_len, Tamil_Supplement) != Tamil_Supplement)
		printf("test 'Tamil_Supplement' failed\n");
	delete[] buffer_Tamil_Supplement;

	YYCTYPE *buffer_Cuneiform = new YYCTYPE[1025];
	uint32_t buffer_Cuneiform_len = encode_utf32(chars_Cuneiform[0], chars_Cuneiform[1], buffer_Cuneiform) - 1;
	if (scan(buffer_Cuneiform, buffer_Cuneiform + buffer_Cuneiform_len, Cuneiform) != Cuneiform)
		printf("test 'Cuneiform' failed\n");
	delete[] buffer_Cuneiform;

	YYCTYPE *buffer_Cuneiform_Numbers_and_Punctuation = new YYCTYPE[129];
	uint32_t buffer_Cuneiform_Numbers_and_Punctuation_len = encode_utf32(chars_Cuneiform_Numbers_and_Punctuation[0], chars_Cuneiform_Numbers_and_Punctuation[1], buffer_Cuneiform_Numbers_and_Punctuation) - 1;
	if (scan(buffer_Cuneiform_Numbers_and_Punctuation, buffer_Cuneiform_Numbers_and_Punctuation + buffer_Cuneiform_Numbers_and_Punctuation_len, Cuneiform_Numbers_and_Punctuation) != Cuneiform_Numbers_and_Punctuation)
		printf("test 'Cuneiform_Numbers_and_Punctuation' failed\n");
	delete[] buffer_Cuneiform_Numbers_and_Punctuation;

	YYCTYPE *buffer_Early_Dynastic_Cuneiform = new YYCTYPE[209];
	uint32_t buffer_Early_Dynastic_Cuneiform_len = encode_utf32(chars_Early_Dynastic_Cuneiform[0], chars_Early_Dynastic_Cuneiform[1], buffer_Early_Dynastic_Cuneiform) - 1;
	if (scan(buffer_Early_Dynastic_Cuneiform, buffer_Early_Dynastic_Cuneiform + buffer_Early_Dynastic_Cuneiform_len, Early_Dynastic_Cuneiform) != Early_Dynastic_Cuneiform)
		printf("test 'Early_Dynastic_Cuneiform' failed\n");
	delete[] buffer_Early_Dynastic_Cuneiform;

	YYCTYPE *buffer_Cypro_Minoan = new YYCTYPE[113];
	uint32_t buffer_Cypro_Minoan_len = encode_utf32(chars_Cypro_Minoan[0], chars_Cypro_Minoan[1], buffer_Cypro_Minoan) - 1;
	if (scan(buffer_Cypro_Minoan, buffer_Cypro_Minoan + buffer_Cypro_Minoan_len, Cypro_Minoan) != Cypro_Minoan)
		printf("test 'Cypro_Minoan' failed\n");
	delete[] buffer_Cypro_Minoan;

	YYCTYPE *buffer_Egyptian_Hieroglyphs = new YYCTYPE[1073];
	uint32_t buffer_Egyptian_Hieroglyphs_len = encode_utf32(chars_Egyptian_Hieroglyphs[0], chars_Egyptian_Hieroglyphs[1], buffer_Egyptian_Hieroglyphs) - 1;
	if (scan(buffer_Egyptian_Hieroglyphs, buffer_Egyptian_Hieroglyphs + buffer_Egyptian_Hieroglyphs_len, Egyptian_Hieroglyphs) != Egyptian_Hieroglyphs)
		printf("test 'Egyptian_Hieroglyphs' failed\n");
	delete[] buffer_Egyptian_Hieroglyphs;

	YYCTYPE *buffer_Egyptian_Hieroglyph_Format_Controls = new YYCTYPE[49];
	uint32_t buffer_Egyptian_Hieroglyph_Format_Controls_len = encode_utf32(chars_Egyptian_Hieroglyph_Format_Controls[0], chars_Egyptian_Hieroglyph_Format_Controls[1], buffer_Egyptian_Hieroglyph_Format_Controls) - 1;
	if (scan(buffer_Egyptian_Hieroglyph_Format_Controls, buffer_Egyptian_Hieroglyph_Format_Controls + buffer_Egyptian_Hieroglyph_Format_Controls_len, Egyptian_Hieroglyph_Format_Controls) != Egyptian_Hieroglyph_Format_Controls)
		printf("test 'Egyptian_Hieroglyph_Format_Controls' failed\n");
	delete[] buffer_Egyptian_Hieroglyph_Format_Controls;

	YYCTYPE *buffer_Egyptian_Hieroglyphs_Extended_A = new YYCTYPE[4001];
	uint32_t buffer_Egyptian_Hieroglyphs_Extended_A_len = encode_utf32(chars_Egyptian_Hieroglyphs_Extended_A[0], chars_Egyptian_Hieroglyphs_Extended_A[1], buffer_Egyptian_Hieroglyphs_Extended_A) - 1;
	if (scan(buffer_Egyptian_Hieroglyphs_Extended_A, buffer_Egyptian_Hieroglyphs_Extended_A + buffer_Egyptian_Hieroglyphs_Extended_A_len, Egyptian_Hieroglyphs_Extended_A) != Egyptian_Hieroglyphs_Extended_A)
		printf("test 'Egyptian_Hieroglyphs_Extended_A' failed\n");
	delete[] buffer_Egyptian_Hieroglyphs_Extended_A;

	YYCTYPE *buffer_Anatolian_Hieroglyphs = new YYCTYPE[641];
	uint32_t buffer_Anatolian_Hieroglyphs_len = encode_utf32(chars_Anatolian_Hieroglyphs[0], chars_Anatolian_Hieroglyphs[1], buffer_Anatolian_Hieroglyphs) - 1;
	if (scan(buffer_Anatolian_Hieroglyphs, buffer_Anatolian_Hieroglyphs + buffer_Anatolian_Hieroglyphs_len, Anatolian_Hieroglyphs) != Anatolian_Hieroglyphs)
		printf("test 'Anatolian_Hieroglyphs' failed\n");
	delete[] buffer_Anatolian_Hieroglyphs;

	YYCTYPE *buffer_Gurung_Khema = new YYCTYPE[65];
	uint32_t buffer_Gurung_Khema_len = encode_utf32(chars_Gurung_Khema[0], chars_Gurung_Khema[1], buffer_Gurung_Khema) - 1;
	if (scan(buffer_Gurung_Khema, buffer_Gurung_Khema + buffer_Gurung_Khema_len, Gurung_Khema) != Gurung_Khema)
		printf("test 'Gurung_Khema' failed\n");
	delete[] buffer_Gurung_Khema;

	YYCTYPE *buffer_Bamum_Supplement = new YYCTYPE[577];
	uint32_t buffer_Bamum_Supplement_len = encode_utf32(chars_Bamum_Supplement[0], chars_Bamum_Supplement[1], buffer_Bamum_Supplement) - 1;
	if (scan(buffer_Bamum_Supplement, buffer_Bamum_Supplement + buffer_Bamum_Supplement_len, Bamum_Supplement) != Bamum_Supplement)
		printf("test 'Bamum_Supplement' failed\n");
	delete[] buffer_Bamum_Supplement;

	YYCTYPE *buffer_Mro = new YYCTYPE[49];
	uint32_t buffer_Mro_len = encode_utf32(chars_Mro[0], chars_Mro[1], buffer_Mro) - 1;
	if (scan(buffer_Mro, buffer_Mro + buffer_Mro_len, Mro) != Mro)
		printf("test 'Mro' failed\n");
	delete[] buffer_Mro;

	YYCTYPE *buffer_Tangsa = new YYCTYPE[97];
	uint32_t buffer_Tangsa_len = encode_utf32(chars_Tangsa[0], chars_Tangsa[1], buffer_Tangsa) - 1;
	if (scan(buffer_Tangsa, buffer_Tangsa + buffer_Tangsa_len, Tangsa) != Tangsa)
		printf("test 'Tangsa' failed\n");
	delete[] buffer_Tangsa;

	YYCTYPE *buffer_Bassa_Vah = new YYCTYPE[49];
	uint32_t buffer_Bassa_Vah_len = encode_utf32(chars_Bassa_Vah[0], chars_Bassa_Vah[1], buffer_Bassa_Vah) - 1;
	if (scan(buffer_Bassa_Vah, buffer_Bassa_Vah + buffer_Bassa_Vah_len, Bassa_Vah) != Bassa_Vah)
		printf("test 'Bassa_Vah' failed\n");
	delete[] buffer_Bassa_Vah;

	YYCTYPE *buffer_Pahawh_Hmong = new YYCTYPE[145];
	uint32_t buffer_Pahawh_Hmong_len = encode_utf32(chars_Pahawh_Hmong[0], chars_Pahawh_Hmong[1], buffer_Pahawh_Hmong) - 1;
	if (scan(buffer_Pahawh_Hmong, buffer_Pahawh_Hmong + buffer_Pahawh_Hmong_len, Pahawh_Hmong) != Pahawh_Hmong)
		printf("test 'Pahawh_Hmong' failed\n");
	delete[] buffer_Pahawh_Hmong;

	YYCTYPE *buffer_Kirat_Rai = new YYCTYPE[65];
	uint32_t buffer_Kirat_Rai_len = encode_utf32(chars_Kirat_Rai[0], chars_Kirat_Rai[1], buffer_Kirat_Rai) - 1;
	if (scan(buffer_Kirat_Rai, buffer_Kirat_Rai + buffer_Kirat_Rai_len, Kirat_Rai) != Kirat_Rai)
		printf("test 'Kirat_Rai' failed\n");
	delete[] buffer_Kirat_Rai;

	YYCTYPE *buffer_Medefaidrin = new YYCTYPE[97];
	uint32_t buffer_Medefaidrin_len = encode_utf32(chars_Medefaidrin[0], chars_Medefaidrin[1], buffer_Medefaidrin) - 1;
	if (scan(buffer_Medefaidrin, buffer_Medefaidrin + buffer_Medefaidrin_len, Medefaidrin) != Medefaidrin)
		printf("test 'Medefaidrin' failed\n");
	delete[] buffer_Medefaidrin;

	YYCTYPE *buffer_Beria_Erfe = new YYCTYPE[65];
	uint32_t buffer_Beria_Erfe_len = encode_utf32(chars_Beria_Erfe[0], chars_Beria_Erfe[1], buffer_Beria_Erfe) - 1;
	if (scan(buffer_Beria_Erfe, buffer_Beria_Erfe + buffer_Beria_Erfe_len, Beria_Erfe) != Beria_Erfe)
		printf("test 'Beria_Erfe' failed\n");
	delete[] buffer_Beria_Erfe;

	YYCTYPE *buffer_Miao = new YYCTYPE[161];
	uint32_t buffer_Miao_len = encode_utf32(chars_Miao[0], chars_Miao[1], buffer_Miao) - 1;
	if (scan(buffer_Miao, buffer_Miao + buffer_Miao_len, Miao) != Miao)
		printf("test 'Miao' failed\n");
	delete[] buffer_Miao;

	YYCTYPE *buffer_Ideographic_Symbols_and_Punctuation = new YYCTYPE[33];
	uint32_t buffer_Ideographic_Symbols_and_Punctuation_len = encode_utf32(chars_Ideographic_Symbols_and_Punctuation[0], chars_Ideographic_Symbols_and_Punctuation[1], buffer_Ideographic_Symbols_and_Punctuation) - 1;
	if (scan(buffer_Ideographic_Symbols_and_Punctuation, buffer_Ideographic_Symbols_and_Punctuation + buffer_Ideographic_Symbols_and_Punctuation_len, Ideographic_Symbols_and_Punctuation) != Ideographic_Symbols_and_Punctuation)
		printf("test 'Ideographic_Symbols_and_Punctuation' failed\n");
	delete[] buffer_Ideographic_Symbols_and_Punctuation;

	YYCTYPE *buffer_Tangut = new YYCTYPE[6145];
	uint32_t buffer_Tangut_len = encode_utf32(chars_Tangut[0], chars_Tangut[1], buffer_Tangut) - 1;
	if (scan(buffer_Tangut, buffer_Tangut + buffer_Tangut_len, Tangut) != Tangut)
		printf("test 'Tangut' failed\n");
	delete[] buffer_Tangut;

	YYCTYPE *buffer_Tangut_Components = new YYCTYPE[769];
	uint32_t buffer_Tangut_Components_len = encode_utf32(chars_Tangut_Components[0], chars_Tangut_Components[1], buffer_Tangut_Components) - 1;
	if (scan(buffer_Tangut_Components, buffer_Tangut_Components + buffer_Tangut_Components_len, Tangut_Components) != Tangut_Components)
		printf("test 'Tangut_Components' failed\n");
	delete[] buffer_Tangut_Components;

	YYCTYPE *buffer_Khitan_Small_Script = new YYCTYPE[513];
	uint32_t buffer_Khitan_Small_Script_len = encode_utf32(chars_Khitan_Small_Script[0], chars_Khitan_Small_Script[1], buffer_Khitan_Small_Script) - 1;
	if (scan(buffer_Khitan_Small_Script, buffer_Khitan_Small_Script + buffer_Khitan_Small_Script_len, Khitan_Small_Script) != Khitan_Small_Script)
		printf("test 'Khitan_Small_Script' failed\n");
	delete[] buffer_Khitan_Small_Script;

	YYCTYPE *buffer_Tangut_Supplement = new YYCTYPE[129];
	uint32_t buffer_Tangut_Supplement_len = encode_utf32(chars_Tangut_Supplement[0], chars_Tangut_Supplement[1], buffer_Tangut_Supplement) - 1;
	if (scan(buffer_Tangut_Supplement, buffer_Tangut_Supplement + buffer_Tangut_Supplement_len, Tangut_Supplement) != Tangut_Supplement)
		printf("test 'Tangut_Supplement' failed\n");
	delete[] buffer_Tangut_Supplement;

	YYCTYPE *buffer_Tangut_Components_Supplement = new YYCTYPE[129];
	uint32_t buffer_Tangut_Components_Supplement_len = encode_utf32(chars_Tangut_Components_Supplement[0], chars_Tangut_Components_Supplement[1], buffer_Tangut_Components_Supplement) - 1;
	if (scan(buffer_Tangut_Components_Supplement, buffer_Tangut_Components_Supplement + buffer_Tangut_Components_Supplement_len, Tangut_Components_Supplement) != Tangut_Components_Supplement)
		printf("test 'Tangut_Components_Supplement' failed\n");
	delete[] buffer_Tangut_Components_Supplement;

	YYCTYPE *buffer_Kana_Extended_B = new YYCTYPE[17];
	uint32_t buffer_Kana_Extended_B_len = encode_utf32(chars_Kana_Extended_B[0], chars_Kana_Extended_B[1], buffer_Kana_Extended_B) - 1;
	if (scan(buffer_Kana_Extended_B, buffer_Kana_Extended_B + buffer_Kana_Extended_B_len, Kana_Extended_B) != Kana_Extended_B)
		printf("test 'Kana_Extended_B' failed\n");
	delete[] buffer_Kana_Extended_B;

	YYCTYPE *buffer_Kana_Supplement = new YYCTYPE[257];
	uint32_t buffer_Kana_Supplement_len = encode_utf32(chars_Kana_Supplement[0], chars_Kana_Supplement[1], buffer_Kana_Supplement) - 1;
	if (scan(buffer_Kana_Supplement, buffer_Kana_Supplement + buffer_Kana_Supplement_len, Kana_Supplement) != Kana_Supplement)
		printf("test 'Kana_Supplement' failed\n");
	delete[] buffer_Kana_Supplement;

	YYCTYPE *buffer_Kana_Extended_A = new YYCTYPE[49];
	uint32_t buffer_Kana_Extended_A_len = encode_utf32(chars_Kana_Extended_A[0], chars_Kana_Extended_A[1], buffer_Kana_Extended_A) - 1;
	if (scan(buffer_Kana_Extended_A, buffer_Kana_Extended_A + buffer_Kana_Extended_A_len, Kana_Extended_A) != Kana_Extended_A)
		printf("test 'Kana_Extended_A' failed\n");
	delete[] buffer_Kana_Extended_A;

	YYCTYPE *buffer_Small_Kana_Extension = new YYCTYPE[65];
	uint32_t buffer_Small_Kana_Extension_len = encode_utf32(chars_Small_Kana_Extension[0], chars_Small_Kana_Extension[1], buffer_Small_Kana_Extension) - 1;
	if (scan(buffer_Small_Kana_Extension, buffer_Small_Kana_Extension + buffer_Small_Kana_Extension_len, Small_Kana_Extension) != Small_Kana_Extension)
		printf("test 'Small_Kana_Extension' failed\n");
	delete[] buffer_Small_Kana_Extension;

	YYCTYPE *buffer_Nushu = new YYCTYPE[401];
	uint32_t buffer_Nushu_len = encode_utf32(chars_Nushu[0], chars_Nushu[1], buffer_Nushu) - 1;
	if (scan(buffer_Nushu, buffer_Nushu + buffer_Nushu_len, Nushu) != Nushu)
		printf("test 'Nushu' failed\n");
	delete[] buffer_Nushu;

	YYCTYPE *buffer_Duployan = new YYCTYPE[161];
	uint32_t buffer_Duployan_len = encode_utf32(chars_Duployan[0], chars_Duployan[1], buffer_Duployan) - 1;
	if (scan(buffer_Duployan, buffer_Duployan + buffer_Duployan_len, Duployan) != Duployan)
		printf("test 'Duployan' failed\n");
	delete[] buffer_Duployan;

	YYCTYPE *buffer_Shorthand_Format_Controls = new YYCTYPE[17];
	uint32_t buffer_Shorthand_Format_Controls_len = encode_utf32(chars_Shorthand_Format_Controls[0], chars_Shorthand_Format_Controls[1], buffer_Shorthand_Format_Controls) - 1;
	if (scan(buffer_Shorthand_Format_Controls, buffer_Shorthand_Format_Controls + buffer_Shorthand_Format_Controls_len, Shorthand_Format_Controls) != Shorthand_Format_Controls)
		printf("test 'Shorthand_Format_Controls' failed\n");
	delete[] buffer_Shorthand_Format_Controls;

	YYCTYPE *buffer_Symbols_for_Legacy_Computing_Supplement = new YYCTYPE[705];
	uint32_t buffer_Symbols_for_Legacy_Computing_Supplement_len = encode_utf32(chars_Symbols_for_Legacy_Computing_Supplement[0], chars_Symbols_for_Legacy_Computing_Supplement[1], buffer_Symbols_for_Legacy_Computing_Supplement) - 1;
	if (scan(buffer_Symbols_for_Legacy_Computing_Supplement, buffer_Symbols_for_Legacy_Computing_Supplement + buffer_Symbols_for_Legacy_Computing_Supplement_len, Symbols_for_Legacy_Computing_Supplement) != Symbols_for_Legacy_Computing_Supplement)
		printf("test 'Symbols_for_Legacy_Computing_Supplement' failed\n");
	delete[] buffer_Symbols_for_Legacy_Computing_Supplement;

	YYCTYPE *buffer_Miscellaneous_Symbols_Supplement = new YYCTYPE[65];
	uint32_t buffer_Miscellaneous_Symbols_Supplement_len = encode_utf32(chars_Miscellaneous_Symbols_Supplement[0], chars_Miscellaneous_Symbols_Supplement[1], buffer_Miscellaneous_Symbols_Supplement) - 1;
	if (scan(buffer_Miscellaneous_Symbols_Supplement, buffer_Miscellaneous_Symbols_Supplement + buffer_Miscellaneous_Symbols_Supplement_len, Miscellaneous_Symbols_Supplement) != Miscellaneous_Symbols_Supplement)
		printf("test 'Miscellaneous_Symbols_Supplement' failed\n");
	delete[] buffer_Miscellaneous_Symbols_Supplement;

	YYCTYPE *buffer_Znamenny_Musical_Notation = new YYCTYPE[209];
	uint32_t buffer_Znamenny_Musical_Notation_len = encode_utf32(chars_Znamenny_Musical_Notation[0], chars_Znamenny_Musical_Notation[1], buffer_Znamenny_Musical_Notation) - 1;
	if (scan(buffer_Znamenny_Musical_Notation, buffer_Znamenny_Musical_Notation + buffer_Znamenny_Musical_Notation_len, Znamenny_Musical_Notation) != Znamenny_Musical_Notation)
		printf("test 'Znamenny_Musical_Notation' failed\n");
	delete[] buffer_Znamenny_Musical_Notation;

	YYCTYPE *buffer_Byzantine_Musical_Symbols = new YYCTYPE[257];
	uint32_t buffer_Byzantine_Musical_Symbols_len = encode_utf32(chars_Byzantine_Musical_Symbols[0], chars_Byzantine_Musical_Symbols[1], buffer_Byzantine_Musical_Symbols) - 1;
	if (scan(buffer_Byzantine_Musical_Symbols, buffer_Byzantine_Musical_Symbols + buffer_Byzantine_Musical_Symbols_len, Byzantine_Musical_Symbols) != Byzantine_Musical_Symbols)
		printf("test 'Byzantine_Musical_Symbols' failed\n");
	delete[] buffer_Byzantine_Musical_Symbols;

	YYCTYPE *buffer_Musical_Symbols = new YYCTYPE[257];
	uint32_t buffer_Musical_Symbols_len = encode_utf32(chars_Musical_Symbols[0], chars_Musical_Symbols[1], buffer_Musical_Symbols) - 1;
	if (scan(buffer_Musical_Symbols, buffer_Musical_Symbols + buffer_Musical_Symbols_len, Musical_Symbols) != Musical_Symbols)
		printf("test 'Musical_Symbols' failed\n");
	delete[] buffer_Musical_Symbols;

	YYCTYPE *buffer_Ancient_Greek_Musical_Notation = new YYCTYPE[81];
	uint32_t buffer_Ancient_Greek_Musical_Notation_len = encode_utf32(chars_Ancient_Greek_Musical_Notation[0], chars_Ancient_Greek_Musical_Notation[1], buffer_Ancient_Greek_Musical_Notation) - 1;
	if (scan(buffer_Ancient_Greek_Musical_Notation, buffer_Ancient_Greek_Musical_Notation + buffer_Ancient_Greek_Musical_Notation_len, Ancient_Greek_Musical_Notation) != Ancient_Greek_Musical_Notation)
		printf("test 'Ancient_Greek_Musical_Notation' failed\n");
	delete[] buffer_Ancient_Greek_Musical_Notation;

	YYCTYPE *buffer_Kaktovik_Numerals = new YYCTYPE[33];
	uint32_t buffer_Kaktovik_Numerals_len = encode_utf32(chars_Kaktovik_Numerals[0], chars_Kaktovik_Numerals[1], buffer_Kaktovik_Numerals) - 1;
	if (scan(buffer_Kaktovik_Numerals, buffer_Kaktovik_Numerals + buffer_Kaktovik_Numerals_len, Kaktovik_Numerals) != Kaktovik_Numerals)
		printf("test 'Kaktovik_Numerals' failed\n");
	delete[] buffer_Kaktovik_Numerals;

	YYCTYPE *buffer_Mayan_Numerals = new YYCTYPE[33];
	uint32_t buffer_Mayan_Numerals_len = encode_utf32(chars_Mayan_Numerals[0], chars_Mayan_Numerals[1], buffer_Mayan_Numerals) - 1;
	if (scan(buffer_Mayan_Numerals, buffer_Mayan_Numerals + buffer_Mayan_Numerals_len, Mayan_Numerals) != Mayan_Numerals)
		printf("test 'Mayan_Numerals' failed\n");
	delete[] buffer_Mayan_Numerals;

	YYCTYPE *buffer_Tai_Xuan_Jing_Symbols = new YYCTYPE[97];
	uint32_t buffer_Tai_Xuan_Jing_Symbols_len = encode_utf32(chars_Tai_Xuan_Jing_Symbols[0], chars_Tai_Xuan_Jing_Symbols[1], buffer_Tai_Xuan_Jing_Symbols) - 1;
	if (scan(buffer_Tai_Xuan_Jing_Symbols, buffer_Tai_Xuan_Jing_Symbols + buffer_Tai_Xuan_Jing_Symbols_len, Tai_Xuan_Jing_Symbols) != Tai_Xuan_Jing_Symbols)
		printf("test 'Tai_Xuan_Jing_Symbols' failed\n");
	delete[] buffer_Tai_Xuan_Jing_Symbols;

	YYCTYPE *buffer_Counting_Rod_Numerals = new YYCTYPE[33];
	uint32_t buffer_Counting_Rod_Numerals_len = encode_utf32(chars_Counting_Rod_Numerals[0], chars_Counting_Rod_Numerals[1], buffer_Counting_Rod_Numerals) - 1;
	if (scan(buffer_Counting_Rod_Numerals, buffer_Counting_Rod_Numerals + buffer_Counting_Rod_Numerals_len, Counting_Rod_Numerals) != Counting_Rod_Numerals)
		printf("test 'Counting_Rod_Numerals' failed\n");
	delete[] buffer_Counting_Rod_Numerals;

	YYCTYPE *buffer_Mathematical_Alphanumeric_Symbols = new YYCTYPE[1025];
	uint32_t buffer_Mathematical_Alphanumeric_Symbols_len = encode_utf32(chars_Mathematical_Alphanumeric_Symbols[0], chars_Mathematical_Alphanumeric_Symbols[1], buffer_Mathematical_Alphanumeric_Symbols) - 1;
	if (scan(buffer_Mathematical_Alphanumeric_Symbols, buffer_Mathematical_Alphanumeric_Symbols + buffer_Mathematical_Alphanumeric_Symbols_len, Mathematical_Alphanumeric_Symbols) != Mathematical_Alphanumeric_Symbols)
		printf("test 'Mathematical_Alphanumeric_Symbols' failed\n");
	delete[] buffer_Mathematical_Alphanumeric_Symbols;

	YYCTYPE *buffer_Sutton_SignWriting = new YYCTYPE[689];
	uint32_t buffer_Sutton_SignWriting_len = encode_utf32(chars_Sutton_SignWriting[0], chars_Sutton_SignWriting[1], buffer_Sutton_SignWriting) - 1;
	if (scan(buffer_Sutton_SignWriting, buffer_Sutton_SignWriting + buffer_Sutton_SignWriting_len, Sutton_SignWriting) != Sutton_SignWriting)
		printf("test 'Sutton_SignWriting' failed\n");
	delete[] buffer_Sutton_SignWriting;

	YYCTYPE *buffer_Latin_Extended_G = new YYCTYPE[257];
	uint32_t buffer_Latin_Extended_G_len = encode_utf32(chars_Latin_Extended_G[0], chars_Latin_Extended_G[1], buffer_Latin_Extended_G) - 1;
	if (scan(buffer_Latin_Extended_G, buffer_Latin_Extended_G + buffer_Latin_Extended_G_len, Latin_Extended_G) != Latin_Extended_G)
		printf("test 'Latin_Extended_G' failed\n");
	delete[] buffer_Latin_Extended_G;

	YYCTYPE *buffer_Glagolitic_Supplement = new YYCTYPE[49];
	uint32_t buffer_Glagolitic_Supplement_len = encode_utf32(chars_Glagolitic_Supplement[0], chars_Glagolitic_Supplement[1], buffer_Glagolitic_Supplement) - 1;
	if (scan(buffer_Glagolitic_Supplement, buffer_Glagolitic_Supplement + buffer_Glagolitic_Supplement_len, Glagolitic_Supplement) != Glagolitic_Supplement)
		printf("test 'Glagolitic_Supplement' failed\n");
	delete[] buffer_Glagolitic_Supplement;

	YYCTYPE *buffer_Cyrillic_Extended_D = new YYCTYPE[97];
	uint32_t buffer_Cyrillic_Extended_D_len = encode_utf32(chars_Cyrillic_Extended_D[0], chars_Cyrillic_Extended_D[1], buffer_Cyrillic_Extended_D) - 1;
	if (scan(buffer_Cyrillic_Extended_D, buffer_Cyrillic_Extended_D + buffer_Cyrillic_Extended_D_len, Cyrillic_Extended_D) != Cyrillic_Extended_D)
		printf("test 'Cyrillic_Extended_D' failed\n");
	delete[] buffer_Cyrillic_Extended_D;

	YYCTYPE *buffer_Nyiakeng_Puachue_Hmong = new YYCTYPE[81];
	uint32_t buffer_Nyiakeng_Puachue_Hmong_len = encode_utf32(chars_Nyiakeng_Puachue_Hmong[0], chars_Nyiakeng_Puachue_Hmong[1], buffer_Nyiakeng_Puachue_Hmong) - 1;
	if (scan(buffer_Nyiakeng_Puachue_Hmong, buffer_Nyiakeng_Puachue_Hmong + buffer_Nyiakeng_Puachue_Hmong_len, Nyiakeng_Puachue_Hmong) != Nyiakeng_Puachue_Hmong)
		printf("test 'Nyiakeng_Puachue_Hmong' failed\n");
	delete[] buffer_Nyiakeng_Puachue_Hmong;

	YYCTYPE *buffer_Toto = new YYCTYPE[49];
	uint32_t buffer_Toto_len = encode_utf32(chars_Toto[0], chars_Toto[1], buffer_Toto) - 1;
	if (scan(buffer_Toto, buffer_Toto + buffer_Toto_len, Toto) != Toto)
		printf("test 'Toto' failed\n");
	delete[] buffer_Toto;

	YYCTYPE *buffer_Wancho = new YYCTYPE[65];
	uint32_t buffer_Wancho_len = encode_utf32(chars_Wancho[0], chars_Wancho[1], buffer_Wancho) - 1;
	if (scan(buffer_Wancho, buffer_Wancho + buffer_Wancho_len, Wancho) != Wancho)
		printf("test 'Wancho' failed\n");
	delete[] buffer_Wancho;

	YYCTYPE *buffer_Nag_Mundari = new YYCTYPE[49];
	uint32_t buffer_Nag_Mundari_len = encode_utf32(chars_Nag_Mundari[0], chars_Nag_Mundari[1], buffer_Nag_Mundari) - 1;
	if (scan(buffer_Nag_Mundari, buffer_Nag_Mundari + buffer_Nag_Mundari_len, Nag_Mundari) != Nag_Mundari)
		printf("test 'Nag_Mundari' failed\n");
	delete[] buffer_Nag_Mundari;

	YYCTYPE *buffer_Ol_Onal = new YYCTYPE[49];
	uint32_t buffer_Ol_Onal_len = encode_utf32(chars_Ol_Onal[0], chars_Ol_Onal[1], buffer_Ol_Onal) - 1;
	if (scan(buffer_Ol_Onal, buffer_Ol_Onal + buffer_Ol_Onal_len, Ol_Onal) != Ol_Onal)
		printf("test 'Ol_Onal' failed\n");
	delete[] buffer_Ol_Onal;

	YYCTYPE *buffer_Tai_Yo = new YYCTYPE[65];
	uint32_t buffer_Tai_Yo_len = encode_utf32(chars_Tai_Yo[0], chars_Tai_Yo[1], buffer_Tai_Yo) - 1;
	if (scan(buffer_Tai_Yo, buffer_Tai_Yo + buffer_Tai_Yo_len, Tai_Yo) != Tai_Yo)
		printf("test 'Tai_Yo' failed\n");
	delete[] buffer_Tai_Yo;

	YYCTYPE *buffer_Ethiopic_Extended_B = new YYCTYPE[33];
	uint32_t buffer_Ethiopic_Extended_B_len = encode_utf32(chars_Ethiopic_Extended_B[0], chars_Ethiopic_Extended_B[1], buffer_Ethiopic_Extended_B) - 1;
	if (scan(buffer_Ethiopic_Extended_B, buffer_Ethiopic_Extended_B + buffer_Ethiopic_Extended_B_len, Ethiopic_Extended_B) != Ethiopic_Extended_B)
		printf("test 'Ethiopic_Extended_B' failed\n");
	delete[] buffer_Ethiopic_Extended_B;

	YYCTYPE *buffer_Mende_Kikakui = new YYCTYPE[225];
	uint32_t buffer_Mende_Kikakui_len = encode_utf32(chars_Mende_Kikakui[0], chars_Mende_Kikakui[1], buffer_Mende_Kikakui) - 1;
	if (scan(buffer_Mende_Kikakui, buffer_Mende_Kikakui + buffer_Mende_Kikakui_len, Mende_Kikakui) != Mende_Kikakui)
		printf("test 'Mende_Kikakui' failed\n");
	delete[] buffer_Mende_Kikakui;

	YYCTYPE *buffer_Adlam = new YYCTYPE[97];
	uint32_t buffer_Adlam_len = encode_utf32(chars_Adlam[0], chars_Adlam[1], buffer_Adlam) - 1;
	if (scan(buffer_Adlam, buffer_Adlam + buffer_Adlam_len, Adlam) != Adlam)
		printf("test 'Adlam' failed\n");
	delete[] buffer_Adlam;

	YYCTYPE *buffer_Indic_Siyaq_Numbers = new YYCTYPE[81];
	uint32_t buffer_Indic_Siyaq_Numbers_len = encode_utf32(chars_Indic_Siyaq_Numbers[0], chars_Indic_Siyaq_Numbers[1], buffer_Indic_Siyaq_Numbers) - 1;
	if (scan(buffer_Indic_Siyaq_Numbers, buffer_Indic_Siyaq_Numbers + buffer_Indic_Siyaq_Numbers_len, Indic_Siyaq_Numbers) != Indic_Siyaq_Numbers)
		printf("test 'Indic_Siyaq_Numbers' failed\n");
	delete[] buffer_Indic_Siyaq_Numbers;

	YYCTYPE *buffer_Ottoman_Siyaq_Numbers = new YYCTYPE[81];
	uint32_t buffer_Ottoman_Siyaq_Numbers_len = encode_utf32(chars_Ottoman_Siyaq_Numbers[0], chars_Ottoman_Siyaq_Numbers[1], buffer_Ottoman_Siyaq_Numbers) - 1;
	if (scan(buffer_Ottoman_Siyaq_Numbers, buffer_Ottoman_Siyaq_Numbers + buffer_Ottoman_Siyaq_Numbers_len, Ottoman_Siyaq_Numbers) != Ottoman_Siyaq_Numbers)
		printf("test 'Ottoman_Siyaq_Numbers' failed\n");
	delete[] buffer_Ottoman_Siyaq_Numbers;

	YYCTYPE *buffer_Arabic_Mathematical_Alphabetic_Symbols = new YYCTYPE[257];
	uint32_t buffer_Arabic_Mathematical_Alphabetic_Symbols_len = encode_utf32(chars_Arabic_Mathematical_Alphabetic_Symbols[0], chars_Arabic_Mathematical_Alphabetic_Symbols[1], buffer_Arabic_Mathematical_Alphabetic_Symbols) - 1;
	if (scan(buffer_Arabic_Mathematical_Alphabetic_Symbols, buffer_Arabic_Mathematical_Alphabetic_Symbols + buffer_Arabic_Mathematical_Alphabetic_Symbols_len, Arabic_Mathematical_Alphabetic_Symbols) != Arabic_Mathematical_Alphabetic_Symbols)
		printf("test 'Arabic_Mathematical_Alphabetic_Symbols' failed\n");
	delete[] buffer_Arabic_Mathematical_Alphabetic_Symbols;

	YYCTYPE *buffer_Mahjong_Tiles = new YYCTYPE[49];
	uint32_t buffer_Mahjong_Tiles_len = encode_utf32(chars_Mahjong_Tiles[0], chars_Mahjong_Tiles[1], buffer_Mahjong_Tiles) - 1;
	if (scan(buffer_Mahjong_Tiles, buffer_Mahjong_Tiles + buffer_Mahjong_Tiles_len, Mahjong_Tiles) != Mahjong_Tiles)
		printf("test 'Mahjong_Tiles' failed\n");
	delete[] buffer_Mahjong_Tiles;

	YYCTYPE *buffer_Domino_Tiles = new YYCTYPE[113];
	uint32_t buffer_Domino_Tiles_len = encode_utf32(chars_Domino_Tiles[0], chars_Domino_Tiles[1], buffer_Domino_Tiles) - 1;
	if (scan(buffer_Domino_Tiles, buffer_Domino_Tiles + buffer_Domino_Tiles_len, Domino_Tiles) != Domino_Tiles)
		printf("test 'Domino_Tiles' failed\n");
	delete[] buffer_Domino_Tiles;

	YYCTYPE *buffer_Playing_Cards = new YYCTYPE[97];
	uint32_t buffer_Playing_Cards_len = encode_utf32(chars_Playing_Cards[0], chars_Playing_Cards[1], buffer_Playing_Cards) - 1;
	if (scan(buffer_Playing_Cards, buffer_Playing_Cards + buffer_Playing_Cards_len, Playing_Cards) != Playing_Cards)
		printf("test 'Playing_Cards' failed\n");
	delete[] buffer_Playing_Cards;

	YYCTYPE *buffer_Enclosed_Alphanumeric_Supplement = new YYCTYPE[257];
	uint32_t buffer_Enclosed_Alphanumeric_Supplement_len = encode_utf32(chars_Enclosed_Alphanumeric_Supplement[0], chars_Enclosed_Alphanumeric_Supplement[1], buffer_Enclosed_Alphanumeric_Supplement) - 1;
	if (scan(buffer_Enclosed_Alphanumeric_Supplement, buffer_Enclosed_Alphanumeric_Supplement + buffer_Enclosed_Alphanumeric_Supplement_len, Enclosed_Alphanumeric_Supplement) != Enclosed_Alphanumeric_Supplement)
		printf("test 'Enclosed_Alphanumeric_Supplement' failed\n");
	delete[] buffer_Enclosed_Alphanumeric_Supplement;

	YYCTYPE *buffer_Enclosed_Ideographic_Supplement = new YYCTYPE[257];
	uint32_t buffer_Enclosed_Ideographic_Supplement_len = encode_utf32(chars_Enclosed_Ideographic_Supplement[0], chars_Enclosed_Ideographic_Supplement[1], buffer_Enclosed_Ideographic_Supplement) - 1;
	if (scan(buffer_Enclosed_Ideographic_Supplement, buffer_Enclosed_Ideographic_Supplement + buffer_Enclosed_Ideographic_Supplement_len, Enclosed_Ideographic_Supplement) != Enclosed_Ideographic_Supplement)
		printf("test 'Enclosed_Ideographic_Supplement' failed\n");
	delete[] buffer_Enclosed_Ideographic_Supplement;

	YYCTYPE *buffer_Miscellaneous_Symbols_and_Pictographs = new YYCTYPE[769];
	uint32_t buffer_Miscellaneous_Symbols_and_Pictographs_len = encode_utf32(chars_Miscellaneous_Symbols_and_Pictographs[0], chars_Miscellaneous_Symbols_and_Pictographs[1], buffer_Miscellaneous_Symbols_and_Pictographs) - 1;
	if (scan(buffer_Miscellaneous_Symbols_and_Pictographs, buffer_Miscellaneous_Symbols_and_Pictographs + buffer_Miscellaneous_Symbols_and_Pictographs_len, Miscellaneous_Symbols_and_Pictographs) != Miscellaneous_Symbols_and_Pictographs)
		printf("test 'Miscellaneous_Symbols_and_Pictographs' failed\n");
	delete[] buffer_Miscellaneous_Symbols_and_Pictographs;

	YYCTYPE *buffer_Emoticons = new YYCTYPE[81];
	uint32_t buffer_Emoticons_len = encode_utf32(chars_Emoticons[0], chars_Emoticons[1], buffer_Emoticons) - 1;
	if (scan(buffer_Emoticons, buffer_Emoticons + buffer_Emoticons_len, Emoticons) != Emoticons)
		printf("test 'Emoticons' failed\n");
	delete[] buffer_Emoticons;

	YYCTYPE *buffer_Ornamental_Dingbats = new YYCTYPE[49];
	uint32_t buffer_Ornamental_Dingbats_len = encode_utf32(chars_Ornamental_Dingbats[0], chars_Ornamental_Dingbats[1], buffer_Ornamental_Dingbats) - 1;
	if (scan(buffer_Ornamental_Dingbats, buffer_Ornamental_Dingbats + buffer_Ornamental_Dingbats_len, Ornamental_Dingbats) != Ornamental_Dingbats)
		printf("test 'Ornamental_Dingbats' failed\n");
	delete[] buffer_Ornamental_Dingbats;

	YYCTYPE *buffer_Transport_and_Map_Symbols = new YYCTYPE[129];
	uint32_t buffer_Transport_and_Map_Symbols_len = encode_utf32(chars_Transport_and_Map_Symbols[0], chars_Transport_and_Map_Symbols[1], buffer_Transport_and_Map_Symbols) - 1;
	if (scan(buffer_Transport_and_Map_Symbols, buffer_Transport_and_Map_Symbols + buffer_Transport_and_Map_Symbols_len, Transport_and_Map_Symbols) != Transport_and_Map_Symbols)
		printf("test 'Transport_and_Map_Symbols' failed\n");
	delete[] buffer_Transport_and_Map_Symbols;

	YYCTYPE *buffer_Alchemical_Symbols = new YYCTYPE[129];
	uint32_t buffer_Alchemical_Symbols_len = encode_utf32(chars_Alchemical_Symbols[0], chars_Alchemical_Symbols[1], buffer_Alchemical_Symbols) - 1;
	if (scan(buffer_Alchemical_Symbols, buffer_Alchemical_Symbols + buffer_Alchemical_Symbols_len, Alchemical_Symbols) != Alchemical_Symbols)
		printf("test 'Alchemical_Symbols' failed\n");
	delete[] buffer_Alchemical_Symbols;

	YYCTYPE *buffer_Geometric_Shapes_Extended = new YYCTYPE[129];
	uint32_t buffer_Geometric_Shapes_Extended_len = encode_utf32(chars_Geometric_Shapes_Extended[0], chars_Geometric_Shapes_Extended[1], buffer_Geometric_Shapes_Extended) - 1;
	if (scan(buffer_Geometric_Shapes_Extended, buffer_Geometric_Shapes_Extended + buffer_Geometric_Shapes_Extended_len, Geometric_Shapes_Extended) != Geometric_Shapes_Extended)
		printf("test 'Geometric_Shapes_Extended' failed\n");
	delete[] buffer_Geometric_Shapes_Extended;

	YYCTYPE *buffer_Supplemental_Arrows_C = new YYCTYPE[257];
	uint32_t buffer_Supplemental_Arrows_C_len = encode_utf32(chars_Supplemental_Arrows_C[0], chars_Supplemental_Arrows_C[1], buffer_Supplemental_Arrows_C) - 1;
	if (scan(buffer_Supplemental_Arrows_C, buffer_Supplemental_Arrows_C + buffer_Supplemental_Arrows_C_len, Supplemental_Arrows_C) != Supplemental_Arrows_C)
		printf("test 'Supplemental_Arrows_C' failed\n");
	delete[] buffer_Supplemental_Arrows_C;

	YYCTYPE *buffer_Supplemental_Symbols_and_Pictographs = new YYCTYPE[257];
	uint32_t buffer_Supplemental_Symbols_and_Pictographs_len = encode_utf32(chars_Supplemental_Symbols_and_Pictographs[0], chars_Supplemental_Symbols_and_Pictographs[1], buffer_Supplemental_Symbols_and_Pictographs) - 1;
	if (scan(buffer_Supplemental_Symbols_and_Pictographs, buffer_Supplemental_Symbols_and_Pictographs + buffer_Supplemental_Symbols_and_Pictographs_len, Supplemental_Symbols_and_Pictographs) != Supplemental_Symbols_and_Pictographs)
		printf("test 'Supplemental_Symbols_and_Pictographs' failed\n");
	delete[] buffer_Supplemental_Symbols_and_Pictographs;

	YYCTYPE *buffer_Chess_Symbols = new YYCTYPE[113];
	uint32_t buffer_Chess_Symbols_len = encode_utf32(chars_Chess_Symbols[0], chars_Chess_Symbols[1], buffer_Chess_Symbols) - 1;
	if (scan(buffer_Chess_Symbols, buffer_Chess_Symbols + buffer_Chess_Symbols_len, Chess_Symbols) != Chess_Symbols)
		printf("test 'Chess_Symbols' failed\n");
	delete[] buffer_Chess_Symbols;

	YYCTYPE *buffer_Symbols_and_Pictographs_Extended_A = new YYCTYPE[145];
	uint32_t buffer_Symbols_and_Pictographs_Extended_A_len = encode_utf32(chars_Symbols_and_Pictographs_Extended_A[0], chars_Symbols_and_Pictographs_Extended_A[1], buffer_Symbols_and_Pictographs_Extended_A) - 1;
	if (scan(buffer_Symbols_and_Pictographs_Extended_A, buffer_Symbols_and_Pictographs_Extended_A + buffer_Symbols_and_Pictographs_Extended_A_len, Symbols_and_Pictographs_Extended_A) != Symbols_and_Pictographs_Extended_A)
		printf("test 'Symbols_and_Pictographs_Extended_A' failed\n");
	delete[] buffer_Symbols_and_Pictographs_Extended_A;

	YYCTYPE *buffer_Symbols_for_Legacy_Computing = new YYCTYPE[257];
	uint32_t buffer_Symbols_for_Legacy_Computing_len = encode_utf32(chars_Symbols_for_Legacy_Computing[0], chars_Symbols_for_Legacy_Computing[1], buffer_Symbols_for_Legacy_Computing) - 1;
	if (scan(buffer_Symbols_for_Legacy_Computing, buffer_Symbols_for_Legacy_Computing + buffer_Symbols_for_Legacy_Computing_len, Symbols_for_Legacy_Computing) != Symbols_for_Legacy_Computing)
		printf("test 'Symbols_for_Legacy_Computing' failed\n");
	delete[] buffer_Symbols_for_Legacy_Computing;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_B = new YYCTYPE[42721];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_B_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_B[0], chars_CJK_Unified_Ideographs_Extension_B[1], buffer_CJK_Unified_Ideographs_Extension_B) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_B, buffer_CJK_Unified_Ideographs_Extension_B + buffer_CJK_Unified_Ideographs_Extension_B_len, CJK_Unified_Ideographs_Extension_B) != CJK_Unified_Ideographs_Extension_B)
		printf("test 'CJK_Unified_Ideographs_Extension_B' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_B;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_C = new YYCTYPE[4161];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_C_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_C[0], chars_CJK_Unified_Ideographs_Extension_C[1], buffer_CJK_Unified_Ideographs_Extension_C) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_C, buffer_CJK_Unified_Ideographs_Extension_C + buffer_CJK_Unified_Ideographs_Extension_C_len, CJK_Unified_Ideographs_Extension_C) != CJK_Unified_Ideographs_Extension_C)
		printf("test 'CJK_Unified_Ideographs_Extension_C' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_C;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_D = new YYCTYPE[225];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_D_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_D[0], chars_CJK_Unified_Ideographs_Extension_D[1], buffer_CJK_Unified_Ideographs_Extension_D) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_D, buffer_CJK_Unified_Ideographs_Extension_D + buffer_CJK_Unified_Ideographs_Extension_D_len, CJK_Unified_Ideographs_Extension_D) != CJK_Unified_Ideographs_Extension_D)
		printf("test 'CJK_Unified_Ideographs_Extension_D' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_D;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_E = new YYCTYPE[5777];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_E_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_E[0], chars_CJK_Unified_Ideographs_Extension_E[1], buffer_CJK_Unified_Ideographs_Extension_E) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_E, buffer_CJK_Unified_Ideographs_Extension_E + buffer_CJK_Unified_Ideographs_Extension_E_len, CJK_Unified_Ideographs_Extension_E) != CJK_Unified_Ideographs_Extension_E)
		printf("test 'CJK_Unified_Ideographs_Extension_E' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_E;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_F = new YYCTYPE[7489];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_F_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_F[0], chars_CJK_Unified_Ideographs_Extension_F[1], buffer_CJK_Unified_Ideographs_Extension_F) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_F, buffer_CJK_Unified_Ideographs_Extension_F + buffer_CJK_Unified_Ideographs_Extension_F_len, CJK_Unified_Ideographs_Extension_F) != CJK_Unified_Ideographs_Extension_F)
		printf("test 'CJK_Unified_Ideographs_Extension_F' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_F;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_I = new YYCTYPE[625];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_I_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_I[0], chars_CJK_Unified_Ideographs_Extension_I[1], buffer_CJK_Unified_Ideographs_Extension_I) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_I, buffer_CJK_Unified_Ideographs_Extension_I + buffer_CJK_Unified_Ideographs_Extension_I_len, CJK_Unified_Ideographs_Extension_I) != CJK_Unified_Ideographs_Extension_I)
		printf("test 'CJK_Unified_Ideographs_Extension_I' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_I;

	YYCTYPE *buffer_CJK_Compatibility_Ideographs_Supplement = new YYCTYPE[545];
	uint32_t buffer_CJK_Compatibility_Ideographs_Supplement_len = encode_utf32(chars_CJK_Compatibility_Ideographs_Supplement[0], chars_CJK_Compatibility_Ideographs_Supplement[1], buffer_CJK_Compatibility_Ideographs_Supplement) - 1;
	if (scan(buffer_CJK_Compatibility_Ideographs_Supplement, buffer_CJK_Compatibility_Ideographs_Supplement + buffer_CJK_Compatibility_Ideographs_Supplement_len, CJK_Compatibility_Ideographs_Supplement) != CJK_Compatibility_Ideographs_Supplement)
		printf("test 'CJK_Compatibility_Ideographs_Supplement' failed\n");
	delete[] buffer_CJK_Compatibility_Ideographs_Supplement;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_G = new YYCTYPE[4945];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_G_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_G[0], chars_CJK_Unified_Ideographs_Extension_G[1], buffer_CJK_Unified_Ideographs_Extension_G) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_G, buffer_CJK_Unified_Ideographs_Extension_G + buffer_CJK_Unified_Ideographs_Extension_G_len, CJK_Unified_Ideographs_Extension_G) != CJK_Unified_Ideographs_Extension_G)
		printf("test 'CJK_Unified_Ideographs_Extension_G' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_G;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_H = new YYCTYPE[4193];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_H_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_H[0], chars_CJK_Unified_Ideographs_Extension_H[1], buffer_CJK_Unified_Ideographs_Extension_H) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_H, buffer_CJK_Unified_Ideographs_Extension_H + buffer_CJK_Unified_Ideographs_Extension_H_len, CJK_Unified_Ideographs_Extension_H) != CJK_Unified_Ideographs_Extension_H)
		printf("test 'CJK_Unified_Ideographs_Extension_H' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_H;

	YYCTYPE *buffer_CJK_Unified_Ideographs_Extension_J = new YYCTYPE[4305];
	uint32_t buffer_CJK_Unified_Ideographs_Extension_J_len = encode_utf32(chars_CJK_Unified_Ideographs_Extension_J[0], chars_CJK_Unified_Ideographs_Extension_J[1], buffer_CJK_Unified_Ideographs_Extension_J) - 1;
	if (scan(buffer_CJK_Unified_Ideographs_Extension_J, buffer_CJK_Unified_Ideographs_Extension_J + buffer_CJK_Unified_Ideographs_Extension_J_len, CJK_Unified_Ideographs_Extension_J) != CJK_Unified_Ideographs_Extension_J)
		printf("test 'CJK_Unified_Ideographs_Extension_J' failed\n");
	delete[] buffer_CJK_Unified_Ideographs_Extension_J;

	YYCTYPE *buffer_Tags = new YYCTYPE[129];
	uint32_t buffer_Tags_len = encode_utf32(chars_Tags[0], chars_Tags[1], buffer_Tags) - 1;
	if (scan(buffer_Tags, buffer_Tags + buffer_Tags_len, Tags) != Tags)
		printf("test 'Tags' failed\n");
	delete[] buffer_Tags;

	YYCTYPE *buffer_Variation_Selectors_Supplement = new YYCTYPE[241];
	uint32_t buffer_Variation_Selectors_Supplement_len = encode_utf32(chars_Variation_Selectors_Supplement[0], chars_Variation_Selectors_Supplement[1], buffer_Variation_Selectors_Supplement) - 1;
	if (scan(buffer_Variation_Selectors_Supplement, buffer_Variation_Selectors_Supplement + buffer_Variation_Selectors_Supplement_len, Variation_Selectors_Supplement) != Variation_Selectors_Supplement)
		printf("test 'Variation_Selectors_Supplement' failed\n");
	delete[] buffer_Variation_Selectors_Supplement;

	YYCTYPE *buffer_Supplementary_Private_Use_Area_A = new YYCTYPE[65537];
	uint32_t buffer_Supplementary_Private_Use_Area_A_len = encode_utf32(chars_Supplementary_Private_Use_Area_A[0], chars_Supplementary_Private_Use_Area_A[1], buffer_Supplementary_Private_Use_Area_A) - 1;
	if (scan(buffer_Supplementary_Private_Use_Area_A, buffer_Supplementary_Private_Use_Area_A + buffer_Supplementary_Private_Use_Area_A_len, Supplementary_Private_Use_Area_A) != Supplementary_Private_Use_Area_A)
		printf("test 'Supplementary_Private_Use_Area_A' failed\n");
	delete[] buffer_Supplementary_Private_Use_Area_A;

	YYCTYPE *buffer_Supplementary_Private_Use_Area_B = new YYCTYPE[65537];
	uint32_t buffer_Supplementary_Private_Use_Area_B_len = encode_utf32(chars_Supplementary_Private_Use_Area_B[0], chars_Supplementary_Private_Use_Area_B[1], buffer_Supplementary_Private_Use_Area_B) - 1;
	if (scan(buffer_Supplementary_Private_Use_Area_B, buffer_Supplementary_Private_Use_Area_B + buffer_Supplementary_Private_Use_Area_B_len, Supplementary_Private_Use_Area_B) != Supplementary_Private_Use_Area_B)
		printf("test 'Supplementary_Private_Use_Area_B' failed\n");
	delete[] buffer_Supplementary_Private_Use_Area_B;

	return 0;
}
