substrait-validator 0.0.11

Substrait validator
Documentation
// SPDX-License-Identifier: Apache-2.0
#![allow(clippy::all)]
#![cfg_attr(rustfmt, rustfmt_skip)]
// Generated from SubstraitType.g4 by ANTLR 4.8
#![allow(dead_code)]
#![allow(nonstandard_style)]
#![allow(unused_imports)]
#![allow(unused_variables)]
use antlr_rust::atn::ATN;
use antlr_rust::char_stream::CharStream;
use antlr_rust::int_stream::IntStream;
use antlr_rust::lexer::{BaseLexer, Lexer, LexerRecog};
use antlr_rust::atn_deserializer::ATNDeserializer;
use antlr_rust::dfa::DFA;
use antlr_rust::lexer_atn_simulator::{LexerATNSimulator, ILexerATNSimulator};
use antlr_rust::PredictionContextCache;
use antlr_rust::recognizer::{Recognizer,Actions};
use antlr_rust::error_listener::ErrorListener;
use antlr_rust::TokenSource;
use antlr_rust::token_factory::{TokenFactory,CommonTokenFactory,TokenAware};
use antlr_rust::token::*;
use antlr_rust::rule_context::{BaseRuleContext,EmptyCustomRuleContext,EmptyContext};
use antlr_rust::parser_rule_context::{ParserRuleContext,BaseParserRuleContext,cast};
use antlr_rust::vocabulary::{Vocabulary,VocabularyImpl};

use antlr_rust::{lazy_static,Tid,TidAble,TidExt};

use std::sync::Arc;
use std::cell::RefCell;
use std::rc::Rc;
use std::marker::PhantomData;
use std::ops::{Deref, DerefMut};


	pub const LineComment:isize=1; 
	pub const BlockComment:isize=2; 
	pub const Whitespace:isize=3; 
	pub const Newline:isize=4; 
	pub const EscNewline:isize=5; 
	pub const Assert:isize=6; 
	pub const Matches:isize=7; 
	pub const If:isize=8; 
	pub const Then:isize=9; 
	pub const Else:isize=10; 
	pub const Null:isize=11; 
	pub const True:isize=12; 
	pub const False:isize=13; 
	pub const Metabool:isize=14; 
	pub const Metaint:isize=15; 
	pub const Metaenum:isize=16; 
	pub const Metastr:isize=17; 
	pub const Typename:isize=18; 
	pub const Period:isize=19; 
	pub const Comma:isize=20; 
	pub const Colon:isize=21; 
	pub const Semicolon:isize=22; 
	pub const Question:isize=23; 
	pub const Bang:isize=24; 
	pub const OpenParen:isize=25; 
	pub const CloseParen:isize=26; 
	pub const OpenCurly:isize=27; 
	pub const CloseCurly:isize=28; 
	pub const OpenSquare:isize=29; 
	pub const CloseSquare:isize=30; 
	pub const Assign:isize=31; 
	pub const BooleanOr:isize=32; 
	pub const BooleanAnd:isize=33; 
	pub const Equal:isize=34; 
	pub const NotEqual:isize=35; 
	pub const LessThan:isize=36; 
	pub const LessEqual:isize=37; 
	pub const GreaterThan:isize=38; 
	pub const GreaterEqual:isize=39; 
	pub const Plus:isize=40; 
	pub const Minus:isize=41; 
	pub const Multiply:isize=42; 
	pub const Divide:isize=43; 
	pub const Range:isize=44; 
	pub const Nonzero:isize=45; 
	pub const Zero:isize=46; 
	pub const String:isize=47; 
	pub const Identifier:isize=48;
	pub const channelNames: [&'static str;0+2] = [
		"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
	];

	pub const modeNames: [&'static str;1] = [
		"DEFAULT_MODE"
	];

	pub const ruleNames: [&'static str;74] = [
		"LineComment", "BlockComment", "Whitespace", "Newline", "EscNewline", 
		"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
		"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "Assert", 
		"Matches", "If", "Then", "Else", "Null", "True", "False", "Metabool", 
		"Metaint", "Metaenum", "Metastr", "Typename", "Period", "Comma", "Colon", 
		"Semicolon", "Question", "Bang", "OpenParen", "CloseParen", "OpenCurly", 
		"CloseCurly", "OpenSquare", "CloseSquare", "Assign", "BooleanOr", "BooleanAnd", 
		"Equal", "NotEqual", "LessThan", "LessEqual", "GreaterThan", "GreaterEqual", 
		"Plus", "Minus", "Multiply", "Divide", "Range", "Nonzero", "Zero", "String", 
		"Identifier"
	];


	pub const _LITERAL_NAMES: [Option<&'static str>;47] = [
		None, None, None, None, None, None, None, None, None, None, None, None, 
		None, None, None, None, None, None, None, Some("'.'"), Some("','"), Some("':'"), 
		Some("';'"), Some("'?'"), Some("'!'"), Some("'('"), Some("')'"), Some("'{'"), 
		Some("'}'"), Some("'['"), Some("']'"), Some("'='"), Some("'||'"), Some("'&&'"), 
		Some("'=='"), Some("'!='"), Some("'<'"), Some("'<='"), Some("'>'"), Some("'>='"), 
		Some("'+'"), Some("'-'"), Some("'*'"), Some("'/'"), Some("'..'"), None, 
		Some("'0'")
	];
	pub const _SYMBOLIC_NAMES: [Option<&'static str>;49]  = [
		None, Some("LineComment"), Some("BlockComment"), Some("Whitespace"), Some("Newline"), 
		Some("EscNewline"), Some("Assert"), Some("Matches"), Some("If"), Some("Then"), 
		Some("Else"), Some("Null"), Some("True"), Some("False"), Some("Metabool"), 
		Some("Metaint"), Some("Metaenum"), Some("Metastr"), Some("Typename"), 
		Some("Period"), Some("Comma"), Some("Colon"), Some("Semicolon"), Some("Question"), 
		Some("Bang"), Some("OpenParen"), Some("CloseParen"), Some("OpenCurly"), 
		Some("CloseCurly"), Some("OpenSquare"), Some("CloseSquare"), Some("Assign"), 
		Some("BooleanOr"), Some("BooleanAnd"), Some("Equal"), Some("NotEqual"), 
		Some("LessThan"), Some("LessEqual"), Some("GreaterThan"), Some("GreaterEqual"), 
		Some("Plus"), Some("Minus"), Some("Multiply"), Some("Divide"), Some("Range"), 
		Some("Nonzero"), Some("Zero"), Some("String"), Some("Identifier")
	];
	lazy_static!{
	    static ref _shared_context_cache: Arc<PredictionContextCache> = Arc::new(PredictionContextCache::new());
		static ref VOCABULARY: Box<dyn Vocabulary> = Box::new(VocabularyImpl::new(_LITERAL_NAMES.iter(), _SYMBOLIC_NAMES.iter(), None));
	}


