// This file is generated from Unicode data files. Do not edit by hand.
struct UnicodeWidthData {
    typealias Range = UnicodeUtil.LH

    static let eastAsianWide: [Range] = [
        Range(lo: 0x1100, hi: 0x115F),
        Range(lo: 0x231A, hi: 0x231B),
        Range(lo: 0x2329, hi: 0x232A),
        Range(lo: 0x23E9, hi: 0x23EC),
        Range(lo: 0x23F0, hi: 0x23F0),
        Range(lo: 0x23F3, hi: 0x23F3),
        Range(lo: 0x25FD, hi: 0x25FE),
        Range(lo: 0x2614, hi: 0x2615),
        Range(lo: 0x2630, hi: 0x2637),
        Range(lo: 0x2648, hi: 0x2653),
        Range(lo: 0x267F, hi: 0x267F),
        Range(lo: 0x268A, hi: 0x268F),
        Range(lo: 0x2693, hi: 0x2693),
        Range(lo: 0x26A1, hi: 0x26A1),
        Range(lo: 0x26AA, hi: 0x26AB),
        Range(lo: 0x26BD, hi: 0x26BE),
        Range(lo: 0x26C4, hi: 0x26C5),
        Range(lo: 0x26CE, hi: 0x26CE),
        Range(lo: 0x26D4, hi: 0x26D4),
        Range(lo: 0x26EA, hi: 0x26EA),
        Range(lo: 0x26F2, hi: 0x26F3),
        Range(lo: 0x26F5, hi: 0x26F5),
        Range(lo: 0x26FA, hi: 0x26FA),
        Range(lo: 0x26FD, hi: 0x26FD),
        Range(lo: 0x2705, hi: 0x2705),
        Range(lo: 0x270A, hi: 0x270B),
        Range(lo: 0x2728, hi: 0x2728),
        Range(lo: 0x274C, hi: 0x274C),
        Range(lo: 0x274E, hi: 0x274E),
        Range(lo: 0x2753, hi: 0x2755),
        Range(lo: 0x2757, hi: 0x2757),
        Range(lo: 0x2795, hi: 0x2797),
        Range(lo: 0x27B0, hi: 0x27B0),
        Range(lo: 0x27BF, hi: 0x27BF),
        Range(lo: 0x2B1B, hi: 0x2B1C),
        Range(lo: 0x2B50, hi: 0x2B50),
        Range(lo: 0x2B55, hi: 0x2B55),
        Range(lo: 0x2E80, hi: 0x2E99),
        Range(lo: 0x2E9B, hi: 0x2EF3),
        Range(lo: 0x2F00, hi: 0x2FD5),
        Range(lo: 0x2FF0, hi: 0x303E),
        Range(lo: 0x3041, hi: 0x3096),
        Range(lo: 0x3099, hi: 0x30FF),
        Range(lo: 0x3105, hi: 0x312F),
        Range(lo: 0x3131, hi: 0x318E),
        Range(lo: 0x3190, hi: 0x31E5),
        Range(lo: 0x31EF, hi: 0x321E),
        Range(lo: 0x3220, hi: 0x3247),
        Range(lo: 0x3250, hi: 0xA48C),
        Range(lo: 0xA490, hi: 0xA4C6),
        Range(lo: 0xA960, hi: 0xA97C),
        Range(lo: 0xAC00, hi: 0xD7A3),
        Range(lo: 0xF900, hi: 0xFAFF),
        Range(lo: 0xFE10, hi: 0xFE19),
        Range(lo: 0xFE30, hi: 0xFE52),
        Range(lo: 0xFE54, hi: 0xFE66),
        Range(lo: 0xFE68, hi: 0xFE6B),
        Range(lo: 0xFF01, hi: 0xFF60),
        Range(lo: 0xFFE0, hi: 0xFFE6),
        Range(lo: 0x16FE0, hi: 0x16FE4),
        Range(lo: 0x16FF0, hi: 0x16FF6),
        Range(lo: 0x17000, hi: 0x18CD5),
        Range(lo: 0x18CFF, hi: 0x18D1E),
        Range(lo: 0x18D80, hi: 0x18DF2),
        Range(lo: 0x1AFF0, hi: 0x1AFF3),
        Range(lo: 0x1AFF5, hi: 0x1AFFB),
        Range(lo: 0x1AFFD, hi: 0x1AFFE),
        Range(lo: 0x1B000, hi: 0x1B122),
        Range(lo: 0x1B132, hi: 0x1B132),
        Range(lo: 0x1B150, hi: 0x1B152),
        Range(lo: 0x1B155, hi: 0x1B155),
        Range(lo: 0x1B164, hi: 0x1B167),
        Range(lo: 0x1B170, hi: 0x1B2FB),
        Range(lo: 0x1D300, hi: 0x1D356),
        Range(lo: 0x1D360, hi: 0x1D376),
        Range(lo: 0x1F004, hi: 0x1F004),
        Range(lo: 0x1F0CF, hi: 0x1F0CF),
        Range(lo: 0x1F18E, hi: 0x1F18E),
        Range(lo: 0x1F191, hi: 0x1F19A),
        Range(lo: 0x1F200, hi: 0x1F202),
        Range(lo: 0x1F210, hi: 0x1F23B),
        Range(lo: 0x1F240, hi: 0x1F248),
        Range(lo: 0x1F250, hi: 0x1F251),
        Range(lo: 0x1F260, hi: 0x1F265),
        Range(lo: 0x1F300, hi: 0x1F320),
        Range(lo: 0x1F32D, hi: 0x1F335),
        Range(lo: 0x1F337, hi: 0x1F37C),
        Range(lo: 0x1F37E, hi: 0x1F393),
        Range(lo: 0x1F3A0, hi: 0x1F3CA),
        Range(lo: 0x1F3CF, hi: 0x1F3D3),
        Range(lo: 0x1F3E0, hi: 0x1F3F0),
        Range(lo: 0x1F3F4, hi: 0x1F3F4),
        Range(lo: 0x1F3F8, hi: 0x1F43E),
        Range(lo: 0x1F440, hi: 0x1F440),
        Range(lo: 0x1F442, hi: 0x1F4FC),
        Range(lo: 0x1F4FF, hi: 0x1F53D),
        Range(lo: 0x1F54B, hi: 0x1F54E),
        Range(lo: 0x1F550, hi: 0x1F567),
        Range(lo: 0x1F57A, hi: 0x1F57A),
        Range(lo: 0x1F595, hi: 0x1F596),
        Range(lo: 0x1F5A4, hi: 0x1F5A4),
        Range(lo: 0x1F5FB, hi: 0x1F64F),
        Range(lo: 0x1F680, hi: 0x1F6C5),
        Range(lo: 0x1F6CC, hi: 0x1F6CC),
        Range(lo: 0x1F6D0, hi: 0x1F6D2),
        Range(lo: 0x1F6D5, hi: 0x1F6D8),
        Range(lo: 0x1F6DC, hi: 0x1F6DF),
        Range(lo: 0x1F6EB, hi: 0x1F6EC),
        Range(lo: 0x1F6F4, hi: 0x1F6FC),
        Range(lo: 0x1F7E0, hi: 0x1F7EB),
        Range(lo: 0x1F7F0, hi: 0x1F7F0),
        Range(lo: 0x1F90C, hi: 0x1F93A),
        Range(lo: 0x1F93C, hi: 0x1F945),
        Range(lo: 0x1F947, hi: 0x1F9FF),
        Range(lo: 0x1FA70, hi: 0x1FA7C),
        Range(lo: 0x1FA80, hi: 0x1FA8A),
        Range(lo: 0x1FA8E, hi: 0x1FAC6),
        Range(lo: 0x1FAC8, hi: 0x1FAC8),
        Range(lo: 0x1FACD, hi: 0x1FADC),
        Range(lo: 0x1FADF, hi: 0x1FAEA),
        Range(lo: 0x1FAEF, hi: 0x1FAF8),
        Range(lo: 0x20000, hi: 0x2FFFD),
        Range(lo: 0x30000, hi: 0x3FFFD),
    ]

