#![allow(clippy::all)]
#![allow(unreachable_patterns)]
#![allow(unused_parens)]
#![allow(dead_code)]
use crate::unicode::bidi::BidiClass;
#[inline]
pub(crate) const fn bidi_class(cp: u32) -> BidiClass {
match cp >> 8 {
#[cfg(feature = "ascii")]
0x000 => bc_p0(cp as u8),
#[cfg(feature = "bmp")]
0x002 => bc_p2(cp as u8),
#[cfg(feature = "bmp")]
0x003 => bc_p3(cp as u8),
#[cfg(feature = "bmp")]
0x004 => bc_p4(cp as u8),
#[cfg(feature = "bmp")]
0x005 => bc_p5(cp as u8),
#[cfg(feature = "bmp")]
0x006 => bc_p6(cp as u8),
#[cfg(feature = "bmp")]
0x007 => bc_p7(cp as u8),
#[cfg(feature = "bmp")]
0x008 => bc_p8(cp as u8),
#[cfg(feature = "bmp")]
0x009 => bc_p9(cp as u8),
#[cfg(feature = "bmp")]
0x00a => bc_pa(cp as u8),
#[cfg(feature = "bmp")]
0x00b => bc_pb(cp as u8),
#[cfg(feature = "bmp")]
0x00c => bc_pc(cp as u8),
#[cfg(feature = "bmp")]
0x00d => bc_pd(cp as u8),
#[cfg(feature = "bmp")]
0x00e => bc_pe(cp as u8),
#[cfg(feature = "bmp")]
0x00f => bc_pf(cp as u8),
#[cfg(feature = "bmp")]
0x010 => bc_p10(cp as u8),
#[cfg(feature = "bmp")]
0x013 => bc_p13(cp as u8),
#[cfg(feature = "bmp")]
0x014 => bc_p14(cp as u8),
#[cfg(feature = "bmp")]
0x016 => bc_p16(cp as u8),
#[cfg(feature = "bmp")]
0x017 => bc_p17(cp as u8),
#[cfg(feature = "bmp")]
0x018 => bc_p18(cp as u8),
#[cfg(feature = "bmp")]
0x019 => bc_p19(cp as u8),
#[cfg(feature = "bmp")]
0x01a => bc_p1a(cp as u8),
#[cfg(feature = "bmp")]
0x01b => bc_p1b(cp as u8),
#[cfg(feature = "bmp")]
0x01c => bc_p1c(cp as u8),
#[cfg(feature = "bmp")]
0x01d => bc_p1d(cp as u8),
#[cfg(feature = "bmp")]
0x01f => bc_p1f(cp as u8),
#[cfg(feature = "bmp")]
0x020 => bc_p20(cp as u8),
#[cfg(feature = "bmp")]
0x021 => bc_p21(cp as u8),
#[cfg(feature = "bmp")]
0x022 => bc_p22(cp as u8),
#[cfg(feature = "bmp")]
0x023 => bc_p23(cp as u8),
#[cfg(feature = "bmp")]
0x024 => bc_p24(cp as u8),
#[cfg(feature = "bmp")]
0x025 => BidiClass::ON,
#[cfg(feature = "bmp")]
0x026 => bc_p26(cp as u8),
#[cfg(feature = "bmp")]
0x027 => BidiClass::ON,
#[cfg(feature = "bmp")]
0x029 => BidiClass::ON,
#[cfg(feature = "bmp")]
0x02a => BidiClass::ON,
#[cfg(feature = "bmp")]
0x02b => bc_p2b(cp as u8),
#[cfg(feature = "bmp")]
0x02c => bc_p2c(cp as u8),
#[cfg(feature = "bmp")]
0x02d => bc_p2d(cp as u8),
#[cfg(feature = "bmp")]
0x02e => bc_p2e(cp as u8),
#[cfg(feature = "bmp")]
0x02f => bc_p2f(cp as u8),
#[cfg(feature = "bmp")]
0x030 => bc_p30(cp as u8),
#[cfg(feature = "bmp")]
0x031 => bc_p31(cp as u8),
#[cfg(feature = "bmp")]
0x032 => bc_p32(cp as u8),
#[cfg(feature = "bmp")]
0x033 => bc_p33(cp as u8),
#[cfg(feature = "bmp")]
0x04d => bc_p4d(cp as u8),
#[cfg(feature = "bmp")]
0x0a4 => bc_pa4(cp as u8),
#[cfg(feature = "bmp")]
0x0a6 => bc_pa6(cp as u8),
#[cfg(feature = "bmp")]
0x0a7 => bc_pa7(cp as u8),
#[cfg(feature = "bmp")]
0x0a8 => bc_pa8(cp as u8),
#[cfg(feature = "bmp")]
0x0a9 => bc_pa9(cp as u8),
#[cfg(feature = "bmp")]
0x0aa => bc_paa(cp as u8),
#[cfg(feature = "bmp")]
0x0ab => bc_pab(cp as u8),
#[cfg(feature = "bmp")]
0x0fb => bc_pfb(cp as u8),
#[cfg(feature = "bmp")]
0x0fc => BidiClass::AL,
#[cfg(feature = "bmp")]
0x0fd => bc_pfd(cp as u8),
#[cfg(feature = "bmp")]
0x0fe => bc_pfe(cp as u8),
#[cfg(feature = "bmp")]
0x0ff => bc_pff(cp as u8),
#[cfg(feature = "full")]
0x101 => bc_p101(cp as u8),
#[cfg(feature = "full")]
0x102 => bc_p102(cp as u8),
#[cfg(feature = "full")]
0x103 => bc_p103(cp as u8),
#[cfg(feature = "full")]
0x108 => bc_p108(cp as u8),
#[cfg(feature = "full")]
0x109 => bc_p109(cp as u8),
#[cfg(feature = "full")]
0x10a => bc_p10a(cp as u8),
#[cfg(feature = "full")]
0x10b => bc_p10b(cp as u8),
#[cfg(feature = "full")]
0x10c => bc_p10c(cp as u8),
#[cfg(feature = "full")]
0x10d => bc_p10d(cp as u8),
#[cfg(feature = "full")]
0x10e => bc_p10e(cp as u8),
#[cfg(feature = "full")]
0x10f => bc_p10f(cp as u8),
#[cfg(feature = "full")]
0x110 => bc_p110(cp as u8),
#[cfg(feature = "full")]
0x111 => bc_p111(cp as u8),
#[cfg(feature = "full")]
0x112 => bc_p112(cp as u8),
#[cfg(feature = "full")]
0x113 => bc_p113(cp as u8),
#[cfg(feature = "full")]
0x114 => bc_p114(cp as u8),
#[cfg(feature = "full")]
0x115 => bc_p115(cp as u8),
#[cfg(feature = "full")]
0x116 => bc_p116(cp as u8),
#[cfg(feature = "full")]
0x117 => bc_p117(cp as u8),
#[cfg(feature = "full")]
0x118 => bc_p118(cp as u8),
#[cfg(feature = "full")]
0x119 => bc_p119(cp as u8),
#[cfg(feature = "full")]
0x11a => bc_p11a(cp as u8),
#[cfg(feature = "full")]
0x11b => bc_p11b(cp as u8),
#[cfg(feature = "full")]
0x11c => bc_p11c(cp as u8),
#[cfg(feature = "full")]
0x11d => bc_p11d(cp as u8),
#[cfg(feature = "full")]
0x11e => bc_p11e(cp as u8),
#[cfg(feature = "full")]
0x11f => bc_p11f(cp as u8),
#[cfg(feature = "full")]
0x134 => bc_p134(cp as u8),
#[cfg(feature = "full")]
0x161 => bc_p161(cp as u8),
#[cfg(feature = "full")]
0x16a => bc_p16a(cp as u8),
#[cfg(feature = "full")]
0x16b => bc_p16b(cp as u8),
#[cfg(feature = "full")]
0x16f => bc_p16f(cp as u8),
#[cfg(feature = "full")]
0x1bc => bc_p1bc(cp as u8),
#[cfg(feature = "full")]
0x1cc => bc_p1cc(cp as u8),
#[cfg(feature = "full")]
0x1cd => BidiClass::ON,
#[cfg(feature = "full")]
0x1ce => bc_p1ce(cp as u8),
#[cfg(feature = "full")]
0x1cf => bc_p1cf(cp as u8),
#[cfg(feature = "full")]
0x1d1 => bc_p1d1(cp as u8),
#[cfg(feature = "full")]
0x1d2 => bc_p1d2(cp as u8),
#[cfg(feature = "full")]
0x1d3 => bc_p1d3(cp as u8),
#[cfg(feature = "full")]
0x1d6 => bc_p1d6(cp as u8),
#[cfg(feature = "full")]
0x1d7 => bc_p1d7(cp as u8),
#[cfg(feature = "full")]
0x1da => bc_p1da(cp as u8),
#[cfg(feature = "full")]
0x1e0 => bc_p1e0(cp as u8),
#[cfg(feature = "full")]
0x1e1 => bc_p1e1(cp as u8),
#[cfg(feature = "full")]
0x1e2 => bc_p1e2(cp as u8),
#[cfg(feature = "full")]
0x1e4 => bc_p1e4(cp as u8),
#[cfg(feature = "full")]
0x1e5 => bc_p1e5(cp as u8),
#[cfg(feature = "full")]
0x1e6 => bc_p1e6(cp as u8),
#[cfg(feature = "full")]
0x1e8 => bc_p1e8(cp as u8),
#[cfg(feature = "full")]
0x1e9 => bc_p1e9(cp as u8),
#[cfg(feature = "full")]
0x1ec => bc_p1ec(cp as u8),
#[cfg(feature = "full")]
0x1ed => bc_p1ed(cp as u8),
#[cfg(feature = "full")]
0x1ee => bc_p1ee(cp as u8),
#[cfg(feature = "full")]
0x1f0 => bc_p1f0(cp as u8),
#[cfg(feature = "full")]
0x1f1 => bc_p1f1(cp as u8),
#[cfg(feature = "full")]
0x1f2 => bc_p1f2(cp as u8),
#[cfg(feature = "full")]
0x1f3 => BidiClass::ON,
#[cfg(feature = "full")]
0x1f4 => BidiClass::ON,
#[cfg(feature = "full")]
0x1f5 => BidiClass::ON,
#[cfg(feature = "full")]
0x1f6 => bc_p1f6(cp as u8),
#[cfg(feature = "full")]
0x1f7 => bc_p1f7(cp as u8),
#[cfg(feature = "full")]
0x1f8 => bc_p1f8(cp as u8),
#[cfg(feature = "full")]
0x1f9 => BidiClass::ON,
#[cfg(feature = "full")]
0x1fa => bc_p1fa(cp as u8),
#[cfg(feature = "full")]
0x1fb => bc_p1fb(cp as u8),
#[cfg(feature = "full")]
0x1ff => bc_p1ff(cp as u8),
#[cfg(feature = "full")]
0x2ff => bc_p2ff(cp as u8),
#[cfg(feature = "full")]
0x3ff => bc_p3ff(cp as u8),
#[cfg(feature = "full")]
0x4ff => bc_p4ff(cp as u8),
#[cfg(feature = "full")]
0x5ff => bc_p5ff(cp as u8),
#[cfg(feature = "full")]
0x6ff => bc_p6ff(cp as u8),
#[cfg(feature = "full")]
0x7ff => bc_p7ff(cp as u8),
#[cfg(feature = "full")]
0x8ff => bc_p8ff(cp as u8),
#[cfg(feature = "full")]
0x9ff => bc_p9ff(cp as u8),
#[cfg(feature = "full")]
0xaff => bc_paff(cp as u8),
#[cfg(feature = "full")]
0xbff => bc_pbff(cp as u8),
#[cfg(feature = "full")]
0xcff => bc_pcff(cp as u8),
#[cfg(feature = "full")]
0xdff => bc_pdff(cp as u8),
#[cfg(feature = "full")]
0xe00 => BidiClass::BN,
#[cfg(feature = "full")]
0xe01 => bc_pe01(cp as u8),
#[cfg(feature = "full")]
0xe02 => BidiClass::BN,
#[cfg(feature = "full")]
0xe03 => BidiClass::BN,
#[cfg(feature = "full")]
0xe04 => BidiClass::BN,
#[cfg(feature = "full")]
0xe05 => BidiClass::BN,
#[cfg(feature = "full")]
0xe06 => BidiClass::BN,
#[cfg(feature = "full")]
0xe07 => BidiClass::BN,
#[cfg(feature = "full")]
0xe08 => BidiClass::BN,
#[cfg(feature = "full")]
0xe09 => BidiClass::BN,
#[cfg(feature = "full")]
0xe0a => BidiClass::BN,
#[cfg(feature = "full")]
0xe0b => BidiClass::BN,
#[cfg(feature = "full")]
0xe0c => BidiClass::BN,
#[cfg(feature = "full")]
0xe0d => BidiClass::BN,
#[cfg(feature = "full")]
0xe0e => BidiClass::BN,
#[cfg(feature = "full")]
0xe0f => BidiClass::BN,
#[cfg(feature = "full")]
0xeff => bc_peff(cp as u8),
#[cfg(feature = "full")]
0xfff => bc_pfff(cp as u8),
#[cfg(feature = "full")]
0x10ff => bc_p10ff(cp as u8),
_ => BidiClass::L,
}
}
#[cfg(feature = "ascii")]
const fn bc_p0(b: u8) -> BidiClass {
match b {
0x00..=0x08 => BidiClass::BN,
0x09 => BidiClass::S,
0x0a => BidiClass::B,
0x0b => BidiClass::S,
0x0c => BidiClass::WS,
0x0d => BidiClass::B,
0x0e..=0x1b => BidiClass::BN,
0x1c..=0x1e => BidiClass::B,
0x1f => BidiClass::S,
0x20 => BidiClass::WS,
0x21..=0x22 => BidiClass::ON,
0x23..=0x25 => BidiClass::ET,
0x26..=0x2a => BidiClass::ON,
0x2b => BidiClass::ES,
0x2c => BidiClass::CS,
0x2d => BidiClass::ES,
0x2e..=0x2f => BidiClass::CS,
0x30..=0x39 => BidiClass::EN,
0x3a => BidiClass::CS,
0x3b..=0x40 => BidiClass::ON,
0x5b..=0x60 => BidiClass::ON,
0x7b..=0x7e => BidiClass::ON,
0x7f => BidiClass::BN,
#[cfg(feature = "latin1")]
0x80..=0x84 => BidiClass::BN,
#[cfg(feature = "latin1")]
0x85 => BidiClass::B,
#[cfg(feature = "latin1")]
0x86..=0x9f => BidiClass::BN,
#[cfg(feature = "latin1")]
0xa0 => BidiClass::CS,
#[cfg(feature = "latin1")]
0xa1 => BidiClass::ON,
#[cfg(feature = "latin1")]
0xa2..=0xa5 => BidiClass::ET,
#[cfg(feature = "latin1")]
0xa6..=0xa9 => BidiClass::ON,
#[cfg(feature = "latin1")]
0xab..=0xac => BidiClass::ON,
#[cfg(feature = "latin1")]
0xad => BidiClass::BN,
#[cfg(feature = "latin1")]
0xae..=0xaf => BidiClass::ON,
#[cfg(feature = "latin1")]
0xb0..=0xb1 => BidiClass::ET,
#[cfg(feature = "latin1")]
0xb2..=0xb3 => BidiClass::EN,
#[cfg(feature = "latin1")]
0xb4 => BidiClass::ON,
#[cfg(feature = "latin1")]
0xb6..=0xb8 => BidiClass::ON,
#[cfg(feature = "latin1")]
0xb9 => BidiClass::EN,
#[cfg(feature = "latin1")]
0xbb..=0xbf => BidiClass::ON,
#[cfg(feature = "latin1")]
0xd7 => BidiClass::ON,
#[cfg(feature = "latin1")]
0xf7 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p2(b: u8) -> BidiClass {
match b {
0xb9..=0xba => BidiClass::ON,
0xc2..=0xcf => BidiClass::ON,
0xd2..=0xdf => BidiClass::ON,
0xe5..=0xed => BidiClass::ON,
0xef..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p3(b: u8) -> BidiClass {
match b {
0x00..=0x6f => BidiClass::NSM,
0x74..=0x75 => BidiClass::ON,
0x7e => BidiClass::ON,
0x84..=0x85 => BidiClass::ON,
0x87 => BidiClass::ON,
0xf6 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p4(b: u8) -> BidiClass {
match b {
0x83..=0x89 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p5(b: u8) -> BidiClass {
match b {
0x8a => BidiClass::ON,
0x8d..=0x8e => BidiClass::ON,
0x8f => BidiClass::ET,
0x91..=0xbd => BidiClass::NSM,
0xbe => BidiClass::R,
0xbf => BidiClass::NSM,
0xc0 => BidiClass::R,
0xc1..=0xc2 => BidiClass::NSM,
0xc3 => BidiClass::R,
0xc4..=0xc5 => BidiClass::NSM,
0xc6 => BidiClass::R,
0xc7 => BidiClass::NSM,
0xd0..=0xea => BidiClass::R,
0xef..=0xf4 => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p6(b: u8) -> BidiClass {
match b {
0x00..=0x05 => BidiClass::AN,
0x06..=0x07 => BidiClass::ON,
0x08 => BidiClass::AL,
0x09..=0x0a => BidiClass::ET,
0x0b => BidiClass::AL,
0x0c => BidiClass::CS,
0x0d => BidiClass::AL,
0x0e..=0x0f => BidiClass::ON,
0x10..=0x1a => BidiClass::NSM,
0x1b..=0x4a => BidiClass::AL,
0x4b..=0x5f => BidiClass::NSM,
0x60..=0x69 => BidiClass::AN,
0x6a => BidiClass::ET,
0x6b..=0x6c => BidiClass::AN,
0x6d..=0x6f => BidiClass::AL,
0x70 => BidiClass::NSM,
0x71..=0xd5 => BidiClass::AL,
0xd6..=0xdc => BidiClass::NSM,
0xdd => BidiClass::AN,
0xde => BidiClass::ON,
0xdf..=0xe4 => BidiClass::NSM,
0xe5..=0xe6 => BidiClass::AL,
0xe7..=0xe8 => BidiClass::NSM,
0xe9 => BidiClass::ON,
0xea..=0xed => BidiClass::NSM,
0xee..=0xef => BidiClass::AL,
0xf0..=0xf9 => BidiClass::EN,
0xfa..=0xff => BidiClass::AL,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p7(b: u8) -> BidiClass {
match b {
0x00..=0x0d => BidiClass::AL,
0x0f..=0x10 => BidiClass::AL,
0x11 => BidiClass::NSM,
0x12..=0x2f => BidiClass::AL,
0x30..=0x4a => BidiClass::NSM,
0x4d..=0xa5 => BidiClass::AL,
0xa6..=0xb0 => BidiClass::NSM,
0xb1 => BidiClass::AL,
0xc0..=0xea => BidiClass::R,
0xeb..=0xf3 => BidiClass::NSM,
0xf4..=0xf5 => BidiClass::R,
0xf6..=0xf9 => BidiClass::ON,
0xfa => BidiClass::R,
0xfd => BidiClass::NSM,
0xfe..=0xff => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p8(b: u8) -> BidiClass {
match b {
0x00..=0x15 => BidiClass::R,
0x16..=0x19 => BidiClass::NSM,
0x1a => BidiClass::R,
0x1b..=0x23 => BidiClass::NSM,
0x24 => BidiClass::R,
0x25..=0x27 => BidiClass::NSM,
0x28 => BidiClass::R,
0x29..=0x2d => BidiClass::NSM,
0x30..=0x3e => BidiClass::R,
0x40..=0x58 => BidiClass::R,
0x59..=0x5b => BidiClass::NSM,
0x5e => BidiClass::R,
0x60..=0x6a => BidiClass::AL,
0x70..=0x8f => BidiClass::AL,
0x90..=0x91 => BidiClass::AN,
0x97..=0x9f => BidiClass::NSM,
0xa0..=0xc9 => BidiClass::AL,
0xca..=0xe1 => BidiClass::NSM,
0xe2 => BidiClass::AN,
0xe3..=0xff => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p9(b: u8) -> BidiClass {
match b {
0x00..=0x02 => BidiClass::NSM,
0x3a => BidiClass::NSM,
0x3c => BidiClass::NSM,
0x41..=0x48 => BidiClass::NSM,
0x4d => BidiClass::NSM,
0x51..=0x57 => BidiClass::NSM,
0x62..=0x63 => BidiClass::NSM,
0x81 => BidiClass::NSM,
0xbc => BidiClass::NSM,
0xc1..=0xc4 => BidiClass::NSM,
0xcd => BidiClass::NSM,
0xe2..=0xe3 => BidiClass::NSM,
0xf2..=0xf3 => BidiClass::ET,
0xfb => BidiClass::ET,
0xfe => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pa(b: u8) -> BidiClass {
match b {
0x01..=0x02 => BidiClass::NSM,
0x3c => BidiClass::NSM,
0x41..=0x42 => BidiClass::NSM,
0x47..=0x48 => BidiClass::NSM,
0x4b..=0x4d => BidiClass::NSM,
0x51 => BidiClass::NSM,
0x70..=0x71 => BidiClass::NSM,
0x75 => BidiClass::NSM,
0x81..=0x82 => BidiClass::NSM,
0xbc => BidiClass::NSM,
0xc1..=0xc5 => BidiClass::NSM,
0xc7..=0xc8 => BidiClass::NSM,
0xcd => BidiClass::NSM,
0xe2..=0xe3 => BidiClass::NSM,
0xf1 => BidiClass::ET,
0xfa..=0xff => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pb(b: u8) -> BidiClass {
match b {
0x01 => BidiClass::NSM,
0x3c => BidiClass::NSM,
0x3f => BidiClass::NSM,
0x41..=0x44 => BidiClass::NSM,
0x4d => BidiClass::NSM,
0x55..=0x56 => BidiClass::NSM,
0x62..=0x63 => BidiClass::NSM,
0x82 => BidiClass::NSM,
0xc0 => BidiClass::NSM,
0xcd => BidiClass::NSM,
0xf3..=0xf8 => BidiClass::ON,
0xf9 => BidiClass::ET,
0xfa => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pc(b: u8) -> BidiClass {
match b {
0x00 => BidiClass::NSM,
0x04 => BidiClass::NSM,
0x3c => BidiClass::NSM,
0x3e..=0x40 => BidiClass::NSM,
0x46..=0x48 => BidiClass::NSM,
0x4a..=0x4d => BidiClass::NSM,
0x55..=0x56 => BidiClass::NSM,
0x62..=0x63 => BidiClass::NSM,
0x78..=0x7e => BidiClass::ON,
0x81 => BidiClass::NSM,
0xbc => BidiClass::NSM,
0xcc..=0xcd => BidiClass::NSM,
0xe2..=0xe3 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pd(b: u8) -> BidiClass {
match b {
0x00..=0x01 => BidiClass::NSM,
0x3b..=0x3c => BidiClass::NSM,
0x41..=0x44 => BidiClass::NSM,
0x4d => BidiClass::NSM,
0x62..=0x63 => BidiClass::NSM,
0x81 => BidiClass::NSM,
0xca => BidiClass::NSM,
0xd2..=0xd4 => BidiClass::NSM,
0xd6 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pe(b: u8) -> BidiClass {
match b {
0x31 => BidiClass::NSM,
0x34..=0x3a => BidiClass::NSM,
0x3f => BidiClass::ET,
0x47..=0x4e => BidiClass::NSM,
0xb1 => BidiClass::NSM,
0xb4..=0xbc => BidiClass::NSM,
0xc8..=0xce => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pf(b: u8) -> BidiClass {
match b {
0x18..=0x19 => BidiClass::NSM,
0x35 => BidiClass::NSM,
0x37 => BidiClass::NSM,
0x39 => BidiClass::NSM,
0x3a..=0x3d => BidiClass::ON,
0x71..=0x7e => BidiClass::NSM,
0x80..=0x84 => BidiClass::NSM,
0x86..=0x87 => BidiClass::NSM,
0x8d..=0x97 => BidiClass::NSM,
0x99..=0xbc => BidiClass::NSM,
0xc6 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p10(b: u8) -> BidiClass {
match b {
0x2d..=0x30 => BidiClass::NSM,
0x32..=0x37 => BidiClass::NSM,
0x39..=0x3a => BidiClass::NSM,
0x3d..=0x3e => BidiClass::NSM,
0x58..=0x59 => BidiClass::NSM,
0x5e..=0x60 => BidiClass::NSM,
0x71..=0x74 => BidiClass::NSM,
0x82 => BidiClass::NSM,
0x85..=0x86 => BidiClass::NSM,
0x8d => BidiClass::NSM,
0x9d => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p13(b: u8) -> BidiClass {
match b {
0x5d..=0x5f => BidiClass::NSM,
0x90..=0x99 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p14(b: u8) -> BidiClass {
match b {
0x00 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p16(b: u8) -> BidiClass {
match b {
0x80 => BidiClass::WS,
0x9b..=0x9c => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p17(b: u8) -> BidiClass {
match b {
0x12..=0x14 => BidiClass::NSM,
0x32..=0x33 => BidiClass::NSM,
0x52..=0x53 => BidiClass::NSM,
0x72..=0x73 => BidiClass::NSM,
0xb4..=0xb5 => BidiClass::NSM,
0xb7..=0xbd => BidiClass::NSM,
0xc6 => BidiClass::NSM,
0xc9..=0xd3 => BidiClass::NSM,
0xdb => BidiClass::ET,
0xdd => BidiClass::NSM,
0xf0..=0xf9 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p18(b: u8) -> BidiClass {
match b {
0x00..=0x0a => BidiClass::ON,
0x0b..=0x0d => BidiClass::NSM,
0x0e => BidiClass::BN,
0x0f => BidiClass::NSM,
0x85..=0x86 => BidiClass::NSM,
0xa9 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p19(b: u8) -> BidiClass {
match b {
0x20..=0x22 => BidiClass::NSM,
0x27..=0x28 => BidiClass::NSM,
0x32 => BidiClass::NSM,
0x39..=0x3b => BidiClass::NSM,
0x40 => BidiClass::ON,
0x44..=0x45 => BidiClass::ON,
0xde..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p1a(b: u8) -> BidiClass {
match b {
0x17..=0x18 => BidiClass::NSM,
0x1b => BidiClass::NSM,
0x56 => BidiClass::NSM,
0x58..=0x5e => BidiClass::NSM,
0x60 => BidiClass::NSM,
0x62 => BidiClass::NSM,
0x65..=0x6c => BidiClass::NSM,
0x73..=0x7c => BidiClass::NSM,
0x7f => BidiClass::NSM,
0xb0..=0xdd => BidiClass::NSM,
0xe0..=0xeb => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p1b(b: u8) -> BidiClass {
match b {
0x00..=0x03 => BidiClass::NSM,
0x34 => BidiClass::NSM,
0x36..=0x3a => BidiClass::NSM,
0x3c => BidiClass::NSM,
0x42 => BidiClass::NSM,
0x6b..=0x73 => BidiClass::NSM,
0x80..=0x81 => BidiClass::NSM,
0xa2..=0xa5 => BidiClass::NSM,
0xa8..=0xa9 => BidiClass::NSM,
0xab..=0xad => BidiClass::NSM,
0xe6 => BidiClass::NSM,
0xe8..=0xe9 => BidiClass::NSM,
0xed => BidiClass::NSM,
0xef..=0xf1 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p1c(b: u8) -> BidiClass {
match b {
0x2c..=0x33 => BidiClass::NSM,
0x36..=0x37 => BidiClass::NSM,
0xd0..=0xd2 => BidiClass::NSM,
0xd4..=0xe0 => BidiClass::NSM,
0xe2..=0xe8 => BidiClass::NSM,
0xed => BidiClass::NSM,
0xf4 => BidiClass::NSM,
0xf8..=0xf9 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p1d(b: u8) -> BidiClass {
match b {
0xc0..=0xff => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p1f(b: u8) -> BidiClass {
match b {
0xbd => BidiClass::ON,
0xbf..=0xc1 => BidiClass::ON,
0xcd..=0xcf => BidiClass::ON,
0xdd..=0xdf => BidiClass::ON,
0xed..=0xef => BidiClass::ON,
0xfd..=0xfe => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p20(b: u8) -> BidiClass {
match b {
0x00..=0x0a => BidiClass::WS,
0x0b..=0x0d => BidiClass::BN,
0x0f => BidiClass::R,
0x10..=0x27 => BidiClass::ON,
0x28 => BidiClass::WS,
0x29 => BidiClass::B,
0x2a => BidiClass::LRE,
0x2b => BidiClass::RLE,
0x2c => BidiClass::PDF,
0x2d => BidiClass::LRO,
0x2e => BidiClass::RLO,
0x2f => BidiClass::CS,
0x30..=0x34 => BidiClass::ET,
0x35..=0x43 => BidiClass::ON,
0x44 => BidiClass::CS,
0x45..=0x5e => BidiClass::ON,
0x5f => BidiClass::WS,
0x60..=0x65 => BidiClass::BN,
0x66 => BidiClass::LRI,
0x67 => BidiClass::RLI,
0x68 => BidiClass::FSI,
0x69 => BidiClass::PDI,
0x6a..=0x6f => BidiClass::BN,
0x70 => BidiClass::EN,
0x74..=0x79 => BidiClass::EN,
0x7a..=0x7b => BidiClass::ES,
0x7c..=0x7e => BidiClass::ON,
0x80..=0x89 => BidiClass::EN,
0x8a..=0x8b => BidiClass::ES,
0x8c..=0x8e => BidiClass::ON,
0xa0..=0xc1 => BidiClass::ET,
0xd0..=0xf0 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p21(b: u8) -> BidiClass {
match b {
0x00..=0x01 => BidiClass::ON,
0x03..=0x06 => BidiClass::ON,
0x08..=0x09 => BidiClass::ON,
0x14 => BidiClass::ON,
0x16..=0x18 => BidiClass::ON,
0x1e..=0x23 => BidiClass::ON,
0x25 => BidiClass::ON,
0x27 => BidiClass::ON,
0x29 => BidiClass::ON,
0x2e => BidiClass::ET,
0x3a..=0x3b => BidiClass::ON,
0x40..=0x44 => BidiClass::ON,
0x4a..=0x4d => BidiClass::ON,
0x50..=0x5f => BidiClass::ON,
0x89..=0x8b => BidiClass::ON,
0x90..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p22(b: u8) -> BidiClass {
match b {
0x00..=0x11 => BidiClass::ON,
0x12 => BidiClass::ES,
0x13 => BidiClass::ET,
0x14..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p23(b: u8) -> BidiClass {
match b {
0x00..=0x35 => BidiClass::ON,
0x7b..=0x94 => BidiClass::ON,
0x96..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p24(b: u8) -> BidiClass {
match b {
0x00..=0x29 => BidiClass::ON,
0x40..=0x4a => BidiClass::ON,
0x60..=0x87 => BidiClass::ON,
0x88..=0x9b => BidiClass::EN,
0xea..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p26(b: u8) -> BidiClass {
match b {
0x00..=0xab => BidiClass::ON,
0xad..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p2b(b: u8) -> BidiClass {
match b {
0x00..=0x73 => BidiClass::ON,
0x76..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p2c(b: u8) -> BidiClass {
match b {
0xe5..=0xea => BidiClass::ON,
0xef..=0xf1 => BidiClass::NSM,
0xf9..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p2d(b: u8) -> BidiClass {
match b {
0x7f => BidiClass::NSM,
0xe0..=0xff => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p2e(b: u8) -> BidiClass {
match b {
0x00..=0x5d => BidiClass::ON,
0x80..=0x99 => BidiClass::ON,
0x9b..=0xf3 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p2f(b: u8) -> BidiClass {
match b {
0x00..=0xd5 => BidiClass::ON,
0xf0..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p30(b: u8) -> BidiClass {
match b {
0x00 => BidiClass::WS,
0x01..=0x04 => BidiClass::ON,
0x08..=0x20 => BidiClass::ON,
0x2a..=0x2d => BidiClass::NSM,
0x30 => BidiClass::ON,
0x36..=0x37 => BidiClass::ON,
0x3d..=0x3f => BidiClass::ON,
0x99..=0x9a => BidiClass::NSM,
0x9b..=0x9c => BidiClass::ON,
0xa0 => BidiClass::ON,
0xfb => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p31(b: u8) -> BidiClass {
match b {
0xc0..=0xe5 => BidiClass::ON,
0xef => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p32(b: u8) -> BidiClass {
match b {
0x1d..=0x1e => BidiClass::ON,
0x50..=0x5f => BidiClass::ON,
0x7c..=0x7e => BidiClass::ON,
0xb1..=0xbf => BidiClass::ON,
0xcc..=0xcf => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p33(b: u8) -> BidiClass {
match b {
0x77..=0x7a => BidiClass::ON,
0xde..=0xdf => BidiClass::ON,
0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_p4d(b: u8) -> BidiClass {
match b {
0xc0..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pa4(b: u8) -> BidiClass {
match b {
0x90..=0xc6 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pa6(b: u8) -> BidiClass {
match b {
0x0d..=0x0f => BidiClass::ON,
0x6f..=0x72 => BidiClass::NSM,
0x73 => BidiClass::ON,
0x74..=0x7d => BidiClass::NSM,
0x7e..=0x7f => BidiClass::ON,
0x9e..=0x9f => BidiClass::NSM,
0xf0..=0xf1 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pa7(b: u8) -> BidiClass {
match b {
0x00..=0x21 => BidiClass::ON,
0x88 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pa8(b: u8) -> BidiClass {
match b {
0x02 => BidiClass::NSM,
0x06 => BidiClass::NSM,
0x0b => BidiClass::NSM,
0x25..=0x26 => BidiClass::NSM,
0x28..=0x2b => BidiClass::ON,
0x2c => BidiClass::NSM,
0x38..=0x39 => BidiClass::ET,
0x74..=0x77 => BidiClass::ON,
0xc4..=0xc5 => BidiClass::NSM,
0xe0..=0xf1 => BidiClass::NSM,
0xff => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pa9(b: u8) -> BidiClass {
match b {
0x26..=0x2d => BidiClass::NSM,
0x47..=0x51 => BidiClass::NSM,
0x80..=0x82 => BidiClass::NSM,
0xb3 => BidiClass::NSM,
0xb6..=0xb9 => BidiClass::NSM,
0xbc..=0xbd => BidiClass::NSM,
0xe5 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_paa(b: u8) -> BidiClass {
match b {
0x29..=0x2e => BidiClass::NSM,
0x31..=0x32 => BidiClass::NSM,
0x35..=0x36 => BidiClass::NSM,
0x43 => BidiClass::NSM,
0x4c => BidiClass::NSM,
0x7c => BidiClass::NSM,
0xb0 => BidiClass::NSM,
0xb2..=0xb4 => BidiClass::NSM,
0xb7..=0xb8 => BidiClass::NSM,
0xbe..=0xbf => BidiClass::NSM,
0xc1 => BidiClass::NSM,
0xec..=0xed => BidiClass::NSM,
0xf6 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pab(b: u8) -> BidiClass {
match b {
0x6a..=0x6b => BidiClass::ON,
0xe5 => BidiClass::NSM,
0xe8 => BidiClass::NSM,
0xed => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pfb(b: u8) -> BidiClass {
match b {
0x1d => BidiClass::R,
0x1e => BidiClass::NSM,
0x1f..=0x28 => BidiClass::R,
0x29 => BidiClass::ES,
0x2a..=0x36 => BidiClass::R,
0x38..=0x3c => BidiClass::R,
0x3e => BidiClass::R,
0x40..=0x41 => BidiClass::R,
0x43..=0x44 => BidiClass::R,
0x46..=0x4f => BidiClass::R,
0x50..=0xc2 => BidiClass::AL,
0xc3..=0xd2 => BidiClass::ON,
0xd3..=0xff => BidiClass::AL,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pfd(b: u8) -> BidiClass {
match b {
0x00..=0x3d => BidiClass::AL,
0x3e..=0x4f => BidiClass::ON,
0x50..=0x8f => BidiClass::AL,
0x90..=0x91 => BidiClass::ON,
0x92..=0xc7 => BidiClass::AL,
0xc8..=0xcf => BidiClass::ON,
0xd0..=0xef => BidiClass::BN,
0xf0..=0xfc => BidiClass::AL,
0xfd..=0xff => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pfe(b: u8) -> BidiClass {
match b {
0x00..=0x0f => BidiClass::NSM,
0x10..=0x19 => BidiClass::ON,
0x20..=0x2f => BidiClass::NSM,
0x30..=0x4f => BidiClass::ON,
0x50 => BidiClass::CS,
0x51 => BidiClass::ON,
0x52 => BidiClass::CS,
0x54 => BidiClass::ON,
0x55 => BidiClass::CS,
0x56..=0x5e => BidiClass::ON,
0x5f => BidiClass::ET,
0x60..=0x61 => BidiClass::ON,
0x62..=0x63 => BidiClass::ES,
0x64..=0x66 => BidiClass::ON,
0x68 => BidiClass::ON,
0x69..=0x6a => BidiClass::ET,
0x6b => BidiClass::ON,
0x70..=0x74 => BidiClass::AL,
0x76..=0xfc => BidiClass::AL,
0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "bmp")]
const fn bc_pff(b: u8) -> BidiClass {
match b {
0x01..=0x02 => BidiClass::ON,
0x03..=0x05 => BidiClass::ET,
0x06..=0x0a => BidiClass::ON,
0x0b => BidiClass::ES,
0x0c => BidiClass::CS,
0x0d => BidiClass::ES,
0x0e..=0x0f => BidiClass::CS,
0x10..=0x19 => BidiClass::EN,
0x1a => BidiClass::CS,
0x1b..=0x20 => BidiClass::ON,
0x3b..=0x40 => BidiClass::ON,
0x5b..=0x65 => BidiClass::ON,
0xe0..=0xe1 => BidiClass::ET,
0xe2..=0xe4 => BidiClass::ON,
0xe5..=0xe6 => BidiClass::ET,
0xe8..=0xee => BidiClass::ON,
0xf0..=0xf8 => BidiClass::BN,
0xf9..=0xfd => BidiClass::ON,
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p101(b: u8) -> BidiClass {
match b {
0x01 => BidiClass::ON,
0x40..=0x8c => BidiClass::ON,
0x90..=0x9c => BidiClass::ON,
0xa0 => BidiClass::ON,
0xfd => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p102(b: u8) -> BidiClass {
match b {
0xe0 => BidiClass::NSM,
0xe1..=0xfb => BidiClass::EN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p103(b: u8) -> BidiClass {
match b {
0x76..=0x7a => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p108(b: u8) -> BidiClass {
match b {
0x00..=0x05 => BidiClass::R,
0x08 => BidiClass::R,
0x0a..=0x35 => BidiClass::R,
0x37..=0x38 => BidiClass::R,
0x3c => BidiClass::R,
0x3f..=0x55 => BidiClass::R,
0x57..=0x9e => BidiClass::R,
0xa7..=0xaf => BidiClass::R,
0xe0..=0xf2 => BidiClass::R,
0xf4..=0xf5 => BidiClass::R,
0xfb..=0xff => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p109(b: u8) -> BidiClass {
match b {
0x00..=0x1b => BidiClass::R,
0x1f => BidiClass::ON,
0x20..=0x39 => BidiClass::R,
0x3f..=0x59 => BidiClass::R,
0x80..=0xb7 => BidiClass::R,
0xbc..=0xcf => BidiClass::R,
0xd2..=0xff => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10a(b: u8) -> BidiClass {
match b {
0x00 => BidiClass::R,
0x01..=0x03 => BidiClass::NSM,
0x05..=0x06 => BidiClass::NSM,
0x0c..=0x0f => BidiClass::NSM,
0x10..=0x13 => BidiClass::R,
0x15..=0x17 => BidiClass::R,
0x19..=0x35 => BidiClass::R,
0x38..=0x3a => BidiClass::NSM,
0x3f => BidiClass::NSM,
0x40..=0x48 => BidiClass::R,
0x50..=0x58 => BidiClass::R,
0x60..=0x9f => BidiClass::R,
0xc0..=0xe4 => BidiClass::R,
0xe5..=0xe6 => BidiClass::NSM,
0xeb..=0xf6 => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10b(b: u8) -> BidiClass {
match b {
0x00..=0x35 => BidiClass::R,
0x39..=0x3f => BidiClass::ON,
0x40..=0x55 => BidiClass::R,
0x58..=0x72 => BidiClass::R,
0x78..=0x91 => BidiClass::R,
0x99..=0x9c => BidiClass::R,
0xa9..=0xaf => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10c(b: u8) -> BidiClass {
match b {
0x00..=0x48 => BidiClass::R,
0x80..=0xb2 => BidiClass::R,
0xc0..=0xf2 => BidiClass::R,
0xfa..=0xff => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10d(b: u8) -> BidiClass {
match b {
0x00..=0x23 => BidiClass::AL,
0x24..=0x27 => BidiClass::NSM,
0x30..=0x39 => BidiClass::AN,
0x40..=0x49 => BidiClass::AN,
0x4a..=0x65 => BidiClass::R,
0x69..=0x6d => BidiClass::NSM,
0x6e => BidiClass::ON,
0x6f..=0x85 => BidiClass::R,
0x8e..=0x8f => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10e(b: u8) -> BidiClass {
match b {
0x60..=0x7e => BidiClass::AN,
0x80..=0xa9 => BidiClass::R,
0xab..=0xac => BidiClass::NSM,
0xad => BidiClass::R,
0xb0..=0xb1 => BidiClass::R,
0xc2..=0xc7 => BidiClass::AL,
0xd0..=0xd8 => BidiClass::ON,
0xfa..=0xff => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10f(b: u8) -> BidiClass {
match b {
0x00..=0x27 => BidiClass::R,
0x30..=0x45 => BidiClass::AL,
0x46..=0x50 => BidiClass::NSM,
0x51..=0x59 => BidiClass::AL,
0x70..=0x81 => BidiClass::R,
0x82..=0x85 => BidiClass::NSM,
0x86..=0x89 => BidiClass::R,
0xb0..=0xcb => BidiClass::R,
0xe0..=0xf6 => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p110(b: u8) -> BidiClass {
match b {
0x01 => BidiClass::NSM,
0x38..=0x46 => BidiClass::NSM,
0x52..=0x65 => BidiClass::ON,
0x70 => BidiClass::NSM,
0x73..=0x74 => BidiClass::NSM,
0x7f..=0x81 => BidiClass::NSM,
0xb3..=0xb6 => BidiClass::NSM,
0xb9..=0xba => BidiClass::NSM,
0xc2 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p111(b: u8) -> BidiClass {
match b {
0x00..=0x02 => BidiClass::NSM,
0x27..=0x2b => BidiClass::NSM,
0x2d..=0x34 => BidiClass::NSM,
0x73 => BidiClass::NSM,
0x80..=0x81 => BidiClass::NSM,
0xb6..=0xbe => BidiClass::NSM,
0xc9..=0xcc => BidiClass::NSM,
0xcf => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p112(b: u8) -> BidiClass {
match b {
0x2f..=0x31 => BidiClass::NSM,
0x34 => BidiClass::NSM,
0x36..=0x37 => BidiClass::NSM,
0x3e => BidiClass::NSM,
0x41 => BidiClass::NSM,
0xdf => BidiClass::NSM,
0xe3..=0xea => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p113(b: u8) -> BidiClass {
match b {
0x00..=0x01 => BidiClass::NSM,
0x3b..=0x3c => BidiClass::NSM,
0x40 => BidiClass::NSM,
0x66..=0x6c => BidiClass::NSM,
0x70..=0x74 => BidiClass::NSM,
0xbb..=0xc0 => BidiClass::NSM,
0xce => BidiClass::NSM,
0xd0 => BidiClass::NSM,
0xd2 => BidiClass::NSM,
0xe1..=0xe2 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p114(b: u8) -> BidiClass {
match b {
0x38..=0x3f => BidiClass::NSM,
0x42..=0x44 => BidiClass::NSM,
0x46 => BidiClass::NSM,
0x5e => BidiClass::NSM,
0xb3..=0xb8 => BidiClass::NSM,
0xba => BidiClass::NSM,
0xbf..=0xc0 => BidiClass::NSM,
0xc2..=0xc3 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p115(b: u8) -> BidiClass {
match b {
0xb2..=0xb5 => BidiClass::NSM,
0xbc..=0xbd => BidiClass::NSM,
0xbf..=0xc0 => BidiClass::NSM,
0xdc..=0xdd => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p116(b: u8) -> BidiClass {
match b {
0x33..=0x3a => BidiClass::NSM,
0x3d => BidiClass::NSM,
0x3f..=0x40 => BidiClass::NSM,
0x60..=0x6c => BidiClass::ON,
0xab => BidiClass::NSM,
0xad => BidiClass::NSM,
0xb0..=0xb5 => BidiClass::NSM,
0xb7 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p117(b: u8) -> BidiClass {
match b {
0x1d => BidiClass::NSM,
0x1f => BidiClass::NSM,
0x22..=0x25 => BidiClass::NSM,
0x27..=0x2b => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p118(b: u8) -> BidiClass {
match b {
0x2f..=0x37 => BidiClass::NSM,
0x39..=0x3a => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p119(b: u8) -> BidiClass {
match b {
0x3b..=0x3c => BidiClass::NSM,
0x3e => BidiClass::NSM,
0x43 => BidiClass::NSM,
0xd4..=0xd7 => BidiClass::NSM,
0xda..=0xdb => BidiClass::NSM,
0xe0 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p11a(b: u8) -> BidiClass {
match b {
0x01..=0x06 => BidiClass::NSM,
0x09..=0x0a => BidiClass::NSM,
0x33..=0x38 => BidiClass::NSM,
0x3b..=0x3e => BidiClass::NSM,
0x47 => BidiClass::NSM,
0x51..=0x56 => BidiClass::NSM,
0x59..=0x5b => BidiClass::NSM,
0x8a..=0x96 => BidiClass::NSM,
0x98..=0x99 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p11b(b: u8) -> BidiClass {
match b {
0x60 => BidiClass::NSM,
0x62..=0x64 => BidiClass::NSM,
0x66 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p11c(b: u8) -> BidiClass {
match b {
0x30..=0x36 => BidiClass::NSM,
0x38..=0x3d => BidiClass::NSM,
0x92..=0xa7 => BidiClass::NSM,
0xaa..=0xb0 => BidiClass::NSM,
0xb2..=0xb3 => BidiClass::NSM,
0xb5..=0xb6 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p11d(b: u8) -> BidiClass {
match b {
0x31..=0x36 => BidiClass::NSM,
0x3a => BidiClass::NSM,
0x3c..=0x3d => BidiClass::NSM,
0x3f..=0x45 => BidiClass::NSM,
0x47 => BidiClass::NSM,
0x90..=0x91 => BidiClass::NSM,
0x95 => BidiClass::NSM,
0x97 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p11e(b: u8) -> BidiClass {
match b {
0xf3..=0xf4 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p11f(b: u8) -> BidiClass {
match b {
0x00..=0x01 => BidiClass::NSM,
0x36..=0x3a => BidiClass::NSM,
0x40 => BidiClass::NSM,
0x42 => BidiClass::NSM,
0x5a => BidiClass::NSM,
0xd5..=0xdc => BidiClass::ON,
0xdd..=0xe0 => BidiClass::ET,
0xe1..=0xf1 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p134(b: u8) -> BidiClass {
match b {
0x40 => BidiClass::NSM,
0x47..=0x55 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p161(b: u8) -> BidiClass {
match b {
0x1e..=0x29 => BidiClass::NSM,
0x2d..=0x2f => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p16a(b: u8) -> BidiClass {
match b {
0xf0..=0xf4 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p16b(b: u8) -> BidiClass {
match b {
0x30..=0x36 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p16f(b: u8) -> BidiClass {
match b {
0x4f => BidiClass::NSM,
0x8f..=0x92 => BidiClass::NSM,
0xe2 => BidiClass::ON,
0xe4 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1bc(b: u8) -> BidiClass {
match b {
0x9d..=0x9e => BidiClass::NSM,
0xa0..=0xa3 => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1cc(b: u8) -> BidiClass {
match b {
0x00..=0xd5 => BidiClass::ON,
0xf0..=0xf9 => BidiClass::EN,
0xfa..=0xfc => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1ce(b: u8) -> BidiClass {
match b {
0x00..=0xb3 => BidiClass::ON,
0xba..=0xd0 => BidiClass::ON,
0xe0..=0xf0 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1cf(b: u8) -> BidiClass {
match b {
0x00..=0x2d => BidiClass::NSM,
0x30..=0x46 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1d1(b: u8) -> BidiClass {
match b {
0x67..=0x69 => BidiClass::NSM,
0x73..=0x7a => BidiClass::BN,
0x7b..=0x82 => BidiClass::NSM,
0x85..=0x8b => BidiClass::NSM,
0xaa..=0xad => BidiClass::NSM,
0xe9..=0xea => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1d2(b: u8) -> BidiClass {
match b {
0x00..=0x41 => BidiClass::ON,
0x42..=0x44 => BidiClass::NSM,
0x45 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1d3(b: u8) -> BidiClass {
match b {
0x00..=0x56 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1d6(b: u8) -> BidiClass {
match b {
0xc1 => BidiClass::ON,
0xdb => BidiClass::ON,
0xfb => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1d7(b: u8) -> BidiClass {
match b {
0x15 => BidiClass::ON,
0x35 => BidiClass::ON,
0x4f => BidiClass::ON,
0x6f => BidiClass::ON,
0x89 => BidiClass::ON,
0xa9 => BidiClass::ON,
0xc3 => BidiClass::ON,
0xce..=0xff => BidiClass::EN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1da(b: u8) -> BidiClass {
match b {
0x00..=0x36 => BidiClass::NSM,
0x3b..=0x6c => BidiClass::NSM,
0x75 => BidiClass::NSM,
0x84 => BidiClass::NSM,
0x9b..=0x9f => BidiClass::NSM,
0xa1..=0xaf => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e0(b: u8) -> BidiClass {
match b {
0x00..=0x06 => BidiClass::NSM,
0x08..=0x18 => BidiClass::NSM,
0x1b..=0x21 => BidiClass::NSM,
0x23..=0x24 => BidiClass::NSM,
0x26..=0x2a => BidiClass::NSM,
0x8f => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e1(b: u8) -> BidiClass {
match b {
0x30..=0x36 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e2(b: u8) -> BidiClass {
match b {
0xae => BidiClass::NSM,
0xec..=0xef => BidiClass::NSM,
0xff => BidiClass::ET,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e4(b: u8) -> BidiClass {
match b {
0xec..=0xef => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e5(b: u8) -> BidiClass {
match b {
0xee..=0xef => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e6(b: u8) -> BidiClass {
match b {
0xe3 => BidiClass::NSM,
0xe6 => BidiClass::NSM,
0xee..=0xef => BidiClass::NSM,
0xf5 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e8(b: u8) -> BidiClass {
match b {
0x00..=0xc4 => BidiClass::R,
0xc7..=0xcf => BidiClass::R,
0xd0..=0xd6 => BidiClass::NSM,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1e9(b: u8) -> BidiClass {
match b {
0x00..=0x43 => BidiClass::R,
0x44..=0x4a => BidiClass::NSM,
0x4b => BidiClass::R,
0x50..=0x59 => BidiClass::R,
0x5e..=0x5f => BidiClass::R,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1ec(b: u8) -> BidiClass {
match b {
0x71..=0xb4 => BidiClass::AL,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1ed(b: u8) -> BidiClass {
match b {
0x01..=0x3d => BidiClass::AL,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1ee(b: u8) -> BidiClass {
match b {
0x00..=0x03 => BidiClass::AL,
0x05..=0x1f => BidiClass::AL,
0x21..=0x22 => BidiClass::AL,
0x24 => BidiClass::AL,
0x27 => BidiClass::AL,
0x29..=0x32 => BidiClass::AL,
0x34..=0x37 => BidiClass::AL,
0x39 => BidiClass::AL,
0x3b => BidiClass::AL,
0x42 => BidiClass::AL,
0x47 => BidiClass::AL,
0x49 => BidiClass::AL,
0x4b => BidiClass::AL,
0x4d..=0x4f => BidiClass::AL,
0x51..=0x52 => BidiClass::AL,
0x54 => BidiClass::AL,
0x57 => BidiClass::AL,
0x59 => BidiClass::AL,
0x5b => BidiClass::AL,
0x5d => BidiClass::AL,
0x5f => BidiClass::AL,
0x61..=0x62 => BidiClass::AL,
0x64 => BidiClass::AL,
0x67..=0x6a => BidiClass::AL,
0x6c..=0x72 => BidiClass::AL,
0x74..=0x77 => BidiClass::AL,
0x79..=0x7c => BidiClass::AL,
0x7e => BidiClass::AL,
0x80..=0x89 => BidiClass::AL,
0x8b..=0x9b => BidiClass::AL,
0xa1..=0xa3 => BidiClass::AL,
0xa5..=0xa9 => BidiClass::AL,
0xab..=0xbb => BidiClass::AL,
0xf0..=0xf1 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1f0(b: u8) -> BidiClass {
match b {
0x00..=0x2b => BidiClass::ON,
0x30..=0x93 => BidiClass::ON,
0xa0..=0xae => BidiClass::ON,
0xb1..=0xbf => BidiClass::ON,
0xc1..=0xcf => BidiClass::ON,
0xd1..=0xf5 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1f1(b: u8) -> BidiClass {
match b {
0x00..=0x0a => BidiClass::EN,
0x0b..=0x0f => BidiClass::ON,
0x2f => BidiClass::ON,
0x6a..=0x6f => BidiClass::ON,
0xad => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1f2(b: u8) -> BidiClass {
match b {
0x60..=0x65 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1f6(b: u8) -> BidiClass {
match b {
0x00..=0xd8 => BidiClass::ON,
0xdc..=0xec => BidiClass::ON,
0xf0..=0xfc => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1f7(b: u8) -> BidiClass {
match b {
0x00..=0xd9 => BidiClass::ON,
0xe0..=0xeb => BidiClass::ON,
0xf0 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1f8(b: u8) -> BidiClass {
match b {
0x00..=0x0b => BidiClass::ON,
0x10..=0x47 => BidiClass::ON,
0x50..=0x59 => BidiClass::ON,
0x60..=0x87 => BidiClass::ON,
0x90..=0xad => BidiClass::ON,
0xb0..=0xbb => BidiClass::ON,
0xc0..=0xc1 => BidiClass::ON,
0xd0..=0xd8 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1fa(b: u8) -> BidiClass {
match b {
0x00..=0x57 => BidiClass::ON,
0x60..=0x6d => BidiClass::ON,
0x70..=0x7c => BidiClass::ON,
0x80..=0x8a => BidiClass::ON,
0x8e..=0xc6 => BidiClass::ON,
0xc8 => BidiClass::ON,
0xcd..=0xdc => BidiClass::ON,
0xdf..=0xea => BidiClass::ON,
0xef..=0xf8 => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1fb(b: u8) -> BidiClass {
match b {
0x00..=0x92 => BidiClass::ON,
0x94..=0xef => BidiClass::ON,
0xf0..=0xf9 => BidiClass::EN,
0xfa => BidiClass::ON,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p1ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p2ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p3ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p4ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p5ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p6ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p7ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p8ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p9ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_paff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_pbff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_pcff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_pdff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_pe01(b: u8) -> BidiClass {
match b {
0x00..=0xef => BidiClass::NSM,
0xf0..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_peff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_pfff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
#[cfg(feature = "full")]
const fn bc_p10ff(b: u8) -> BidiClass {
match b {
0xfe..=0xff => BidiClass::BN,
_ => BidiClass::L,
}
}
pub(crate) const fn bidi_bracket(cp: u32) -> (u32, u8) {
match cp {
0x28 => (0x29, 1),
0x29 => (0x28, 2),
0x5b => (0x5d, 1),
0x5d => (0x5b, 2),
0x7b => (0x7d, 1),
0x7d => (0x7b, 2),
0xf3a => (0xf3b, 1),
0xf3b => (0xf3a, 2),
0xf3c => (0xf3d, 1),
0xf3d => (0xf3c, 2),
0x169b => (0x169c, 1),
0x169c => (0x169b, 2),
0x2045 => (0x2046, 1),
0x2046 => (0x2045, 2),
0x207d => (0x207e, 1),
0x207e => (0x207d, 2),
0x208d => (0x208e, 1),
0x208e => (0x208d, 2),
0x2308 => (0x2309, 1),
0x2309 => (0x2308, 2),
0x230a => (0x230b, 1),
0x230b => (0x230a, 2),
0x2329 => (0x232a, 1),
0x232a => (0x2329, 2),
0x2768 => (0x2769, 1),
0x2769 => (0x2768, 2),
0x276a => (0x276b, 1),
0x276b => (0x276a, 2),
0x276c => (0x276d, 1),
0x276d => (0x276c, 2),
0x276e => (0x276f, 1),
0x276f => (0x276e, 2),
0x2770 => (0x2771, 1),
0x2771 => (0x2770, 2),
0x2772 => (0x2773, 1),
0x2773 => (0x2772, 2),
0x2774 => (0x2775, 1),
0x2775 => (0x2774, 2),
0x27c5 => (0x27c6, 1),
0x27c6 => (0x27c5, 2),
0x27e6 => (0x27e7, 1),
0x27e7 => (0x27e6, 2),
0x27e8 => (0x27e9, 1),
0x27e9 => (0x27e8, 2),
0x27ea => (0x27eb, 1),
0x27eb => (0x27ea, 2),
0x27ec => (0x27ed, 1),
0x27ed => (0x27ec, 2),
0x27ee => (0x27ef, 1),
0x27ef => (0x27ee, 2),
0x2983 => (0x2984, 1),
0x2984 => (0x2983, 2),
0x2985 => (0x2986, 1),
0x2986 => (0x2985, 2),
0x2987 => (0x2988, 1),
0x2988 => (0x2987, 2),
0x2989 => (0x298a, 1),
0x298a => (0x2989, 2),
0x298b => (0x298c, 1),
0x298c => (0x298b, 2),
0x298d => (0x2990, 1),
0x298e => (0x298f, 2),
0x298f => (0x298e, 1),
0x2990 => (0x298d, 2),
0x2991 => (0x2992, 1),
0x2992 => (0x2991, 2),
0x2993 => (0x2994, 1),
0x2994 => (0x2993, 2),
0x2995 => (0x2996, 1),
0x2996 => (0x2995, 2),
0x2997 => (0x2998, 1),
0x2998 => (0x2997, 2),
0x29d8 => (0x29d9, 1),
0x29d9 => (0x29d8, 2),
0x29da => (0x29db, 1),
0x29db => (0x29da, 2),
0x29fc => (0x29fd, 1),
0x29fd => (0x29fc, 2),
0x2e22 => (0x2e23, 1),
0x2e23 => (0x2e22, 2),
0x2e24 => (0x2e25, 1),
0x2e25 => (0x2e24, 2),
0x2e26 => (0x2e27, 1),
0x2e27 => (0x2e26, 2),
0x2e28 => (0x2e29, 1),
0x2e29 => (0x2e28, 2),
0x2e55 => (0x2e56, 1),
0x2e56 => (0x2e55, 2),
0x2e57 => (0x2e58, 1),
0x2e58 => (0x2e57, 2),
0x2e59 => (0x2e5a, 1),
0x2e5a => (0x2e59, 2),
0x2e5b => (0x2e5c, 1),
0x2e5c => (0x2e5b, 2),
0x3008 => (0x3009, 1),
0x3009 => (0x3008, 2),
0x300a => (0x300b, 1),
0x300b => (0x300a, 2),
0x300c => (0x300d, 1),
0x300d => (0x300c, 2),
0x300e => (0x300f, 1),
0x300f => (0x300e, 2),
0x3010 => (0x3011, 1),
0x3011 => (0x3010, 2),
0x3014 => (0x3015, 1),
0x3015 => (0x3014, 2),
0x3016 => (0x3017, 1),
0x3017 => (0x3016, 2),
0x3018 => (0x3019, 1),
0x3019 => (0x3018, 2),
0x301a => (0x301b, 1),
0x301b => (0x301a, 2),
0xfe59 => (0xfe5a, 1),
0xfe5a => (0xfe59, 2),
0xfe5b => (0xfe5c, 1),
0xfe5c => (0xfe5b, 2),
0xfe5d => (0xfe5e, 1),
0xfe5e => (0xfe5d, 2),
0xff08 => (0xff09, 1),
0xff09 => (0xff08, 2),
0xff3b => (0xff3d, 1),
0xff3d => (0xff3b, 2),
0xff5b => (0xff5d, 1),
0xff5d => (0xff5b, 2),
0xff5f => (0xff60, 1),
0xff60 => (0xff5f, 2),
0xff62 => (0xff63, 1),
0xff63 => (0xff62, 2),
_ => (0, 0),
}
}