//! MathML operator dictionary.
//!
//! Based on <https://www.w3.org/TR/MathML3/appendixc.html>.

use std::collections::HashMap;
use std::sync::LazyLock;

/// The form of an operator (prefix, infix, or postfix).
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum OpForm {
    /// A prefix operator (e.g. unary minus, integral sign).
    Prefix,
    /// An infix operator (e.g. plus, equals).
    Infix,
    /// A postfix operator (e.g. factorial, prime).
    Postfix,
}

impl OpForm {
    /// Parse an operator form from a string.
    pub fn from_str(s: &str) -> Option<Self> {
        match s {
            "prefix" => Some(Self::Prefix),
            "infix" => Some(Self::Infix),
            "postfix" => Some(Self::Postfix),
            _ => None,
        }
    }
}

/// Attributes for a MathML operator entry.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct OpAttrs {
    /// Operator priority (higher binds tighter).
    pub priority: u16,
    /// Left space in eighteenths of an em (0..=5).
    pub lspace: u8,
    /// Right space in eighteenths of an em (0..=5).
    pub rspace: u8,
    /// Whether the operator is a fence (e.g. parenthesis, bracket).
    pub fence: bool,
    /// Whether the operator is stretchy.
    pub stretchy: bool,
    /// Whether the operator is a separator (e.g. comma).
    pub separator: bool,
    /// Whether the operator is a large operator (e.g. integral, sum).
    pub largeop: bool,
    /// Whether the operator has movable limits.
    pub movablelimits: bool,
    /// Whether the operator is an accent.
    pub accent: bool,
    /// Whether the operator is symmetric.
    pub symmetric: bool,
}

impl OpAttrs {
    const fn new(
        priority: u16,
        lspace: u8,
        rspace: u8,
        fence: bool,
        stretchy: bool,
        separator: bool,
        largeop: bool,
        movablelimits: bool,
        accent: bool,
        symmetric: bool,
    ) -> Self {
        Self {
            priority,
            lspace,
            rspace,
            fence,
            stretchy,
            separator,
            largeop,
            movablelimits,
            accent,
            symmetric,
        }
    }
}

/// Look up operator attributes by character string and form.
///
/// Returns `None` if the (character, form) pair is not in the dictionary.
pub fn op_lookup(ch: &str, form: OpForm) -> Option<&'static OpAttrs> {
    OP_DICT.get(&(ch.to_string(), form))
}