    static let emojiVs16Base: [Range] = [
        Range(lo: 0x0023, hi: 0x0023),
        Range(lo: 0x002A, hi: 0x002A),
        Range(lo: 0x0030, hi: 0x0039),
        Range(lo: 0x00A9, hi: 0x00A9),
        Range(lo: 0x00AE, hi: 0x00AE),
        Range(lo: 0x203C, hi: 0x203C),
        Range(lo: 0x2049, hi: 0x2049),
        Range(lo: 0x2122, hi: 0x2122),
        Range(lo: 0x2139, hi: 0x2139),
        Range(lo: 0x2194, hi: 0x2199),
        Range(lo: 0x21A9, hi: 0x21AA),
        Range(lo: 0x231A, hi: 0x231B),
        Range(lo: 0x2328, hi: 0x2328),
        Range(lo: 0x23CF, hi: 0x23CF),
        Range(lo: 0x23E9, hi: 0x23F3),
        Range(lo: 0x23F8, hi: 0x23FA),
        Range(lo: 0x24C2, hi: 0x24C2),
        Range(lo: 0x25AA, hi: 0x25AB),
        Range(lo: 0x25B6, hi: 0x25B6),
        Range(lo: 0x25C0, hi: 0x25C0),
        Range(lo: 0x25FB, hi: 0x25FE),
        Range(lo: 0x2600, hi: 0x2604),
        Range(lo: 0x260E, hi: 0x260E),
        Range(lo: 0x2611, hi: 0x2611),
        Range(lo: 0x2614, hi: 0x2615),
        Range(lo: 0x2618, hi: 0x2618),
        Range(lo: 0x261D, hi: 0x261D),
        Range(lo: 0x2620, hi: 0x2620),
        Range(lo: 0x2622, hi: 0x2623),
        Range(lo: 0x2626, hi: 0x2626),
        Range(lo: 0x262A, hi: 0x262A),
        Range(lo: 0x262E, hi: 0x262F),
        Range(lo: 0x2638, hi: 0x263A),
        Range(lo: 0x2640, hi: 0x2640),
        Range(lo: 0x2642, hi: 0x2642),
        Range(lo: 0x2648, hi: 0x2653),
        Range(lo: 0x265F, hi: 0x2660),
        Range(lo: 0x2663, hi: 0x2663),
        Range(lo: 0x2665, hi: 0x2666),
        Range(lo: 0x2668, hi: 0x2668),
        Range(lo: 0x267B, hi: 0x267B),
        Range(lo: 0x267E, hi: 0x267F),
        Range(lo: 0x2692, hi: 0x2697),
        Range(lo: 0x2699, hi: 0x2699),
        Range(lo: 0x269B, hi: 0x269C),
        Range(lo: 0x26A0, hi: 0x26A1),
        Range(lo: 0x26A7, hi: 0x26A7),
        Range(lo: 0x26AA, hi: 0x26AB),
        Range(lo: 0x26B0, hi: 0x26B1),
        Range(lo: 0x26BD, hi: 0x26BE),
        Range(lo: 0x26C4, hi: 0x26C5),
        Range(lo: 0x26C8, hi: 0x26C8),
        Range(lo: 0x26CE, hi: 0x26CF),
        Range(lo: 0x26D1, hi: 0x26D1),
        Range(lo: 0x26D3, hi: 0x26D4),
        Range(lo: 0x26E9, hi: 0x26EA),
        Range(lo: 0x26F0, hi: 0x26F5),
        Range(lo: 0x26F7, hi: 0x26FA),
        Range(lo: 0x26FD, hi: 0x26FD),
        Range(lo: 0x2702, hi: 0x2702),
        Range(lo: 0x2705, hi: 0x2705),
        Range(lo: 0x2708, hi: 0x270D),
        Range(lo: 0x270F, hi: 0x270F),
        Range(lo: 0x2712, hi: 0x2712),
        Range(lo: 0x2714, hi: 0x2714),
        Range(lo: 0x2716, hi: 0x2716),
        Range(lo: 0x271D, hi: 0x271D),
        Range(lo: 0x2721, hi: 0x2721),
        Range(lo: 0x2728, hi: 0x2728),
        Range(lo: 0x2733, hi: 0x2734),
        Range(lo: 0x2744, hi: 0x2744),
        Range(lo: 0x2747, hi: 0x2747),
        Range(lo: 0x274C, hi: 0x274C),
        Range(lo: 0x274E, hi: 0x274E),
        Range(lo: 0x2753, hi: 0x2755),
        Range(lo: 0x2757, hi: 0x2757),
        Range(lo: 0x2763, hi: 0x2764),
        Range(lo: 0x2795, hi: 0x2797),
        Range(lo: 0x27A1, hi: 0x27A1),
        Range(lo: 0x27B0, hi: 0x27B0),
        Range(lo: 0x27BF, hi: 0x27BF),
        Range(lo: 0x2934, hi: 0x2935),
        Range(lo: 0x2B05, hi: 0x2B07),
        Range(lo: 0x2B1B, hi: 0x2B1C),
        Range(lo: 0x2B50, hi: 0x2B50),
        Range(lo: 0x2B55, hi: 0x2B55),
        Range(lo: 0x3030, hi: 0x3030),
        Range(lo: 0x303D, hi: 0x303D),
        Range(lo: 0x3297, hi: 0x3297),
        Range(lo: 0x3299, hi: 0x3299),
        Range(lo: 0x1F004, hi: 0x1F004),
        Range(lo: 0x1F170, hi: 0x1F171),
        Range(lo: 0x1F17E, hi: 0x1F17F),
        Range(lo: 0x1F202, hi: 0x1F202),
        Range(lo: 0x1F21A, hi: 0x1F21A),
        Range(lo: 0x1F22F, hi: 0x1F22F),
        Range(lo: 0x1F237, hi: 0x1F237),
        Range(lo: 0x1F30D, hi: 0x1F30F),
        Range(lo: 0x1F315, hi: 0x1F315),
        Range(lo: 0x1F31C, hi: 0x1F31C),
        Range(lo: 0x1F321, hi: 0x1F321),
        Range(lo: 0x1F324, hi: 0x1F32C),
        Range(lo: 0x1F336, hi: 0x1F336),
        Range(lo: 0x1F378, hi: 0x1F378),
        Range(lo: 0x1F37D, hi: 0x1F37D),
        Range(lo: 0x1F393, hi: 0x1F393),
        Range(lo: 0x1F396, hi: 0x1F397),
        Range(lo: 0x1F399, hi: 0x1F39B),
        Range(lo: 0x1F39E, hi: 0x1F39F),
        Range(lo: 0x1F3A7, hi: 0x1F3A7),
        Range(lo: 0x1F3AC, hi: 0x1F3AE),
        Range(lo: 0x1F3C2, hi: 0x1F3C2),
        Range(lo: 0x1F3C4, hi: 0x1F3C4),
        Range(lo: 0x1F3C6, hi: 0x1F3C6),
        Range(lo: 0x1F3CA, hi: 0x1F3CE),
        Range(lo: 0x1F3D4, hi: 0x1F3E0),
        Range(lo: 0x1F3ED, hi: 0x1F3ED),
        Range(lo: 0x1F3F3, hi: 0x1F3F3),
        Range(lo: 0x1F3F5, hi: 0x1F3F5),
        Range(lo: 0x1F3F7, hi: 0x1F3F7),
        Range(lo: 0x1F408, hi: 0x1F408),
        Range(lo: 0x1F415, hi: 0x1F415),
        Range(lo: 0x1F41F, hi: 0x1F41F),
        Range(lo: 0x1F426, hi: 0x1F426),
        Range(lo: 0x1F43F, hi: 0x1F43F),
        Range(lo: 0x1F441, hi: 0x1F442),
        Range(lo: 0x1F446, hi: 0x1F449),
        Range(lo: 0x1F44D, hi: 0x1F44E),
        Range(lo: 0x1F453, hi: 0x1F453),
        Range(lo: 0x1F46A, hi: 0x1F46A),
        Range(lo: 0x1F47D, hi: 0x1F47D),
        Range(lo: 0x1F4A3, hi: 0x1F4A3),
        Range(lo: 0x1F4B0, hi: 0x1F4B0),
        Range(lo: 0x1F4B3, hi: 0x1F4B3),
        Range(lo: 0x1F4BB, hi: 0x1F4BB),
        Range(lo: 0x1F4BF, hi: 0x1F4BF),
        Range(lo: 0x1F4CB, hi: 0x1F4CB),
        Range(lo: 0x1F4DA, hi: 0x1F4DA),
        Range(lo: 0x1F4DF, hi: 0x1F4DF),
        Range(lo: 0x1F4E4, hi: 0x1F4E6),
        Range(lo: 0x1F4EA, hi: 0x1F4ED),
        Range(lo: 0x1F4F7, hi: 0x1F4F7),
        Range(lo: 0x1F4F9, hi: 0x1F4FB),
        Range(lo: 0x1F4FD, hi: 0x1F4FD),
        Range(lo: 0x1F508, hi: 0x1F508),
        Range(lo: 0x1F50D, hi: 0x1F50D),
        Range(lo: 0x1F512, hi: 0x1F513),
        Range(lo: 0x1F549, hi: 0x1F54A),
        Range(lo: 0x1F550, hi: 0x1F567),
        Range(lo: 0x1F56F, hi: 0x1F570),
        Range(lo: 0x1F573, hi: 0x1F579),
        Range(lo: 0x1F587, hi: 0x1F587),
        Range(lo: 0x1F58A, hi: 0x1F58D),
        Range(lo: 0x1F590, hi: 0x1F590),
        Range(lo: 0x1F5A5, hi: 0x1F5A5),
        Range(lo: 0x1F5A8, hi: 0x1F5A8),
        Range(lo: 0x1F5B1, hi: 0x1F5B2),
        Range(lo: 0x1F5BC, hi: 0x1F5BC),
        Range(lo: 0x1F5C2, hi: 0x1F5C4),
        Range(lo: 0x1F5D1, hi: 0x1F5D3),
        Range(lo: 0x1F5DC, hi: 0x1F5DE),
        Range(lo: 0x1F5E1, hi: 0x1F5E1),
        Range(lo: 0x1F5E3, hi: 0x1F5E3),
        Range(lo: 0x1F5E8, hi: 0x1F5E8),
        Range(lo: 0x1F5EF, hi: 0x1F5EF),
        Range(lo: 0x1F5F3, hi: 0x1F5F3),
        Range(lo: 0x1F5FA, hi: 0x1F5FA),
        Range(lo: 0x1F610, hi: 0x1F610),
        Range(lo: 0x1F687, hi: 0x1F687),
        Range(lo: 0x1F68D, hi: 0x1F68D),
        Range(lo: 0x1F691, hi: 0x1F691),
        Range(lo: 0x1F694, hi: 0x1F694),
        Range(lo: 0x1F698, hi: 0x1F698),
        Range(lo: 0x1F6AD, hi: 0x1F6AD),
        Range(lo: 0x1F6B2, hi: 0x1F6B2),
        Range(lo: 0x1F6B9, hi: 0x1F6BA),
        Range(lo: 0x1F6BC, hi: 0x1F6BC),
        Range(lo: 0x1F6CB, hi: 0x1F6CB),
        Range(lo: 0x1F6CD, hi: 0x1F6CF),
        Range(lo: 0x1F6E0, hi: 0x1F6E5),
        Range(lo: 0x1F6E9, hi: 0x1F6E9),
        Range(lo: 0x1F6F0, hi: 0x1F6F0),
        Range(lo: 0x1F6F3, hi: 0x1F6F3),
    ]
}