pub type LexerContext<'input> = BaseRuleContext<'input,EmptyCustomRuleContext<'input,LocalTokenFactory<'input> >>;
pub type LocalTokenFactory<'input> = CommonTokenFactory;

type From<'a> = <LocalTokenFactory<'a> as TokenFactory<'a> >::From;

pub struct SubstraitTypeLexer<'input, Input:CharStream<From<'input> >> {
	base: BaseLexer<'input,SubstraitTypeLexerActions,Input,LocalTokenFactory<'input>>,
}

antlr_rust::tid! { impl<'input,Input> TidAble<'input> for SubstraitTypeLexer<'input,Input> where Input:CharStream<From<'input> > }

impl<'input, Input:CharStream<From<'input> >> Deref for SubstraitTypeLexer<'input,Input>{
	type Target = BaseLexer<'input,SubstraitTypeLexerActions,Input,LocalTokenFactory<'input>>;

	fn deref(&self) -> &Self::Target {
		&self.base
	}
}

impl<'input, Input:CharStream<From<'input> >> DerefMut for SubstraitTypeLexer<'input,Input>{
	fn deref_mut(&mut self) -> &mut Self::Target {
		&mut self.base
	}
}


impl<'input, Input:CharStream<From<'input> >> SubstraitTypeLexer<'input,Input>{
    fn get_rule_names(&self) -> &'static [&'static str] {
        &ruleNames
    }
    fn get_literal_names(&self) -> &[Option<&str>] {
        &_LITERAL_NAMES
    }

    fn get_symbolic_names(&self) -> &[Option<&str>] {
        &_SYMBOLIC_NAMES
    }

    fn get_grammar_file_name(&self) -> &'static str {
        "SubstraitTypeLexer.g4"
    }

	pub fn new_with_token_factory(input: Input, tf: &'input LocalTokenFactory<'input>) -> Self {
		antlr_rust::recognizer::check_version("0","3");
    	Self {
			base: BaseLexer::new_base_lexer(
				input,
				LexerATNSimulator::new_lexer_atnsimulator(
					_ATN.clone(),
					_decision_to_DFA.clone(),
					_shared_context_cache.clone(),
				),
				SubstraitTypeLexerActions{},
				tf
			)
	    }
	}
}

impl<'input, Input:CharStream<From<'input> >> SubstraitTypeLexer<'input,Input> where &'input LocalTokenFactory<'input>:Default{
	pub fn new(input: Input) -> Self{
		SubstraitTypeLexer::new_with_token_factory(input, <&LocalTokenFactory<'input> as Default>::default())
	}
}

pub struct SubstraitTypeLexerActions {
}

impl SubstraitTypeLexerActions{
}

impl<'input, Input:CharStream<From<'input> >> Actions<'input,BaseLexer<'input,SubstraitTypeLexerActions,Input,LocalTokenFactory<'input>>> for SubstraitTypeLexerActions{
	}

	impl<'input, Input:CharStream<From<'input> >> SubstraitTypeLexer<'input,Input>{

}

impl<'input, Input:CharStream<From<'input> >> LexerRecog<'input,BaseLexer<'input,SubstraitTypeLexerActions,Input,LocalTokenFactory<'input>>> for SubstraitTypeLexerActions{
}
impl<'input> TokenAware<'input> for SubstraitTypeLexerActions{
	type TF = LocalTokenFactory<'input>;
}

impl<'input, Input:CharStream<From<'input> >> TokenSource<'input> for SubstraitTypeLexer<'input,Input>{
	type TF = LocalTokenFactory<'input>;