static OP_DICT: LazyLock<HashMap<(String, OpForm), OpAttrs>> = LazyLock::new(|| {
    let mut m = HashMap::with_capacity(1105);
    m.insert(("\u{2018}".into(), OpForm::Prefix), OpAttrs::new(10, 0, 0, true, false, false, false, false, false, false));
    m.insert(("\u{2019}".into(), OpForm::Postfix), OpAttrs::new(10, 0, 0, true, false, false, false, false, false, false));
    m.insert(("\u{201C}".into(), OpForm::Prefix), OpAttrs::new(10, 0, 0, true, false, false, false, false, false, false));
    m.insert(("\u{201D}".into(), OpForm::Postfix), OpAttrs::new(10, 0, 0, true, false, false, false, false, false, false));
    m.insert(("(".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert((")".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("[".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("]".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("{".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("|".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("|".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("||".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("||".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("|||".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("|||".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2016}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, false));
    m.insert(("\u{2016}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, false));
    m.insert(("\u{2308}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2309}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{230A}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{230B}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2329}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{232A}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2772}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2773}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27E6}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27E7}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27E8}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27E9}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27EA}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27EB}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27EC}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27ED}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27EE}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{27EF}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2980}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, false));
    m.insert(("\u{2980}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, false));
    m.insert(("\u{2983}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2984}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2985}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2986}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2987}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2988}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2989}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{298A}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{298B}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{298C}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{298D}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{298E}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{298F}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2990}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2991}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2992}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2993}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2994}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2995}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2996}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2997}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{2998}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{29FC}".into(), OpForm::Prefix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert(("\u{29FD}".into(), OpForm::Postfix), OpAttrs::new(20, 0, 0, true, true, false, false, false, false, true));
    m.insert((";".into(), OpForm::Infix), OpAttrs::new(30, 0, 3, false, false, true, false, false, false, false));
    m.insert((", ".into(), OpForm::Infix), OpAttrs::new(40, 0, 3, false, false, true, false, false, false, false));
    m.insert(("\u{2063}".into(), OpForm::Infix), OpAttrs::new(40, 0, 0, false, false, true, false, false, false, false));
    m.insert(("\u{2234}".into(), OpForm::Infix), OpAttrs::new(70, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2235}".into(), OpForm::Infix), OpAttrs::new(70, 5, 5, false, false, false, false, false, false, false));
    m.insert(("->".into(), OpForm::Infix), OpAttrs::new(90, 5, 5, false, false, false, false, false, false, false));
    m.insert(("..".into(), OpForm::Postfix), OpAttrs::new(100, 0, 0, false, false, false, false, false, false, false));
    m.insert(("...".into(), OpForm::Postfix), OpAttrs::new(100, 0, 0, false, false, false, false, false, false, false));
    m.insert((":".into(), OpForm::Infix), OpAttrs::new(100, 1, 2, false, false, false, false, false, false, false));
    m.insert(("\u{03F6}".into(), OpForm::Infix), OpAttrs::new(110, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2026}".into(), OpForm::Infix), OpAttrs::new(150, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{22EE}".into(), OpForm::Infix), OpAttrs::new(150, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22EF}".into(), OpForm::Infix), OpAttrs::new(150, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{22F1}".into(), OpForm::Infix), OpAttrs::new(150, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{220B}".into(), OpForm::Infix), OpAttrs::new(160, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A2}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A3}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A4}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A8}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A9}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22AC}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22AD}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22AE}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22AF}".into(), OpForm::Infix), OpAttrs::new(170, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2228}".into(), OpForm::Infix), OpAttrs::new(190, 4, 4, false, false, false, false, false, false, false));
    m.insert(("&&".into(), OpForm::Infix), OpAttrs::new(200, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2227}".into(), OpForm::Infix), OpAttrs::new(200, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2200}".into(), OpForm::Prefix), OpAttrs::new(230, 2, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2203}".into(), OpForm::Prefix), OpAttrs::new(230, 2, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2204}".into(), OpForm::Prefix), OpAttrs::new(230, 2, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2201}".into(), OpForm::Infix), OpAttrs::new(240, 1, 2, false, false, false, false, false, false, false));
    m.insert(("\u{2208}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2209}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{220C}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2282}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2282}\u{20D2}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2283}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2283}\u{20D2}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2284}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2285}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2286}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2287}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2288}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2289}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{228A}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{228B}".into(), OpForm::Infix), OpAttrs::new(240, 5, 5, false, false, false, false, false, false, false));
    m.insert(("<=".into(), OpForm::Infix), OpAttrs::new(241, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2264}".into(), OpForm::Infix), OpAttrs::new(241, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2265}".into(), OpForm::Infix), OpAttrs::new(242, 5, 5, false, false, false, false, false, false, false));
    m.insert((">".into(), OpForm::Infix), OpAttrs::new(243, 5, 5, false, false, false, false, false, false, false));
    m.insert((">=".into(), OpForm::Infix), OpAttrs::new(243, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226F}".into(), OpForm::Infix), OpAttrs::new(244, 5, 5, false, false, false, false, false, false, false));
    m.insert(("<".into(), OpForm::Infix), OpAttrs::new(245, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226E}".into(), OpForm::Infix), OpAttrs::new(246, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2248}".into(), OpForm::Infix), OpAttrs::new(247, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{223C}".into(), OpForm::Infix), OpAttrs::new(250, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2249}".into(), OpForm::Infix), OpAttrs::new(250, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2262}".into(), OpForm::Infix), OpAttrs::new(252, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2260}".into(), OpForm::Infix), OpAttrs::new(255, 5, 5, false, false, false, false, false, false, false));
    m.insert(("!=".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("*=".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("+=".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("-=".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("/=".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert((":=".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("=".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("==".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{221D}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2224}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2225}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2226}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2241}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2243}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2244}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2245}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2246}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2247}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224D}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2254}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2257}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2259}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{225A}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{225B}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{225C}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{225F}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2261}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2268}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2269}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226A}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226A}\u{0338}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226B}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226B}\u{0338}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226D}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2270}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2271}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227A}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227B}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227C}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227D}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2280}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2281}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A5}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B4}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B5}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22C9}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22CA}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22CB}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22CC}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22D4}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22D6}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22D7}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22D8}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22D9}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22EA}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22EB}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22EC}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22ED}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{25A0}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25A1}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25AA}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25AB}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25AD}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25AE}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25AF}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25B0}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25B1}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{25B3}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25B4}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25B5}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25B6}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25B7}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25B8}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25B9}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25BC}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25BD}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25BE}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25BF}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C0}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C1}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C2}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C3}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C4}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C5}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C6}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C7}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C8}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25C9}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25CC}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25CD}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25CE}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25CF}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25D6}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25D7}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{25E6}".into(), OpForm::Infix), OpAttrs::new(260, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C0}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29C1}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29E3}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29E4}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29E5}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29E6}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29F3}".into(), OpForm::Infix), OpAttrs::new(260, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2A87}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A88}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAF}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAF}\u{0338}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB0}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB0}\u{0338}".into(), OpForm::Infix), OpAttrs::new(260, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2044}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, true, false, false, false, false, false));
    m.insert(("\u{2206}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{220A}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{220D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{220E}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2215}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, true, false, false, false, false, false));
    m.insert(("\u{2217}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2218}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2219}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{221F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2223}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2236}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2237}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2238}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2239}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{223A}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{223B}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{223D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{223D}\u{0331}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{223E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{223F}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2242}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2242}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224A}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224B}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224C}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224E}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{224F}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2250}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2251}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2252}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2253}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2255}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2256}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2258}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{225D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{225E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2263}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2266}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2266}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2267}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{226C}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2272}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2273}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2274}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2275}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2276}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2277}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2278}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2279}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{227F}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{228C}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{228D}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{228E}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{228F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{228F}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2290}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2290}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2291}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2292}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2293}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2294}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{229A}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{229B}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{229C}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{229D}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22A6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22A7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22AA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22AB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22B9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22BA}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22BB}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22BC}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22BD}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22BE}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{22BF}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{22C4}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22C6}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22C7}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22C8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22CD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22CE}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22CF}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22D0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22D1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22D2}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22D3}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22D5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22DA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22DB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22DC}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22DD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22DE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22DF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22E9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22F9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22FA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22FB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22FC}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22FD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22FE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{22FF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{25B2}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2758}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2981}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2982}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A0}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A1}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A2}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A3}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A4}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A5}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A6}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A7}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A8}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29A9}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29AA}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29AB}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29AC}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29AD}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29AE}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29AF}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B0}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B1}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B2}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B3}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B4}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B5}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29B6}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29B7}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29B8}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29B9}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29BA}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29BB}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29BC}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29BD}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29BE}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29BF}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C2}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29C3}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29C4}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C5}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C6}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C7}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C8}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29C9}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29CA}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29CB}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29CC}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29CD}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29CE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29CF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29CF}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D0}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29D6}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29D7}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29D8}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29D9}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29DB}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29DC}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29DD}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29DE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29E0}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29E1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{29E2}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29E7}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29E8}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29E9}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29EA}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29EB}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29EC}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29ED}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29EE}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29F0}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29F1}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29F2}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29F5}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29F6}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29F7}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29F8}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29F9}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29FA}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29FB}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29FE}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{29FF}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A1D}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2A1E}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2A1F}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2A20}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2A21}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{2A22}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A23}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A24}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A25}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A26}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A27}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A28}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A29}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A2A}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A2B}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A2C}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A2D}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A2E}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A30}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A31}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A32}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A33}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A34}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A35}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A36}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A37}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A38}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A39}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A3A}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A3B}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A3C}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A3D}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A3E}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A40}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A41}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A42}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A43}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A44}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A45}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A46}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A47}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A48}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A49}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A4A}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A4B}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A4C}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A4D}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A4E}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A4F}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A50}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A51}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A52}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A53}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A54}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A55}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A56}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A57}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A58}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A59}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A5A}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A5B}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A5C}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A5D}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A5E}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A5F}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A60}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A61}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A62}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A63}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A64}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A65}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A66}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A67}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A68}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A69}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A6A}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A6B}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A6C}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A6D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A6E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A6F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A70}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A71}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A72}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A73}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A74}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A75}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A76}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A77}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A78}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A79}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7A}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7B}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7C}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7D}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7E}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A7F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A80}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A81}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A82}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A83}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A84}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A85}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A86}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A89}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A8A}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A8B}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A8C}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A8D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A8E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A8F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A90}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A91}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A92}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A93}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A94}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A95}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A96}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A97}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A98}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A99}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A9A}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A9B}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A9C}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A9D}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A9E}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2A9F}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA1}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA2}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AA9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAC}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AAE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AB9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ABA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ABB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ABC}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ABD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ABE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ABF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AC9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ACA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ACB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ACC}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ACD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ACE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ACF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AD9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ADA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ADB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ADD}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ADD}\u{0338}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ADE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2ADF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE4}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE5}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE6}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AE9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AEA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AEB}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AEC}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AED}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AEE}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AEF}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF0}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF1}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF2}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF3}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF4}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2AF5}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2AF6}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2AF7}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF8}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AF9}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AFA}".into(), OpForm::Infix), OpAttrs::new(265, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2AFB}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2AFD}".into(), OpForm::Infix), OpAttrs::new(265, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2AFE}".into(), OpForm::Infix), OpAttrs::new(265, 3, 3, false, false, false, false, false, false, false));
    m.insert(("|".into(), OpForm::Infix), OpAttrs::new(270, 2, 2, true, true, false, false, false, false, true));
    m.insert(("||".into(), OpForm::Infix), OpAttrs::new(270, 2, 2, true, true, false, false, false, false, true));
    m.insert(("|||".into(), OpForm::Infix), OpAttrs::new(270, 2, 2, true, true, false, false, false, false, true));
    m.insert(("\u{2190}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2191}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2192}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2193}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2194}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2195}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2196}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2197}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2198}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2199}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{219A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{219B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{219C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{219D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{219E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{219F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21A0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21A1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21A2}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21A3}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21A4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21A5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21A6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21A7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21A8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21A9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21AA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21AB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21AC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21AD}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21AE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21AF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B2}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B3}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21B6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21B7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21B8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21B9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21BA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21BB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21BC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21BD}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21BE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21BF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21C0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21C1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21C2}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21C3}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21C4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21C5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21C6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21C7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21C8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21C9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21CA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21CB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21CC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21CD}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21CE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21CF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21D0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21D1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21D2}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21D3}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21D4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21D5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21D6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21D7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21D8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21D9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21DA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21DB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21DC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21DD}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21DE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21DF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21E0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21E1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21E2}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21E3}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21E4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21E5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21E6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21E7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21E8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21E9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21EA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21EB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21EC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21ED}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21EE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21EF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21F0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21F1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21F2}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{21F3}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21F4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21F5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{21F6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21F7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21F8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21F9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21FA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21FB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21FC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{21FD}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21FE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{21FF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{22B8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{27F0}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{27F1}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{27F5}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27F6}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27F7}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27F8}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27F9}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27FA}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27FB}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27FC}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27FD}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27FE}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{27FF}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2900}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2901}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2902}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2903}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2904}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2905}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2906}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2907}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2908}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2909}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{290A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{290B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{290C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{290D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{290E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{290F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2910}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2911}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2912}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2913}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2914}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2915}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2916}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2917}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2918}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2919}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{291A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{291B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{291C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{291D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{291E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{291F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2920}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2921}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2922}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2923}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2924}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2925}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2926}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2927}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2928}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2929}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{292A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{292B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{292C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{292D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{292E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{292F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2930}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2931}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2932}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2933}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2934}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2935}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2936}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2937}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2938}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2939}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{293A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{293B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{293C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{293D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{293E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{293F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2940}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2941}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2942}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2943}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2944}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2945}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2946}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2947}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2948}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2949}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{294A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{294B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{294C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{294D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{294E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{294F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2950}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2951}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2952}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2953}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2954}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2955}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2956}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2957}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2958}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2959}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{295A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{295B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{295C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{295D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{295E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{295F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, true, false));
    m.insert(("\u{2960}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2961}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2962}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2963}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2964}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2965}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2966}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2967}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2968}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2969}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{296A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{296B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{296C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{296D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{296E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{296F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2970}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2971}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2972}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2973}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2974}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2975}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2976}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2977}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2978}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{2979}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{297A}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{297B}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{297C}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{297D}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, true, false));
    m.insert(("\u{297E}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{297F}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2999}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{299A}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{299B}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{299C}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{299D}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{299E}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{299F}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29DF}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29EF}".into(), OpForm::Infix), OpAttrs::new(270, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{29F4}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, false, false, false, false, false, false));
    m.insert(("\u{2B45}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("\u{2B46}".into(), OpForm::Infix), OpAttrs::new(270, 5, 5, false, true, false, false, false, false, false));
    m.insert(("+".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("+".into(), OpForm::Prefix), OpAttrs::new(275, 0, 1, false, false, false, false, false, false, false));
    m.insert(("-".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("-".into(), OpForm::Prefix), OpAttrs::new(275, 0, 1, false, false, false, false, false, false, false));
    m.insert(("\u{00B1}".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{00B1}".into(), OpForm::Prefix), OpAttrs::new(275, 0, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2212}".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2212}".into(), OpForm::Prefix), OpAttrs::new(275, 0, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2213}".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2213}".into(), OpForm::Prefix), OpAttrs::new(275, 0, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2214}".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{229E}".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{229F}".into(), OpForm::Infix), OpAttrs::new(275, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2211}".into(), OpForm::Prefix), OpAttrs::new(290, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A0A}".into(), OpForm::Prefix), OpAttrs::new(290, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A0B}".into(), OpForm::Prefix), OpAttrs::new(290, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{222C}".into(), OpForm::Prefix), OpAttrs::new(300, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{222D}".into(), OpForm::Prefix), OpAttrs::new(300, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2295}".into(), OpForm::Infix), OpAttrs::new(300, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2296}".into(), OpForm::Infix), OpAttrs::new(300, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2298}".into(), OpForm::Infix), OpAttrs::new(300, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A01}".into(), OpForm::Prefix), OpAttrs::new(300, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{222B}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{222E}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{222F}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2230}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2231}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2232}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2233}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2A0C}".into(), OpForm::Prefix), OpAttrs::new(310, 0, 1, false, false, false, true, false, false, true));
    m.insert(("\u{2A0D}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A0E}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A0F}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A10}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A11}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A12}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A13}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A14}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A15}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A16}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A17}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A18}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A19}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A1A}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A1B}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{2A1C}".into(), OpForm::Prefix), OpAttrs::new(310, 1, 2, false, false, false, true, false, false, true));
    m.insert(("\u{22C3}".into(), OpForm::Prefix), OpAttrs::new(320, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A03}".into(), OpForm::Prefix), OpAttrs::new(320, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A04}".into(), OpForm::Prefix), OpAttrs::new(320, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{22C0}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{22C1}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{22C2}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A00}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A02}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A05}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A06}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A07}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A08}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2A09}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2AFC}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2AFF}".into(), OpForm::Prefix), OpAttrs::new(330, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2240}".into(), OpForm::Infix), OpAttrs::new(340, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{220F}".into(), OpForm::Prefix), OpAttrs::new(350, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2210}".into(), OpForm::Prefix), OpAttrs::new(350, 1, 2, false, false, false, true, true, false, true));
    m.insert(("\u{2229}".into(), OpForm::Infix), OpAttrs::new(350, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{222A}".into(), OpForm::Infix), OpAttrs::new(350, 4, 4, false, false, false, false, false, false, false));
    m.insert(("*".into(), OpForm::Infix), OpAttrs::new(390, 3, 3, false, false, false, false, false, false, false));
    m.insert((".".into(), OpForm::Infix), OpAttrs::new(390, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\u{00D7}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2022}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2043}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2062}".into(), OpForm::Infix), OpAttrs::new(390, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{22A0}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22A1}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{22C5}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A2F}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2A3F}".into(), OpForm::Infix), OpAttrs::new(390, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{00B7}".into(), OpForm::Infix), OpAttrs::new(400, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2297}".into(), OpForm::Infix), OpAttrs::new(410, 4, 4, false, false, false, false, false, false, false));
    m.insert(("%".into(), OpForm::Infix), OpAttrs::new(640, 3, 3, false, false, false, false, false, false, false));
    m.insert(("\\".into(), OpForm::Infix), OpAttrs::new(650, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{2216}".into(), OpForm::Infix), OpAttrs::new(650, 4, 4, false, false, false, false, false, false, false));
    m.insert(("/".into(), OpForm::Infix), OpAttrs::new(660, 1, 1, false, false, false, false, false, false, false));
    m.insert(("\u{00F7}".into(), OpForm::Infix), OpAttrs::new(660, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2220}".into(), OpForm::Prefix), OpAttrs::new(670, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{2221}".into(), OpForm::Prefix), OpAttrs::new(670, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{2222}".into(), OpForm::Prefix), OpAttrs::new(670, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{00AC}".into(), OpForm::Prefix), OpAttrs::new(680, 2, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2299}".into(), OpForm::Infix), OpAttrs::new(710, 4, 4, false, false, false, false, false, false, false));
    m.insert(("\u{2202}".into(), OpForm::Prefix), OpAttrs::new(740, 2, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2207}".into(), OpForm::Prefix), OpAttrs::new(740, 2, 1, false, false, false, false, false, false, false));
    m.insert(("**".into(), OpForm::Infix), OpAttrs::new(780, 1, 1, false, false, false, false, false, false, false));
    m.insert(("<>".into(), OpForm::Infix), OpAttrs::new(780, 1, 1, false, false, false, false, false, false, false));
    m.insert(("^".into(), OpForm::Infix), OpAttrs::new(780, 1, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2032}".into(), OpForm::Postfix), OpAttrs::new(800, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{266D}".into(), OpForm::Postfix), OpAttrs::new(800, 0, 2, false, false, false, false, false, false, false));
    m.insert(("\u{266E}".into(), OpForm::Postfix), OpAttrs::new(800, 0, 2, false, false, false, false, false, false, false));
    m.insert(("\u{266F}".into(), OpForm::Postfix), OpAttrs::new(800, 0, 2, false, false, false, false, false, false, false));
    m.insert(("!".into(), OpForm::Postfix), OpAttrs::new(810, 1, 0, false, false, false, false, false, false, false));
    m.insert(("!!".into(), OpForm::Postfix), OpAttrs::new(810, 1, 0, false, false, false, false, false, false, false));
    m.insert(("//".into(), OpForm::Infix), OpAttrs::new(820, 1, 1, false, false, false, false, false, false, false));
    m.insert(("@".into(), OpForm::Infix), OpAttrs::new(825, 1, 1, false, false, false, false, false, false, false));
    m.insert(("?".into(), OpForm::Infix), OpAttrs::new(835, 1, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2145}".into(), OpForm::Prefix), OpAttrs::new(845, 2, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2146}".into(), OpForm::Prefix), OpAttrs::new(845, 2, 0, false, false, false, false, false, false, false));
    m.insert(("\u{221A}".into(), OpForm::Prefix), OpAttrs::new(845, 1, 1, false, true, false, false, false, false, false));
    m.insert(("\u{221B}".into(), OpForm::Prefix), OpAttrs::new(845, 1, 1, false, false, false, false, false, false, false));
    m.insert(("\u{221C}".into(), OpForm::Prefix), OpAttrs::new(845, 1, 1, false, false, false, false, false, false, false));
    m.insert(("\u{2061}".into(), OpForm::Infix), OpAttrs::new(850, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\"".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("&".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, false, false));
    m.insert(("'".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("++".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, false, false));
    m.insert(("--".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, false, false));
    m.insert(("^".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("_".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("`".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("~".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{00A8}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00AA}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00AF}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{00B0}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{00B2}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00B3}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00B4}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00B8}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00B9}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{00BA}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02C6}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{02C7}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{02C9}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{02CA}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02CB}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02CD}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{02D8}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02D9}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02DA}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02DC}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{02DD}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{02F7}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{0302}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{0311}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{201A}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{201B}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{201E}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{201F}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{2033}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{2034}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{2035}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{2036}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{2037}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{203E}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{2057}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{2064}".into(), OpForm::Infix), OpAttrs::new(880, 0, 0, false, false, false, false, false, false, false));
    m.insert(("\u{20DB}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{20DC}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, false, false, false, false, true, false));
    m.insert(("\u{23B4}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23B5}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23DC}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23DD}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23DE}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23DF}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23E0}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("\u{23E1}".into(), OpForm::Postfix), OpAttrs::new(880, 0, 0, false, true, false, false, false, true, false));
    m.insert(("_".into(), OpForm::Infix), OpAttrs::new(900, 1, 1, false, false, false, false, false, false, false));
    m
});

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_op_dict_size() {
        assert_eq!(OP_DICT.len(), 1105);
    }

    #[test]
    fn test_lookup_plus_infix() {
        let attrs = op_lookup("+", OpForm::Infix).unwrap();
        assert_eq!(attrs.priority, 275);
        assert_eq!(attrs.lspace, 4);
        assert_eq!(attrs.rspace, 4);
        assert!(!attrs.fence);
    }

    #[test]
    fn test_lookup_paren_prefix() {
        let attrs = op_lookup("(", OpForm::Prefix).unwrap();
        assert_eq!(attrs.priority, 20);
        assert!(attrs.fence);
        assert!(attrs.stretchy);
        assert!(attrs.symmetric);
    }

    #[test]
    fn test_lookup_integral_prefix() {
        let attrs = op_lookup("\u{222B}", OpForm::Prefix).unwrap();
        assert_eq!(attrs.priority, 310);
        assert!(attrs.largeop);
        assert!(attrs.symmetric);
    }

    #[test]
    fn test_lookup_missing() {
        assert!(op_lookup("xyz", OpForm::Infix).is_none());
    }
}