    fn next_token(&mut self) -> <Self::TF as TokenFactory<'input>>::Tok {
        self.base.next_token()
    }

    fn get_line(&self) -> isize {
        self.base.get_line()
    }

    fn get_char_position_in_line(&self) -> isize {
        self.base.get_char_position_in_line()
    }

    fn get_input_stream(&mut self) -> Option<&mut dyn IntStream> {
        self.base.get_input_stream()
    }

	fn get_source_name(&self) -> String {
		self.base.get_source_name()
	}

    fn get_token_factory(&self) -> &'input Self::TF {
        self.base.get_token_factory()
    }
}



	lazy_static! {
	    static ref _ATN: Arc<ATN> =
	        Arc::new(ATNDeserializer::new(None).deserialize(_serializedATN.chars()));
	    static ref _decision_to_DFA: Arc<Vec<antlr_rust::RwLock<DFA>>> = {
	        let mut dfa = Vec::new();
	        let size = _ATN.decision_to_state.len();
	        for i in 0..size {
	            dfa.push(DFA::new(
	                _ATN.clone(),
	                _ATN.get_decision_state(i),
	                i as isize,
	            ).into())
	        }
	        Arc::new(dfa)
	    };
	}



	const _serializedATN:&'static str =
		"\x03\u{608b}\u{a72a}\u{8133}\u{b9ed}\u{417c}\u{3be7}\u{7786}\u{5964}\x02\
		\x32\u{1a7}\x08\x01\x04\x02\x09\x02\x04\x03\x09\x03\x04\x04\x09\x04\x04\
		\x05\x09\x05\x04\x06\x09\x06\x04\x07\x09\x07\x04\x08\x09\x08\x04\x09\x09\
		\x09\x04\x0a\x09\x0a\x04\x0b\x09\x0b\x04\x0c\x09\x0c\x04\x0d\x09\x0d\x04\
		\x0e\x09\x0e\x04\x0f\x09\x0f\x04\x10\x09\x10\x04\x11\x09\x11\x04\x12\x09\
		\x12\x04\x13\x09\x13\x04\x14\x09\x14\x04\x15\x09\x15\x04\x16\x09\x16\x04\
		\x17\x09\x17\x04\x18\x09\x18\x04\x19\x09\x19\x04\x1a\x09\x1a\x04\x1b\x09\
		\x1b\x04\x1c\x09\x1c\x04\x1d\x09\x1d\x04\x1e\x09\x1e\x04\x1f\x09\x1f\x04\
		\x20\x09\x20\x04\x21\x09\x21\x04\x22\x09\x22\x04\x23\x09\x23\x04\x24\x09\
		\x24\x04\x25\x09\x25\x04\x26\x09\x26\x04\x27\x09\x27\x04\x28\x09\x28\x04\
		\x29\x09\x29\x04\x2a\x09\x2a\x04\x2b\x09\x2b\x04\x2c\x09\x2c\x04\x2d\x09\
		\x2d\x04\x2e\x09\x2e\x04\x2f\x09\x2f\x04\x30\x09\x30\x04\x31\x09\x31\x04\
		\x32\x09\x32\x04\x33\x09\x33\x04\x34\x09\x34\x04\x35\x09\x35\x04\x36\x09\
		\x36\x04\x37\x09\x37\x04\x38\x09\x38\x04\x39\x09\x39\x04\x3a\x09\x3a\x04\
		\x3b\x09\x3b\x04\x3c\x09\x3c\x04\x3d\x09\x3d\x04\x3e\x09\x3e\x04\x3f\x09\
		\x3f\x04\x40\x09\x40\x04\x41\x09\x41\x04\x42\x09\x42\x04\x43\x09\x43\x04\
		\x44\x09\x44\x04\x45\x09\x45\x04\x46\x09\x46\x04\x47\x09\x47\x04\x48\x09\
		\x48\x04\x49\x09\x49\x04\x4a\x09\x4a\x04\x4b\x09\x4b\x03\x02\x03\x02\x03\
		\x02\x03\x02\x07\x02\u{9c}\x0a\x02\x0c\x02\x0e\x02\u{9f}\x0b\x02\x03\x02\
		\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x06\x03\u{a8}\x0a\x03\
		\x0d\x03\x0e\x03\u{a9}\x03\x03\x05\x03\u{ad}\x0a\x03\x03\x03\x07\x03\u{b0}\
		\x0a\x03\x0c\x03\x0e\x03\u{b3}\x0b\x03\x03\x03\x03\x03\x03\x03\x03\x03\
		\x03\x03\x03\x04\x06\x04\u{bb}\x0a\x04\x0d\x04\x0e\x04\u{bc}\x03\x04\x03\
		\x04\x03\x05\x06\x05\u{c2}\x0a\x05\x0d\x05\x0e\x05\u{c3}\x03\x06\x03\x06\
		\x06\x06\u{c8}\x0a\x06\x0d\x06\x0e\x06\u{c9}\x03\x06\x03\x06\x03\x07\x03\
		\x07\x03\x08\x03\x08\x03\x09\x03\x09\x03\x0a\x03\x0a\x03\x0b\x03\x0b\x03\
		\x0c\x03\x0c\x03\x0d\x03\x0d\x03\x0e\x03\x0e\x03\x0f\x03\x0f\x03\x10\x03\
		\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03\x13\x03\x14\x03\x14\x03\
		\x15\x03\x15\x03\x16\x03\x16\x03\x17\x03\x17\x03\x18\x03\x18\x03\x19\x03\
		\x19\x03\x1a\x03\x1a\x03\x1b\x03\x1b\x03\x1c\x03\x1c\x03\x1d\x03\x1d\x03\
		\x1e\x03\x1e\x03\x1f\x03\x1f\x03\x20\x03\x20\x03\x21\x03\x21\x03\x21\x03\
		\x21\x03\x21\x03\x21\x03\x21\x03\x22\x03\x22\x03\x22\x03\x22\x03\x22\x03\
		\x22\x03\x22\x03\x22\x03\x23\x03\x23\x03\x23\x03\x24\x03\x24\x03\x24\x03\
		\x24\x03\x24\x03\x25\x03\x25\x03\x25\x03\x25\x03\x25\x03\x26\x03\x26\x03\
		\x26\x03\x26\x03\x26\x03\x27\x03\x27\x03\x27\x03\x27\x03\x27\x03\x28\x03\
		\x28\x03\x28\x03\x28\x03\x28\x03\x28\x03\x29\x03\x29\x03\x29\x03\x29\x03\
		\x29\x03\x29\x03\x29\x03\x29\x03\x29\x03\x2a\x03\x2a\x03\x2a\x03\x2a\x03\
		\x2a\x03\x2a\x03\x2a\x03\x2a\x03\x2b\x03\x2b\x03\x2b\x03\x2b\x03\x2b\x03\
		\x2b\x03\x2b\x03\x2b\x03\x2b\x03\x2c\x03\x2c\x03\x2c\x03\x2c\x03\x2c\x03\
		\x2c\x03\x2c\x03\x2c\x03\x2d\x03\x2d\x03\x2d\x03\x2d\x03\x2d\x03\x2d\x03\
		\x2d\x03\x2d\x03\x2d\x03\x2e\x03\x2e\x03\x2f\x03\x2f\x03\x30\x03\x30\x03\
		\x31\x03\x31\x03\x32\x03\x32\x03\x33\x03\x33\x03\x34\x03\x34\x03\x35\x03\
		\x35\x03\x36\x03\x36\x03\x37\x03\x37\x03\x38\x03\x38\x03\x39\x03\x39\x03\
		\x3a\x03\x3a\x03\x3b\x03\x3b\x03\x3b\x03\x3c\x03\x3c\x03\x3c\x03\x3d\x03\
		\x3d\x03\x3d\x03\x3e\x03\x3e\x03\x3e\x03\x3f\x03\x3f\x03\x40\x03\x40\x03\
		\x40\x03\x41\x03\x41\x03\x42\x03\x42\x03\x42\x03\x43\x03\x43\x03\x44\x03\
		\x44\x03\x45\x03\x45\x03\x46\x03\x46\x03\x47\x03\x47\x03\x47\x03\x48\x03\
		\x48\x07\x48\u{196}\x0a\x48\x0c\x48\x0e\x48\u{199}\x0b\x48\x03\x49\x03\
		\x49\x03\x4a\x03\x4a\x03\x4a\x03\x4a\x03\x4b\x03\x4b\x07\x4b\u{1a3}\x0a\
		\x4b\x0c\x4b\x0e\x4b\u{1a6}\x0b\x4b\x02\x02\x4c\x03\x03\x05\x04\x07\x05\
		\x09\x06\x0b\x07\x0d\x02\x0f\x02\x11\x02\x13\x02\x15\x02\x17\x02\x19\x02\
		\x1b\x02\x1d\x02\x1f\x02\x21\x02\x23\x02\x25\x02\x27\x02\x29\x02\x2b\x02\
		\x2d\x02\x2f\x02\x31\x02\x33\x02\x35\x02\x37\x02\x39\x02\x3b\x02\x3d\x02\
		\x3f\x02\x41\x08\x43\x09\x45\x0a\x47\x0b\x49\x0c\x4b\x0d\x4d\x0e\x4f\x0f\
		\x51\x10\x53\x11\x55\x12\x57\x13\x59\x14\x5b\x15\x5d\x16\x5f\x17\x61\x18\
		\x63\x19\x65\x1a\x67\x1b\x69\x1c\x6b\x1d\x6d\x1e\x6f\x1f\x71\x20\x73\x21\
		\x75\x22\x77\x23\x79\x24\x7b\x25\x7d\x26\x7f\x27\u{81}\x28\u{83}\x29\u{85}\
		\x2a\u{87}\x2b\u{89}\x2c\u{8b}\x2d\u{8d}\x2e\u{8f}\x2f\u{91}\x30\u{93}\
		\x31\u{95}\x32\x03\x02\x25\x04\x02\x0c\x0c\x0f\x0f\x03\x02\x2c\x2c\x04\
		\x02\x2c\x2c\x31\x31\x04\x02\x0b\x0b\x22\x22\x04\x02\x43\x43\x63\x63\x04\
		\x02\x44\x44\x64\x64\x04\x02\x45\x45\x65\x65\x04\x02\x46\x46\x66\x66\x04\
		\x02\x47\x47\x67\x67\x04\x02\x48\x48\x68\x68\x04\x02\x49\x49\x69\x69\x04\
		\x02\x4a\x4a\x6a\x6a\x04\x02\x4b\x4b\x6b\x6b\x04\x02\x4c\x4c\x6c\x6c\x04\
		\x02\x4d\x4d\x6d\x6d\x04\x02\x4e\x4e\x6e\x6e\x04\x02\x4f\x4f\x6f\x6f\x04\
		\x02\x50\x50\x70\x70\x04\x02\x51\x51\x71\x71\x04\x02\x52\x52\x72\x72\x04\
		\x02\x53\x53\x73\x73\x04\x02\x54\x54\x74\x74\x04\x02\x55\x55\x75\x75\x04\
		\x02\x56\x56\x76\x76\x04\x02\x57\x57\x77\x77\x04\x02\x58\x58\x78\x78\x04\
		\x02\x59\x59\x79\x79\x04\x02\x5a\x5a\x7a\x7a\x04\x02\x5b\x5b\x7b\x7b\x04\
		\x02\x5c\x5c\x7c\x7c\x03\x02\x33\x3b\x03\x02\x32\x3b\x03\x02\x24\x24\x06\
		\x02\x26\x26\x43\x5c\x61\x61\x63\x7c\x07\x02\x26\x26\x32\x3b\x43\x5c\x61\
		\x61\x63\x7c\x02\u{195}\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02\x02\
		\x02\x07\x03\x02\x02\x02\x02\x09\x03\x02\x02\x02\x02\x0b\x03\x02\x02\x02\
		\x02\x41\x03\x02\x02\x02\x02\x43\x03\x02\x02\x02\x02\x45\x03\x02\x02\x02\
		\x02\x47\x03\x02\x02\x02\x02\x49\x03\x02\x02\x02\x02\x4b\x03\x02\x02\x02\
		\x02\x4d\x03\x02\x02\x02\x02\x4f\x03\x02\x02\x02\x02\x51\x03\x02\x02\x02\
		\x02\x53\x03\x02\x02\x02\x02\x55\x03\x02\x02\x02\x02\x57\x03\x02\x02\x02\
		\x02\x59\x03\x02\x02\x02\x02\x5b\x03\x02\x02\x02\x02\x5d\x03\x02\x02\x02\
		\x02\x5f\x03\x02\x02\x02\x02\x61\x03\x02\x02\x02\x02\x63\x03\x02\x02\x02\
		\x02\x65\x03\x02\x02\x02\x02\x67\x03\x02\x02\x02\x02\x69\x03\x02\x02\x02\
		\x02\x6b\x03\x02\x02\x02\x02\x6d\x03\x02\x02\x02\x02\x6f\x03\x02\x02\x02\
		\x02\x71\x03\x02\x02\x02\x02\x73\x03\x02\x02\x02\x02\x75\x03\x02\x02\x02\
		\x02\x77\x03\x02\x02\x02\x02\x79\x03\x02\x02\x02\x02\x7b\x03\x02\x02\x02\
		\x02\x7d\x03\x02\x02\x02\x02\x7f\x03\x02\x02\x02\x02\u{81}\x03\x02\x02\
		\x02\x02\u{83}\x03\x02\x02\x02\x02\u{85}\x03\x02\x02\x02\x02\u{87}\x03\
		\x02\x02\x02\x02\u{89}\x03\x02\x02\x02\x02\u{8b}\x03\x02\x02\x02\x02\u{8d}\
		\x03\x02\x02\x02\x02\u{8f}\x03\x02\x02\x02\x02\u{91}\x03\x02\x02\x02\x02\
		\u{93}\x03\x02\x02\x02\x02\u{95}\x03\x02\x02\x02\x03\u{97}\x03\x02\x02\
		\x02\x05\u{a2}\x03\x02\x02\x02\x07\u{ba}\x03\x02\x02\x02\x09\u{c1}\x03\
		\x02\x02\x02\x0b\u{c5}\x03\x02\x02\x02\x0d\u{cd}\x03\x02\x02\x02\x0f\u{cf}\
		\x03\x02\x02\x02\x11\u{d1}\x03\x02\x02\x02\x13\u{d3}\x03\x02\x02\x02\x15\
		\u{d5}\x03\x02\x02\x02\x17\u{d7}\x03\x02\x02\x02\x19\u{d9}\x03\x02\x02\
		\x02\x1b\u{db}\x03\x02\x02\x02\x1d\u{dd}\x03\x02\x02\x02\x1f\u{df}\x03\
		\x02\x02\x02\x21\u{e1}\x03\x02\x02\x02\x23\u{e3}\x03\x02\x02\x02\x25\u{e5}\
		\x03\x02\x02\x02\x27\u{e7}\x03\x02\x02\x02\x29\u{e9}\x03\x02\x02\x02\x2b\
		\u{eb}\x03\x02\x02\x02\x2d\u{ed}\x03\x02\x02\x02\x2f\u{ef}\x03\x02\x02\
		\x02\x31\u{f1}\x03\x02\x02\x02\x33\u{f3}\x03\x02\x02\x02\x35\u{f5}\x03\
		\x02\x02\x02\x37\u{f7}\x03\x02\x02\x02\x39\u{f9}\x03\x02\x02\x02\x3b\u{fb}\
		\x03\x02\x02\x02\x3d\u{fd}\x03\x02\x02\x02\x3f\u{ff}\x03\x02\x02\x02\x41\
		\u{101}\x03\x02\x02\x02\x43\u{108}\x03\x02\x02\x02\x45\u{110}\x03\x02\x02\
		\x02\x47\u{113}\x03\x02\x02\x02\x49\u{118}\x03\x02\x02\x02\x4b\u{11d}\x03\
		\x02\x02\x02\x4d\u{122}\x03\x02\x02\x02\x4f\u{127}\x03\x02\x02\x02\x51\
		\u{12d}\x03\x02\x02\x02\x53\u{136}\x03\x02\x02\x02\x55\u{13e}\x03\x02\x02\
		\x02\x57\u{147}\x03\x02\x02\x02\x59\u{14f}\x03\x02\x02\x02\x5b\u{158}\x03\
		\x02\x02\x02\x5d\u{15a}\x03\x02\x02\x02\x5f\u{15c}\x03\x02\x02\x02\x61\
		\u{15e}\x03\x02\x02\x02\x63\u{160}\x03\x02\x02\x02\x65\u{162}\x03\x02\x02\
		\x02\x67\u{164}\x03\x02\x02\x02\x69\u{166}\x03\x02\x02\x02\x6b\u{168}\x03\
		\x02\x02\x02\x6d\u{16a}\x03\x02\x02\x02\x6f\u{16c}\x03\x02\x02\x02\x71\
		\u{16e}\x03\x02\x02\x02\x73\u{170}\x03\x02\x02\x02\x75\u{172}\x03\x02\x02\
		\x02\x77\u{175}\x03\x02\x02\x02\x79\u{178}\x03\x02\x02\x02\x7b\u{17b}\x03\
		\x02\x02\x02\x7d\u{17e}\x03\x02\x02\x02\x7f\u{180}\x03\x02\x02\x02\u{81}\
		\u{183}\x03\x02\x02\x02\u{83}\u{185}\x03\x02\x02\x02\u{85}\u{188}\x03\x02\
		\x02\x02\u{87}\u{18a}\x03\x02\x02\x02\u{89}\u{18c}\x03\x02\x02\x02\u{8b}\
		\u{18e}\x03\x02\x02\x02\u{8d}\u{190}\x03\x02\x02\x02\u{8f}\u{193}\x03\x02\
		\x02\x02\u{91}\u{19a}\x03\x02\x02\x02\u{93}\u{19c}\x03\x02\x02\x02\u{95}\
		\u{1a0}\x03\x02\x02\x02\u{97}\u{98}\x07\x31\x02\x02\u{98}\u{99}\x07\x31\
		\x02\x02\u{99}\u{9d}\x03\x02\x02\x02\u{9a}\u{9c}\x0a\x02\x02\x02\u{9b}\
		\u{9a}\x03\x02\x02\x02\u{9c}\u{9f}\x03\x02\x02\x02\u{9d}\u{9b}\x03\x02\
		\x02\x02\u{9d}\u{9e}\x03\x02\x02\x02\u{9e}\u{a0}\x03\x02\x02\x02\u{9f}\
		\u{9d}\x03\x02\x02\x02\u{a0}\u{a1}\x08\x02\x02\x02\u{a1}\x04\x03\x02\x02\
		\x02\u{a2}\u{a3}\x07\x31\x02\x02\u{a3}\u{a4}\x07\x2c\x02\x02\u{a4}\u{ac}\
		\x03\x02\x02\x02\u{a5}\u{ad}\x0a\x03\x02\x02\u{a6}\u{a8}\x07\x2c\x02\x02\
		\u{a7}\u{a6}\x03\x02\x02\x02\u{a8}\u{a9}\x03\x02\x02\x02\u{a9}\u{a7}\x03\
		\x02\x02\x02\u{a9}\u{aa}\x03\x02\x02\x02\u{aa}\u{ab}\x03\x02\x02\x02\u{ab}\
		\u{ad}\x0a\x04\x02\x02\u{ac}\u{a5}\x03\x02\x02\x02\u{ac}\u{a7}\x03\x02\
		\x02\x02\u{ad}\u{b1}\x03\x02\x02\x02\u{ae}\u{b0}\x07\x2c\x02\x02\u{af}\
		\u{ae}\x03\x02\x02\x02\u{b0}\u{b3}\x03\x02\x02\x02\u{b1}\u{af}\x03\x02\
		\x02\x02\u{b1}\u{b2}\x03\x02\x02\x02\u{b2}\u{b4}\x03\x02\x02\x02\u{b3}\
		\u{b1}\x03\x02\x02\x02\u{b4}\u{b5}\x07\x2c\x02\x02\u{b5}\u{b6}\x07\x31\
		\x02\x02\u{b6}\u{b7}\x03\x02\x02\x02\u{b7}\u{b8}\x08\x03\x02\x02\u{b8}\
		\x06\x03\x02\x02\x02\u{b9}\u{bb}\x09\x05\x02\x02\u{ba}\u{b9}\x03\x02\x02\
		\x02\u{bb}\u{bc}\x03\x02\x02\x02\u{bc}\u{ba}\x03\x02\x02\x02\u{bc}\u{bd}\
		\x03\x02\x02\x02\u{bd}\u{be}\x03\x02\x02\x02\u{be}\u{bf}\x08\x04\x02\x02\
		\u{bf}\x08\x03\x02\x02\x02\u{c0}\u{c2}\x09\x02\x02\x02\u{c1}\u{c0}\x03\
		\x02\x02\x02\u{c2}\u{c3}\x03\x02\x02\x02\u{c3}\u{c1}\x03\x02\x02\x02\u{c3}\
		\u{c4}\x03\x02\x02\x02\u{c4}\x0a\x03\x02\x02\x02\u{c5}\u{c7}\x07\x5e\x02\
		\x02\u{c6}\u{c8}\x09\x02\x02\x02\u{c7}\u{c6}\x03\x02\x02\x02\u{c8}\u{c9}\
		\x03\x02\x02\x02\u{c9}\u{c7}\x03\x02\x02\x02\u{c9}\u{ca}\x03\x02\x02\x02\
		\u{ca}\u{cb}\x03\x02\x02\x02\u{cb}\u{cc}\x08\x06\x02\x02\u{cc}\x0c\x03\
		\x02\x02\x02\u{cd}\u{ce}\x09\x06\x02\x02\u{ce}\x0e\x03\x02\x02\x02\u{cf}\
		\u{d0}\x09\x07\x02\x02\u{d0}\x10\x03\x02\x02\x02\u{d1}\u{d2}\x09\x08\x02\
		\x02\u{d2}\x12\x03\x02\x02\x02\u{d3}\u{d4}\x09\x09\x02\x02\u{d4}\x14\x03\
		\x02\x02\x02\u{d5}\u{d6}\x09\x0a\x02\x02\u{d6}\x16\x03\x02\x02\x02\u{d7}\
		\u{d8}\x09\x0b\x02\x02\u{d8}\x18\x03\x02\x02\x02\u{d9}\u{da}\x09\x0c\x02\
		\x02\u{da}\x1a\x03\x02\x02\x02\u{db}\u{dc}\x09\x0d\x02\x02\u{dc}\x1c\x03\
		\x02\x02\x02\u{dd}\u{de}\x09\x0e\x02\x02\u{de}\x1e\x03\x02\x02\x02\u{df}\
		\u{e0}\x09\x0f\x02\x02\u{e0}\x20\x03\x02\x02\x02\u{e1}\u{e2}\x09\x10\x02\
		\x02\u{e2}\x22\x03\x02\x02\x02\u{e3}\u{e4}\x09\x11\x02\x02\u{e4}\x24\x03\
		\x02\x02\x02\u{e5}\u{e6}\x09\x12\x02\x02\u{e6}\x26\x03\x02\x02\x02\u{e7}\
		\u{e8}\x09\x13\x02\x02\u{e8}\x28\x03\x02\x02\x02\u{e9}\u{ea}\x09\x14\x02\
		\x02\u{ea}\x2a\x03\x02\x02\x02\u{eb}\u{ec}\x09\x15\x02\x02\u{ec}\x2c\x03\
		\x02\x02\x02\u{ed}\u{ee}\x09\x16\x02\x02\u{ee}\x2e\x03\x02\x02\x02\u{ef}\
		\u{f0}\x09\x17\x02\x02\u{f0}\x30\x03\x02\x02\x02\u{f1}\u{f2}\x09\x18\x02\
		\x02\u{f2}\x32\x03\x02\x02\x02\u{f3}\u{f4}\x09\x19\x02\x02\u{f4}\x34\x03\
		\x02\x02\x02\u{f5}\u{f6}\x09\x1a\x02\x02\u{f6}\x36\x03\x02\x02\x02\u{f7}\
		\u{f8}\x09\x1b\x02\x02\u{f8}\x38\x03\x02\x02\x02\u{f9}\u{fa}\x09\x1c\x02\
		\x02\u{fa}\x3a\x03\x02\x02\x02\u{fb}\u{fc}\x09\x1d\x02\x02\u{fc}\x3c\x03\
		\x02\x02\x02\u{fd}\u{fe}\x09\x1e\x02\x02\u{fe}\x3e\x03\x02\x02\x02\u{ff}\
		\u{100}\x09\x1f\x02\x02\u{100}\x40\x03\x02\x02\x02\u{101}\u{102}\x05\x0d\
		\x07\x02\u{102}\u{103}\x05\x31\x19\x02\u{103}\u{104}\x05\x31\x19\x02\u{104}\
		\u{105}\x05\x15\x0b\x02\u{105}\u{106}\x05\x2f\x18\x02\u{106}\u{107}\x05\
		\x33\x1a\x02\u{107}\x42\x03\x02\x02\x02\u{108}\u{109}\x05\x25\x13\x02\u{109}\
		\u{10a}\x05\x0d\x07\x02\u{10a}\u{10b}\x05\x33\x1a\x02\u{10b}\u{10c}\x05\
		\x11\x09\x02\u{10c}\u{10d}\x05\x1b\x0e\x02\u{10d}\u{10e}\x05\x15\x0b\x02\
		\u{10e}\u{10f}\x05\x31\x19\x02\u{10f}\x44\x03\x02\x02\x02\u{110}\u{111}\
		\x05\x1d\x0f\x02\u{111}\u{112}\x05\x17\x0c\x02\u{112}\x46\x03\x02\x02\x02\
		\u{113}\u{114}\x05\x33\x1a\x02\u{114}\u{115}\x05\x1b\x0e\x02\u{115}\u{116}\
		\x05\x15\x0b\x02\u{116}\u{117}\x05\x27\x14\x02\u{117}\x48\x03\x02\x02\x02\
		\u{118}\u{119}\x05\x15\x0b\x02\u{119}\u{11a}\x05\x23\x12\x02\u{11a}\u{11b}\
		\x05\x31\x19\x02\u{11b}\u{11c}\x05\x15\x0b\x02\u{11c}\x4a\x03\x02\x02\x02\
		\u{11d}\u{11e}\x05\x27\x14\x02\u{11e}\u{11f}\x05\x35\x1b\x02\u{11f}\u{120}\
		\x05\x23\x12\x02\u{120}\u{121}\x05\x23\x12\x02\u{121}\x4c\x03\x02\x02\x02\
		\u{122}\u{123}\x05\x33\x1a\x02\u{123}\u{124}\x05\x2f\x18\x02\u{124}\u{125}\
		\x05\x35\x1b\x02\u{125}\u{126}\x05\x15\x0b\x02\u{126}\x4e\x03\x02\x02\x02\
		\u{127}\u{128}\x05\x17\x0c\x02\u{128}\u{129}\x05\x0d\x07\x02\u{129}\u{12a}\
		\x05\x23\x12\x02\u{12a}\u{12b}\x05\x31\x19\x02\u{12b}\u{12c}\x05\x15\x0b\
		\x02\u{12c}\x50\x03\x02\x02\x02\u{12d}\u{12e}\x05\x25\x13\x02\u{12e}\u{12f}\
		\x05\x15\x0b\x02\u{12f}\u{130}\x05\x33\x1a\x02\u{130}\u{131}\x05\x0d\x07\
		\x02\u{131}\u{132}\x05\x0f\x08\x02\u{132}\u{133}\x05\x29\x15\x02\u{133}\
		\u{134}\x05\x29\x15\x02\u{134}\u{135}\x05\x23\x12\x02\u{135}\x52\x03\x02\
		\x02\x02\u{136}\u{137}\x05\x25\x13\x02\u{137}\u{138}\x05\x15\x0b\x02\u{138}\
		\u{139}\x05\x33\x1a\x02\u{139}\u{13a}\x05\x0d\x07\x02\u{13a}\u{13b}\x05\
		\x1d\x0f\x02\u{13b}\u{13c}\x05\x27\x14\x02\u{13c}\u{13d}\x05\x33\x1a\x02\
		\u{13d}\x54\x03\x02\x02\x02\u{13e}\u{13f}\x05\x25\x13\x02\u{13f}\u{140}\
		\x05\x15\x0b\x02\u{140}\u{141}\x05\x33\x1a\x02\u{141}\u{142}\x05\x0d\x07\
		\x02\u{142}\u{143}\x05\x15\x0b\x02\u{143}\u{144}\x05\x27\x14\x02\u{144}\
		\u{145}\x05\x35\x1b\x02\u{145}\u{146}\x05\x25\x13\x02\u{146}\x56\x03\x02\
		\x02\x02\u{147}\u{148}\x05\x25\x13\x02\u{148}\u{149}\x05\x15\x0b\x02\u{149}\
		\u{14a}\x05\x33\x1a\x02\u{14a}\u{14b}\x05\x0d\x07\x02\u{14b}\u{14c}\x05\
		\x31\x19\x02\u{14c}\u{14d}\x05\x33\x1a\x02\u{14d}\u{14e}\x05\x2f\x18\x02\
		\u{14e}\x58\x03\x02\x02\x02\u{14f}\u{150}\x05\x33\x1a\x02\u{150}\u{151}\
		\x05\x3d\x1f\x02\u{151}\u{152}\x05\x2b\x16\x02\u{152}\u{153}\x05\x15\x0b\
		\x02\u{153}\u{154}\x05\x27\x14\x02\u{154}\u{155}\x05\x0d\x07\x02\u{155}\
		\u{156}\x05\x25\x13\x02\u{156}\u{157}\x05\x15\x0b\x02\u{157}\x5a\x03\x02\
		\x02\x02\u{158}\u{159}\x07\x30\x02\x02\u{159}\x5c\x03\x02\x02\x02\u{15a}\
		\u{15b}\x07\x2e\x02\x02\u{15b}\x5e\x03\x02\x02\x02\u{15c}\u{15d}\x07\x3c\
		\x02\x02\u{15d}\x60\x03\x02\x02\x02\u{15e}\u{15f}\x07\x3d\x02\x02\u{15f}\
		\x62\x03\x02\x02\x02\u{160}\u{161}\x07\x41\x02\x02\u{161}\x64\x03\x02\x02\
		\x02\u{162}\u{163}\x07\x23\x02\x02\u{163}\x66\x03\x02\x02\x02\u{164}\u{165}\
		\x07\x2a\x02\x02\u{165}\x68\x03\x02\x02\x02\u{166}\u{167}\x07\x2b\x02\x02\
		\u{167}\x6a\x03\x02\x02\x02\u{168}\u{169}\x07\x7d\x02\x02\u{169}\x6c\x03\
		\x02\x02\x02\u{16a}\u{16b}\x07\x7f\x02\x02\u{16b}\x6e\x03\x02\x02\x02\u{16c}\
		\u{16d}\x07\x5d\x02\x02\u{16d}\x70\x03\x02\x02\x02\u{16e}\u{16f}\x07\x5f\
		\x02\x02\u{16f}\x72\x03\x02\x02\x02\u{170}\u{171}\x07\x3f\x02\x02\u{171}\
		\x74\x03\x02\x02\x02\u{172}\u{173}\x07\x7e\x02\x02\u{173}\u{174}\x07\x7e\
		\x02\x02\u{174}\x76\x03\x02\x02\x02\u{175}\u{176}\x07\x28\x02\x02\u{176}\
		\u{177}\x07\x28\x02\x02\u{177}\x78\x03\x02\x02\x02\u{178}\u{179}\x07\x3f\
		\x02\x02\u{179}\u{17a}\x07\x3f\x02\x02\u{17a}\x7a\x03\x02\x02\x02\u{17b}\
		\u{17c}\x07\x23\x02\x02\u{17c}\u{17d}\x07\x3f\x02\x02\u{17d}\x7c\x03\x02\
		\x02\x02\u{17e}\u{17f}\x07\x3e\x02\x02\u{17f}\x7e\x03\x02\x02\x02\u{180}\
		\u{181}\x07\x3e\x02\x02\u{181}\u{182}\x07\x3f\x02\x02\u{182}\u{80}\x03\
		\x02\x02\x02\u{183}\u{184}\x07\x40\x02\x02\u{184}\u{82}\x03\x02\x02\x02\
		\u{185}\u{186}\x07\x40\x02\x02\u{186}\u{187}\x07\x3f\x02\x02\u{187}\u{84}\
		\x03\x02\x02\x02\u{188}\u{189}\x07\x2d\x02\x02\u{189}\u{86}\x03\x02\x02\
		\x02\u{18a}\u{18b}\x07\x2f\x02\x02\u{18b}\u{88}\x03\x02\x02\x02\u{18c}\
		\u{18d}\x07\x2c\x02\x02\u{18d}\u{8a}\x03\x02\x02\x02\u{18e}\u{18f}\x07\
		\x31\x02\x02\u{18f}\u{8c}\x03\x02\x02\x02\u{190}\u{191}\x07\x30\x02\x02\
		\u{191}\u{192}\x07\x30\x02\x02\u{192}\u{8e}\x03\x02\x02\x02\u{193}\u{197}\
		\x09\x20\x02\x02\u{194}\u{196}\x09\x21\x02\x02\u{195}\u{194}\x03\x02\x02\
		\x02\u{196}\u{199}\x03\x02\x02\x02\u{197}\u{195}\x03\x02\x02\x02\u{197}\
		\u{198}\x03\x02\x02\x02\u{198}\u{90}\x03\x02\x02\x02\u{199}\u{197}\x03\
		\x02\x02\x02\u{19a}\u{19b}\x07\x32\x02\x02\u{19b}\u{92}\x03\x02\x02\x02\
		\u{19c}\u{19d}\x07\x24\x02\x02\u{19d}\u{19e}\x0a\x22\x02\x02\u{19e}\u{19f}\
		\x07\x24\x02\x02\u{19f}\u{94}\x03\x02\x02\x02\u{1a0}\u{1a4}\x09\x23\x02\
		\x02\u{1a1}\u{1a3}\x09\x24\x02\x02\u{1a2}\u{1a1}\x03\x02\x02\x02\u{1a3}\
		\u{1a6}\x03\x02\x02\x02\u{1a4}\u{1a2}\x03\x02\x02\x02\u{1a4}\u{1a5}\x03\
		\x02\x02\x02\u{1a5}\u{96}\x03\x02\x02\x02\u{1a6}\u{1a4}\x03\x02\x02\x02\
		\x0c\x02\u{9d}\u{a9}\u{ac}\u{b1}\u{bc}\u{c3}\u{c9}\u{197}\u{1a4}\x03\x02\
		\x03\x02";