-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathtoolgood.algorithm.js
More file actions
2 lines (2 loc) · 179 KB
/
toolgood.algorithm.js
File metadata and controls
2 lines (2 loc) · 179 KB
1
2
/*! For license information please see toolgood.algorithm.js.LICENSE.txt */
!function(t,s){"object"==typeof exports&&"object"==typeof module?module.exports=s():"function"==typeof define&&define.amd?define([],s):"object"==typeof exports?exports["ToolGood.Algorithm"]=s():t["ToolGood.Algorithm"]=s()}(this,()=>(()=>{"use strict";var t={d:(s,e)=>{for(var i in e)t.t(e,i)&&!t.t(s,i)&&Object.defineProperty(s,i,{enumerable:!0,get:e[i]})},t:(t,s)=>Object.prototype.hasOwnProperty.call(t,s)},s={};t.d(s,{default:()=>Bs});class e{static i(t){if("string"!=typeof t||1!==t.length)return t;let s=t.charCodeAt(0);return s>=65&&s<=90?t:s<=127?t.toUpperCase():s<=65280?"×"==t?"*":"÷"==t?"/":"‘"==t||"’"==t?"'":'"'==t||'"'==t?'"':12288==s?String.fromCharCode(32):"【"==t?"[":"】"==t?"]":"〔"==t?"(":"〕"==t?")":t:(s<65375&&(t=String.fromCharCode(s-65248)),t.toUpperCase())}static h(t){for(var s=[],e=0;e<t.length;e++)s.push(this.i(t[e]));return s.join("")}static equals(t,s){if(t.length!=s.length)return!1;for(var e=0;e<t.length;e++)if(t[e]!=s[e]&&this.i(t[e])!=s[e])return!1;return!0}static l(t,s,e){return!!this.equals(t,s)||!!this.equals(t,e)}static u(t,s,e,i){return!!this.equals(t,s)||!!this.equals(t,e)||!!this.equals(t,i)}}class i{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.o=null,this.line=null,this.p=null,this.S=null}m(){return this.source[0]}T(){return this.source[1]}get text(){return this.S}set text(t){this.S=t}}i.k=0,i.EPSILON=-2,i.v=1,i.EOF=-1,i.N=0,i.L=1;class n{constructor(t,s){if(this.name="<empty>",this.O=t,this.P=s||!1,this.F=0,this.data=[],this.P)for(let t=0;t<this.O.length;){let s=this.O.codePointAt(t);this.data.push(s),t+=s<=65535?1:2}else{this.data=new Array(this.O.length);for(let t=0;t<this.O.length;t++)this.data[t]=this.O.charCodeAt(t)}this._=this.data.length}reset(){this.F=0}M(){if(this.F>=this._)throw"cannot consume EOF";this.F+=1}LA(t){if(0===t)return 0;t<0&&(t+=1);let s=this.F+t-1;return s<0||s>=this._?i.EOF:this.data[s]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){t<=this.F?this.F=t:this.F=Math.min(t,this._)}q(t,s){if(s>=this._&&(s=this._-1),t>=this._)return"";if(this.P){let e="";for(let i=t;i<=s;i++)e+=String.fromCodePoint(this.data[i]);return e}return this.O.slice(t,s+1)}toString(){return this.O}get index(){return this.F}get size(){return this._}}class r extends n{constructor(t,s){super(t,s)}LA(t){if(0===t)return 0;t<0&&(t+=1);let s=this.F+t-1;if(s<0||s>=this._)return i.EOF;let n=this.data[s];return e.i(String.fromCharCode(n)).charCodeAt(0)}}function h(t,s){if(!Array.isArray(t)||!Array.isArray(s))return!1;if(t===s)return!0;if(t.length!==s.length)return!1;for(let e=0;e<t.length;e++)if(!(t[e]===s[e]||t[e].equals&&t[e].equals(s[e])))return!1;return!0}let l=Math.round(Math.random()*Math.pow(2,32));function u(t){if(!t)return 0;let s,e,i=typeof t,n="string"===i?t:!("object"!==i||!t.toString)&&t.toString();if(!n)return 0;let r=3&n.length,h=n.length-r,u=l,a=3432918353,c=461845907,o=0;for(;o<h;)e=255&n.charCodeAt(o)|(255&n.charCodeAt(++o))<<8|(255&n.charCodeAt(++o))<<16|(255&n.charCodeAt(++o))<<24,++o,e=(65535&e)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(65535&e)*c+(((e>>>16)*c&65535)<<16)&4294967295,u^=e,u=u<<13|u>>>19,s=5*(65535&u)+((5*(u>>>16)&65535)<<16)&4294967295,u=27492+(65535&s)+(((s>>>16)+58964&65535)<<16);switch(e=0,r){case 3:e^=(255&n.charCodeAt(o+2))<<16;case 2:e^=(255&n.charCodeAt(o+1))<<8;case 1:e^=255&n.charCodeAt(o),e=(65535&e)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(65535&e)*c+(((e>>>16)*c&65535)<<16)&4294967295,u^=e}return u^=n.length,u^=u>>>16,u=2246822507*(65535&u)+((2246822507*(u>>>16)&65535)<<16)&4294967295,u^=u>>>13,u=3266489909*(65535&u)+((3266489909*(u>>>16)&65535)<<16)&4294967295,u^=u>>>16,u>>>0}class a{constructor(){this.count=0,this.hash=0}update(){for(let t=0;t<arguments.length;t++){let s=arguments[t];if(null!=s)if(Array.isArray(s))this.update.apply(this,s);else{let t=0;switch(typeof s){case"undefined":case"function":continue;case"number":case"boolean":t=s;break;case"string":t=u(s);break;default:s.H&&s.H(this);continue}t*=3432918353,t=t<<15|t>>>17,t*=461845907,this.count=this.count+1;let e=this.hash^t;e=e<<13|e>>>19,e=5*e+3864292196,this.hash=e}}}finish(){let t=this.hash^4*this.count;return t^=t>>>16,t*=2246822507,t^=t>>>13,t*=3266489909,t^=t>>>16,t}static V(){let t=new a;return t.update.apply(t,arguments),t.finish()}}function c(t){return t?"string"==typeof t?u(t):t.U():-1}function o(t,s){return t&&t.equals?t.equals(s):t===s}function f(t){return null===t?"null":t}function d(t){return Array.isArray(t)?"["+t.map(f).join(", ")+"]":"null"}class g{constructor(t,s){this.j=new Array(16),this.threshold=Math.floor(12),this.K=0,this.$=t||c,this.tt=s||o}get(t){if(null==t)return t;let s=this.st(t);if(!s)return null;for(let e of s)if(this.tt(e,t))return e;return null}add(t){return this.et(t)===t}et(t){this.it();let s=this.nt(t),e=this.j[s];if(!e)return e=[t],this.j[s]=e,this.K++,t;for(let s of e)if(this.tt(s,t))return s;return e.push(t),this.K++,t}has(t){return null!=this.get(t)}values(){return this.j.filter(t=>null!=t).flat(1)}toString(){return d(this.values())}get length(){return this.K}nt(t){return this.$(t)&this.j.length-1}st(t){return this.j[this.nt(t)]}it(){if(this.K<=this.threshold)return;let t=this.j,s=2*this.j.length;this.j=new Array(s),this.threshold=Math.floor(.75*s);for(let s of t)if(s)for(let t of s){let s=this.nt(t),e=this.j[s];e||(e=[],this.j[s]=e),e.push(t)}}}class w{U(){let t=new a;return this.H(t),t.finish()}evaluate(t,s){}rt(t,s){return this}static ht(t,s){if(null===t||t===w.NONE)return s;if(null===s||s===w.NONE)return t;let e=new p(t,s);return 1===e.lt.length?e.lt[0]:e}static ut(t,s){if(null===t)return s;if(null===s)return t;if(t===w.NONE||s===w.NONE)return w.NONE;let e=new x(t,s);return 1===e.lt.length?e.lt[0]:e}}class p extends w{constructor(t,s){super();let e=new g;t instanceof p?t.lt.map(function(t){e.add(t)}):e.add(t),s instanceof p?s.lt.map(function(t){e.add(t)}):e.add(s);let i=S(e);if(i.length>0){let t=null;i.map(function(s){(null===t||s.ct<t.ct)&&(t=s)}),e.add(t)}this.lt=Array.from(e.values())}equals(t){return this===t||t instanceof p&&h(this.lt,t.lt)}H(t){t.update(this.lt,"AND")}evaluate(t,s){for(let e=0;e<this.lt.length;e++)if(!this.lt[e].evaluate(t,s))return!1;return!0}rt(t,s){let e=!1,i=[];for(let n=0;n<this.lt.length;n++){let r=this.lt[n],h=r.rt(t,s);if(e|=h!==r,null===h)return null;h!==w.NONE&&i.push(h)}if(!e)return this;if(0===i.length)return w.NONE;let n=null;return i.map(function(t){n=null===n?t:w.ht(n,t)}),n}toString(){let t=this.lt.map(t=>t.toString());return(t.length>3?t.slice(3):t).join("&&")}}class x extends w{constructor(t,s){super();let e=new g;t instanceof x?t.lt.map(function(t){e.add(t)}):e.add(t),s instanceof x?s.lt.map(function(t){e.add(t)}):e.add(s);let i=S(e);if(i.length>0){let t=i.sort(function(t,s){return t.ot(s)}),s=t[t.length-1];e.add(s)}this.lt=Array.from(e.values())}equals(t){return this===t||t instanceof x&&h(this.lt,t.lt)}H(t){t.update(this.lt,"OR")}evaluate(t,s){for(let e=0;e<this.lt.length;e++)if(this.lt[e].evaluate(t,s))return!0;return!1}rt(t,s){let e=!1,i=[];for(let n=0;n<this.lt.length;n++){let r=this.lt[n],h=r.rt(t,s);if(e|=h!==r,h===w.NONE)return w.NONE;null!==h&&i.push(h)}return e?(0===i.length||i.map(function(t){return t}),null):this}toString(){let t=this.lt.map(t=>t.toString());return(t.length>3?t.slice(3):t).join("||")}}function S(t){let s=[];return t.values().map(function(t){t instanceof w.PrecedencePredicate&&s.push(t)}),s}function m(t,s){if(null===t){let t={state:null,alt:null,context:null,ft:null};return s&&(t.dt=0),t}{let e={};return e.state=t.state||null,e.alt=void 0===t.alt?null:t.alt,e.context=t.context||null,e.ft=t.ft||null,s&&(e.dt=t.dt||0,e.gt=t.gt||!1),e}}class T{constructor(t,s){this.wt(t,s),t=m(t),s=m(s,!0),this.state=null!==t.state?t.state:s.state,this.alt=null!==t.alt?t.alt:s.alt,this.context=null!==t.context?t.context:s.context,this.ft=null!==t.ft?t.ft:null!==s.ft?s.ft:w.NONE,this.dt=s.dt,this.gt=s.gt}wt(t,s){null!==t.context&&void 0!==t.context||null!==s&&null!==s.context&&void 0!==s.context||(this.context=null)}U(){let t=new a;return this.H(t),t.finish()}H(t){t.update(this.state.xt,this.alt,this.context,this.ft)}equals(t){return this===t||t instanceof T&&this.state.xt===t.state.xt&&this.alt===t.alt&&(null===this.context?null===t.context:this.context.equals(t.context))&&this.ft.equals(t.ft)&&this.gt===t.gt}St(){let t=new a;return t.update(this.state.xt,this.alt,this.ft),t.finish()}Tt(t){return this===t||t instanceof T&&this.state.xt===t.state.xt&&this.alt===t.alt&&this.ft.equals(t.ft)}toString(){return"("+this.state+","+this.alt+(null!==this.context?",["+this.context.toString()+"]":"")+(this.ft!==w.NONE?","+this.ft.toString():"")+(this.dt>0?",up="+this.dt:"")+")"}}class k{constructor(t,s){this.start=t,this.stop=s}clone(){return new k(this.start,this.stop)}contains(t){return t>=this.start&&t<this.stop}toString(){return this.start===this.stop-1?this.start.toString():this.start.toString()+".."+(this.stop-1).toString()}get length(){return this.stop-this.start}}k.kt=new k(-1,-2);class y{constructor(){this.yt=null,this.readOnly=!1}first(t){return null===this.yt||0===this.yt.length?i.k:this.yt[0].start}vt(t){this.At(new k(t,t+1))}addRange(t,s){this.At(new k(t,s+1))}At(t){if(null===this.yt)this.yt=[],this.yt.push(t.clone());else{for(let s=0;s<this.yt.length;s++){let e=this.yt[s];if(t.stop<e.start)return void this.yt.splice(s,0,t);if(t.stop===e.start)return void(this.yt[s]=new k(t.start,e.stop));if(t.start<=e.stop)return this.yt[s]=new k(Math.min(e.start,t.start),Math.max(e.stop,t.stop)),void this.reduce(s)}this.yt.push(t.clone())}}Ct(t){return null!==t.yt&&t.yt.forEach(t=>this.At(t),this),this}reduce(t){if(t<this.yt.length-1){let s=this.yt[t],e=this.yt[t+1];s.stop>=e.stop?(this.yt.splice(t+1,1),this.reduce(t)):s.stop>=e.start&&(this.yt[t]=new k(s.start,e.stop),this.yt.splice(t+1,1))}}Et(t,s){let e=new y;return e.At(new k(t,s+1)),null!==this.yt&&this.yt.forEach(t=>e.removeRange(t)),e}contains(t){if(null===this.yt)return!1;for(let s=0;s<this.yt.length;s++)if(this.yt[s].contains(t))return!0;return!1}removeRange(t){if(t.start===t.stop-1)this.bt(t.start);else if(null!==this.yt){let s=0;for(let e=0;e<this.yt.length;e++){let e=this.yt[s];if(t.stop<=e.start)return;if(t.start>e.start&&t.stop<e.stop){this.yt[s]=new k(e.start,t.start);let i=new k(t.stop,e.stop);return void this.yt.splice(s,0,i)}t.start<=e.start&&t.stop>=e.stop?(this.yt.splice(s,1),s-=1):t.start<e.stop?this.yt[s]=new k(e.start,t.start):t.stop<e.stop&&(this.yt[s]=new k(t.stop,e.stop)),s+=1}}}bt(t){if(null!==this.yt)for(let s=0;s<this.yt.length;s++){let e=this.yt[s];if(t<e.start)return;if(t===e.start&&t===e.stop-1)return void this.yt.splice(s,1);if(t===e.start)return void(this.yt[s]=new k(e.start+1,e.stop));if(t===e.stop-1)return void(this.yt[s]=new k(e.start,e.stop-1));if(t<e.stop-1){let i=new k(e.start,t);return e.start=t+1,void this.yt.splice(s,0,i)}}}toString(t,s,e){return t=t||null,s=s||null,e=e||!1,null===this.yt?"{}":null!==t||null!==s?this.Nt(t,s):e?this.Rt():this.Lt()}Rt(){let t=[];for(let s=0;s<this.yt.length;s++){let e=this.yt[s];e.stop===e.start+1?e.start===i.EOF?t.push("<EOF>"):t.push("'"+String.fromCharCode(e.start)+"'"):t.push("'"+String.fromCharCode(e.start)+"'..'"+String.fromCharCode(e.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}Lt(){let t=[];for(let s=0;s<this.yt.length;s++){let e=this.yt[s];e.stop===e.start+1?e.start===i.EOF?t.push("<EOF>"):t.push(e.start.toString()):t.push(e.start.toString()+".."+(e.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}Nt(t,s){let e=[];for(let i=0;i<this.yt.length;i++){let n=this.yt[i];for(let i=n.start;i<n.stop;i++)e.push(this.Ot(t,s,i))}return e.length>1?"{"+e.join(", ")+"}":e[0]}Ot(t,s,e){return e===i.EOF?"<EOF>":e===i.EPSILON?"<EPSILON>":t[e]||s[e]}get length(){return this.yt.map(t=>t.length).reduce((t,s)=>t+s)}}class v{constructor(){this.Pt=null,this.xt=v.It,this.Ft=null,this.Dt=0,this._t=!1,this.Mt=[],this.qt=null}toString(){return this.xt}equals(t){return t instanceof v&&this.xt===t.xt}Ht(){return!1}Bt(t,s){void 0===s&&(s=-1),0===this.Mt.length?this._t=t.Vt:this._t!==t.Vt&&(this._t=!1),-1===s?this.Mt.push(t):this.Mt.splice(s,1,t)}}v.k=0,v.BASIC=1,v.zt=2,v.Ut=3,v.jt=4,v.Kt=5,v.Wt=6,v.Gt=7,v.Jt=8,v.$t=9,v.Qt=10,v.Xt=11,v.Yt=12,v.Zt=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],v.It=-1;class A extends v{constructor(){return super(),this.Ft=v.Gt,this}}class C{constructor(t){if(null==t)throw"target cannot be null.";this.target=t,this.Vt=!1,this.label=null}}C.EPSILON=1,C.RANGE=2,C.RULE=3,C.PREDICATE=4,C.ATOM=5,C.ACTION=6,C.SET=7,C.ts=8,C.WILDCARD=9,C.PRECEDENCE=10,C.Zt=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"],C.ss={EpsilonTransition:C.EPSILON,RangeTransition:C.RANGE,RuleTransition:C.RULE,PredicateTransition:C.PREDICATE,AtomTransition:C.ATOM,ActionTransition:C.ACTION,es:C.SET,NotSetTransition:C.ts,WildcardTransition:C.WILDCARD,PrecedencePredicateTransition:C.PRECEDENCE};class E extends C{constructor(t,s,e,i){super(t),this.Dt=s,this.ct=e,this.ns=i,this.rs=C.RULE,this.Vt=!0}matches(t,s,e){return!1}}class b extends C{constructor(t,s){super(t),this.rs=C.SET,null!=s?this.label=s:(this.label=new y,this.label.vt(i.k))}matches(t,s,e){return this.label.contains(t)}toString(){return this.label.toString()}}class N extends b{constructor(t,s){super(t,s),this.rs=C.ts}matches(t,s,e){return t>=s&&t<=e&&!super.matches(t,s,e)}toString(){return"~"+super.toString()}}class R extends C{constructor(t){super(t),this.rs=C.WILDCARD}matches(t,s,e){return t>=s&&t<=e}toString(){return"."}}class L extends C{constructor(t){super(t)}}class O{}class P extends O{}class I extends P{}class F extends I{get hs(){throw new Error("missing interface implementation")}}class D extends I{}class _ extends D{}let M={ls:function(t,s,e){s=s||null,null!==(e=e||null)&&(s=e.us);let i=M.cs(t,s);i=function(t){return t.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r")}(i);let n=t.fs();if(0===n)return i;let r="("+i+" ";n>0&&(i=M.ls(t.ds(0),s),r=r.concat(i));for(let e=1;e<n;e++)i=M.ls(t.ds(e),s),r=r.concat(" "+i);return r=r.concat(")"),r},cs:function(t,s,e){if(s=s||null,null!==(e=e||null)&&(s=e.us),null!==s){if(t instanceof F){let e=t.hs.gs();return 0!=e?s[t.Dt]+":"+e:s[t.Dt]}if(t instanceof _)return t.toString();if(t instanceof D&&null!==t.ws)return t.ws.text}let n=t.ps();return n instanceof i?n.text:t.ps().toString()},xs:function(t){let s=[];for(let e=0;e<t.fs();e++)s.push(t.ds(e));return s},Ss:function(t){let s=[];for(t=t.getParent();null!==t;)s=[t].concat(s),t=t.getParent();return s},Ts:function(t,s){return M.ks(t,s,!0)},ys:function(t,s){return M.ks(t,s,!1)},ks:function(t,s,e){let i=[];return M.vs(t,s,e,i),i},vs:function(t,s,e,i){e&&t instanceof D?t.ws.type===s&&i.push(t):!e&&t instanceof F&&t.Dt===s&&i.push(t);for(let n=0;n<t.fs();n++)M.vs(t.ds(n),s,e,i)},As:function(t){let s=[t];for(let e=0;e<t.fs();e++)s=s.concat(M.As(t.ds(e)));return s}};const q=M;class H extends F{constructor(t,s){super(),this.Cs=t||null,this.Es=s||-1}bs(){let t=0,s=this;for(;null!==s;)s=s.Cs,t+=1;return t}Ns(){return-1===this.Es}Rs(){return k.kt}get hs(){return this}ps(){return this}q(){return 0===this.fs()?"":this.children.map(function(t){return t.q()}).join("")}gs(){return 0}Ls(t){}ds(t){return null}fs(){return 0}accept(t){return t.Os(this)}ls(t,s){return q.ls(this,t,s)}toString(t,s){t=t||null,s=s||null;let e=this,i="[";for(;null!==e&&e!==s;){if(null===t)e.Ns()||(i+=e.Es);else{let s=e.Dt;i+=s>=0&&s<t.length?t[s]:""+s}null===e.Cs||null===t&&e.Cs.Ns()||(i+=" "),e=e.Cs}return i+="]",i}}class B{constructor(t){this.Ps=t}Ns(){return this===B.EMPTY}Is(){return this.Fs(this.length-1)===B.Ds}U(){return this.Ps}H(t){t.update(this.Ps)}}B.EMPTY=null,B.Ds=2147483647,B._s=1,B.id=B._s,B.Ms=!1;class V extends B{constructor(t,s){let e=new a;return e.update(t,s),super(e.finish()),this.qs=t,this.Hs=s,this}Ns(){return this.Hs[0]===B.Ds}getParent(t){return this.qs[t]}Fs(t){return this.Hs[t]}equals(t){return this===t||t instanceof V&&this.U()===t.U()&&h(this.Hs,t.Hs)&&h(this.qs,t.qs)}toString(){if(this.Ns())return"[]";{let t="[";for(let s=0;s<this.Hs.length;s++)s>0&&(t+=", "),this.Hs[s]!==B.Ds?(t+=this.Hs[s],null!==this.qs[s]?t=t+" "+this.qs[s]:t+="null"):t+="$";return t+"]"}}get length(){return this.Hs.length}}class z extends B{constructor(t,s){let e=0,i=new a;null!==t?i.update(t,s):i.update(1),e=i.finish(),super(e),this.Cs=t,this.Bs=s}getParent(t){return this.Cs}Fs(t){return this.Bs}equals(t){return this===t||t instanceof z&&this.U()===t.U()&&this.Bs===t.Bs&&(null==this.Cs?null==t.Cs:this.Cs.equals(t.Cs))}toString(){let t=null===this.Cs?"":this.Cs.toString();return 0===t.length?this.Bs===B.Ds?"$":""+this.Bs:this.Bs+" "+t}get length(){return 1}static create(t,s){return s===B.Ds&&null===t?B.EMPTY:new z(t,s)}}class U extends z{constructor(){super(null,B.Ds)}Ns(){return!0}getParent(t){return null}Fs(t){return this.Bs}equals(t){return this===t}toString(){return"$"}}B.EMPTY=new U;class j{constructor(t,s){this.j=new Array(16),this.threshold=Math.floor(12),this.K=0,this.$=t||c,this.tt=s||o}set(t,s){this.it();let e=this.nt(t),i=this.j[e];if(!i)return i=[[t,s]],this.j[e]=i,this.K++,s;let n=i.find(s=>this.tt(s[0],t),this);if(n){let t=n[1];return n[1]=s,t}return i.push([t,s]),this.K++,s}Vs(t){let s=this.st(t);return!!s&&!!s.find(s=>this.tt(s[0],t),this)}get(t){let s=this.st(t);if(!s)return null;let e=s.find(s=>this.tt(s[0],t),this);return e?e[1]:null}entries(){return this.j.filter(t=>null!=t).flat(1)}zs(){return this.entries().map(t=>t[0])}getValues(){return this.entries().map(t=>t[1])}toString(){return"["+this.entries().map(t=>"{"+t[0]+":"+t[1]+"}").join(", ")+"]"}get length(){return this.K}nt(t){return this.$(t)&this.j.length-1}st(t){return this.j[this.nt(t)]}it(){if(this.K<=this.threshold)return;let t=this.j,s=2*this.j.length;this.j=new Array(s),this.threshold=Math.floor(.75*s);for(let s of t)if(s)for(let t of s){let s=this.nt(t[0]),e=this.j[s];e||(e=[],this.j[s]=e),e.push(t)}}}function K(t,s){if(null==s&&(s=H.EMPTY),null===s.Cs||s===H.EMPTY)return B.EMPTY;let e=K(t,s.Cs),i=t.states[s.Es].Mt[0];return z.create(e,i.ns.xt)}function W(t,s,e){if(t.Ns())return t;let i=e.get(t)||null;if(null!==i)return i;if(i=s.get(t),null!==i)return e.set(t,i),i;let n=!1,r=[];for(let i=0;i<r.length;i++){let h=W(t.getParent(i),s,e);if(n||h!==t.getParent(i)){if(!n){r=[];for(let s=0;s<t.length;s++)r[s]=t.getParent(s);n=!0}r[i]=h}}if(!n)return s.add(t),e.set(t,t),t;let h=null;return h=0===r.length?B.EMPTY:1===r.length?z.create(r[0],t.Fs(0)):new V(r,t.Hs),s.add(h),e.set(h,h),e.set(t,h),h}function G(t,s,e,i){if(t===s)return t;if(t instanceof z&&s instanceof z)return function(t,s,e,i){if(null!==i){let e=i.get(t,s);if(null!==e)return e;if(e=i.get(s,t),null!==e)return e}let n=function(t,s,e){if(e){if(t===B.EMPTY)return B.EMPTY;if(s===B.EMPTY)return B.EMPTY}else{if(t===B.EMPTY&&s===B.EMPTY)return B.EMPTY;if(t===B.EMPTY){let t=[s.Bs,B.Ds],e=[s.Cs,null];return new V(e,t)}if(s===B.EMPTY){let s=[t.Bs,B.Ds],e=[t.Cs,null];return new V(e,s)}}return null}(t,s,e);if(null!==n)return null!==i&&i.set(t,s,n),n;if(t.Bs===s.Bs){let n=G(t.Cs,s.Cs,e,i);if(n===t.Cs)return t;if(n===s.Cs)return s;let r=z.create(n,t.Bs);return null!==i&&i.set(t,s,r),r}{let e=null;if((t===s||null!==t.Cs&&t.Cs===s.Cs)&&(e=t.Cs),null!==e){let n=[t.Bs,s.Bs];t.Bs>s.Bs&&(n[0]=s.Bs,n[1]=t.Bs);let r=new V([e,e],n);return null!==i&&i.set(t,s,r),r}let n=[t.Bs,s.Bs],r=[t.Cs,s.Cs];t.Bs>s.Bs&&(n[0]=s.Bs,n[1]=t.Bs,r=[s.Cs,t.Cs]);let h=new V(r,n);return null!==i&&i.set(t,s,h),h}}(t,s,e,i);if(e){if(t instanceof U)return t;if(s instanceof U)return s}return t instanceof z&&(t=new V([t.getParent()],[t.Bs])),s instanceof z&&(s=new V([s.getParent()],[s.Bs])),function(t,s,e,i){if(null!==i){let e=i.get(t,s);if(null!==e)return B.Ms,e;if(e=i.get(s,t),null!==e)return B.Ms,e}let n=0,r=0,h=0,l=new Array(t.Hs.length+s.Hs.length).fill(0),u=new Array(t.Hs.length+s.Hs.length).fill(null);for(;n<t.Hs.length&&r<s.Hs.length;){let a=t.qs[n],c=s.qs[r];if(t.Hs[n]===s.Hs[r]){let s=t.Hs[n];s===B.Ds&&null===a&&null===c||null!==a&&null!==c&&a===c?(u[h]=a,l[h]=s):(u[h]=G(a,c,e,i),l[h]=s),n+=1,r+=1}else t.Hs[n]<s.Hs[r]?(u[h]=a,l[h]=t.Hs[n],n+=1):(u[h]=c,l[h]=s.Hs[r],r+=1);h+=1}if(n<t.Hs.length)for(let s=n;s<t.Hs.length;s++)u[h]=t.qs[s],l[h]=t.Hs[s],h+=1;else for(let t=r;t<s.Hs.length;t++)u[h]=s.qs[t],l[h]=s.Hs[t],h+=1;if(h<u.length){if(1===h){let e=z.create(u[0],l[0]);return null!==i&&i.set(t,s,e),e}u=u.slice(0,h),l=l.slice(0,h)}let a=new V(u,l);return a.equals(t)?(null!==i&&i.set(t,s,t),B.Ms,t):a.equals(s)?(null!==i&&i.set(t,s,s),B.Ms,s):(function(t){let s=new j;for(let e=0;e<t.length;e++){let i=t[e];s.Vs(i)||s.set(i,i)}for(let e=0;e<t.length;e++)t[e]=s.get(t[e])}(u),null!==i&&i.set(t,s,a),B.Ms,a)}(t,s,e,i)}class J{constructor(){this.data=new Uint32Array(1)}set(t){J.Us(t),this.js(t),this.data[t>>>5]|=1<<t%32}get(t){J.Us(t);let s=t>>>5;return!(s>=this.data.length||!(this.data[s]&1<<t%32))}clear(t){J.Us(t);let s=t>>>5;s<this.data.length&&(this.data[s]&=~(1<<t))}or(t){let s=Math.min(this.data.length,t.data.length);for(let e=0;e<s;++e)this.data[e]|=t.data[e];if(this.data.length<t.data.length){this.js((t.data.length<<5)-1);let e=t.data.length;for(let i=s;i<e;++i)this.data[i]=t.data[i]}}values(){let t=new Array(this.length),s=0,e=this.data.length;for(let i=0;i<e;++i){let e=this.data[i];for(;0!==e;){let n=e&-e;t[s++]=(i<<5)+J.Ks(n-1),e^=n}}return t}minValue(){for(let t=0;t<this.data.length;++t){let s=this.data[t];if(0!==s){let e=0;for(;!(1&s);)e++,s>>=1;return e+32*t}}return 0}U(){return a.V(this.values())}equals(t){return t instanceof J&&h(this.data,t.data)}toString(){return"{"+this.values().join(", ")+"}"}get length(){return this.data.map(t=>J.Ks(t)).reduce((t,s)=>t+s,0)}js(t){let s=t+32>>>5;if(s<=this.data.length)return;let e=new Uint32Array(s);e.set(this.data),e.fill(0,this.data.length),this.data=e}static Us(t){if(t<0)throw new RangeError("index cannot be negative")}static Ks(t){return t=(t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,0+(t+=t>>16)&63}}class ${constructor(t){this.Pt=t}Ws(t){if(null===t)return null;let s=t.Mt.length,e=[];for(let i=0;i<s;i++){e[i]=new y;let s=new g,n=!1;this.Gs(t.transition(i).target,null,B.EMPTY,e[i],s,new J,n,!1),(0===e[i].length||e[i].contains($.Js))&&(e[i]=null)}return e}LOOK(t,s,e){let i=new y,n=null!==(e=e||null)?K(t.Pt,e):null;return this.Gs(t,s,n,i,new g,new J,!0,!0),i}Gs(t,s,e,n,r,h,l,u){let a=new T({state:t,alt:0,context:e},null);if(!r.has(a)){if(r.add(a),t===s){if(null===e)return void n.vt(i.EPSILON);if(e.Ns()&&u)return void n.vt(i.EOF)}if(t instanceof A){if(null===e)return void n.vt(i.EPSILON);if(e.Ns()&&u)return void n.vt(i.EOF);if(e!==B.EMPTY){let i=h.get(t.Dt);try{h.clear(t.Dt);for(let t=0;t<e.length;t++){let i=this.Pt.states[e.Fs(t)];this.Gs(i,s,e.getParent(t),n,r,h,l,u)}}finally{i&&h.set(t.Dt)}return}}for(let a=0;a<t.Mt.length;a++){let c=t.Mt[a];if(c.constructor===E){if(h.get(c.target.Dt))continue;let t=z.create(e,c.ns.xt);try{h.set(c.target.Dt),this.Gs(c.target,s,t,n,r,h,l,u)}finally{h.clear(c.target.Dt)}}else if(c instanceof L)l?this.Gs(c.target,s,e,n,r,h,l,u):n.vt($.Js);else if(c.Vt)this.Gs(c.target,s,e,n,r,h,l,u);else if(c.constructor===R)n.addRange(i.v,this.Pt.$s);else{let t=c.label;null!==t&&(c instanceof N&&(t=t.Et(i.v,this.Pt.$s)),n.Ct(t))}}}}}$.Js=i.k;class Q{constructor(t,s){this.Qs=t,this.$s=s,this.states=[],this.Xs=[],this.Ys=[],this.Zs=null,this.te={},this.se=null,this.ee=null,this.ie=[]}ne(t,s){return new $(this).LOOK(t,null,s)}re(t){return null!==t.qt||(t.qt=this.ne(t,null),t.qt.readOnly=!0),t.qt}he(t,s){return void 0===s?this.re(t):this.ne(t,s)}le(t){null!==t&&(t.Pt=this,t.xt=this.states.length),this.states.push(t)}ue(t){this.states[t.xt]=null}ae(t){return this.Xs.push(t),t.ce=this.Xs.length-1,t.ce}oe(t){return 0===this.Xs.length?null:this.Xs[t]}fe(t,s){if(t<0||t>=this.states.length)throw"Invalid state number.";let e=this.states[t],n=this.he(e);if(!n.contains(i.EPSILON))return n;let r=new y;for(r.Ct(n),r.bt(i.EPSILON);null!==s&&s.Es>=0&&n.contains(i.EPSILON);){let t=this.states[s.Es].Mt[0];n=this.he(t.ns),r.Ct(n),r.bt(i.EPSILON),s=s.Cs}return n.contains(i.EPSILON)&&r.vt(i.EOF),r}}Q.de=0;class X extends v{constructor(){super(),this.Ft=v.BASIC}}class Y extends v{constructor(){return super(),this.ce=-1,this.ge=!1,this}}class Z extends Y{constructor(){return super(),this.we=null,this}}class tt extends v{constructor(){return super(),this.Ft=v.Jt,this.pe=null,this}}class st extends v{constructor(){return super(),this.Ft=v.Yt,this.xe=null,this}}class et extends v{constructor(){return super(),this.Ft=v.zt,this.Se=null,this.me=!1,this}}class it extends Y{constructor(){return super(),this.Ft=v.Wt,this}}class nt extends Y{constructor(){return super(),this.Ft=v.Xt,this}}class rt extends v{constructor(){return super(),this.Ft=v.$t,this}}class ht extends Y{constructor(){return super(),this.Ft=v.Qt,this.xe=null,this.Te=null,this}}class lt extends Z{constructor(){return super(),this.Ft=v.jt,this.xe=null,this}}class ut extends Z{constructor(){return super(),this.Ft=v.Kt,this}}class at extends Z{constructor(){return super(),this.Ft=v.Ut,this}}class ct extends C{constructor(t,s){super(t),this.ke=s,this.label=this.ye(),this.rs=C.ATOM}ye(){let t=new y;return t.vt(this.ke),t}matches(t,s,e){return this.ke===t}toString(){return this.ke}}class ot extends C{constructor(t,s,e){super(t),this.rs=C.RANGE,this.start=s,this.stop=e,this.label=this.ye()}ye(){let t=new y;return t.addRange(this.start,this.stop),t}matches(t,s,e){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}}class ft extends C{constructor(t,s,e,i){super(t),this.rs=C.ACTION,this.Dt=s,this.ve=void 0===e?-1:e,this.Ae=void 0!==i&&i,this.Vt=!0}matches(t,s,e){return!1}toString(){return"action_"+this.Dt+":"+this.ve}}class dt extends C{constructor(t,s){super(t),this.rs=C.EPSILON,this.Vt=!0,this.Ce=s}matches(t,s,e){return!1}toString(){return"epsilon"}}class gt extends w{constructor(t,s,e){super(),this.Dt=void 0===t?-1:t,this.Ee=void 0===s?-1:s,this.Ae=void 0!==e&&e}evaluate(t,s){let e=this.Ae?s:null;return t.be(e,this.Dt,this.Ee)}H(t){t.update(this.Dt,this.Ee,this.Ae)}equals(t){return this===t||t instanceof gt&&this.Dt===t.Dt&&this.Ee===t.Ee&&this.Ae===t.Ae}toString(){return"{"+this.Dt+":"+this.Ee+"}?"}}w.NONE=new gt;class wt extends L{constructor(t,s,e,i){super(t),this.rs=C.PREDICATE,this.Dt=s,this.Ee=e,this.Ae=i,this.Vt=!0}matches(t,s,e){return!1}Ne(){return new gt(this.Dt,this.Ee,this.Ae)}toString(){return"pred_"+this.Dt+":"+this.Ee}}class pt extends w{constructor(t){super(),this.ct=void 0===t?0:t}evaluate(t,s){return t.Re(s,this.ct)}rt(t,s){return t.Re(s,this.ct)?w.NONE:null}ot(t){return this.ct-t.ct}H(t){t.update(this.ct)}equals(t){return this===t||t instanceof pt&&this.ct===t.ct}toString(){return"{"+this.ct+">=prec}?"}}w.PrecedencePredicate=pt;class xt extends L{constructor(t,s){super(t),this.rs=C.PRECEDENCE,this.ct=s,this.Vt=!0}matches(t,s,e){return!1}Ne(){return new pt(this.ct)}toString(){return this.ct+" >= _p"}}class St{constructor(t){void 0===t&&(t=null),this.readOnly=!1,this.Le=null===t||t.Le,this.Oe=null!==t&&t.Oe}}St.Pe=new St,St.Pe.readOnly=!0;class mt{constructor(t){this.Ie=t,this.Fe=!1}U(){let t=new a;return this.H(t),t.finish()}H(t){t.update(this.Ie)}equals(t){return this===t}}class Tt extends mt{constructor(){super(6)}De(t){t._e()}toString(){return"skip"}}Tt.INSTANCE=new Tt;class kt extends mt{constructor(t){super(0),this.channel=t}De(t){t.Me=this.channel}H(t){t.update(this.Ie,this.channel)}equals(t){return this===t||t instanceof kt&&this.channel===t.channel}toString(){return"channel("+this.channel+")"}}class yt extends mt{constructor(t,s){super(1),this.Dt=t,this.ve=s,this.Fe=!0}De(t){t.action(null,this.Dt,this.ve)}H(t){t.update(this.Ie,this.Dt,this.ve)}equals(t){return this===t||t instanceof yt&&this.Dt===t.Dt&&this.ve===t.ve}}class vt extends mt{constructor(){super(3)}De(t){t.qe()}toString(){return"more"}}vt.INSTANCE=new vt;class At extends mt{constructor(t){super(7),this.type=t}De(t){t.type=this.type}H(t){t.update(this.Ie,this.type)}equals(t){return this===t||t instanceof At&&this.type===t.type}toString(){return"type("+this.type+")"}}class Ct extends mt{constructor(t){super(5),this.mode=t}De(t){t.He(this.mode)}H(t){t.update(this.Ie,this.mode)}equals(t){return this===t||t instanceof Ct&&this.mode===t.mode}toString(){return"pushMode("+this.mode+")"}}class Et extends mt{constructor(){super(4)}De(t){t.Be()}toString(){return"popMode"}}Et.INSTANCE=new Et;class bt extends mt{constructor(t){super(2),this.mode=t}De(t){t.Ve(this.mode)}H(t){t.update(this.Ie,this.mode)}equals(t){return this===t||t instanceof bt&&this.mode===t.mode}toString(){return"mode("+this.mode+")"}}function Nt(t,s){let e=[];return e[t-1]=s,e.map(function(t){return s})}class Rt{constructor(t){null==t&&(t=St.Pe),this.ze=t,this.Ue=null,this.je=null}Ke(t){let s=this.reset(t);this.We(s),s&&this.Ge();let e=this.Je();this.$e(e,s),this.Qe(e,s),this.Xe(e);let i=[];return this.Ye(e,i,this.Ze.bind(this)),s&&this.Ye(e,i,this.ti.bind(this)),this.si(e,i),this.ei(e),this.ii(e,s),this.ni(e),this.Le(e),this.ze.Oe&&1===e.Qs&&(this.Oe(e),this.Le(e)),e}reset(t){if(3===(t.charCodeAt?t.charCodeAt(0):t[0])){let s=function(t){let s=t.charCodeAt(0);return s>1?s-2:s+65534},e=t.split("").map(s);return e[0]=t.charCodeAt(0),this.data=e,this.ri=0,!0}return this.data=t,this.ri=0,!1}Ge(){let t=0;for(;t++<8;)this.Ze()}We(t){let s=this.Ze();if(!t&&4!==s)throw"Could not deserialize ATN with version "+s+" (expected 4)."}Je(){let t=this.Ze(),s=this.Ze();return new Q(t,s)}$e(t,s){let e,i,n,r=[],h=[],l=this.Ze();for(let e=0;e<l;e++){let e=this.Ze();if(e===v.k){t.le(null);continue}let i=this.Ze();s&&65535===i&&(i=-1);let n=this.hi(e,i);if(e===v.Yt){let t=this.Ze();r.push([n,t])}else if(n instanceof Z){let t=this.Ze();h.push([n,t])}t.le(n)}for(e=0;e<r.length;e++)i=r[e],i[0].xe=t.states[i[1]];for(e=0;e<h.length;e++)i=h[e],i[0].we=t.states[i[1]];let u=this.Ze();for(e=0;e<u;e++)n=this.Ze(),t.states[n].ge=!0;let a=this.Ze();for(e=0;e<a;e++)n=this.Ze(),t.states[n].me=!0}Qe(t,s){let e,n=this.Ze();for(0===t.Qs&&(t.se=Nt(n,0)),t.Ys=Nt(n,0),e=0;e<n;e++){let n=this.Ze();if(t.Ys[e]=t.states[n],0===t.Qs){let n=this.Ze();s&&65535===n&&(n=i.EOF),t.se[e]=n}}for(t.Zs=Nt(n,0),e=0;e<t.states.length;e++){let s=t.states[e];s instanceof A&&(t.Zs[s.Dt]=s,t.Ys[s.Dt].Se=s)}}Xe(t){let s=this.Ze();for(let e=0;e<s;e++){let s=this.Ze();t.ie.push(t.states[s])}}Ye(t,s,e){let i=this.Ze();for(let t=0;t<i;t++){let t=new y;s.push(t);let i=this.Ze();0!==this.Ze()&&t.vt(-1);for(let s=0;s<i;s++){let s=e(),i=e();t.addRange(s,i)}}}si(t,s){let e,i,n,r,h,l=this.Ze();for(e=0;e<l;e++){let e=this.Ze(),i=this.Ze(),n=this.Ze(),h=this.Ze(),l=this.Ze(),u=this.Ze();r=this.li(t,n,e,i,h,l,u,s),t.states[e].Bt(r)}for(e=0;e<t.states.length;e++)for(n=t.states[e],i=0;i<n.Mt.length;i++){let s=n.Mt[i];if(!(s instanceof E))continue;let e=-1;t.Ys[s.target.Dt].me&&0===s.ct&&(e=s.target.Dt),r=new dt(s.ns,e),t.Zs[s.target.Dt].Bt(r)}for(e=0;e<t.states.length;e++){if(n=t.states[e],n instanceof Z){if(null===n.we)throw"IllegalState";if(null!==n.we.pe)throw"IllegalState";n.we.pe=n}if(n instanceof nt)for(i=0;i<n.Mt.length;i++)h=n.Mt[i].target,h instanceof lt&&(h.xe=n);else if(n instanceof rt)for(i=0;i<n.Mt.length;i++)h=n.Mt[i].target,h instanceof ht&&(h.xe=n)}}ei(t){let s=this.Ze();for(let e=0;e<s;e++){let s=this.Ze(),i=t.states[s];t.Xs.push(i),i.ce=e}}ii(t,s){if(0===t.Qs){let e=this.Ze();t.ee=Nt(e,null);for(let i=0;i<e;i++){let e=this.Ze(),n=this.Ze();s&&65535===n&&(n=-1);let r=this.Ze();s&&65535===r&&(r=-1),t.ee[i]=this.ui(e,n,r)}}}Oe(t){let s,e=t.Ys.length;for(s=0;s<e;s++)t.se[s]=t.$s+s+1;for(s=0;s<e;s++)this.ai(t,s)}ai(t,s){let e,i,n=new at;n.Dt=s,t.le(n);let r=new tt;r.Dt=s,t.le(r),n.we=r,t.ae(n),r.pe=n;let h=null,l=null;if(t.Ys[s].me){for(l=null,e=0;e<t.states.length;e++)if(i=t.states[e],this.ci(i,s)){l=i,h=i.xe.Mt[0];break}if(null===h)throw"Couldn't identify final state of the precedence rule prefix section."}else l=t.Zs[s];for(e=0;e<t.states.length;e++){i=t.states[e];for(let t=0;t<i.Mt.length;t++){let s=i.Mt[t];s!==h&&s.target===l&&(s.target=r)}}let u=t.Ys[s],a=u.Mt.length;for(;a>0;)n.Bt(u.Mt[a-1]),u.Mt=u.Mt.slice(-1);t.Ys[s].Bt(new dt(n)),r.Bt(new dt(l));let c=new X;t.le(c),c.Bt(new ct(r,t.se[s])),n.Bt(new dt(c))}ci(t,s){if(t.Dt!==s)return null;if(!(t instanceof ht))return null;let e=t.Mt[t.Mt.length-1].target;return e instanceof st&&e._t&&e.Mt[0].target instanceof A?t:null}ni(t){for(let s=0;s<t.states.length;s++){let e=t.states[s];if(e instanceof ht&&t.Ys[e.Dt].me){let t=e.Mt[e.Mt.length-1].target;t instanceof st&&t._t&&t.Mt[0].target instanceof A&&(e.Te=!0)}}}Le(t){if(this.ze.Le)for(let s=0;s<t.states.length;s++){let e=t.states[s];if(null!==e)if(this.oi(e._t||e.Mt.length<=1),e instanceof lt)this.oi(null!==e.xe);else if(e instanceof ht)if(this.oi(null!==e.xe),this.oi(2===e.Mt.length),e.Mt[0].target instanceof ut)this.oi(e.Mt[1].target instanceof st),this.oi(!e.ge);else{if(!(e.Mt[0].target instanceof st))throw"IllegalState";this.oi(e.Mt[1].target instanceof ut),this.oi(e.ge)}else e instanceof rt?(this.oi(1===e.Mt.length),this.oi(e.Mt[0].target instanceof ht)):e instanceof st?this.oi(null!==e.xe):e instanceof et?this.oi(null!==e.Se):e instanceof Z?this.oi(null!==e.we):e instanceof tt?this.oi(null!==e.pe):e instanceof Y?this.oi(e.Mt.length<=1||e.ce>=0):this.oi(e.Mt.length<=1||e instanceof A)}}oi(t,s){if(!t)throw null==s&&(s="IllegalState"),s}Ze(){return this.data[this.ri++]}ti(){return this.Ze()|this.Ze()<<16}li(t,s,e,n,r,h,l,u){let a=t.states[n];switch(s){case C.EPSILON:return new dt(a);case C.RANGE:return new ot(a,0!==l?i.EOF:r,h);case C.RULE:return new E(t.states[r],h,l,a);case C.PREDICATE:return new wt(a,r,h,0!==l);case C.PRECEDENCE:return new xt(a,r);case C.ATOM:return new ct(a,0!==l?i.EOF:r);case C.ACTION:return new ft(a,r,h,0!==l);case C.SET:return new b(a,u[r]);case C.ts:return new N(a,u[r]);case C.WILDCARD:return new R(a);default:throw"The specified transition type: "+s+" is not valid."}}hi(t,s){if(null===this.Ue){let t=[];t[v.k]=null,t[v.BASIC]=()=>new X,t[v.zt]=()=>new et,t[v.Ut]=()=>new at,t[v.jt]=()=>new lt,t[v.Kt]=()=>new ut,t[v.Wt]=()=>new it,t[v.Gt]=()=>new A,t[v.Jt]=()=>new tt,t[v.$t]=()=>new rt,t[v.Qt]=()=>new ht,t[v.Xt]=()=>new nt,t[v.Yt]=()=>new st,this.Ue=t}if(t>this.Ue.length||null===this.Ue[t])throw"The specified state type "+t+" is not valid.";{let e=this.Ue[t]();if(null!==e)return e.Dt=s,e}}ui(t,s,e){if(null===this.je){let t=[];t[0]=(t,s)=>new kt(t),t[1]=(t,s)=>new yt(t,s),t[2]=(t,s)=>new bt(t),t[3]=(t,s)=>vt.INSTANCE,t[4]=(t,s)=>Et.INSTANCE,t[5]=(t,s)=>new Ct(t),t[6]=(t,s)=>Tt.INSTANCE,t[7]=(t,s)=>new At(t),this.je=t}if(t>this.je.length||null===this.je[t])throw"The specified lexer action type "+t+" is not valid.";return this.je[t](s,e)}}class Lt{fi(t,s,e,i,n,r){}di(t,s,e,i,n,r,h){}gi(t,s,e,i,n,r){}wi(t,s,e,i,n,r){}}class Ot extends Lt{constructor(){super()}fi(t,s,e,i,n,r){}}Ot.INSTANCE=new Ot;class Pt extends Lt{constructor(t){if(super(),null===t)throw"delegates";return this.pi=t,this}fi(t,s,e,i,n,r){this.pi.map(h=>h.fi(t,s,e,i,n,r))}di(t,s,e,i,n,r,h){this.pi.map(l=>l.di(t,s,e,i,n,r,h))}gi(t,s,e,i,n,r){this.pi.map(h=>h.gi(t,s,e,i,n,r))}wi(t,s,e,i,n,r){this.pi.map(h=>h.wi(t,s,e,i,n,r))}}class It{constructor(){this.xi=[Ot.INSTANCE],this.Si=null,this.mi=-1}We(t){}Ti(t){this.xi.push(t)}ki(){this.xi=[]}yi(){return Object.getPrototypeOf(this).constructor.Ai||[]}Ci(){return Object.getPrototypeOf(this).constructor.Ei||[]}bi(){if(!this.Ni){let t=this.yi(),s=this.Ci(),e=t.length>s.length?t.length:s.length;this.Ni=[];for(let i=0;i<e;i++)this.Ni[i]=t[i]||s[i]||"<INVALID"}return this.Ni}Ri(){let t=this.bi();if(null===t)throw"The current recognizer does not provide a list of token names.";let s=this.Li[t];return void 0===s&&(s=t.reduce(function(t,s,e){t[s]=e}),s.EOF=i.EOF,this.Li[t]=s),s}Oi(){let t=this.us;if(null===t)throw"The current recognizer does not provide a list of rule names.";let s=this.Pi[t];return void 0===s&&(s=t.reduce(function(t,s,e){t[s]=e}),this.Pi[t]=s),s}Ii(t){let s=this.Ri()[t];return void 0!==s?s:i.k}Fi(t){return"line "+t.Di().line+":"+t.Di().p}_i(t){if(null===t)return"<no token>";let s=t.text;return null===s&&(s=t.type===i.EOF?"<EOF>":"<"+t.type+">"),s=s.replace("\n","\\n").replace("\r","\\r").replace("\t","\\t"),"'"+s+"'"}Mi(){return this.qi()}qi(){return new Pt(this.xi)}be(t,s,e){return!0}Re(t,s){return!0}get Pt(){return this.Si.Pt}get state(){return this.mi}set state(t){this.mi=t}}It.Li={},It.Pi={};class Ft extends i{constructor(t,s,e,n,r){super(),this.source=void 0!==t?t:Ft.Hi,this.type=void 0!==s?s:null,this.channel=void 0!==e?e:i.N,this.start=void 0!==n?n:-1,this.stop=void 0!==r?r:-1,this.o=-1,null!==this.source[0]?(this.line=t[0].line,this.p=t[0].p):this.p=-1}clone(){let t=new Ft(this.source,this.type,this.channel,this.start,this.stop);return t.o=this.o,t.line=this.line,t.p=this.p,t.text=this.text,t}Bi(t){let s=new Ft(this.source,t,this.channel,this.start,this.stop);return s.o=this.o,s.line=this.line,s.p=this.p,t===i.EOF&&(s.text=""),s}toString(){let t=this.text;return t=null!==t?t.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):"<no text>","[@"+this.o+","+this.start+":"+this.stop+"='"+t+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.p+"]"}get text(){if(null!==this.S)return this.S;let t=this.T();if(null===t)return null;let s=t.size;return this.start<s&&this.stop<s?t.q(this.start,this.stop):"<EOF>"}set text(t){this.S=t}}Ft.Hi=[null,null];class Dt{}class _t extends Dt{constructor(t){super(),this.Vi=void 0!==t&&t}create(t,s,e,i,n,r,h,l){let u=new Ft(t,s,i,n,r);return u.line=h,u.p=l,null!==e?u.text=e:this.Vi&&null!==t[1]&&(u.text=t[1].q(n,r)),u}zi(t,s){let e=new Ft(null,t);return e.text=s,e}}_t.DEFAULT=new _t;class Mt extends Error{constructor(t){super(t.message),Error.captureStackTrace&&Error.captureStackTrace(this,Mt),this.message=t.message,this.Ui=t.Ui,this.input=t.input,this.ji=t.ji,this.Ki=null,this.Wi=-1,null!==this.Ui&&(this.Wi=this.Ui.state)}fe(){return null!==this.Ui?this.Ui.Pt.fe(this.Wi,this.ji):null}toString(){return this.message}}class qt extends Mt{constructor(t,s,e,i){super({message:"",Ui:t,input:s,ji:null}),this.Gi=e,this.Ji=i}toString(){let t="";return this.Gi>=0&&this.Gi<this.input.size&&(t=this.input.q(new k(this.Gi,this.Gi))),"LexerNoViableAltException"+t}}class Ht extends It{constructor(t){super(),this.$i=t,this.Qi=_t.DEFAULT,this.Xi=[this,t],this.Si=null,this.Yi=null,this.Zi=-1,this.tn=-1,this.sn=-1,this.en=!1,this.Me=i.N,this.nn=i.k,this.rn=[],this.hn=Ht.ln,this.S=null}reset(){null!==this.$i&&this.$i.seek(0),this.Yi=null,this.nn=i.k,this.Me=i.N,this.Zi=-1,this.sn=-1,this.tn=-1,this.S=null,this.en=!1,this.hn=Ht.ln,this.rn=[],this.Si.reset()}un(){if(null===this.$i)throw"nextToken requires a non-null input stream.";let t=this.$i.mark();try{for(;;){if(this.en)return this.an(),this.Yi;this.Yi=null,this.Me=i.N,this.Zi=this.$i.index,this.sn=this.Si.p,this.tn=this.Si.line,this.S=null;let t=!1;for(;;){this.nn=i.k;let s=Ht.SKIP;try{s=this.Si.match(this.$i,this.hn)}catch(t){if(!(t instanceof Mt))throw t;this.cn(t),this.fn(t)}if(this.$i.LA(1)===i.EOF&&(this.en=!0),this.nn===i.k&&(this.nn=s),this.nn===Ht.SKIP){t=!0;break}if(this.nn!==Ht.MORE)break}if(!t)return null===this.Yi&&this.emit(),this.Yi}}finally{this.$i.release(t)}}_e(){this.nn=Ht.SKIP}qe(){this.nn=Ht.MORE}mode(t){this.Ve(t)}Ve(t){this.hn=t}dn(){return this.hn}gn(){return this.rn}He(t){this.Si.debug,this.rn.push(this.hn),this.Ve(t)}Be(){if(0===this.rn.length)throw"Empty Stack";return this.Si.debug,this.Ve(this.rn.pop()),this.hn}wn(t){this.Yi=t}emit(){let t=this.Qi.create(this.Xi,this.nn,this.S,this.Me,this.Zi,this.pn()-1,this.tn,this.sn);return this.wn(t),t}an(){let t=this.p,s=this.line,e=this.Qi.create(this.Xi,i.EOF,null,i.N,this.$i.index,this.$i.index-1,s,t);return this.wn(e),e}pn(){return this.$i.index}xn(){let t=[],s=this.un();for(;s.type!==i.EOF;)t.push(s),s=this.un();return t}cn(t){let s=this.Zi,e=this.$i.index,i=this.$i.q(s,e),n="token recognition error at: '"+this.Sn(i)+"'";this.qi().fi(this,null,this.tn,this.sn,n,t)}Sn(t){let s=[];for(let e=0;e<t.length;e++)s.push(t[e]);return s.join("")}mn(t){return t.charCodeAt(0)===i.EOF?"<EOF>":"\n"===t?"\\n":"\t"===t?"\\t":"\r"===t?"\\r":t}Tn(t){return"'"+this.mn(t)+"'"}fn(t){this.$i.LA(1)!==i.EOF&&(t instanceof qt?this.Si.M(this.$i):this.$i.M())}get kn(){return this.$i}set kn(t){this.$i=null,this.Xi=[this,this.$i],this.reset(),this.$i=t,this.Xi=[this,this.$i]}get yn(){return this.$i.yn}get type(){return this.nn}set type(t){this.nn=t}get line(){return this.Si.line}set line(t){this.Si.line=t}get p(){return this.Si.p}set p(t){this.Si.p=t}get text(){return null!==this.S?this.S:this.Si.q(this.$i)}set text(t){this.S=t}}function Bt(t){return t.St()}function Vt(t,s){return t===s||null!==t&&null!==s&&t.Tt(s)}Ht.ln=0,Ht.MORE=-2,Ht.SKIP=-3,Ht.vn=i.N,Ht.HIDDEN=i.L,Ht.An=0,Ht.Cn=1114111;class zt{constructor(t){this.En=new g(Bt,Vt),this.bn=void 0===t||t,this.readOnly=!1,this.Nn=[],this.Rn=0,this.Ln=null,this.On=!1,this.Pn=!1,this.Ps=-1}add(t,s){if(void 0===s&&(s=null),this.readOnly)throw"This set is readonly";t.ft!==w.NONE&&(this.On=!0),t.dt>0&&(this.Pn=!0);let e=this.En.et(t);if(e===t)return this.Ps=-1,this.Nn.push(t),!0;let i=!this.bn,n=G(e.context,t.context,i,s);return e.dt=Math.max(e.dt,t.dt),t.gt&&(e.gt=!0),e.context=n,!0}In(){let t=new g;for(let s=0;s<this.Nn.length;s++)t.add(this.Nn[s].state);return t}Fn(){let t=[];for(let s=0;s<this.Nn.length;s++){let e=this.Nn[s].ft;e!==w.NONE&&t.push(e.ft)}return t}Dn(t){if(this.readOnly)throw"This set is readonly";if(0!==this.En.length)for(let s=0;s<this.Nn.length;s++){let e=this.Nn[s];e.context=t._n(e.context)}}addAll(t){for(let s=0;s<t.length;s++)this.add(t[s]);return!1}equals(t){return this===t||t instanceof zt&&h(this.Nn,t.Nn)&&this.bn===t.bn&&this.Rn===t.Rn&&this.Ln===t.Ln&&this.On===t.On&&this.Pn===t.Pn}U(){let t=new a;return t.update(this.Nn),t.finish()}H(t){this.readOnly?(-1===this.Ps&&(this.Ps=this.U()),t.update(this.Ps)):t.update(this.U())}Ns(){return 0===this.Nn.length}contains(t){if(null===this.En)throw"This method is not implemented for readonly sets.";return this.En.contains(t)}Mn(t){if(null===this.En)throw"This method is not implemented for readonly sets.";return this.En.Mn(t)}clear(){if(this.readOnly)throw"This set is readonly";this.Nn=[],this.Ps=-1,this.En=new g}qn(t){this.readOnly=t,t&&(this.En=null)}toString(){return d(this.Nn)+(this.On?",hasSemanticContext="+this.On:"")+(this.Rn!==Q.de?",uniqueAlt="+this.Rn:"")+(null!==this.Ln?",conflictingAlts="+this.Ln:"")+(this.Pn?",dipsIntoOuterContext":"")}get items(){return this.Nn}get length(){return this.Nn.length}}class Ut{constructor(t,s){return null===t&&(t=-1),null===s&&(s=new zt),this.xt=t,this.Nn=s,this.Hn=null,this.Bn=!1,this.Vn=0,this.zn=null,this.Un=!1,this.jn=null,this}Kn(){let t=new g;if(null!==this.Nn)for(let s=0;s<this.Nn.length;s++){let e=this.Nn[s];t.add(e.alt)}return 0===t.length?null:t}equals(t){return this===t||t instanceof Ut&&this.Nn.equals(t.Nn)}toString(){let t=this.xt+":"+this.Nn;return this.Bn&&(t+="=>",null!==this.jn?t+=this.jn:t+=this.Vn),t}U(){let t=new a;return t.update(this.Nn),t.finish()}}class jt{constructor(t,s){return this.Pt=t,this.Wn=s,this}_n(t){if(null===this.Wn)return t;let s=new j;return W(t,this.Wn,s)}}jt.ERROR=new Ut(2147483647,new zt);class Kt extends zt{constructor(){super(),this.En=new g}}class Wt extends T{constructor(t,s){super(t,s);let e=t.zn||null;return this.zn=e||(null!==s?s.zn:null),this.Gn=null!==s&&this.Jn(s,this.state),this.St=Wt.prototype.U,this.Tt=Wt.prototype.equals,this}H(t){t.update(this.state.xt,this.alt,this.context,this.ft,this.Gn,this.zn)}equals(t){return this===t||t instanceof Wt&&this.Gn===t.Gn&&(this.zn?this.zn.equals(t.zn):!t.zn)&&super.equals(t)}Jn(t,s){return t.Gn||s instanceof Y&&s.ge}}class Gt extends mt{constructor(t,s){super(s.Ie),this.offset=t,this.action=s,this.Fe=!0}De(t){this.action.De(t)}H(t){t.update(this.Ie,this.offset,this.action)}equals(t){return this===t||t instanceof Gt&&this.offset===t.offset&&this.action===t.action}}class Jt{constructor(t){return this.ee=null===t?[]:t,this.Ps=a.V(t),this}$n(t){let s=null;for(let e=0;e<this.ee.length;e++)!this.ee[e].Fe||this.ee[e]instanceof Gt||(null===s&&(s=this.ee.concat([])),s[e]=new Gt(t,this.ee[e]));return null===s?this:new Jt(s)}De(t,s,e){let i=!1,n=s.index;try{for(let r=0;r<this.ee.length;r++){let h=this.ee[r];if(h instanceof Gt){let t=h.offset;s.seek(e+t),h=h.action,i=e+t!==n}else h.Fe&&(s.seek(n),i=!1);h.De(t)}}finally{i&&s.seek(n)}}U(){return this.Ps}H(t){t.update(this.Ps)}equals(t){if(this===t)return!0;if(t instanceof Jt){if(this.Ps!=t.Ps)return!1;if(this.ee.length!=t.ee.length)return!1;{let s=this.ee.length;for(let e=0;e<s;++e)if(!this.ee[e].equals(t.ee[e]))return!1;return!0}}return!1}static append(t,s){if(null===t)return new Jt([s]);let e=t.ee.concat([s]);return new Jt(e)}}function $t(t){t.index=-1,t.line=0,t.p=-1,t.Qn=null}class Qt{constructor(){$t(this)}reset(){$t(this)}}class Xt extends jt{constructor(t,s,e,i){super(s,i),this.Xn=e,this.Yn=t,this.Gi=-1,this.line=1,this.p=0,this.mode=Ht.ln,this.Zn=new Qt}tr(t){this.p=t.p,this.line=t.line,this.mode=t.mode,this.Gi=t.Gi}match(t,s){this.mode=s;let e=t.mark();try{this.Gi=t.index,this.Zn.reset();let e=this.Xn[s];return null===e.sr?this.er(t):this.ir(t,e.sr)}finally{t.release(e)}}reset(){this.Zn.reset(),this.Gi=-1,this.line=1,this.p=0,this.mode=Ht.ln}er(t){let s=this.Pt.ie[this.mode];Xt.debug,this.mode;let e=this.nr(t,s),i=e.On;e.On=!1;let n=this.rr(e);i||(this.Xn[this.mode].sr=n);let r=this.ir(t,n);return Xt.debug,r}ir(t,s){Xt.debug,s.Bn&&this.hr(this.Zn,t,s);let e=t.LA(1),n=s;for(;;){Xt.debug;let s=this.lr(n,e);if(null===s&&(s=this.ur(t,n,e)),s===jt.ERROR)break;if(e!==i.EOF&&this.M(t),s.Bn&&(this.hr(this.Zn,t,s),e===i.EOF))break;e=t.LA(1),n=s}return this.ar(this.Zn,t,n.Nn,e)}lr(t,s){if(null===t.Hn||s<Xt.cr||s>Xt.dr)return null;let e=t.Hn[s-Xt.cr];return void 0===e&&(e=null),Xt.debug,e}ur(t,s,e){let i=new Kt;return this.gr(t,s.Nn,i,e),0===i.items.length?(i.On||this.wr(s,e,jt.ERROR),jt.ERROR):this.wr(s,e,null,i)}ar(t,s,e,n){if(null!==this.Zn.Qn){let e=t.Qn.zn;return this.accept(s,e,this.Gi,t.index,t.line,t.p),t.Qn.Vn}if(n===i.EOF&&s.index===this.Gi)return i.EOF;throw new qt(this.Yn,s,this.Gi,e)}gr(t,s,e,n){let r=Q.de;for(let h=0;h<s.items.length;h++){let l=s.items[h],u=l.alt===r;if(!u||!l.Gn){Xt.debug;for(let s=0;s<l.state.Mt.length;s++){let h=l.state.Mt[s],a=this.pr(h,n);if(null!==a){let s=l.zn;null!==s&&(s=s.$n(t.index-this.Gi));let h=n===i.EOF,c=new Wt({state:a,zn:s},l);this.Sr(t,c,e,u,!0,h)&&(r=l.alt)}}}}}accept(t,s,e,i,n,r){Xt.debug,t.seek(i),this.line=n,this.p=r,null!==s&&null!==this.Yn&&s.De(this.Yn,t,e)}pr(t,s){return t.matches(s,0,Ht.Cn)?t.target:null}nr(t,s){let e=B.EMPTY,i=new Kt;for(let n=0;n<s.Mt.length;n++){let r=s.Mt[n].target,h=new Wt({state:r,alt:n+1,context:e},null);this.Sr(t,h,i,!1,!1,!1)}return i}Sr(t,s,e,i,n,r){let h=null;if(Xt.debug,s.state instanceof A){if(Xt.debug&&this.Yn,null===s.context||s.context.Is()){if(null===s.context||s.context.Ns())return e.add(s),!0;e.add(new Wt({state:s.state,context:B.EMPTY},s)),i=!0}if(null!==s.context&&!s.context.Ns())for(let l=0;l<s.context.length;l++)if(s.context.Fs(l)!==B.Ds){let u=s.context.getParent(l),a=this.Pt.states[s.context.Fs(l)];h=new Wt({state:a,context:u},s),i=this.Sr(t,h,e,i,n,r)}return i}s.state._t||i&&s.Gn||e.add(s);for(let l=0;l<s.state.Mt.length;l++){let u=s.state.Mt[l];h=this.mr(t,s,u,e,n,r),null!==h&&(i=this.Sr(t,h,e,i,n,r))}return i}mr(t,s,e,n,r,h){let l=null;if(e.rs===C.RULE){let t=z.create(s.context,e.ns.xt);l=new Wt({state:e.target,context:t},s)}else{if(e.rs===C.PRECEDENCE)throw"Precedence predicates are not supported in lexers.";if(e.rs===C.PREDICATE)Xt.debug,n.On=!0,this.Tr(t,e.Dt,e.Ee,r)&&(l=new Wt({state:e.target},s));else if(e.rs===C.ACTION)if(null===s.context||s.context.Is()){let t=Jt.append(s.zn,this.Pt.ee[e.ve]);l=new Wt({state:e.target,zn:t},s)}else l=new Wt({state:e.target},s);else e.rs===C.EPSILON?l=new Wt({state:e.target},s):e.rs!==C.ATOM&&e.rs!==C.RANGE&&e.rs!==C.SET||h&&e.matches(i.EOF,0,Ht.Cn)&&(l=new Wt({state:e.target},s))}return l}Tr(t,s,e,i){if(null===this.Yn)return!0;if(!i)return this.Yn.be(null,s,e);let n=this.p,r=this.line,h=t.index,l=t.mark();try{return this.M(t),this.Yn.be(null,s,e)}finally{this.p=n,this.line=r,t.seek(h),t.release(l)}}hr(t,s,e){t.index=s.index,t.line=this.line,t.p=this.p,t.Qn=e}wr(t,s,e,i){if(void 0===e&&(e=null),void 0===i&&(i=null),null===e&&null!==i){let t=i.On;if(i.On=!1,e=this.rr(i),t)return e}return s<Xt.cr||s>Xt.dr||(Xt.debug,null===t.Hn&&(t.Hn=[]),t.Hn[s-Xt.cr]=e),e}rr(t){let s=new Ut(null,t),e=null;for(let s=0;s<t.items.length;s++){let i=t.items[s];if(i.state instanceof A){e=i;break}}null!==e&&(s.Bn=!0,s.zn=e.zn,s.Vn=this.Pt.se[e.state.Dt]);let i=this.Xn[this.mode],n=i.states.get(s);if(null!==n)return n;let r=s;return r.xt=i.states.length,t.qn(!0),r.Nn=t,i.states.add(r),r}kr(t){return this.Xn[t]}q(t){return t.q(this.Gi,t.index-1)}M(t){t.LA(1)==="\n".charCodeAt(0)?(this.line+=1,this.p=0):this.p+=1,t.M()}yr(t){return-1===t?"EOF":"'"+String.fromCharCode(t)+"'"}}Xt.debug=!1,Xt.vr=!1,Xt.cr=0,Xt.dr=127;class Yt{constructor(t,s){this.alt=s,this.Ar=t}toString(){return"("+this.Ar+", "+this.alt+")"}}class Zt{constructor(){this.data={}}get(t){return this.data["k-"+t]||null}set(t,s){this.data["k-"+t]=s}values(){return Object.keys(this.data).filter(t=>t.startsWith("k-")).map(t=>this.data[t],this)}}let ts={SLL:0,LL:1,Cr:2,Er:function(t,s){if(ts.br(s))return!0;if(t===ts.SLL&&s.On){let t=new zt;for(let e=0;e<s.items.length;e++){let i=s.items[e];i=new T({ft:w.NONE},i),t.add(i)}s=t}let e=ts.Nr(s);return ts.Rr(e)&&!ts.Lr(s)},Or:function(t){for(let s=0;s<t.items.length;s++)if(t.items[s].state instanceof A)return!0;return!1},br:function(t){for(let s=0;s<t.items.length;s++)if(!(t.items[s].state instanceof A))return!1;return!0},Pr:function(t){return ts.Ir(t)},Fr:function(t){return!ts.Dr(t)},Dr:function(t){for(let s=0;s<t.length;s++)if(1===t[s].length)return!0;return!1},Rr:function(t){for(let s=0;s<t.length;s++)if(t[s].length>1)return!0;return!1},_r:function(t){let s=null;for(let e=0;e<t.length;e++){let i=t[e];if(null===s)s=i;else if(i!==s)return!1}return!0},Mr:function(t){let s=ts.qr(t);return 1===s.length?s.minValue():Q.de},qr:function(t){let s=new J;return t.map(function(t){s.or(t)}),s},Nr:function(t){let s=new j;return s.$=function(t){a.V(t.state.xt,t.context)},s.tt=function(t,s){return t.state.xt===s.state.xt&&t.context.equals(s.context)},t.items.map(function(t){let e=s.get(t);null===e&&(e=new J,s.set(t,e)),e.set(t.alt)}),s.getValues()},Hr:function(t){let s=new Zt;return t.items.map(function(t){let e=s.get(t.state);null===e&&(e=new J,s.set(t.state,e)),e.set(t.alt)}),s},Lr:function(t){let s=ts.Hr(t).values();for(let t=0;t<s.length;t++)if(1===s[t].length)return!0;return!1},Ir:function(t){let s=null;for(let e=0;e<t.length;e++){let i=t[e].minValue();if(null===s)s=i;else if(s!==i)return Q.de}return s}};const ss=ts;class es extends Mt{constructor(t,s,e,i,n,r){r=r||t.Br,i=i||t.Vr(),e=e||t.Vr(),s=s||t.T(),super({message:"",Ui:t,input:s,ji:r}),this.Ji=n,this.zr=e,this.Ki=i}}class is{constructor(t){this.Ur=t||j,this.jr=new this.Ur}get(t,s){let e=this.jr.get(t)||null;return null===e?null:e.get(s)||null}set(t,s,e){let i=this.jr.get(t)||null;null===i&&(i=new this.Ur,this.jr.set(t,i)),i.set(s,e)}}const ns={ATN:Q,ATNDeserializer:Rt,LexerATNSimulator:Xt,ParserATNSimulator:class extends jt{constructor(t,s,e,i){super(s,i),this.Kr=t,this.Xn=e,this.Wr=ss.LL,this.$i=null,this.Gr=0,this.Jr=null,this.$r=null,this.Qr=null,this.debug=!1,this.Xr=!1,this.Yr=!1,this.Ms=!1,this.vr=!1,this.Zr=!1}reset(){}th(t,s,e){this.debug||this.Ms,this.$i=t,this.Gr=t.index,this.Jr=e;let i=this.Xn[s];this.$r=i;let n=t.mark(),r=t.index;try{let s;if(s=i.sh?i.eh(this.Kr.ih()):i.sr,null===s){null===e&&(e=H.EMPTY),this.debug;let t=!1,n=this.nr(i.nh,H.EMPTY,t);i.sh?(i.sr.Nn=n,n=this.rh(n),s=this.rr(i,new Ut(null,n)),i.hh(this.Kr.ih(),s)):(s=this.rr(i,new Ut(null,n)),i.sr=s)}let n=this.ir(i,s,t,r,e);return this.debug,n}finally{this.$r=null,this.Qr=null,t.seek(r),t.release(n)}}ir(t,s,e,n,r){let h;this.debug||this.Ms;let l=s;this.debug;let u=e.LA(1);for(;;){let s=this.lr(l,u);if(null===s&&(s=this.ur(t,l,u)),s===jt.ERROR){let t=this.uh(e,r,l.Nn,n);if(e.seek(n),h=this.ah(l.Nn,r),h!==Q.de)return h;throw t}if(s.Un&&this.Wr!==ss.SLL){let i=null;if(null!==s.jn){this.debug;let t=e.index;if(t!==n&&e.seek(n),i=this.oh(s.jn,r,!0),1===i.length)return this.debug,i.minValue();t!==n&&e.seek(t)}this.vr;let l=!0,u=this.nr(t.nh,r,l);return this.gi(t,i,s.Nn,n,e.index),h=this.fh(t,s,u,e,n,r),h}if(s.Bn){if(null===s.jn)return s.Vn;let i=e.index;e.seek(n);let h=this.oh(s.jn,r,!0);if(0===h.length)throw this.uh(e,r,s.Nn,n);return 1===h.length||this.di(t,s,n,i,!1,h,s.Nn),h.minValue()}l=s,u!==i.EOF&&(e.M(),u=e.LA(1))}}lr(t,s){let e=t.Hn;return null===e?null:e[s+1]||null}ur(t,s,e){let i=this.dh(s.Nn,e,!1);if(null===i)return this.wr(t,s,e,jt.ERROR),jt.ERROR;let n=new Ut(null,i),r=this.Mr(i);return this.debug&&ss.Nr(i),r!==Q.de?(n.Bn=!0,n.Nn.Rn=r,n.Vn=r):ss.Er(this.Wr,i)&&(n.Nn.Ln=this.gh(i),n.Un=!0,n.Bn=!0,n.Vn=n.Nn.Ln.minValue()),n.Bn&&n.Nn.On&&(this.wh(n,this.Pt.oe(t.ce)),null!==n.jn&&(n.Vn=Q.de)),n=this.wr(t,s,e,n),n}wh(t,s){let e=s.Mt.length,i=this.ph(t.Nn),n=this.xh(i,t.Nn,e);null!==n?(t.jn=this.Sh(i,n),t.Vn=Q.de):t.Vn=i.minValue()}fh(t,s,e,n,r,h){this.debug||this.Ms;let l,u=!1,a=e;n.seek(r);let c=n.LA(1),o=-1;for(;;){if(l=this.dh(a,c,!0),null===l){let t=this.uh(n,h,a,r);n.seek(r);let s=this.ah(a,h);if(s!==Q.de)return s;throw t}let t=ss.Nr(l);if(this.debug,l.Rn=this.Mr(l),l.Rn!==Q.de){o=l.Rn;break}if(this.Wr!==ss.Cr){if(o=ss.Pr(t),o!==Q.de)break}else if(ss.Fr(t)&&ss._r(t)){u=!0,o=ss.Ir(t);break}a=l,c!==i.EOF&&(n.M(),c=n.LA(1))}return l.Rn!==Q.de?(this.wi(t,o,l,r,n.index),o):(this.di(t,s,r,n.index,u,null,l),o)}dh(t,s,e){this.debug,null===this.Qr&&(this.Qr=new is);let n=new zt(e),r=null;for(let h=0;h<t.items.length;h++){let l=t.items[h];if(this.debug,l.state instanceof A)(e||s===i.EOF)&&(null===r&&(r=[]),r.push(l),this.Yr);else for(let t=0;t<l.state.Mt.length;t++){let e=l.state.Mt[t],i=this.pr(e,s);if(null!==i){let t=new T({state:i},l);n.add(t,this.Qr),this.Yr}}}let h=null;if(null===r&&s!==i.EOF&&(1===n.items.length||this.Mr(n)!==Q.de)&&(h=n),null===h){h=new zt(e);let t=new g,r=s===i.EOF;for(let s=0;s<n.items.length;s++)this.Sr(n.items[s],h,t,!1,e,r)}if(s===i.EOF&&(h=this.mh(h,h===n)),!(null===r||e&&ss.Or(h)))for(let t=0;t<r.length;t++)h.add(r[t],this.Qr);return this.Ms,0===h.items.length?null:h}mh(t,s){if(ss.br(t))return t;let e=new zt(t.bn);for(let n=0;n<t.items.length;n++){let r=t.items[n];if(r.state instanceof A)e.add(r,this.Qr);else if(s&&r.state._t&&this.Pt.he(r.state).contains(i.EPSILON)){let t=this.Pt.Zs[r.state.Dt];e.add(new T({state:t},r),this.Qr)}}return e}nr(t,s,e){let i=K(this.Pt,s),n=new zt(e);this.Ms;for(let s=0;s<t.Mt.length;s++){let r=t.Mt[s].target,h=new T({state:r,alt:s+1,context:i},null),l=new g;this.Sr(h,n,l,!0,e,!1)}return n}rh(t){let s,e=[],i=new zt(t.bn);for(let n=0;n<t.items.length;n++){if(s=t.items[n],1!==s.alt)continue;let r=s.ft.rt(this.Kr,this.Jr);null!==r&&(e[s.state.xt]=s.context,r!==s.ft?i.add(new T({ft:r},s),this.Qr):i.add(s,this.Qr))}for(let n=0;n<t.items.length;n++)if(s=t.items[n],1!==s.alt){if(!s.gt){let t=e[s.state.xt]||null;if(null!==t&&t.equals(s.context))continue}i.add(s,this.Qr)}return i}pr(t,s){return t.matches(s,0,this.Pt.$s)?t.target:null}xh(t,s,e){let i=[];for(let e=0;e<s.items.length;e++){let n=s.items[e];t.get(n.alt)&&(i[n.alt]=w.ut(i[n.alt]||null,n.ft))}let n=0;for(let t=1;t<e+1;t++){let s=i[t]||null;null===s?i[t]=w.NONE:s!==w.NONE&&(n+=1)}return 0===n&&(i=null),this.debug,i}Sh(t,s){let e=[],i=!1;for(let n=1;n<s.length;n++){let r=s[n];null!==t&&t.get(n)&&e.push(new Yt(r,n)),r!==w.NONE&&(i=!0)}return i?e:null}ah(t,s){let e=this.Th(t,s),i=e[0],n=e[1],r=this.kh(i);return r!==Q.de||n.items.length>0&&(r=this.kh(n),r!==Q.de)?r:Q.de}kh(t){let s=[];for(let e=0;e<t.items.length;e++){let i=t.items[e];(i.dt>0||i.state instanceof A&&i.context.Is())&&s.indexOf(i.alt)<0&&s.push(i.alt)}return 0===s.length?Q.de:Math.min.apply(null,s)}Th(t,s){let e=new zt(t.bn),i=new zt(t.bn);for(let n=0;n<t.items.length;n++){let r=t.items[n];r.ft!==w.NONE?r.ft.evaluate(this.Kr,s)?e.add(r):i.add(r):e.add(r)}return[e,i]}oh(t,s,e){let i=new J;for(let n=0;n<t.length;n++){let r=t[n];if(r.Ar===w.NONE){if(i.set(r.alt),!e)break;continue}let h=r.Ar.evaluate(this.Kr,s);if(this.debug||this.vr,h&&(this.debug||this.vr,i.set(r.alt),!e))break}return i}Sr(t,s,e,i,n,r){this.yh(t,s,e,i,n,0,r)}yh(t,s,e,i,n,r,h){if(this.Ms||this.Xr,t.state instanceof A){if(!t.context.Ns()){for(let l=0;l<t.context.length;l++){if(t.context.Fs(l)===B.Ds){if(n){s.add(new T({state:t.state,context:B.EMPTY},t),this.Qr);continue}this.debug,this.Ah(t,s,e,i,n,r,h);continue}let u=this.Pt.states[t.context.Fs(l)],a=t.context.getParent(l),c={state:u,alt:t.alt,context:a,ft:t.ft},o=new T(c,null);o.dt=t.dt,this.yh(o,s,e,i,n,r-1,h)}return}if(n)return void s.add(t,this.Qr);this.debug}this.Ah(t,s,e,i,n,r,h)}Ah(t,s,e,i,n,r,h){let l=t.state;l._t||s.add(t,this.Qr);for(let u=0;u<l.Mt.length;u++){if(0===u&&this.Ch(t))continue;let a=l.Mt[u],c=i&&!(a instanceof ft),o=this.mr(t,a,c,0===r,n,h);if(null!==o){let i=r;if(t.state instanceof A){if(null!==this.$r&&this.$r.sh&&a.Ce===this.$r.nh.Dt&&(o.gt=!0),o.dt+=1,e.et(o)!==o)continue;s.Pn=!0,i-=1,this.debug}else{if(!a.Vt&&e.et(o)!==o)continue;a instanceof E&&i>=0&&(i+=1)}this.yh(o,s,e,c,n,i,h)}}}Ch(t){let s=t.state;if(s.Ft!==v.Qt)return!1;if(s.Ft!==v.Qt||!s.Te||t.context.Ns()||t.context.Is())return!1;let e=t.context.length;for(let i=0;i<e;i++)if(this.Pt.states[t.context.Fs(i)].Dt!==s.Dt)return!1;let i=s.Mt[0].target.we.xt,n=this.Pt.states[i];for(let i=0;i<e;i++){let e=t.context.Fs(i),r=this.Pt.states[e];if(1!==r.Mt.length||!r.Mt[0].Vt)return!1;let h=r.Mt[0].target;if(!(r.Ft===v.Jt&&h===s||r===n||h===n||h.Ft===v.Jt&&1===h.Mt.length&&h.Mt[0].Vt&&h.Mt[0].target===s))return!1}return!0}Eh(t){return null!==this.Kr&&t>=0?this.Kr.us[t]:"<rule "+t+">"}mr(t,s,e,n,r,h){switch(s.rs){case C.RULE:return this.bh(t,s);case C.PRECEDENCE:return this.Nh(t,s,e,n,r);case C.PREDICATE:return this.Rh(t,s,e,n,r);case C.ACTION:return this.Lh(t,s);case C.EPSILON:return new T({state:s.target},t);case C.ATOM:case C.RANGE:case C.SET:return h&&s.matches(i.EOF,0,1)?new T({state:s.target},t):null;default:return null}}Lh(t,s){return this.debug&&(-1===s.ve||s.ve),new T({state:s.target},t)}Nh(t,s,e,i,n){this.debug&&this.Kr;let r=null;if(e&&i)if(n){let e=this.$i.index;this.$i.seek(this.Gr);let i=s.Ne().evaluate(this.Kr,this.Jr);this.$i.seek(e),i&&(r=new T({state:s.target},t))}else{let e=w.ht(t.ft,s.Ne());r=new T({state:s.target,ft:e},t)}else r=new T({state:s.target},t);return this.debug,r}Rh(t,s,e,i,n){this.debug&&this.Kr;let r=null;if(e&&(s.Ae&&i||!s.Ae))if(n){let e=this.$i.index;this.$i.seek(this.Gr);let i=s.Ne().evaluate(this.Kr,this.Jr);this.$i.seek(e),i&&(r=new T({state:s.target},t))}else{let e=w.ht(t.ft,s.Ne());r=new T({state:s.target,ft:e},t)}else r=new T({state:s.target},t);return this.debug,r}bh(t,s){this.debug;let e=s.ns,i=z.create(t.context,e.xt);return new T({state:s.target,context:i},t)}gh(t){let s=ss.Nr(t);return ss.qr(s)}ph(t){let s=null;return t.Rn!==Q.de?(s=new J,s.set(t.Rn)):s=t.Ln,s}yr(t){return t===i.EOF?"EOF":null===this.Kr||null===this.Kr.Ai||t>=this.Kr.Ai.length&&t>=this.Kr.Ei.length?""+t:(this.Kr.Ai[t]||this.Kr.Ei[t])+"<"+t+">"}Oh(t){return this.yr(t.LA(1))}Ph(t){let s=t.Ih();for(let t=0;t<s.length;t++){let e=s[t],i="no edges";if(e.state.Mt.length>0){let t=e.state.Mt[0];t instanceof ct?i="Atom "+this.yr(t.label):t instanceof b&&(i=(t instanceof N?"~":"")+"Set "+t.set)}}}uh(t,s,e,i){return new es(this.Kr,t,t.get(i),t.LT(1),e,s)}Mr(t){let s=Q.de;for(let e=0;e<t.items.length;e++){let i=t.items[e];if(s===Q.de)s=i.alt;else if(i.alt!==s)return Q.de}return s}wr(t,s,e,i){return this.debug,null===i?null:(i=this.rr(t,i),null===s||e<-1||e>this.Pt.$s||(null===s.Hn&&(s.Hn=[]),s.Hn[e+1]=i,this.debug&&(null===this.Kr||this.Kr.Ai,null===this.Kr||this.Kr.Ei)),i)}rr(t,s){if(s===jt.ERROR)return s;let e=t.states.get(s);return null!==e?(this.Ms,e):(s.xt=t.states.length,s.Nn.readOnly||(s.Nn.Dn(this),s.Nn.qn(!0)),this.Ms,t.states.add(s),this.debug,s)}gi(t,s,e,i,n){(this.debug||this.Zr)&&new k(i,n+1),null!==this.Kr&&this.Kr.qi().gi(this.Kr,t,i,n,s,e)}wi(t,s,e,i,n){(this.debug||this.Zr)&&new k(i,n+1),null!==this.Kr&&this.Kr.qi().wi(this.Kr,t,i,n,s,e)}di(t,s,e,i,n,r,h){(this.debug||this.Zr)&&new k(e,i+1),null!==this.Kr&&this.Kr.qi().di(this.Kr,t,e,i,n,r,h)}},PredictionContextCache:class{constructor(){this.cache=new j}add(t){if(t===B.EMPTY)return B.EMPTY;let s=this.cache.get(t)||null;return null!==s?s:(this.cache.set(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}}};class rs{constructor(t,s,e){this.Fh=t,this.Ai=s||[],this.Ei=e||[]}toString(){if(null===this.Fh.sr)return null;let t="",s=this.Fh.Dh();for(let e=0;e<s.length;e++){let i=s[e];if(null!==i.Hn){let s=i.Hn.length;for(let e=0;e<s;e++){let s=i.Hn[e]||null;null!==s&&2147483647!==s.xt&&(t=t.concat(this._h(i)),t=t.concat("-"),t=t.concat(this.Mh(e)),t=t.concat("->"),t=t.concat(this._h(s)),t=t.concat("\n"))}}}return 0===t.length?null:t}Mh(t){return 0===t?"EOF":null!==this.Ai||null!==this.Ei?this.Ai[t-1]||this.Ei[t-1]:String.fromCharCode(t-1)}_h(t){let s=(t.Bn?":":"")+"s"+t.xt+(t.Un?"^":"");return t.Bn?null!==t.jn?s+"=>"+d(t.jn):s+"=>"+t.Vn.toString():s}}class hs extends rs{constructor(t){super(t,null)}Mh(t){return"'"+String.fromCharCode(t)+"'"}}const ls={DFA:class{constructor(t,s){if(void 0===s&&(s=0),this.nh=t,this.ce=s,this.qh=new g,this.sr=null,this.sh=!1,t instanceof ht&&t.Te){this.sh=!0;let t=new Ut(null,new zt);t.Hn=[],t.Bn=!1,t.Un=!1,this.sr=t}}eh(t){if(!this.sh)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.sr.Hn.length?null:this.sr.Hn[t]||null}hh(t,s){if(!this.sh)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.sr.Hn[t]=s)}Hh(t){if(this.sh!==t){if(this.qh=new g,t){let t=new Ut(null,new zt);t.Hn=[],t.Bn=!1,t.Un=!1,this.sr=t}else this.sr=null;this.sh=t}}Dh(){return this.qh.values().sort(function(t,s){return t.xt-s.xt})}toString(t,s){return t=t||null,s=s||null,null===this.sr?"":new rs(this,t,s).toString()}Bh(){return null===this.sr?"":new hs(this).toString()}get states(){return this.qh}}},us={ParseTreeVisitor:class{Vh(t){return Array.isArray(t)?t.map(function(t){return t.accept(this)},this):t.accept(this)}Os(t){return t.children?this.Vh(t.children):null}zh(t){}Uh(t){}}},as={RecognitionException:Mt,NoViableAltException:es};class cs extends Mt{constructor(t,s,e){super({message:os(s,e||null),Ui:t,input:t.T(),ji:t.Br});let i=t.Si.Pt.states[t.state].Mt[0];i instanceof wt?(this.Dt=i.Dt,this.jh=i.Ee):(this.Dt=0,this.jh=0),this.Kh=s,this.Ki=t.Vr()}}function os(t,s){return null!==s?s:"failed predicate: {"+t+"}?"}class fs extends Mt{constructor(t){super({message:"",Ui:t,input:t.T(),ji:t.Br}),this.Ki=t.Vr()}}class ds{reset(t){}Wh(t){}fn(t,s){}sync(t){}Gh(t){}reportError(t){}}class gs extends ds{constructor(){super(),this.Jh=!1,this.$h=-1,this.Qh=null,this.Xh=null,this.Yh=0}reset(t){this.Zh(t)}tl(t){this.Jh=!0}Gh(t){return this.Jh}Zh(t){this.Jh=!1,this.Qh=null,this.$h=-1}sl(t){this.Zh(t)}reportError(t,s){this.Gh(t)||(this.tl(t),s instanceof es?this.el(t,s):s instanceof fs?this.il(t,s):s instanceof cs?this.nl(t,s):t.rl(s.Di(),s.getMessage(),s))}fn(t,s){this.$h===t.T().index&&null!==this.Qh&&this.Qh.indexOf(t.state)>=0&&t.M(),this.$h=t.$i.index,null===this.Qh&&(this.Qh=[]),this.Qh.push(t.state);let e=this.hl(t);this.ll(t,e)}sync(t){if(this.Gh(t))return;let s=t.Si.Pt.states[t.state],e=t.ul().LA(1),n=t.Pt.he(s);if(n.contains(e))return this.Xh=null,void(this.Yh=v.It);if(n.contains(i.EPSILON))null===this.Xh&&(this.Xh=t.Br,this.al=t.mi);else switch(s.Ft){case v.Ut:case v.Kt:case v.jt:case v.Qt:if(null!==this.cl(t))return;throw new fs(t);case v.Xt:case v.$t:{this.ol(t);let s=new y;s.Ct(t.fe());let e=s.Ct(this.hl(t));this.ll(t,e)}}}el(t,s){let e,n=t.ul();e=null!==n?s.zr.type===i.EOF?"<EOF>":n.q(new k(s.zr.o,s.Ki.o)):"<unknown input>";let r="no viable alternative at input "+this.fl(e);t.rl(r,s.Ki,s)}il(t,s){let e="mismatched input "+this._i(s.Ki)+" expecting "+s.fe().toString(t.Ai,t.Ei);t.rl(e,s.Ki,s)}nl(t,s){let e="rule "+t.us[t.Br.Dt]+" "+s.message;t.rl(e,s.Ki,s)}ol(t){if(this.Gh(t))return;this.tl(t);let s=t.Vr(),e="extraneous input "+this._i(s)+" expecting "+this.fe(t).toString(t.Ai,t.Ei);t.rl(e,s,null)}dl(t){if(this.Gh(t))return;this.tl(t);let s=t.Vr(),e="missing "+this.fe(t).toString(t.Ai,t.Ei)+" at "+this._i(s);t.rl(e,s,null)}Wh(t){let s=this.cl(t);if(null!==s)return t.M(),s;if(this.gl(t))return this.wl(t);throw new fs(t)}gl(t){let s=t.ul().LA(1),e=t.Si.Pt,i=e.states[t.state].Mt[0].target;return!!e.he(i,t.Br).contains(s)&&(this.dl(t),!0)}cl(t){let s=t.ul().LA(2);if(this.fe(t).contains(s)){this.ol(t),t.M();let s=t.Vr();return this.sl(t),s}return null}wl(t){let s,e=t.Vr(),n=this.fe(t).first();s=n===i.EOF?"<missing EOF>":"<missing "+t.Ai[n]+">";let r=e,h=t.ul().LT(-1);return r.type===i.EOF&&null!==h&&(r=h),t.pl().create(r.source,n,s,i.N,-1,-1,r.line,r.p)}fe(t){return t.fe()}_i(t){if(null===t)return"<no token>";let s=t.text;return null===s&&(s=t.type===i.EOF?"<EOF>":"<"+t.type+">"),this.fl(s)}fl(t){return"'"+(t=(t=(t=t.replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t"))+"'"}hl(t){let s=t.Si.Pt,e=t.Br,n=new y;for(;null!==e&&e.Es>=0;){let t=s.states[e.Es].Mt[0],i=s.he(t.ns);n.Ct(i),e=e.Cs}return n.bt(i.EPSILON),n}ll(t,s){let e=t.ul().LA(1);for(;e!==i.EOF&&!s.contains(e);)t.M(),e=t.ul().LA(1)}}class ws{zh(t){}Uh(t){}xl(t){}Sl(t){}}class ps extends ws{constructor(t){super(),this.Kr=t}xl(t){}zh(t){}Sl(t){}}class xs extends It{constructor(t){super(),this.$i=null,this.ml=new gs,this.Tl=[],this.Tl.push(0),this.Br=null,this.kl=!0,this.yl=null,this.vl=null,this.Al=0,this.Cl(t)}reset(){null!==this.$i&&this.$i.seek(0),this.ml.reset(this),this.Br=null,this.Al=0,this.El(!1),this.Tl=[],this.Tl.push(0),null!==this.Si&&this.Si.reset()}match(t){let s=this.Vr();return s.type===t?(this.ml.sl(this),this.M()):(s=this.ml.Wh(this),this.kl&&-1===s.o&&this.Br.bl(s)),s}Nl(){let t=this.Vr();return t.type>0?(this.ml.sl(this),this.M()):(t=this.ml.Wh(this),this.kl&&-1===t.o&&this.Br.bl(t)),t}Rl(){return this.vl||[]}Ll(t){if(null===t)throw"listener";null===this.vl&&(this.vl=[]),this.vl.push(t)}Ol(t){if(null!==this.vl){let s=this.vl.indexOf(t);s>=0&&this.vl.splice(s,1),0===this.vl.length&&(this.vl=null)}}Pl(){this.vl=null}Il(){if(null!==this.vl){let t=this.Br;this.vl.forEach(function(s){s.xl(t),t.Fl(s)})}}Dl(){if(null!==this.vl){let t=this.Br;this.vl.slice(0).reverse().forEach(function(s){t._l(s),s.Sl(t)})}}pl(){return this.$i.Ml.Qi}ql(t){this.$i.Ml.Qi=t}Hl(){let t=this.Bl();if(null===t)throw"The current parser does not support an ATN with bypass alternatives.";let s=this.Vl[t];if(null===s){let e=new St;e.Oe=!0,s=new Rt(e).Ke(t),this.Vl[t]=s}return s}T(){return this.ul()}Cl(t){this.zl(t)}ul(){return this.$i}zl(t){this.$i=null,this.reset(),this.$i=t}get Ul(){return this.Al}Vr(){return this.$i.LT(1)}rl(t,s,e){e=e||null,null===(s=s||null)&&(s=this.Vr()),this.Al+=1;let i=s.line,n=s.p;this.qi().fi(this,s,i,n,t,e)}M(){let t=this.Vr();t.type!==i.EOF&&this.T().M();let s=null!==this.vl&&this.vl.length>0;if(this.kl||s){let e;e=this.ml.Gh(this)?this.Br.bl(t):this.Br.jl(t),e.Es=this.state,s&&this.vl.forEach(function(t){e instanceof _||void 0!==e.Kl&&e.Kl()?t.Uh(e):e instanceof D&&t.zh(e)})}return t}Wl(){null!==this.Br.Cs&&this.Br.Cs.Gl(this.Br)}Fl(t,s,e){this.state=s,this.Br=t,this.Br.start=this.$i.LT(1),this.kl&&this.Wl(),this.Il()}_l(){this.Br.stop=this.$i.LT(-1),this.Dl(),this.state=this.Br.Es,this.Br=this.Br.Cs}Jl(t,s){t.Ls(s),this.kl&&this.Br!==t&&null!==this.Br.Cs&&(this.Br.Cs.$l(),this.Br.Cs.Gl(t)),this.Br=t}ih(){return 0===this.Tl.length?-1:this.Tl[this.Tl.length-1]}Ql(t,s,e,i){this.state=s,this.Tl.push(i),this.Br=t,this.Br.start=this.$i.LT(1),this.Il()}Xl(t,s,e){let i=this.Br;i.Cs=t,i.Es=s,i.stop=this.$i.LT(-1),this.Br=t,this.Br.start=i.start,this.kl&&this.Br.Gl(i),this.Il()}Yl(t){this.Tl.pop(),this.Br.stop=this.$i.LT(-1);let s=this.Br,e=this.Rl();if(null!==e&&e.length>0)for(;this.Br!==t;)this.Dl(),this.Br=this.Br.Cs;else this.Br=t;s.Cs=t,this.kl&&null!==t&&t.Gl(s)}Zl(t){let s=this.Br;for(;null!==s;){if(s.Dt===t)return s;s=s.Cs}return null}Re(t,s){return s>=this.Tl[this.Tl.length-1]}tu(t){return!1}su(t){let s=this.Si.Pt,e=this.Br,n=s.states[this.state],r=s.he(n);if(r.contains(t))return!0;if(!r.contains(i.EPSILON))return!1;for(;null!==e&&e.Es>=0&&r.contains(i.EPSILON);){let i=s.states[e.Es].Mt[0];if(r=s.he(i.ns),r.contains(t))return!0;e=e.Cs}return!(!r.contains(i.EPSILON)||t!==i.EOF)}fe(){return this.Si.Pt.fe(this.state,this.Br)}eu(){let t=this.Si.Pt,s=t.states[this.state];return t.he(s)}iu(t){let s=this.Oi()[t];return null!==s?s:-1}nu(t){null===(t=t||null)&&(t=this.Br);let s=[];for(;null!==t;){let e=t.Dt;e<0?s.push("n/a"):s.push(this.us[e]),t=t.Cs}return s}ru(){return this.Si.Xn.toString()}hu(){let t=!1;for(let s=0;s<this.Si.Xn.length;s++){let e=this.Si.Xn[s];e.states.length>0&&(this.uu.lu("Decision "+e.ce+":"),this.uu.print(e.toString(this.Ai,this.Ei)),t=!0)}}au(){return this.$i.au()}El(t){t?(null!==this.yl&&this.Ol(this.yl),this.yl=new ps(this),this.Ll(this.yl)):(this.Ol(this.yl),this.yl=null)}}xs.Vl={};class Ss extends D{constructor(t){super(),this.Cs=null,this.ws=t}ds(t){return null}cu(){return this.ws}getParent(){return this.Cs}ps(){return this.ws}Rs(){if(null===this.ws)return k.kt;let t=this.ws.o;return new k(t,t)}fs(){return 0}accept(t){return t.zh(this)}q(){return this.ws.text}toString(){return this.ws.type===i.EOF?"<EOF>":this.ws.text}}class ms extends Ss{constructor(t){super(t)}Kl(){return!0}accept(t){return t.Uh(this)}}class Ts extends H{constructor(t,s){super(t,s),this.children=null,this.start=null,this.stop=null,this.exception=null}ou(t){this.Cs=t.Cs,this.Es=t.Es,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(t){t instanceof ms&&(this.children.push(t),t.Cs=this)},this))}Fl(t){}_l(t){}Gl(t){return null===this.children&&(this.children=[]),this.children.push(t),t}$l(){null!==this.children&&this.children.pop()}jl(t){let s=new Ss(t);return this.Gl(s),s.Cs=this,s}bl(t){let s=new ms(t);return this.Gl(s),s.Cs=this,s}ds(t,s){if(s=s||null,null===this.children||t<0||t>=this.children.length)return null;if(null===s)return this.children[t];for(let e=0;e<this.children.length;e++){let i=this.children[e];if(i instanceof s){if(0===t)return i;t-=1}}return null}fu(t,s){if(null===this.children||s<0||s>=this.children.length)return null;for(let e=0;e<this.children.length;e++){let i=this.children[e];if(i instanceof D&&i.ws.type===t){if(0===s)return i;s-=1}}return null}du(t){if(null===this.children)return[];{let s=[];for(let e=0;e<this.children.length;e++){let i=this.children[e];i instanceof D&&i.ws.type===t&&s.push(i)}return s}}gu(t,s){return this.ds(s,t)}wu(t){if(null===this.children)return[];{let s=[];for(let e=0;e<this.children.length;e++){let i=this.children[e];i instanceof t&&s.push(i)}return s}}fs(){return null===this.children?0:this.children.length}Rs(){return null===this.start||null===this.stop?k.kt:new k(this.start.o,this.stop.o)}}H.EMPTY=new Ts;const ks={Pt:ns,Fh:ls,error:as,pu:us,Lexer:Ht,Parser:xs,ParserRuleContext:Ts},ys=(new ks.Pt.ATNDeserializer).Ke([4,0,308,3229,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,13,1,14,1,14,1,15,1,15,1,15,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,23,1,23,1,23,1,24,1,24,1,25,1,25,1,26,1,26,1,27,1,27,1,28,1,28,1,29,1,29,1,29,4,29,692,8,29,11,29,12,29,693,3,29,696,8,29,1,29,1,29,5,29,700,8,29,10,29,12,29,703,9,29,1,29,1,29,4,29,707,8,29,11,29,12,29,708,3,29,711,8,29,1,29,1,29,1,29,4,29,716,8,29,11,29,12,29,717,3,29,720,8,29,1,29,1,29,5,29,724,8,29,10,29,12,29,727,9,29,1,29,1,29,4,29,731,8,29,11,29,12,29,732,3,29,735,8,29,3,29,737,8,29,1,29,1,29,3,29,741,8,29,1,29,1,29,3,29,745,8,29,3,29,747,8,29,1,30,1,30,1,30,1,30,5,30,753,8,30,10,30,12,30,756,9,30,1,30,1,30,1,30,1,30,1,30,5,30,763,8,30,10,30,12,30,766,9,30,1,30,1,30,1,30,1,30,1,30,5,30,773,8,30,10,30,12,30,776,9,30,1,30,3,30,779,8,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,3,33,835,8,33,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,3,51,959,8,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,968,8,52,1,53,1,53,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,3,145,1576,8,145,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,3,151,1627,8,151,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,3,157,1667,8,157,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,3,169,1745,8,169,1,170,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,3,199,1963,8,199,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,3,200,1991,8,200,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,3,210,2070,8,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,3,211,2085,8,211,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,3,212,2104,8,212,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,3,215,2133,8,215,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,3,216,2144,8,216,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,3,217,2163,8,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,3,218,2180,8,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,3,219,2202,8,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,3,220,2222,8,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,3,221,2241,8,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,3,222,2258,8,222,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,3,223,2279,8,223,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,3,224,2300,8,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,3,225,2313,8,225,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,3,226,2324,8,226,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,2362,8,229,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,3,230,2381,8,230,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,3,231,2405,8,231,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,3,232,2430,8,232,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,3,233,2449,8,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,3,234,2474,8,234,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,3,235,2501,8,235,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,3,236,2522,8,236,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,3,237,2535,8,237,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,3,238,2546,8,238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,1,264,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,3,266,2757,8,266,1,267,1,267,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,3,276,2840,8,276,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,3,277,2854,8,277,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,280,1,280,1,280,1,280,1,280,1,280,1,281,1,281,1,281,1,281,1,281,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,289,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,3,293,3034,8,293,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,3,301,3132,8,301,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,3,302,3155,8,302,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,3,303,3183,8,303,1,304,1,304,3,304,3187,8,304,1,304,1,304,5,304,3191,8,304,10,304,12,304,3194,9,304,1,305,1,305,1,306,4,306,3199,8,306,11,306,12,306,3200,1,306,1,306,1,307,1,307,1,307,1,307,5,307,3209,8,307,10,307,12,307,3212,9,307,1,307,1,307,1,307,1,307,1,307,1,308,1,308,1,308,1,308,5,308,3223,8,308,10,308,12,308,3226,9,308,1,308,1,308,1,3210,0,309,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415,208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431,216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447,224,449,225,451,226,453,227,455,228,457,229,459,230,461,231,463,232,465,233,467,234,469,235,471,236,473,237,475,238,477,239,479,240,481,241,483,242,485,243,487,244,489,245,491,246,493,247,495,248,497,249,499,250,501,251,503,252,505,253,507,254,509,255,511,256,513,257,515,258,517,259,519,260,521,261,523,262,525,263,527,264,529,265,531,266,533,267,535,268,537,269,539,270,541,271,543,272,545,273,547,274,549,275,551,276,553,277,555,278,557,279,559,280,561,281,563,282,565,283,567,284,569,285,571,286,573,287,575,288,577,289,579,290,581,291,583,292,585,293,587,294,589,295,591,296,593,297,595,298,597,299,599,300,601,301,603,302,605,303,607,304,609,305,611,0,613,306,615,307,617,308,1,0,11,1,0,48,57,1,0,49,57,2,0,43,43,45,45,1,0,39,39,1,0,34,34,1,0,96,96,2,0,65,90,95,95,3,0,48,57,65,90,95,95,10,0,192,214,216,246,248,8191,11264,12287,12352,12687,13056,13183,13312,16383,19968,55295,63744,64255,65280,65520,3,0,9,10,12,13,32,32,2,0,10,10,13,13,3317,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0,0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1,0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0,0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,0,531,1,0,0,0,0,533,1,0,0,0,0,535,1,0,0,0,0,537,1,0,0,0,0,539,1,0,0,0,0,541,1,0,0,0,0,543,1,0,0,0,0,545,1,0,0,0,0,547,1,0,0,0,0,549,1,0,0,0,0,551,1,0,0,0,0,553,1,0,0,0,0,555,1,0,0,0,0,557,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563,1,0,0,0,0,565,1,0,0,0,0,567,1,0,0,0,0,569,1,0,0,0,0,571,1,0,0,0,0,573,1,0,0,0,0,575,1,0,0,0,0,577,1,0,0,0,0,579,1,0,0,0,0,581,1,0,0,0,0,583,1,0,0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,1,0,0,0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,0,603,1,0,0,0,0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,0,613,1,0,0,0,0,615,1,0,0,0,0,617,1,0,0,0,1,619,1,0,0,0,3,621,1,0,0,0,5,623,1,0,0,0,7,625,1,0,0,0,9,627,1,0,0,0,11,629,1,0,0,0,13,631,1,0,0,0,15,633,1,0,0,0,17,635,1,0,0,0,19,637,1,0,0,0,21,639,1,0,0,0,23,641,1,0,0,0,25,643,1,0,0,0,27,645,1,0,0,0,29,648,1,0,0,0,31,650,1,0,0,0,33,653,1,0,0,0,35,655,1,0,0,0,37,658,1,0,0,0,39,662,1,0,0,0,41,666,1,0,0,0,43,669,1,0,0,0,45,672,1,0,0,0,47,675,1,0,0,0,49,678,1,0,0,0,51,680,1,0,0,0,53,682,1,0,0,0,55,684,1,0,0,0,57,686,1,0,0,0,59,746,1,0,0,0,61,778,1,0,0,0,63,780,1,0,0,0,65,785,1,0,0,0,67,834,1,0,0,0,69,836,1,0,0,0,71,839,1,0,0,0,73,843,1,0,0,0,75,850,1,0,0,0,77,858,1,0,0,0,79,867,1,0,0,0,81,874,1,0,0,0,83,882,1,0,0,0,85,892,1,0,0,0,87,902,1,0,0,0,89,909,1,0,0,0,91,915,1,0,0,0,93,922,1,0,0,0,95,936,1,0,0,0,97,940,1,0,0,0,99,943,1,0,0,0,101,947,1,0,0,0,103,958,1,0,0,0,105,967,1,0,0,0,107,969,1,0,0,0,109,971,1,0,0,0,111,974,1,0,0,0,113,982,1,0,0,0,115,990,1,0,0,0,117,998,1,0,0,0,119,1006,1,0,0,0,121,1014,1,0,0,0,123,1022,1,0,0,0,125,1030,1,0,0,0,127,1038,1,0,0,0,129,1046,1,0,0,0,131,1054,1,0,0,0,133,1062,1,0,0,0,135,1070,1,0,0,0,137,1074,1,0,0,0,139,1083,1,0,0,0,141,1087,1,0,0,0,143,1092,1,0,0,0,145,1097,1,0,0,0,147,1103,1,0,0,0,149,1107,1,0,0,0,151,1111,1,0,0,0,153,1115,1,0,0,0,155,1122,1,0,0,0,157,1129,1,0,0,0,159,1137,1,0,0,0,161,1145,1,0,0,0,163,1149,1,0,0,0,165,1154,1,0,0,0,167,1158,1,0,0,0,169,1163,1,0,0,0,171,1167,1,0,0,0,173,1172,1,0,0,0,175,1176,1,0,0,0,177,1181,1,0,0,0,179,1185,1,0,0,0,181,1190,1,0,0,0,183,1194,1,0,0,0,185,1199,1,0,0,0,187,1204,1,0,0,0,189,1210,1,0,0,0,191,1215,1,0,0,0,193,1221,1,0,0,0,195,1226,1,0,0,0,197,1232,1,0,0,0,199,1237,1,0,0,0,201,1243,1,0,0,0,203,1249,1,0,0,0,205,1255,1,0,0,0,207,1265,1,0,0,0,209,1273,1,0,0,0,211,1281,1,0,0,0,213,1287,1,0,0,0,215,1292,1,0,0,0,217,1296,1,0,0,0,219,1303,1,0,0,0,221,1308,1,0,0,0,223,1320,1,0,0,0,225,1325,1,0,0,0,227,1336,1,0,0,0,229,1342,1,0,0,0,231,1346,1,0,0,0,233,1349,1,0,0,0,235,1353,1,0,0,0,237,1359,1,0,0,0,239,1371,1,0,0,0,241,1379,1,0,0,0,243,1386,1,0,0,0,245,1390,1,0,0,0,247,1395,1,0,0,0,249,1403,1,0,0,0,251,1411,1,0,0,0,253,1419,1,0,0,0,255,1427,1,0,0,0,257,1433,1,0,0,0,259,1440,1,0,0,0,261,1446,1,0,0,0,263,1457,1,0,0,0,265,1466,1,0,0,0,267,1475,1,0,0,0,269,1483,1,0,0,0,271,1490,1,0,0,0,273,1496,1,0,0,0,275,1506,1,0,0,0,277,1511,1,0,0,0,279,1520,1,0,0,0,281,1530,1,0,0,0,283,1536,1,0,0,0,285,1543,1,0,0,0,287,1551,1,0,0,0,289,1560,1,0,0,0,291,1575,1,0,0,0,293,1577,1,0,0,0,295,1582,1,0,0,0,297,1588,1,0,0,0,299,1593,1,0,0,0,301,1601,1,0,0,0,303,1626,1,0,0,0,305,1628,1,0,0,0,307,1634,1,0,0,0,309,1639,1,0,0,0,311,1645,1,0,0,0,313,1650,1,0,0,0,315,1666,1,0,0,0,317,1668,1,0,0,0,319,1672,1,0,0,0,321,1679,1,0,0,0,323,1687,1,0,0,0,325,1692,1,0,0,0,327,1698,1,0,0,0,329,1702,1,0,0,0,331,1709,1,0,0,0,333,1720,1,0,0,0,335,1722,1,0,0,0,337,1727,1,0,0,0,339,1744,1,0,0,0,341,1746,1,0,0,0,343,1752,1,0,0,0,345,1762,1,0,0,0,347,1772,1,0,0,0,349,1777,1,0,0,0,351,1782,1,0,0,0,353,1786,1,0,0,0,355,1792,1,0,0,0,357,1797,1,0,0,0,359,1803,1,0,0,0,361,1807,1,0,0,0,363,1812,1,0,0,0,365,1819,1,0,0,0,367,1826,1,0,0,0,369,1834,1,0,0,0,371,1842,1,0,0,0,373,1847,1,0,0,0,375,1855,1,0,0,0,377,1861,1,0,0,0,379,1869,1,0,0,0,381,1881,1,0,0,0,383,1889,1,0,0,0,385,1897,1,0,0,0,387,1901,1,0,0,0,389,1908,1,0,0,0,391,1912,1,0,0,0,393,1921,1,0,0,0,395,1926,1,0,0,0,397,1932,1,0,0,0,399,1962,1,0,0,0,401,1990,1,0,0,0,403,1992,1,0,0,0,405,2e3,1,0,0,0,407,2010,1,0,0,0,409,2018,1,0,0,0,411,2026,1,0,0,0,413,2032,1,0,0,0,415,2040,1,0,0,0,417,2044,1,0,0,0,419,2050,1,0,0,0,421,2069,1,0,0,0,423,2084,1,0,0,0,425,2103,1,0,0,0,427,2105,1,0,0,0,429,2118,1,0,0,0,431,2132,1,0,0,0,433,2143,1,0,0,0,435,2162,1,0,0,0,437,2179,1,0,0,0,439,2201,1,0,0,0,441,2221,1,0,0,0,443,2240,1,0,0,0,445,2257,1,0,0,0,447,2278,1,0,0,0,449,2299,1,0,0,0,451,2312,1,0,0,0,453,2323,1,0,0,0,455,2325,1,0,0,0,457,2332,1,0,0,0,459,2361,1,0,0,0,461,2380,1,0,0,0,463,2404,1,0,0,0,465,2429,1,0,0,0,467,2448,1,0,0,0,469,2473,1,0,0,0,471,2500,1,0,0,0,473,2521,1,0,0,0,475,2534,1,0,0,0,477,2545,1,0,0,0,479,2547,1,0,0,0,481,2555,1,0,0,0,483,2559,1,0,0,0,485,2564,1,0,0,0,487,2569,1,0,0,0,489,2572,1,0,0,0,491,2575,1,0,0,0,493,2580,1,0,0,0,495,2585,1,0,0,0,497,2589,1,0,0,0,499,2594,1,0,0,0,501,2598,1,0,0,0,503,2603,1,0,0,0,505,2608,1,0,0,0,507,2612,1,0,0,0,509,2615,1,0,0,0,511,2619,1,0,0,0,513,2623,1,0,0,0,515,2633,1,0,0,0,517,2643,1,0,0,0,519,2654,1,0,0,0,521,2665,1,0,0,0,523,2678,1,0,0,0,525,2694,1,0,0,0,527,2707,1,0,0,0,529,2723,1,0,0,0,531,2729,1,0,0,0,533,2756,1,0,0,0,535,2758,1,0,0,0,537,2763,1,0,0,0,539,2767,1,0,0,0,541,2772,1,0,0,0,543,2779,1,0,0,0,545,2786,1,0,0,0,547,2794,1,0,0,0,549,2803,1,0,0,0,551,2814,1,0,0,0,553,2839,1,0,0,0,555,2853,1,0,0,0,557,2855,1,0,0,0,559,2863,1,0,0,0,561,2875,1,0,0,0,563,2881,1,0,0,0,565,2886,1,0,0,0,567,2896,1,0,0,0,569,2907,1,0,0,0,571,2916,1,0,0,0,573,2930,1,0,0,0,575,2949,1,0,0,0,577,2961,1,0,0,0,579,2971,1,0,0,0,581,2976,1,0,0,0,583,2988,1,0,0,0,585,2998,1,0,0,0,587,3033,1,0,0,0,589,3035,1,0,0,0,591,3044,1,0,0,0,593,3054,1,0,0,0,595,3062,1,0,0,0,597,3071,1,0,0,0,599,3082,1,0,0,0,601,3093,1,0,0,0,603,3131,1,0,0,0,605,3154,1,0,0,0,607,3182,1,0,0,0,609,3186,1,0,0,0,611,3195,1,0,0,0,613,3198,1,0,0,0,615,3204,1,0,0,0,617,3218,1,0,0,0,619,620,5,46,0,0,620,2,1,0,0,0,621,622,5,40,0,0,622,4,1,0,0,0,623,624,5,41,0,0,624,6,1,0,0,0,625,626,5,44,0,0,626,8,1,0,0,0,627,628,5,91,0,0,628,10,1,0,0,0,629,630,5,93,0,0,630,12,1,0,0,0,631,632,5,33,0,0,632,14,1,0,0,0,633,634,5,37,0,0,634,16,1,0,0,0,635,636,5,42,0,0,636,18,1,0,0,0,637,638,5,47,0,0,638,20,1,0,0,0,639,640,5,43,0,0,640,22,1,0,0,0,641,642,5,38,0,0,642,24,1,0,0,0,643,644,5,62,0,0,644,26,1,0,0,0,645,646,5,62,0,0,646,647,5,61,0,0,647,28,1,0,0,0,648,649,5,60,0,0,649,30,1,0,0,0,650,651,5,60,0,0,651,652,5,61,0,0,652,32,1,0,0,0,653,654,5,61,0,0,654,34,1,0,0,0,655,656,5,61,0,0,656,657,5,61,0,0,657,36,1,0,0,0,658,659,5,61,0,0,659,660,5,61,0,0,660,661,5,61,0,0,661,38,1,0,0,0,662,663,5,33,0,0,663,664,5,61,0,0,664,665,5,61,0,0,665,40,1,0,0,0,666,667,5,33,0,0,667,668,5,61,0,0,668,42,1,0,0,0,669,670,5,60,0,0,670,671,5,62,0,0,671,44,1,0,0,0,672,673,5,38,0,0,673,674,5,38,0,0,674,46,1,0,0,0,675,676,5,124,0,0,676,677,5,124,0,0,677,48,1,0,0,0,678,679,5,63,0,0,679,50,1,0,0,0,680,681,5,58,0,0,681,52,1,0,0,0,682,683,5,123,0,0,683,54,1,0,0,0,684,685,5,125,0,0,685,56,1,0,0,0,686,687,5,45,0,0,687,58,1,0,0,0,688,695,5,48,0,0,689,691,5,46,0,0,690,692,7,0,0,0,691,690,1,0,0,0,692,693,1,0,0,0,693,691,1,0,0,0,693,694,1,0,0,0,694,696,1,0,0,0,695,689,1,0,0,0,695,696,1,0,0,0,696,747,1,0,0,0,697,701,7,1,0,0,698,700,7,0,0,0,699,698,1,0,0,0,700,703,1,0,0,0,701,699,1,0,0,0,701,702,1,0,0,0,702,710,1,0,0,0,703,701,1,0,0,0,704,706,5,46,0,0,705,707,7,0,0,0,706,705,1,0,0,0,707,708,1,0,0,0,708,706,1,0,0,0,708,709,1,0,0,0,709,711,1,0,0,0,710,704,1,0,0,0,710,711,1,0,0,0,711,747,1,0,0,0,712,719,5,48,0,0,713,715,5,46,0,0,714,716,7,0,0,0,715,714,1,0,0,0,716,717,1,0,0,0,717,715,1,0,0,0,717,718,1,0,0,0,718,720,1,0,0,0,719,713,1,0,0,0,719,720,1,0,0,0,720,737,1,0,0,0,721,725,7,1,0,0,722,724,7,0,0,0,723,722,1,0,0,0,724,727,1,0,0,0,725,723,1,0,0,0,725,726,1,0,0,0,726,734,1,0,0,0,727,725,1,0,0,0,728,730,5,46,0,0,729,731,7,0,0,0,730,729,1,0,0,0,731,732,1,0,0,0,732,730,1,0,0,0,732,733,1,0,0,0,733,735,1,0,0,0,734,728,1,0,0,0,734,735,1,0,0,0,735,737,1,0,0,0,736,712,1,0,0,0,736,721,1,0,0,0,737,738,1,0,0,0,738,740,5,69,0,0,739,741,7,2,0,0,740,739,1,0,0,0,740,741,1,0,0,0,741,742,1,0,0,0,742,744,7,0,0,0,743,745,7,0,0,0,744,743,1,0,0,0,744,745,1,0,0,0,745,747,1,0,0,0,746,688,1,0,0,0,746,697,1,0,0,0,746,736,1,0,0,0,747,60,1,0,0,0,748,754,5,39,0,0,749,753,8,3,0,0,750,751,5,92,0,0,751,753,5,39,0,0,752,749,1,0,0,0,752,750,1,0,0,0,753,756,1,0,0,0,754,752,1,0,0,0,754,755,1,0,0,0,755,757,1,0,0,0,756,754,1,0,0,0,757,779,5,39,0,0,758,764,5,34,0,0,759,763,8,4,0,0,760,761,5,92,0,0,761,763,5,34,0,0,762,759,1,0,0,0,762,760,1,0,0,0,763,766,1,0,0,0,764,762,1,0,0,0,764,765,1,0,0,0,765,767,1,0,0,0,766,764,1,0,0,0,767,779,5,34,0,0,768,774,5,96,0,0,769,773,8,5,0,0,770,771,5,92,0,0,771,773,5,96,0,0,772,769,1,0,0,0,772,770,1,0,0,0,773,776,1,0,0,0,774,772,1,0,0,0,774,775,1,0,0,0,775,777,1,0,0,0,776,774,1,0,0,0,777,779,5,96,0,0,778,748,1,0,0,0,778,758,1,0,0,0,778,768,1,0,0,0,779,62,1,0,0,0,780,781,5,78,0,0,781,782,5,85,0,0,782,783,5,76,0,0,783,784,5,76,0,0,784,64,1,0,0,0,785,786,5,69,0,0,786,787,5,82,0,0,787,788,5,82,0,0,788,789,5,79,0,0,789,790,5,82,0,0,790,66,1,0,0,0,791,835,5,77,0,0,792,793,5,75,0,0,793,835,5,77,0,0,794,795,5,68,0,0,795,835,5,77,0,0,796,797,5,67,0,0,797,835,5,77,0,0,798,799,5,77,0,0,799,835,5,77,0,0,800,801,5,77,0,0,801,835,5,50,0,0,802,803,5,75,0,0,803,804,5,77,0,0,804,835,5,50,0,0,805,806,5,68,0,0,806,807,5,77,0,0,807,835,5,50,0,0,808,809,5,67,0,0,809,810,5,77,0,0,810,835,5,50,0,0,811,812,5,77,0,0,812,813,5,77,0,0,813,835,5,50,0,0,814,815,5,77,0,0,815,835,5,51,0,0,816,817,5,75,0,0,817,818,5,77,0,0,818,835,5,51,0,0,819,820,5,68,0,0,820,821,5,77,0,0,821,835,5,51,0,0,822,823,5,67,0,0,823,824,5,77,0,0,824,835,5,51,0,0,825,826,5,77,0,0,826,827,5,77,0,0,827,835,5,51,0,0,828,835,5,76,0,0,829,830,5,77,0,0,830,835,5,76,0,0,831,835,5,71,0,0,832,833,5,75,0,0,833,835,5,71,0,0,834,791,1,0,0,0,834,792,1,0,0,0,834,794,1,0,0,0,834,796,1,0,0,0,834,798,1,0,0,0,834,800,1,0,0,0,834,802,1,0,0,0,834,805,1,0,0,0,834,808,1,0,0,0,834,811,1,0,0,0,834,814,1,0,0,0,834,816,1,0,0,0,834,819,1,0,0,0,834,822,1,0,0,0,834,825,1,0,0,0,834,828,1,0,0,0,834,829,1,0,0,0,834,831,1,0,0,0,834,832,1,0,0,0,835,68,1,0,0,0,836,837,5,73,0,0,837,838,5,70,0,0,838,70,1,0,0,0,839,840,5,73,0,0,840,841,5,70,0,0,841,842,5,83,0,0,842,72,1,0,0,0,843,844,5,83,0,0,844,845,5,87,0,0,845,846,5,73,0,0,846,847,5,84,0,0,847,848,5,67,0,0,848,849,5,72,0,0,849,74,1,0,0,0,850,851,5,73,0,0,851,852,5,70,0,0,852,853,5,69,0,0,853,854,5,82,0,0,854,855,5,82,0,0,855,856,5,79,0,0,856,857,5,82,0,0,857,76,1,0,0,0,858,859,5,73,0,0,859,860,5,83,0,0,860,861,5,78,0,0,861,862,5,85,0,0,862,863,5,77,0,0,863,864,5,66,0,0,864,865,5,69,0,0,865,866,5,82,0,0,866,78,1,0,0,0,867,868,5,73,0,0,868,869,5,83,0,0,869,870,5,84,0,0,870,871,5,69,0,0,871,872,5,88,0,0,872,873,5,84,0,0,873,80,1,0,0,0,874,875,5,73,0,0,875,876,5,83,0,0,876,877,5,69,0,0,877,878,5,82,0,0,878,879,5,82,0,0,879,880,5,79,0,0,880,881,5,82,0,0,881,82,1,0,0,0,882,883,5,73,0,0,883,884,5,83,0,0,884,885,5,78,0,0,885,886,5,79,0,0,886,887,5,78,0,0,887,888,5,84,0,0,888,889,5,69,0,0,889,890,5,88,0,0,890,891,5,84,0,0,891,84,1,0,0,0,892,893,5,73,0,0,893,894,5,83,0,0,894,895,5,76,0,0,895,896,5,79,0,0,896,897,5,71,0,0,897,898,5,73,0,0,898,899,5,67,0,0,899,900,5,65,0,0,900,901,5,76,0,0,901,86,1,0,0,0,902,903,5,73,0,0,903,904,5,83,0,0,904,905,5,69,0,0,905,906,5,86,0,0,906,907,5,69,0,0,907,908,5,78,0,0,908,88,1,0,0,0,909,910,5,73,0,0,910,911,5,83,0,0,911,912,5,79,0,0,912,913,5,68,0,0,913,914,5,68,0,0,914,90,1,0,0,0,915,916,5,73,0,0,916,917,5,83,0,0,917,918,5,78,0,0,918,919,5,85,0,0,919,920,5,76,0,0,920,921,5,76,0,0,921,92,1,0,0,0,922,923,5,73,0,0,923,924,5,83,0,0,924,925,5,78,0,0,925,926,5,85,0,0,926,927,5,76,0,0,927,928,5,76,0,0,928,929,5,79,0,0,929,930,5,82,0,0,930,931,5,69,0,0,931,932,5,82,0,0,932,933,5,82,0,0,933,934,5,79,0,0,934,935,5,82,0,0,935,94,1,0,0,0,936,937,5,65,0,0,937,938,5,78,0,0,938,939,5,68,0,0,939,96,1,0,0,0,940,941,5,79,0,0,941,942,5,82,0,0,942,98,1,0,0,0,943,944,5,88,0,0,944,945,5,79,0,0,945,946,5,82,0,0,946,100,1,0,0,0,947,948,5,78,0,0,948,949,5,79,0,0,949,950,5,84,0,0,950,102,1,0,0,0,951,952,5,84,0,0,952,953,5,82,0,0,953,954,5,85,0,0,954,959,5,69,0,0,955,956,5,89,0,0,956,957,5,69,0,0,957,959,5,83,0,0,958,951,1,0,0,0,958,955,1,0,0,0,959,104,1,0,0,0,960,961,5,70,0,0,961,962,5,65,0,0,962,963,5,76,0,0,963,964,5,83,0,0,964,968,5,69,0,0,965,966,5,78,0,0,966,968,5,79,0,0,967,960,1,0,0,0,967,965,1,0,0,0,968,106,1,0,0,0,969,970,5,69,0,0,970,108,1,0,0,0,971,972,5,80,0,0,972,973,5,73,0,0,973,110,1,0,0,0,974,975,5,68,0,0,975,976,5,69,0,0,976,977,5,67,0,0,977,978,5,50,0,0,978,979,5,66,0,0,979,980,5,73,0,0,980,981,5,78,0,0,981,112,1,0,0,0,982,983,5,68,0,0,983,984,5,69,0,0,984,985,5,67,0,0,985,986,5,50,0,0,986,987,5,72,0,0,987,988,5,69,0,0,988,989,5,88,0,0,989,114,1,0,0,0,990,991,5,68,0,0,991,992,5,69,0,0,992,993,5,67,0,0,993,994,5,50,0,0,994,995,5,79,0,0,995,996,5,67,0,0,996,997,5,84,0,0,997,116,1,0,0,0,998,999,5,72,0,0,999,1e3,5,69,0,0,1e3,1001,5,88,0,0,1001,1002,5,50,0,0,1002,1003,5,66,0,0,1003,1004,5,73,0,0,1004,1005,5,78,0,0,1005,118,1,0,0,0,1006,1007,5,72,0,0,1007,1008,5,69,0,0,1008,1009,5,88,0,0,1009,1010,5,50,0,0,1010,1011,5,68,0,0,1011,1012,5,69,0,0,1012,1013,5,67,0,0,1013,120,1,0,0,0,1014,1015,5,72,0,0,1015,1016,5,69,0,0,1016,1017,5,88,0,0,1017,1018,5,50,0,0,1018,1019,5,79,0,0,1019,1020,5,67,0,0,1020,1021,5,84,0,0,1021,122,1,0,0,0,1022,1023,5,79,0,0,1023,1024,5,67,0,0,1024,1025,5,84,0,0,1025,1026,5,50,0,0,1026,1027,5,66,0,0,1027,1028,5,73,0,0,1028,1029,5,78,0,0,1029,124,1,0,0,0,1030,1031,5,79,0,0,1031,1032,5,67,0,0,1032,1033,5,84,0,0,1033,1034,5,50,0,0,1034,1035,5,68,0,0,1035,1036,5,69,0,0,1036,1037,5,67,0,0,1037,126,1,0,0,0,1038,1039,5,79,0,0,1039,1040,5,67,0,0,1040,1041,5,84,0,0,1041,1042,5,50,0,0,1042,1043,5,72,0,0,1043,1044,5,69,0,0,1044,1045,5,88,0,0,1045,128,1,0,0,0,1046,1047,5,66,0,0,1047,1048,5,73,0,0,1048,1049,5,78,0,0,1049,1050,5,50,0,0,1050,1051,5,79,0,0,1051,1052,5,67,0,0,1052,1053,5,84,0,0,1053,130,1,0,0,0,1054,1055,5,66,0,0,1055,1056,5,73,0,0,1056,1057,5,78,0,0,1057,1058,5,50,0,0,1058,1059,5,68,0,0,1059,1060,5,69,0,0,1060,1061,5,67,0,0,1061,132,1,0,0,0,1062,1063,5,66,0,0,1063,1064,5,73,0,0,1064,1065,5,78,0,0,1065,1066,5,50,0,0,1066,1067,5,72,0,0,1067,1068,5,69,0,0,1068,1069,5,88,0,0,1069,134,1,0,0,0,1070,1071,5,65,0,0,1071,1072,5,66,0,0,1072,1073,5,83,0,0,1073,136,1,0,0,0,1074,1075,5,81,0,0,1075,1076,5,85,0,0,1076,1077,5,79,0,0,1077,1078,5,84,0,0,1078,1079,5,73,0,0,1079,1080,5,69,0,0,1080,1081,5,78,0,0,1081,1082,5,84,0,0,1082,138,1,0,0,0,1083,1084,5,77,0,0,1084,1085,5,79,0,0,1085,1086,5,68,0,0,1086,140,1,0,0,0,1087,1088,5,83,0,0,1088,1089,5,73,0,0,1089,1090,5,71,0,0,1090,1091,5,78,0,0,1091,142,1,0,0,0,1092,1093,5,83,0,0,1093,1094,5,81,0,0,1094,1095,5,82,0,0,1095,1096,5,84,0,0,1096,144,1,0,0,0,1097,1098,5,84,0,0,1098,1099,5,82,0,0,1099,1100,5,85,0,0,1100,1101,5,78,0,0,1101,1102,5,67,0,0,1102,146,1,0,0,0,1103,1104,5,73,0,0,1104,1105,5,78,0,0,1105,1106,5,84,0,0,1106,148,1,0,0,0,1107,1108,5,71,0,0,1108,1109,5,67,0,0,1109,1110,5,68,0,0,1110,150,1,0,0,0,1111,1112,5,76,0,0,1112,1113,5,67,0,0,1113,1114,5,77,0,0,1114,152,1,0,0,0,1115,1116,5,67,0,0,1116,1117,5,79,0,0,1117,1118,5,77,0,0,1118,1119,5,66,0,0,1119,1120,5,73,0,0,1120,1121,5,78,0,0,1121,154,1,0,0,0,1122,1123,5,80,0,0,1123,1124,5,69,0,0,1124,1125,5,82,0,0,1125,1126,5,77,0,0,1126,1127,5,85,0,0,1127,1128,5,84,0,0,1128,156,1,0,0,0,1129,1130,5,68,0,0,1130,1131,5,69,0,0,1131,1132,5,71,0,0,1132,1133,5,82,0,0,1133,1134,5,69,0,0,1134,1135,5,69,0,0,1135,1136,5,83,0,0,1136,158,1,0,0,0,1137,1138,5,82,0,0,1138,1139,5,65,0,0,1139,1140,5,68,0,0,1140,1141,5,73,0,0,1141,1142,5,65,0,0,1142,1143,5,78,0,0,1143,1144,5,83,0,0,1144,160,1,0,0,0,1145,1146,5,67,0,0,1146,1147,5,79,0,0,1147,1148,5,83,0,0,1148,162,1,0,0,0,1149,1150,5,67,0,0,1150,1151,5,79,0,0,1151,1152,5,83,0,0,1152,1153,5,72,0,0,1153,164,1,0,0,0,1154,1155,5,83,0,0,1155,1156,5,73,0,0,1156,1157,5,78,0,0,1157,166,1,0,0,0,1158,1159,5,83,0,0,1159,1160,5,73,0,0,1160,1161,5,78,0,0,1161,1162,5,72,0,0,1162,168,1,0,0,0,1163,1164,5,84,0,0,1164,1165,5,65,0,0,1165,1166,5,78,0,0,1166,170,1,0,0,0,1167,1168,5,84,0,0,1168,1169,5,65,0,0,1169,1170,5,78,0,0,1170,1171,5,72,0,0,1171,172,1,0,0,0,1172,1173,5,67,0,0,1173,1174,5,79,0,0,1174,1175,5,84,0,0,1175,174,1,0,0,0,1176,1177,5,67,0,0,1177,1178,5,79,0,0,1178,1179,5,84,0,0,1179,1180,5,72,0,0,1180,176,1,0,0,0,1181,1182,5,67,0,0,1182,1183,5,83,0,0,1183,1184,5,67,0,0,1184,178,1,0,0,0,1185,1186,5,67,0,0,1186,1187,5,83,0,0,1187,1188,5,67,0,0,1188,1189,5,72,0,0,1189,180,1,0,0,0,1190,1191,5,83,0,0,1191,1192,5,69,0,0,1192,1193,5,67,0,0,1193,182,1,0,0,0,1194,1195,5,83,0,0,1195,1196,5,69,0,0,1196,1197,5,67,0,0,1197,1198,5,72,0,0,1198,184,1,0,0,0,1199,1200,5,65,0,0,1200,1201,5,67,0,0,1201,1202,5,79,0,0,1202,1203,5,83,0,0,1203,186,1,0,0,0,1204,1205,5,65,0,0,1205,1206,5,67,0,0,1206,1207,5,79,0,0,1207,1208,5,83,0,0,1208,1209,5,72,0,0,1209,188,1,0,0,0,1210,1211,5,65,0,0,1211,1212,5,83,0,0,1212,1213,5,73,0,0,1213,1214,5,78,0,0,1214,190,1,0,0,0,1215,1216,5,65,0,0,1216,1217,5,83,0,0,1217,1218,5,73,0,0,1218,1219,5,78,0,0,1219,1220,5,72,0,0,1220,192,1,0,0,0,1221,1222,5,65,0,0,1222,1223,5,84,0,0,1223,1224,5,65,0,0,1224,1225,5,78,0,0,1225,194,1,0,0,0,1226,1227,5,65,0,0,1227,1228,5,84,0,0,1228,1229,5,65,0,0,1229,1230,5,78,0,0,1230,1231,5,72,0,0,1231,196,1,0,0,0,1232,1233,5,65,0,0,1233,1234,5,67,0,0,1234,1235,5,79,0,0,1235,1236,5,84,0,0,1236,198,1,0,0,0,1237,1238,5,65,0,0,1238,1239,5,67,0,0,1239,1240,5,79,0,0,1240,1241,5,84,0,0,1241,1242,5,72,0,0,1242,200,1,0,0,0,1243,1244,5,65,0,0,1244,1245,5,84,0,0,1245,1246,5,65,0,0,1246,1247,5,78,0,0,1247,1248,5,50,0,0,1248,202,1,0,0,0,1249,1250,5,82,0,0,1250,1251,5,79,0,0,1251,1252,5,85,0,0,1252,1253,5,78,0,0,1253,1254,5,68,0,0,1254,204,1,0,0,0,1255,1256,5,82,0,0,1256,1257,5,79,0,0,1257,1258,5,85,0,0,1258,1259,5,78,0,0,1259,1260,5,68,0,0,1260,1261,5,68,0,0,1261,1262,5,79,0,0,1262,1263,5,87,0,0,1263,1264,5,78,0,0,1264,206,1,0,0,0,1265,1266,5,82,0,0,1266,1267,5,79,0,0,1267,1268,5,85,0,0,1268,1269,5,78,0,0,1269,1270,5,68,0,0,1270,1271,5,85,0,0,1271,1272,5,80,0,0,1272,208,1,0,0,0,1273,1274,5,67,0,0,1274,1275,5,69,0,0,1275,1276,5,73,0,0,1276,1277,5,76,0,0,1277,1278,5,73,0,0,1278,1279,5,78,0,0,1279,1280,5,71,0,0,1280,210,1,0,0,0,1281,1282,5,70,0,0,1282,1283,5,76,0,0,1283,1284,5,79,0,0,1284,1285,5,79,0,0,1285,1286,5,82,0,0,1286,212,1,0,0,0,1287,1288,5,69,0,0,1288,1289,5,86,0,0,1289,1290,5,69,0,0,1290,1291,5,78,0,0,1291,214,1,0,0,0,1292,1293,5,79,0,0,1293,1294,5,68,0,0,1294,1295,5,68,0,0,1295,216,1,0,0,0,1296,1297,5,77,0,0,1297,1298,5,82,0,0,1298,1299,5,79,0,0,1299,1300,5,85,0,0,1300,1301,5,78,0,0,1301,1302,5,68,0,0,1302,218,1,0,0,0,1303,1304,5,82,0,0,1304,1305,5,65,0,0,1305,1306,5,78,0,0,1306,1307,5,68,0,0,1307,220,1,0,0,0,1308,1309,5,82,0,0,1309,1310,5,65,0,0,1310,1311,5,78,0,0,1311,1312,5,68,0,0,1312,1313,5,66,0,0,1313,1314,5,69,0,0,1314,1315,5,84,0,0,1315,1316,5,87,0,0,1316,1317,5,69,0,0,1317,1318,5,69,0,0,1318,1319,5,78,0,0,1319,222,1,0,0,0,1320,1321,5,70,0,0,1321,1322,5,65,0,0,1322,1323,5,67,0,0,1323,1324,5,84,0,0,1324,224,1,0,0,0,1325,1326,5,70,0,0,1326,1327,5,65,0,0,1327,1328,5,67,0,0,1328,1329,5,84,0,0,1329,1330,5,68,0,0,1330,1331,5,79,0,0,1331,1332,5,85,0,0,1332,1333,5,66,0,0,1333,1334,5,76,0,0,1334,1335,5,69,0,0,1335,226,1,0,0,0,1336,1337,5,80,0,0,1337,1338,5,79,0,0,1338,1339,5,87,0,0,1339,1340,5,69,0,0,1340,1341,5,82,0,0,1341,228,1,0,0,0,1342,1343,5,69,0,0,1343,1344,5,88,0,0,1344,1345,5,80,0,0,1345,230,1,0,0,0,1346,1347,5,76,0,0,1347,1348,5,78,0,0,1348,232,1,0,0,0,1349,1350,5,76,0,0,1350,1351,5,79,0,0,1351,1352,5,71,0,0,1352,234,1,0,0,0,1353,1354,5,76,0,0,1354,1355,5,79,0,0,1355,1356,5,71,0,0,1356,1357,5,49,0,0,1357,1358,5,48,0,0,1358,236,1,0,0,0,1359,1360,5,77,0,0,1360,1361,5,85,0,0,1361,1362,5,76,0,0,1362,1363,5,84,0,0,1363,1364,5,73,0,0,1364,1365,5,78,0,0,1365,1366,5,79,0,0,1366,1367,5,77,0,0,1367,1368,5,73,0,0,1368,1369,5,65,0,0,1369,1370,5,76,0,0,1370,238,1,0,0,0,1371,1372,5,80,0,0,1372,1373,5,82,0,0,1373,1374,5,79,0,0,1374,1375,5,68,0,0,1375,1376,5,85,0,0,1376,1377,5,67,0,0,1377,1378,5,84,0,0,1378,240,1,0,0,0,1379,1380,5,83,0,0,1380,1381,5,81,0,0,1381,1382,5,82,0,0,1382,1383,5,84,0,0,1383,1384,5,80,0,0,1384,1385,5,73,0,0,1385,242,1,0,0,0,1386,1387,5,69,0,0,1387,1388,5,82,0,0,1388,1389,5,70,0,0,1389,244,1,0,0,0,1390,1391,5,69,0,0,1391,1392,5,82,0,0,1392,1393,5,70,0,0,1393,1394,5,67,0,0,1394,246,1,0,0,0,1395,1396,5,66,0,0,1396,1397,5,69,0,0,1397,1398,5,83,0,0,1398,1399,5,83,0,0,1399,1400,5,69,0,0,1400,1401,5,76,0,0,1401,1402,5,73,0,0,1402,248,1,0,0,0,1403,1404,5,66,0,0,1404,1405,5,69,0,0,1405,1406,5,83,0,0,1406,1407,5,83,0,0,1407,1408,5,69,0,0,1408,1409,5,76,0,0,1409,1410,5,74,0,0,1410,250,1,0,0,0,1411,1412,5,66,0,0,1412,1413,5,69,0,0,1413,1414,5,83,0,0,1414,1415,5,83,0,0,1415,1416,5,69,0,0,1416,1417,5,76,0,0,1417,1418,5,75,0,0,1418,252,1,0,0,0,1419,1420,5,66,0,0,1420,1421,5,69,0,0,1421,1422,5,83,0,0,1422,1423,5,83,0,0,1423,1424,5,69,0,0,1424,1425,5,76,0,0,1425,1426,5,89,0,0,1426,254,1,0,0,0,1427,1428,5,68,0,0,1428,1429,5,69,0,0,1429,1430,5,76,0,0,1430,1431,5,84,0,0,1431,1432,5,65,0,0,1432,256,1,0,0,0,1433,1434,5,71,0,0,1434,1435,5,69,0,0,1435,1436,5,83,0,0,1436,1437,5,84,0,0,1437,1438,5,69,0,0,1438,1439,5,80,0,0,1439,258,1,0,0,0,1440,1441,5,83,0,0,1441,1442,5,85,0,0,1442,1443,5,77,0,0,1443,1444,5,83,0,0,1444,1445,5,81,0,0,1445,260,1,0,0,0,1446,1447,5,83,0,0,1447,1448,5,85,0,0,1448,1449,5,77,0,0,1449,1450,5,80,0,0,1450,1451,5,82,0,0,1451,1452,5,79,0,0,1452,1453,5,68,0,0,1453,1454,5,85,0,0,1454,1455,5,67,0,0,1455,1456,5,84,0,0,1456,262,1,0,0,0,1457,1458,5,83,0,0,1458,1459,5,85,0,0,1459,1460,5,77,0,0,1460,1461,5,88,0,0,1461,1462,5,50,0,0,1462,1463,5,77,0,0,1463,1464,5,89,0,0,1464,1465,5,50,0,0,1465,264,1,0,0,0,1466,1467,5,83,0,0,1467,1468,5,85,0,0,1468,1469,5,77,0,0,1469,1470,5,88,0,0,1470,1471,5,50,0,0,1471,1472,5,80,0,0,1472,1473,5,89,0,0,1473,1474,5,50,0,0,1474,266,1,0,0,0,1475,1476,5,83,0,0,1476,1477,5,85,0,0,1477,1478,5,77,0,0,1478,1479,5,88,0,0,1479,1480,5,77,0,0,1480,1481,5,89,0,0,1481,1482,5,50,0,0,1482,268,1,0,0,0,1483,1484,5,65,0,0,1484,1485,5,82,0,0,1485,1486,5,65,0,0,1486,1487,5,66,0,0,1487,1488,5,73,0,0,1488,1489,5,67,0,0,1489,270,1,0,0,0,1490,1491,5,82,0,0,1491,1492,5,79,0,0,1492,1493,5,77,0,0,1493,1494,5,65,0,0,1494,1495,5,78,0,0,1495,272,1,0,0,0,1496,1497,5,83,0,0,1497,1498,5,69,0,0,1498,1499,5,82,0,0,1499,1500,5,73,0,0,1500,1501,5,69,0,0,1501,1502,5,83,0,0,1502,1503,5,83,0,0,1503,1504,5,85,0,0,1504,1505,5,77,0,0,1505,274,1,0,0,0,1506,1507,5,82,0,0,1507,1508,5,65,0,0,1508,1509,5,78,0,0,1509,1510,5,75,0,0,1510,276,1,0,0,0,1511,1512,5,70,0,0,1512,1513,5,79,0,0,1513,1514,5,82,0,0,1514,1515,5,69,0,0,1515,1516,5,67,0,0,1516,1517,5,65,0,0,1517,1518,5,83,0,0,1518,1519,5,84,0,0,1519,278,1,0,0,0,1520,1521,5,73,0,0,1521,1522,5,78,0,0,1522,1523,5,84,0,0,1523,1524,5,69,0,0,1524,1525,5,82,0,0,1525,1526,5,67,0,0,1526,1527,5,69,0,0,1527,1528,5,80,0,0,1528,1529,5,84,0,0,1529,280,1,0,0,0,1530,1531,5,83,0,0,1531,1532,5,76,0,0,1532,1533,5,79,0,0,1533,1534,5,80,0,0,1534,1535,5,69,0,0,1535,282,1,0,0,0,1536,1537,5,67,0,0,1537,1538,5,79,0,0,1538,1539,5,82,0,0,1539,1540,5,82,0,0,1540,1541,5,69,0,0,1541,1542,5,76,0,0,1542,284,1,0,0,0,1543,1544,5,80,0,0,1544,1545,5,69,0,0,1545,1546,5,65,0,0,1546,1547,5,82,0,0,1547,1548,5,83,0,0,1548,1549,5,79,0,0,1549,1550,5,78,0,0,1550,286,1,0,0,0,1551,1552,5,89,0,0,1552,1553,5,69,0,0,1553,1554,5,65,0,0,1554,1555,5,82,0,0,1555,1556,5,70,0,0,1556,1557,5,82,0,0,1557,1558,5,65,0,0,1558,1559,5,67,0,0,1559,288,1,0,0,0,1560,1561,5,65,0,0,1561,1562,5,83,0,0,1562,1563,5,67,0,0,1563,290,1,0,0,0,1564,1565,5,74,0,0,1565,1566,5,73,0,0,1566,1576,5,83,0,0,1567,1568,5,87,0,0,1568,1569,5,73,0,0,1569,1570,5,68,0,0,1570,1571,5,69,0,0,1571,1572,5,67,0,0,1572,1573,5,72,0,0,1573,1574,5,65,0,0,1574,1576,5,82,0,0,1575,1564,1,0,0,0,1575,1567,1,0,0,0,1576,292,1,0,0,0,1577,1578,5,67,0,0,1578,1579,5,72,0,0,1579,1580,5,65,0,0,1580,1581,5,82,0,0,1581,294,1,0,0,0,1582,1583,5,67,0,0,1583,1584,5,76,0,0,1584,1585,5,69,0,0,1585,1586,5,65,0,0,1586,1587,5,78,0,0,1587,296,1,0,0,0,1588,1589,5,67,0,0,1589,1590,5,79,0,0,1590,1591,5,68,0,0,1591,1592,5,69,0,0,1592,298,1,0,0,0,1593,1594,5,85,0,0,1594,1595,5,78,0,0,1595,1596,5,73,0,0,1596,1597,5,67,0,0,1597,1598,5,72,0,0,1598,1599,5,65,0,0,1599,1600,5,82,0,0,1600,300,1,0,0,0,1601,1602,5,85,0,0,1602,1603,5,78,0,0,1603,1604,5,73,0,0,1604,1605,5,67,0,0,1605,1606,5,79,0,0,1606,1607,5,68,0,0,1607,1608,5,69,0,0,1608,302,1,0,0,0,1609,1610,5,67,0,0,1610,1611,5,79,0,0,1611,1612,5,78,0,0,1612,1613,5,67,0,0,1613,1614,5,65,0,0,1614,1615,5,84,0,0,1615,1616,5,69,0,0,1616,1617,5,78,0,0,1617,1618,5,65,0,0,1618,1619,5,84,0,0,1619,1627,5,69,0,0,1620,1621,5,67,0,0,1621,1622,5,79,0,0,1622,1623,5,78,0,0,1623,1624,5,67,0,0,1624,1625,5,65,0,0,1625,1627,5,84,0,0,1626,1609,1,0,0,0,1626,1620,1,0,0,0,1627,304,1,0,0,0,1628,1629,5,69,0,0,1629,1630,5,88,0,0,1630,1631,5,65,0,0,1631,1632,5,67,0,0,1632,1633,5,84,0,0,1633,306,1,0,0,0,1634,1635,5,70,0,0,1635,1636,5,73,0,0,1636,1637,5,78,0,0,1637,1638,5,68,0,0,1638,308,1,0,0,0,1639,1640,5,70,0,0,1640,1641,5,73,0,0,1641,1642,5,88,0,0,1642,1643,5,69,0,0,1643,1644,5,68,0,0,1644,310,1,0,0,0,1645,1646,5,76,0,0,1646,1647,5,69,0,0,1647,1648,5,70,0,0,1648,1649,5,84,0,0,1649,312,1,0,0,0,1650,1651,5,76,0,0,1651,1652,5,69,0,0,1652,1653,5,78,0,0,1653,314,1,0,0,0,1654,1655,5,76,0,0,1655,1656,5,79,0,0,1656,1657,5,87,0,0,1657,1658,5,69,0,0,1658,1667,5,82,0,0,1659,1660,5,84,0,0,1660,1661,5,79,0,0,1661,1662,5,76,0,0,1662,1663,5,79,0,0,1663,1664,5,87,0,0,1664,1665,5,69,0,0,1665,1667,5,82,0,0,1666,1654,1,0,0,0,1666,1659,1,0,0,0,1667,316,1,0,0,0,1668,1669,5,77,0,0,1669,1670,5,73,0,0,1670,1671,5,68,0,0,1671,318,1,0,0,0,1672,1673,5,80,0,0,1673,1674,5,82,0,0,1674,1675,5,79,0,0,1675,1676,5,80,0,0,1676,1677,5,69,0,0,1677,1678,5,82,0,0,1678,320,1,0,0,0,1679,1680,5,82,0,0,1680,1681,5,69,0,0,1681,1682,5,80,0,0,1682,1683,5,76,0,0,1683,1684,5,65,0,0,1684,1685,5,67,0,0,1685,1686,5,69,0,0,1686,322,1,0,0,0,1687,1688,5,82,0,0,1688,1689,5,69,0,0,1689,1690,5,80,0,0,1690,1691,5,84,0,0,1691,324,1,0,0,0,1692,1693,5,82,0,0,1693,1694,5,73,0,0,1694,1695,5,71,0,0,1695,1696,5,72,0,0,1696,1697,5,84,0,0,1697,326,1,0,0,0,1698,1699,5,82,0,0,1699,1700,5,77,0,0,1700,1701,5,66,0,0,1701,328,1,0,0,0,1702,1703,5,83,0,0,1703,1704,5,69,0,0,1704,1705,5,65,0,0,1705,1706,5,82,0,0,1706,1707,5,67,0,0,1707,1708,5,72,0,0,1708,330,1,0,0,0,1709,1710,5,83,0,0,1710,1711,5,85,0,0,1711,1712,5,66,0,0,1712,1713,5,83,0,0,1713,1714,5,84,0,0,1714,1715,5,73,0,0,1715,1716,5,84,0,0,1716,1717,5,85,0,0,1717,1718,5,84,0,0,1718,1719,5,69,0,0,1719,332,1,0,0,0,1720,1721,5,84,0,0,1721,334,1,0,0,0,1722,1723,5,84,0,0,1723,1724,5,69,0,0,1724,1725,5,88,0,0,1725,1726,5,84,0,0,1726,336,1,0,0,0,1727,1728,5,84,0,0,1728,1729,5,82,0,0,1729,1730,5,73,0,0,1730,1731,5,77,0,0,1731,338,1,0,0,0,1732,1733,5,85,0,0,1733,1734,5,80,0,0,1734,1735,5,80,0,0,1735,1736,5,69,0,0,1736,1745,5,82,0,0,1737,1738,5,84,0,0,1738,1739,5,79,0,0,1739,1740,5,85,0,0,1740,1741,5,80,0,0,1741,1742,5,80,0,0,1742,1743,5,69,0,0,1743,1745,5,82,0,0,1744,1732,1,0,0,0,1744,1737,1,0,0,0,1745,340,1,0,0,0,1746,1747,5,86,0,0,1747,1748,5,65,0,0,1748,1749,5,76,0,0,1749,1750,5,85,0,0,1750,1751,5,69,0,0,1751,342,1,0,0,0,1752,1753,5,68,0,0,1753,1754,5,65,0,0,1754,1755,5,84,0,0,1755,1756,5,69,0,0,1756,1757,5,86,0,0,1757,1758,5,65,0,0,1758,1759,5,76,0,0,1759,1760,5,85,0,0,1760,1761,5,69,0,0,1761,344,1,0,0,0,1762,1763,5,84,0,0,1763,1764,5,73,0,0,1764,1765,5,77,0,0,1765,1766,5,69,0,0,1766,1767,5,86,0,0,1767,1768,5,65,0,0,1768,1769,5,76,0,0,1769,1770,5,85,0,0,1770,1771,5,69,0,0,1771,346,1,0,0,0,1772,1773,5,68,0,0,1773,1774,5,65,0,0,1774,1775,5,84,0,0,1775,1776,5,69,0,0,1776,348,1,0,0,0,1777,1778,5,84,0,0,1778,1779,5,73,0,0,1779,1780,5,77,0,0,1780,1781,5,69,0,0,1781,350,1,0,0,0,1782,1783,5,78,0,0,1783,1784,5,79,0,0,1784,1785,5,87,0,0,1785,352,1,0,0,0,1786,1787,5,84,0,0,1787,1788,5,79,0,0,1788,1789,5,68,0,0,1789,1790,5,65,0,0,1790,1791,5,89,0,0,1791,354,1,0,0,0,1792,1793,5,89,0,0,1793,1794,5,69,0,0,1794,1795,5,65,0,0,1795,1796,5,82,0,0,1796,356,1,0,0,0,1797,1798,5,77,0,0,1798,1799,5,79,0,0,1799,1800,5,78,0,0,1800,1801,5,84,0,0,1801,1802,5,72,0,0,1802,358,1,0,0,0,1803,1804,5,68,0,0,1804,1805,5,65,0,0,1805,1806,5,89,0,0,1806,360,1,0,0,0,1807,1808,5,72,0,0,1808,1809,5,79,0,0,1809,1810,5,85,0,0,1810,1811,5,82,0,0,1811,362,1,0,0,0,1812,1813,5,77,0,0,1813,1814,5,73,0,0,1814,1815,5,78,0,0,1815,1816,5,85,0,0,1816,1817,5,84,0,0,1817,1818,5,69,0,0,1818,364,1,0,0,0,1819,1820,5,83,0,0,1820,1821,5,69,0,0,1821,1822,5,67,0,0,1822,1823,5,79,0,0,1823,1824,5,78,0,0,1824,1825,5,68,0,0,1825,366,1,0,0,0,1826,1827,5,87,0,0,1827,1828,5,69,0,0,1828,1829,5,69,0,0,1829,1830,5,75,0,0,1830,1831,5,68,0,0,1831,1832,5,65,0,0,1832,1833,5,89,0,0,1833,368,1,0,0,0,1834,1835,5,68,0,0,1835,1836,5,65,0,0,1836,1837,5,84,0,0,1837,1838,5,69,0,0,1838,1839,5,68,0,0,1839,1840,5,73,0,0,1840,1841,5,70,0,0,1841,370,1,0,0,0,1842,1843,5,68,0,0,1843,1844,5,65,0,0,1844,1845,5,89,0,0,1845,1846,5,83,0,0,1846,372,1,0,0,0,1847,1848,5,68,0,0,1848,1849,5,65,0,0,1849,1850,5,89,0,0,1850,1851,5,83,0,0,1851,1852,5,51,0,0,1852,1853,5,54,0,0,1853,1854,5,48,0,0,1854,374,1,0,0,0,1855,1856,5,69,0,0,1856,1857,5,68,0,0,1857,1858,5,65,0,0,1858,1859,5,84,0,0,1859,1860,5,69,0,0,1860,376,1,0,0,0,1861,1862,5,69,0,0,1862,1863,5,79,0,0,1863,1864,5,77,0,0,1864,1865,5,79,0,0,1865,1866,5,78,0,0,1866,1867,5,84,0,0,1867,1868,5,72,0,0,1868,378,1,0,0,0,1869,1870,5,78,0,0,1870,1871,5,69,0,0,1871,1872,5,84,0,0,1872,1873,5,87,0,0,1873,1874,5,79,0,0,1874,1875,5,82,0,0,1875,1876,5,75,0,0,1876,1877,5,68,0,0,1877,1878,5,65,0,0,1878,1879,5,89,0,0,1879,1880,5,83,0,0,1880,380,1,0,0,0,1881,1882,5,87,0,0,1882,1883,5,79,0,0,1883,1884,5,82,0,0,1884,1885,5,75,0,0,1885,1886,5,68,0,0,1886,1887,5,65,0,0,1887,1888,5,89,0,0,1888,382,1,0,0,0,1889,1890,5,87,0,0,1890,1891,5,69,0,0,1891,1892,5,69,0,0,1892,1893,5,75,0,0,1893,1894,5,78,0,0,1894,1895,5,85,0,0,1895,1896,5,77,0,0,1896,384,1,0,0,0,1897,1898,5,77,0,0,1898,1899,5,65,0,0,1899,1900,5,88,0,0,1900,386,1,0,0,0,1901,1902,5,77,0,0,1902,1903,5,69,0,0,1903,1904,5,68,0,0,1904,1905,5,73,0,0,1905,1906,5,65,0,0,1906,1907,5,78,0,0,1907,388,1,0,0,0,1908,1909,5,77,0,0,1909,1910,5,73,0,0,1910,1911,5,78,0,0,1911,390,1,0,0,0,1912,1913,5,81,0,0,1913,1914,5,85,0,0,1914,1915,5,65,0,0,1915,1916,5,82,0,0,1916,1917,5,84,0,0,1917,1918,5,73,0,0,1918,1919,5,76,0,0,1919,1920,5,69,0,0,1920,392,1,0,0,0,1921,1922,5,77,0,0,1922,1923,5,79,0,0,1923,1924,5,68,0,0,1924,1925,5,69,0,0,1925,394,1,0,0,0,1926,1927,5,76,0,0,1927,1928,5,65,0,0,1928,1929,5,82,0,0,1929,1930,5,71,0,0,1930,1931,5,69,0,0,1931,396,1,0,0,0,1932,1933,5,83,0,0,1933,1934,5,77,0,0,1934,1935,5,65,0,0,1935,1936,5,76,0,0,1936,1937,5,76,0,0,1937,398,1,0,0,0,1938,1939,5,80,0,0,1939,1940,5,69,0,0,1940,1941,5,82,0,0,1941,1942,5,67,0,0,1942,1943,5,69,0,0,1943,1944,5,78,0,0,1944,1945,5,84,0,0,1945,1946,5,73,0,0,1946,1947,5,76,0,0,1947,1963,5,69,0,0,1948,1949,5,80,0,0,1949,1950,5,69,0,0,1950,1951,5,82,0,0,1951,1952,5,67,0,0,1952,1953,5,69,0,0,1953,1954,5,78,0,0,1954,1955,5,84,0,0,1955,1956,5,73,0,0,1956,1957,5,76,0,0,1957,1958,5,69,0,0,1958,1959,5,46,0,0,1959,1960,5,73,0,0,1960,1961,5,78,0,0,1961,1963,5,67,0,0,1962,1938,1,0,0,0,1962,1948,1,0,0,0,1963,400,1,0,0,0,1964,1965,5,80,0,0,1965,1966,5,69,0,0,1966,1967,5,82,0,0,1967,1968,5,67,0,0,1968,1969,5,69,0,0,1969,1970,5,78,0,0,1970,1971,5,84,0,0,1971,1972,5,82,0,0,1972,1973,5,65,0,0,1973,1974,5,78,0,0,1974,1991,5,75,0,0,1975,1976,5,80,0,0,1976,1977,5,69,0,0,1977,1978,5,82,0,0,1978,1979,5,67,0,0,1979,1980,5,69,0,0,1980,1981,5,78,0,0,1981,1982,5,84,0,0,1982,1983,5,82,0,0,1983,1984,5,65,0,0,1984,1985,5,78,0,0,1985,1986,5,75,0,0,1986,1987,5,46,0,0,1987,1988,5,73,0,0,1988,1989,5,78,0,0,1989,1991,5,67,0,0,1990,1964,1,0,0,0,1990,1975,1,0,0,0,1991,402,1,0,0,0,1992,1993,5,65,0,0,1993,1994,5,86,0,0,1994,1995,5,69,0,0,1995,1996,5,82,0,0,1996,1997,5,65,0,0,1997,1998,5,71,0,0,1998,1999,5,69,0,0,1999,404,1,0,0,0,2e3,2001,5,65,0,0,2001,2002,5,86,0,0,2002,2003,5,69,0,0,2003,2004,5,82,0,0,2004,2005,5,65,0,0,2005,2006,5,71,0,0,2006,2007,5,69,0,0,2007,2008,5,73,0,0,2008,2009,5,70,0,0,2009,406,1,0,0,0,2010,2011,5,71,0,0,2011,2012,5,69,0,0,2012,2013,5,79,0,0,2013,2014,5,77,0,0,2014,2015,5,69,0,0,2015,2016,5,65,0,0,2016,2017,5,78,0,0,2017,408,1,0,0,0,2018,2019,5,72,0,0,2019,2020,5,65,0,0,2020,2021,5,82,0,0,2021,2022,5,77,0,0,2022,2023,5,69,0,0,2023,2024,5,65,0,0,2024,2025,5,78,0,0,2025,410,1,0,0,0,2026,2027,5,67,0,0,2027,2028,5,79,0,0,2028,2029,5,85,0,0,2029,2030,5,78,0,0,2030,2031,5,84,0,0,2031,412,1,0,0,0,2032,2033,5,67,0,0,2033,2034,5,79,0,0,2034,2035,5,85,0,0,2035,2036,5,78,0,0,2036,2037,5,84,0,0,2037,2038,5,73,0,0,2038,2039,5,70,0,0,2039,414,1,0,0,0,2040,2041,5,83,0,0,2041,2042,5,85,0,0,2042,2043,5,77,0,0,2043,416,1,0,0,0,2044,2045,5,83,0,0,2045,2046,5,85,0,0,2046,2047,5,77,0,0,2047,2048,5,73,0,0,2048,2049,5,70,0,0,2049,418,1,0,0,0,2050,2051,5,65,0,0,2051,2052,5,86,0,0,2052,2053,5,69,0,0,2053,2054,5,68,0,0,2054,2055,5,69,0,0,2055,2056,5,86,0,0,2056,420,1,0,0,0,2057,2058,5,83,0,0,2058,2059,5,84,0,0,2059,2060,5,68,0,0,2060,2061,5,69,0,0,2061,2070,5,86,0,0,2062,2063,5,83,0,0,2063,2064,5,84,0,0,2064,2065,5,68,0,0,2065,2066,5,69,0,0,2066,2067,5,86,0,0,2067,2068,5,46,0,0,2068,2070,5,83,0,0,2069,2057,1,0,0,0,2069,2062,1,0,0,0,2070,422,1,0,0,0,2071,2072,5,83,0,0,2072,2073,5,84,0,0,2073,2074,5,68,0,0,2074,2075,5,69,0,0,2075,2076,5,86,0,0,2076,2085,5,80,0,0,2077,2078,5,83,0,0,2078,2079,5,84,0,0,2079,2080,5,68,0,0,2080,2081,5,69,0,0,2081,2082,5,86,0,0,2082,2083,5,46,0,0,2083,2085,5,80,0,0,2084,2071,1,0,0,0,2084,2077,1,0,0,0,2085,424,1,0,0,0,2086,2087,5,67,0,0,2087,2088,5,79,0,0,2088,2089,5,86,0,0,2089,2090,5,65,0,0,2090,2104,5,82,0,0,2091,2092,5,67,0,0,2092,2093,5,79,0,0,2093,2094,5,86,0,0,2094,2095,5,65,0,0,2095,2096,5,82,0,0,2096,2097,5,73,0,0,2097,2098,5,65,0,0,2098,2099,5,78,0,0,2099,2100,5,67,0,0,2100,2101,5,69,0,0,2101,2102,5,46,0,0,2102,2104,5,80,0,0,2103,2086,1,0,0,0,2103,2091,1,0,0,0,2104,426,1,0,0,0,2105,2106,5,67,0,0,2106,2107,5,79,0,0,2107,2108,5,86,0,0,2108,2109,5,65,0,0,2109,2110,5,82,0,0,2110,2111,5,73,0,0,2111,2112,5,65,0,0,2112,2113,5,78,0,0,2113,2114,5,67,0,0,2114,2115,5,69,0,0,2115,2116,5,46,0,0,2116,2117,5,83,0,0,2117,428,1,0,0,0,2118,2119,5,68,0,0,2119,2120,5,69,0,0,2120,2121,5,86,0,0,2121,2122,5,83,0,0,2122,2123,5,81,0,0,2123,430,1,0,0,0,2124,2125,5,86,0,0,2125,2126,5,65,0,0,2126,2133,5,82,0,0,2127,2128,5,86,0,0,2128,2129,5,65,0,0,2129,2130,5,82,0,0,2130,2131,5,46,0,0,2131,2133,5,83,0,0,2132,2124,1,0,0,0,2132,2127,1,0,0,0,2133,432,1,0,0,0,2134,2135,5,86,0,0,2135,2136,5,65,0,0,2136,2137,5,82,0,0,2137,2144,5,80,0,0,2138,2139,5,86,0,0,2139,2140,5,65,0,0,2140,2141,5,82,0,0,2141,2142,5,46,0,0,2142,2144,5,80,0,0,2143,2134,1,0,0,0,2143,2138,1,0,0,0,2144,434,1,0,0,0,2145,2146,5,78,0,0,2146,2147,5,79,0,0,2147,2148,5,82,0,0,2148,2149,5,77,0,0,2149,2150,5,68,0,0,2150,2151,5,73,0,0,2151,2152,5,83,0,0,2152,2163,5,84,0,0,2153,2154,5,78,0,0,2154,2155,5,79,0,0,2155,2156,5,82,0,0,2156,2157,5,77,0,0,2157,2158,5,46,0,0,2158,2159,5,68,0,0,2159,2160,5,73,0,0,2160,2161,5,83,0,0,2161,2163,5,84,0,0,2162,2145,1,0,0,0,2162,2153,1,0,0,0,2163,436,1,0,0,0,2164,2165,5,78,0,0,2165,2166,5,79,0,0,2166,2167,5,82,0,0,2167,2168,5,77,0,0,2168,2169,5,73,0,0,2169,2170,5,78,0,0,2170,2180,5,86,0,0,2171,2172,5,78,0,0,2172,2173,5,79,0,0,2173,2174,5,82,0,0,2174,2175,5,77,0,0,2175,2176,5,46,0,0,2176,2177,5,73,0,0,2177,2178,5,78,0,0,2178,2180,5,86,0,0,2179,2164,1,0,0,0,2179,2171,1,0,0,0,2180,438,1,0,0,0,2181,2182,5,78,0,0,2182,2183,5,79,0,0,2183,2184,5,82,0,0,2184,2185,5,77,0,0,2185,2186,5,83,0,0,2186,2187,5,68,0,0,2187,2188,5,73,0,0,2188,2189,5,83,0,0,2189,2202,5,84,0,0,2190,2191,5,78,0,0,2191,2192,5,79,0,0,2192,2193,5,82,0,0,2193,2194,5,77,0,0,2194,2195,5,46,0,0,2195,2196,5,83,0,0,2196,2197,5,46,0,0,2197,2198,5,68,0,0,2198,2199,5,73,0,0,2199,2200,5,83,0,0,2200,2202,5,84,0,0,2201,2181,1,0,0,0,2201,2190,1,0,0,0,2202,440,1,0,0,0,2203,2204,5,78,0,0,2204,2205,5,79,0,0,2205,2206,5,82,0,0,2206,2207,5,77,0,0,2207,2208,5,83,0,0,2208,2209,5,73,0,0,2209,2210,5,78,0,0,2210,2222,5,86,0,0,2211,2212,5,78,0,0,2212,2213,5,79,0,0,2213,2214,5,82,0,0,2214,2215,5,77,0,0,2215,2216,5,46,0,0,2216,2217,5,83,0,0,2217,2218,5,46,0,0,2218,2219,5,73,0,0,2219,2220,5,78,0,0,2220,2222,5,86,0,0,2221,2203,1,0,0,0,2221,2211,1,0,0,0,2222,442,1,0,0,0,2223,2224,5,66,0,0,2224,2225,5,69,0,0,2225,2226,5,84,0,0,2226,2227,5,65,0,0,2227,2228,5,68,0,0,2228,2229,5,73,0,0,2229,2230,5,83,0,0,2230,2241,5,84,0,0,2231,2232,5,66,0,0,2232,2233,5,69,0,0,2233,2234,5,84,0,0,2234,2235,5,65,0,0,2235,2236,5,46,0,0,2236,2237,5,68,0,0,2237,2238,5,73,0,0,2238,2239,5,83,0,0,2239,2241,5,84,0,0,2240,2223,1,0,0,0,2240,2231,1,0,0,0,2241,444,1,0,0,0,2242,2243,5,66,0,0,2243,2244,5,69,0,0,2244,2245,5,84,0,0,2245,2246,5,65,0,0,2246,2247,5,73,0,0,2247,2248,5,78,0,0,2248,2258,5,86,0,0,2249,2250,5,66,0,0,2250,2251,5,69,0,0,2251,2252,5,84,0,0,2252,2253,5,65,0,0,2253,2254,5,46,0,0,2254,2255,5,73,0,0,2255,2256,5,78,0,0,2256,2258,5,86,0,0,2257,2242,1,0,0,0,2257,2249,1,0,0,0,2258,446,1,0,0,0,2259,2260,5,66,0,0,2260,2261,5,73,0,0,2261,2262,5,78,0,0,2262,2263,5,79,0,0,2263,2264,5,77,0,0,2264,2265,5,68,0,0,2265,2266,5,73,0,0,2266,2267,5,83,0,0,2267,2279,5,84,0,0,2268,2269,5,66,0,0,2269,2270,5,73,0,0,2270,2271,5,78,0,0,2271,2272,5,79,0,0,2272,2273,5,77,0,0,2273,2274,5,46,0,0,2274,2275,5,68,0,0,2275,2276,5,73,0,0,2276,2277,5,83,0,0,2277,2279,5,84,0,0,2278,2259,1,0,0,0,2278,2268,1,0,0,0,2279,448,1,0,0,0,2280,2281,5,69,0,0,2281,2282,5,88,0,0,2282,2283,5,80,0,0,2283,2284,5,79,0,0,2284,2285,5,78,0,0,2285,2286,5,68,0,0,2286,2287,5,73,0,0,2287,2288,5,83,0,0,2288,2300,5,84,0,0,2289,2290,5,69,0,0,2290,2291,5,88,0,0,2291,2292,5,80,0,0,2292,2293,5,79,0,0,2293,2294,5,78,0,0,2294,2295,5,46,0,0,2295,2296,5,68,0,0,2296,2297,5,73,0,0,2297,2298,5,83,0,0,2298,2300,5,84,0,0,2299,2280,1,0,0,0,2299,2289,1,0,0,0,2300,450,1,0,0,0,2301,2302,5,70,0,0,2302,2303,5,68,0,0,2303,2304,5,73,0,0,2304,2305,5,83,0,0,2305,2313,5,84,0,0,2306,2307,5,70,0,0,2307,2308,5,46,0,0,2308,2309,5,68,0,0,2309,2310,5,73,0,0,2310,2311,5,83,0,0,2311,2313,5,84,0,0,2312,2301,1,0,0,0,2312,2306,1,0,0,0,2313,452,1,0,0,0,2314,2315,5,70,0,0,2315,2316,5,73,0,0,2316,2317,5,78,0,0,2317,2324,5,86,0,0,2318,2319,5,70,0,0,2319,2320,5,46,0,0,2320,2321,5,73,0,0,2321,2322,5,78,0,0,2322,2324,5,86,0,0,2323,2314,1,0,0,0,2323,2318,1,0,0,0,2324,454,1,0,0,0,2325,2326,5,70,0,0,2326,2327,5,73,0,0,2327,2328,5,83,0,0,2328,2329,5,72,0,0,2329,2330,5,69,0,0,2330,2331,5,82,0,0,2331,456,1,0,0,0,2332,2333,5,70,0,0,2333,2334,5,73,0,0,2334,2335,5,83,0,0,2335,2336,5,72,0,0,2336,2337,5,69,0,0,2337,2338,5,82,0,0,2338,2339,5,73,0,0,2339,2340,5,78,0,0,2340,2341,5,86,0,0,2341,458,1,0,0,0,2342,2343,5,71,0,0,2343,2344,5,65,0,0,2344,2345,5,77,0,0,2345,2346,5,77,0,0,2346,2347,5,65,0,0,2347,2348,5,68,0,0,2348,2349,5,73,0,0,2349,2350,5,83,0,0,2350,2362,5,84,0,0,2351,2352,5,71,0,0,2352,2353,5,65,0,0,2353,2354,5,77,0,0,2354,2355,5,77,0,0,2355,2356,5,65,0,0,2356,2357,5,46,0,0,2357,2358,5,68,0,0,2358,2359,5,73,0,0,2359,2360,5,83,0,0,2360,2362,5,84,0,0,2361,2342,1,0,0,0,2361,2351,1,0,0,0,2362,460,1,0,0,0,2363,2364,5,71,0,0,2364,2365,5,65,0,0,2365,2366,5,77,0,0,2366,2367,5,77,0,0,2367,2368,5,65,0,0,2368,2369,5,73,0,0,2369,2370,5,78,0,0,2370,2381,5,86,0,0,2371,2372,5,71,0,0,2372,2373,5,65,0,0,2373,2374,5,77,0,0,2374,2375,5,77,0,0,2375,2376,5,65,0,0,2376,2377,5,46,0,0,2377,2378,5,73,0,0,2378,2379,5,78,0,0,2379,2381,5,86,0,0,2380,2363,1,0,0,0,2380,2371,1,0,0,0,2381,462,1,0,0,0,2382,2383,5,71,0,0,2383,2384,5,65,0,0,2384,2385,5,77,0,0,2385,2386,5,77,0,0,2386,2387,5,65,0,0,2387,2388,5,76,0,0,2388,2405,5,78,0,0,2389,2390,5,71,0,0,2390,2391,5,65,0,0,2391,2392,5,77,0,0,2392,2393,5,77,0,0,2393,2394,5,65,0,0,2394,2395,5,76,0,0,2395,2396,5,78,0,0,2396,2397,5,46,0,0,2397,2398,5,80,0,0,2398,2399,5,82,0,0,2399,2400,5,69,0,0,2400,2401,5,67,0,0,2401,2402,5,73,0,0,2402,2403,5,83,0,0,2403,2405,5,69,0,0,2404,2382,1,0,0,0,2404,2389,1,0,0,0,2405,464,1,0,0,0,2406,2407,5,72,0,0,2407,2408,5,89,0,0,2408,2409,5,80,0,0,2409,2410,5,71,0,0,2410,2411,5,69,0,0,2411,2412,5,79,0,0,2412,2413,5,77,0,0,2413,2414,5,68,0,0,2414,2415,5,73,0,0,2415,2416,5,83,0,0,2416,2430,5,84,0,0,2417,2418,5,72,0,0,2418,2419,5,89,0,0,2419,2420,5,80,0,0,2420,2421,5,71,0,0,2421,2422,5,69,0,0,2422,2423,5,79,0,0,2423,2424,5,77,0,0,2424,2425,5,46,0,0,2425,2426,5,68,0,0,2426,2427,5,73,0,0,2427,2428,5,83,0,0,2428,2430,5,84,0,0,2429,2406,1,0,0,0,2429,2417,1,0,0,0,2430,466,1,0,0,0,2431,2432,5,76,0,0,2432,2433,5,79,0,0,2433,2434,5,71,0,0,2434,2435,5,73,0,0,2435,2436,5,78,0,0,2436,2449,5,86,0,0,2437,2438,5,76,0,0,2438,2439,5,79,0,0,2439,2440,5,71,0,0,2440,2441,5,78,0,0,2441,2442,5,79,0,0,2442,2443,5,82,0,0,2443,2444,5,77,0,0,2444,2445,5,46,0,0,2445,2446,5,73,0,0,2446,2447,5,78,0,0,2447,2449,5,86,0,0,2448,2431,1,0,0,0,2448,2437,1,0,0,0,2449,468,1,0,0,0,2450,2451,5,76,0,0,2451,2452,5,79,0,0,2452,2453,5,71,0,0,2453,2454,5,78,0,0,2454,2455,5,79,0,0,2455,2456,5,82,0,0,2456,2457,5,77,0,0,2457,2458,5,68,0,0,2458,2459,5,73,0,0,2459,2460,5,83,0,0,2460,2474,5,84,0,0,2461,2462,5,76,0,0,2462,2463,5,79,0,0,2463,2464,5,71,0,0,2464,2465,5,78,0,0,2465,2466,5,79,0,0,2466,2467,5,82,0,0,2467,2468,5,77,0,0,2468,2469,5,46,0,0,2469,2470,5,68,0,0,2470,2471,5,73,0,0,2471,2472,5,83,0,0,2472,2474,5,84,0,0,2473,2450,1,0,0,0,2473,2461,1,0,0,0,2474,470,1,0,0,0,2475,2476,5,78,0,0,2476,2477,5,69,0,0,2477,2478,5,71,0,0,2478,2479,5,66,0,0,2479,2480,5,73,0,0,2480,2481,5,78,0,0,2481,2482,5,79,0,0,2482,2483,5,77,0,0,2483,2484,5,68,0,0,2484,2485,5,73,0,0,2485,2486,5,83,0,0,2486,2501,5,84,0,0,2487,2488,5,78,0,0,2488,2489,5,69,0,0,2489,2490,5,71,0,0,2490,2491,5,66,0,0,2491,2492,5,73,0,0,2492,2493,5,78,0,0,2493,2494,5,79,0,0,2494,2495,5,77,0,0,2495,2496,5,46,0,0,2496,2497,5,68,0,0,2497,2498,5,73,0,0,2498,2499,5,83,0,0,2499,2501,5,84,0,0,2500,2475,1,0,0,0,2500,2487,1,0,0,0,2501,472,1,0,0,0,2502,2503,5,80,0,0,2503,2504,5,79,0,0,2504,2505,5,73,0,0,2505,2506,5,83,0,0,2506,2507,5,83,0,0,2507,2508,5,79,0,0,2508,2522,5,78,0,0,2509,2510,5,80,0,0,2510,2511,5,79,0,0,2511,2512,5,73,0,0,2512,2513,5,83,0,0,2513,2514,5,83,0,0,2514,2515,5,79,0,0,2515,2516,5,78,0,0,2516,2517,5,46,0,0,2517,2518,5,68,0,0,2518,2519,5,73,0,0,2519,2520,5,83,0,0,2520,2522,5,84,0,0,2521,2502,1,0,0,0,2521,2509,1,0,0,0,2522,474,1,0,0,0,2523,2524,5,84,0,0,2524,2525,5,68,0,0,2525,2526,5,73,0,0,2526,2527,5,83,0,0,2527,2535,5,84,0,0,2528,2529,5,84,0,0,2529,2530,5,46,0,0,2530,2531,5,68,0,0,2531,2532,5,73,0,0,2532,2533,5,83,0,0,2533,2535,5,84,0,0,2534,2523,1,0,0,0,2534,2528,1,0,0,0,2535,476,1,0,0,0,2536,2537,5,84,0,0,2537,2538,5,73,0,0,2538,2539,5,78,0,0,2539,2546,5,86,0,0,2540,2541,5,84,0,0,2541,2542,5,46,0,0,2542,2543,5,73,0,0,2543,2544,5,78,0,0,2544,2546,5,86,0,0,2545,2536,1,0,0,0,2545,2540,1,0,0,0,2546,478,1,0,0,0,2547,2548,5,87,0,0,2548,2549,5,69,0,0,2549,2550,5,73,0,0,2550,2551,5,66,0,0,2551,2552,5,85,0,0,2552,2553,5,76,0,0,2553,2554,5,76,0,0,2554,480,1,0,0,0,2555,2556,5,80,0,0,2556,2557,5,77,0,0,2557,2558,5,84,0,0,2558,482,1,0,0,0,2559,2560,5,80,0,0,2560,2561,5,80,0,0,2561,2562,5,77,0,0,2562,2563,5,84,0,0,2563,484,1,0,0,0,2564,2565,5,73,0,0,2565,2566,5,80,0,0,2566,2567,5,77,0,0,2567,2568,5,84,0,0,2568,486,1,0,0,0,2569,2570,5,80,0,0,2570,2571,5,86,0,0,2571,488,1,0,0,0,2572,2573,5,70,0,0,2573,2574,5,86,0,0,2574,490,1,0,0,0,2575,2576,5,78,0,0,2576,2577,5,80,0,0,2577,2578,5,69,0,0,2578,2579,5,82,0,0,2579,492,1,0,0,0,2580,2581,5,82,0,0,2581,2582,5,65,0,0,2582,2583,5,84,0,0,2583,2584,5,69,0,0,2584,494,1,0,0,0,2585,2586,5,78,0,0,2586,2587,5,80,0,0,2587,2588,5,86,0,0,2588,496,1,0,0,0,2589,2590,5,88,0,0,2590,2591,5,78,0,0,2591,2592,5,80,0,0,2592,2593,5,86,0,0,2593,498,1,0,0,0,2594,2595,5,73,0,0,2595,2596,5,82,0,0,2596,2597,5,82,0,0,2597,500,1,0,0,0,2598,2599,5,77,0,0,2599,2600,5,73,0,0,2600,2601,5,82,0,0,2601,2602,5,82,0,0,2602,502,1,0,0,0,2603,2604,5,88,0,0,2604,2605,5,73,0,0,2605,2606,5,82,0,0,2606,2607,5,82,0,0,2607,504,1,0,0,0,2608,2609,5,83,0,0,2609,2610,5,76,0,0,2610,2611,5,78,0,0,2611,506,1,0,0,0,2612,2613,5,68,0,0,2613,2614,5,66,0,0,2614,508,1,0,0,0,2615,2616,5,68,0,0,2616,2617,5,68,0,0,2617,2618,5,66,0,0,2618,510,1,0,0,0,2619,2620,5,83,0,0,2620,2621,5,89,0,0,2621,2622,5,68,0,0,2622,512,1,0,0,0,2623,2624,5,85,0,0,2624,2625,5,82,0,0,2625,2626,5,76,0,0,2626,2627,5,69,0,0,2627,2628,5,78,0,0,2628,2629,5,67,0,0,2629,2630,5,79,0,0,2630,2631,5,68,0,0,2631,2632,5,69,0,0,2632,514,1,0,0,0,2633,2634,5,85,0,0,2634,2635,5,82,0,0,2635,2636,5,76,0,0,2636,2637,5,68,0,0,2637,2638,5,69,0,0,2638,2639,5,67,0,0,2639,2640,5,79,0,0,2640,2641,5,68,0,0,2641,2642,5,69,0,0,2642,516,1,0,0,0,2643,2644,5,72,0,0,2644,2645,5,84,0,0,2645,2646,5,77,0,0,2646,2647,5,76,0,0,2647,2648,5,69,0,0,2648,2649,5,78,0,0,2649,2650,5,67,0,0,2650,2651,5,79,0,0,2651,2652,5,68,0,0,2652,2653,5,69,0,0,2653,518,1,0,0,0,2654,2655,5,72,0,0,2655,2656,5,84,0,0,2656,2657,5,77,0,0,2657,2658,5,76,0,0,2658,2659,5,68,0,0,2659,2660,5,69,0,0,2660,2661,5,67,0,0,2661,2662,5,79,0,0,2662,2663,5,68,0,0,2663,2664,5,69,0,0,2664,520,1,0,0,0,2665,2666,5,66,0,0,2666,2667,5,65,0,0,2667,2668,5,83,0,0,2668,2669,5,69,0,0,2669,2670,5,54,0,0,2670,2671,5,52,0,0,2671,2672,5,84,0,0,2672,2673,5,79,0,0,2673,2674,5,84,0,0,2674,2675,5,69,0,0,2675,2676,5,88,0,0,2676,2677,5,84,0,0,2677,522,1,0,0,0,2678,2679,5,66,0,0,2679,2680,5,65,0,0,2680,2681,5,83,0,0,2681,2682,5,69,0,0,2682,2683,5,54,0,0,2683,2684,5,52,0,0,2684,2685,5,85,0,0,2685,2686,5,82,0,0,2686,2687,5,76,0,0,2687,2688,5,84,0,0,2688,2689,5,79,0,0,2689,2690,5,84,0,0,2690,2691,5,69,0,0,2691,2692,5,88,0,0,2692,2693,5,84,0,0,2693,524,1,0,0,0,2694,2695,5,84,0,0,2695,2696,5,69,0,0,2696,2697,5,88,0,0,2697,2698,5,84,0,0,2698,2699,5,84,0,0,2699,2700,5,79,0,0,2700,2701,5,66,0,0,2701,2702,5,65,0,0,2702,2703,5,83,0,0,2703,2704,5,69,0,0,2704,2705,5,54,0,0,2705,2706,5,52,0,0,2706,526,1,0,0,0,2707,2708,5,84,0,0,2708,2709,5,69,0,0,2709,2710,5,88,0,0,2710,2711,5,84,0,0,2711,2712,5,84,0,0,2712,2713,5,79,0,0,2713,2714,5,66,0,0,2714,2715,5,65,0,0,2715,2716,5,83,0,0,2716,2717,5,69,0,0,2717,2718,5,54,0,0,2718,2719,5,52,0,0,2719,2720,5,85,0,0,2720,2721,5,82,0,0,2721,2722,5,76,0,0,2722,528,1,0,0,0,2723,2724,5,82,0,0,2724,2725,5,69,0,0,2725,2726,5,71,0,0,2726,2727,5,69,0,0,2727,2728,5,88,0,0,2728,530,1,0,0,0,2729,2730,5,82,0,0,2730,2731,5,69,0,0,2731,2732,5,71,0,0,2732,2733,5,69,0,0,2733,2734,5,88,0,0,2734,2735,5,82,0,0,2735,2736,5,69,0,0,2736,2737,5,80,0,0,2737,2738,5,76,0,0,2738,2739,5,65,0,0,2739,2740,5,67,0,0,2740,2741,5,69,0,0,2741,532,1,0,0,0,2742,2743,5,73,0,0,2743,2744,5,83,0,0,2744,2745,5,82,0,0,2745,2746,5,69,0,0,2746,2747,5,71,0,0,2747,2748,5,69,0,0,2748,2757,5,88,0,0,2749,2750,5,73,0,0,2750,2751,5,83,0,0,2751,2752,5,77,0,0,2752,2753,5,65,0,0,2753,2754,5,84,0,0,2754,2755,5,67,0,0,2755,2757,5,72,0,0,2756,2742,1,0,0,0,2756,2749,1,0,0,0,2757,534,1,0,0,0,2758,2759,5,71,0,0,2759,2760,5,85,0,0,2760,2761,5,73,0,0,2761,2762,5,68,0,0,2762,536,1,0,0,0,2763,2764,5,77,0,0,2764,2765,5,68,0,0,2765,2766,5,53,0,0,2766,538,1,0,0,0,2767,2768,5,83,0,0,2768,2769,5,72,0,0,2769,2770,5,65,0,0,2770,2771,5,49,0,0,2771,540,1,0,0,0,2772,2773,5,83,0,0,2773,2774,5,72,0,0,2774,2775,5,65,0,0,2775,2776,5,50,0,0,2776,2777,5,53,0,0,2777,2778,5,54,0,0,2778,542,1,0,0,0,2779,2780,5,83,0,0,2780,2781,5,72,0,0,2781,2782,5,65,0,0,2782,2783,5,53,0,0,2783,2784,5,49,0,0,2784,2785,5,50,0,0,2785,544,1,0,0,0,2786,2787,5,72,0,0,2787,2788,5,77,0,0,2788,2789,5,65,0,0,2789,2790,5,67,0,0,2790,2791,5,77,0,0,2791,2792,5,68,0,0,2792,2793,5,53,0,0,2793,546,1,0,0,0,2794,2795,5,72,0,0,2795,2796,5,77,0,0,2796,2797,5,65,0,0,2797,2798,5,67,0,0,2798,2799,5,83,0,0,2799,2800,5,72,0,0,2800,2801,5,65,0,0,2801,2802,5,49,0,0,2802,548,1,0,0,0,2803,2804,5,72,0,0,2804,2805,5,77,0,0,2805,2806,5,65,0,0,2806,2807,5,67,0,0,2807,2808,5,83,0,0,2808,2809,5,72,0,0,2809,2810,5,65,0,0,2810,2811,5,50,0,0,2811,2812,5,53,0,0,2812,2813,5,54,0,0,2813,550,1,0,0,0,2814,2815,5,72,0,0,2815,2816,5,77,0,0,2816,2817,5,65,0,0,2817,2818,5,67,0,0,2818,2819,5,83,0,0,2819,2820,5,72,0,0,2820,2821,5,65,0,0,2821,2822,5,53,0,0,2822,2823,5,49,0,0,2823,2824,5,50,0,0,2824,552,1,0,0,0,2825,2826,5,84,0,0,2826,2827,5,82,0,0,2827,2828,5,73,0,0,2828,2829,5,77,0,0,2829,2830,5,83,0,0,2830,2831,5,84,0,0,2831,2832,5,65,0,0,2832,2833,5,82,0,0,2833,2840,5,84,0,0,2834,2835,5,76,0,0,2835,2836,5,84,0,0,2836,2837,5,82,0,0,2837,2838,5,73,0,0,2838,2840,5,77,0,0,2839,2825,1,0,0,0,2839,2834,1,0,0,0,2840,554,1,0,0,0,2841,2842,5,84,0,0,2842,2843,5,82,0,0,2843,2844,5,73,0,0,2844,2845,5,77,0,0,2845,2846,5,69,0,0,2846,2847,5,78,0,0,2847,2854,5,68,0,0,2848,2849,5,82,0,0,2849,2850,5,84,0,0,2850,2851,5,82,0,0,2851,2852,5,73,0,0,2852,2854,5,77,0,0,2853,2841,1,0,0,0,2853,2848,1,0,0,0,2854,556,1,0,0,0,2855,2856,5,73,0,0,2856,2857,5,78,0,0,2857,2858,5,68,0,0,2858,2859,5,69,0,0,2859,2860,5,88,0,0,2860,2861,5,79,0,0,2861,2862,5,70,0,0,2862,558,1,0,0,0,2863,2864,5,76,0,0,2864,2865,5,65,0,0,2865,2866,5,83,0,0,2866,2867,5,84,0,0,2867,2868,5,73,0,0,2868,2869,5,78,0,0,2869,2870,5,68,0,0,2870,2871,5,69,0,0,2871,2872,5,88,0,0,2872,2873,5,79,0,0,2873,2874,5,70,0,0,2874,560,1,0,0,0,2875,2876,5,83,0,0,2876,2877,5,80,0,0,2877,2878,5,76,0,0,2878,2879,5,73,0,0,2879,2880,5,84,0,0,2880,562,1,0,0,0,2881,2882,5,74,0,0,2882,2883,5,79,0,0,2883,2884,5,73,0,0,2884,2885,5,78,0,0,2885,564,1,0,0,0,2886,2887,5,83,0,0,2887,2888,5,85,0,0,2888,2889,5,66,0,0,2889,2890,5,83,0,0,2890,2891,5,84,0,0,2891,2892,5,82,0,0,2892,2893,5,73,0,0,2893,2894,5,78,0,0,2894,2895,5,71,0,0,2895,566,1,0,0,0,2896,2897,5,83,0,0,2897,2898,5,84,0,0,2898,2899,5,65,0,0,2899,2900,5,82,0,0,2900,2901,5,84,0,0,2901,2902,5,83,0,0,2902,2903,5,87,0,0,2903,2904,5,73,0,0,2904,2905,5,84,0,0,2905,2906,5,72,0,0,2906,568,1,0,0,0,2907,2908,5,69,0,0,2908,2909,5,78,0,0,2909,2910,5,68,0,0,2910,2911,5,83,0,0,2911,2912,5,87,0,0,2912,2913,5,73,0,0,2913,2914,5,84,0,0,2914,2915,5,72,0,0,2915,570,1,0,0,0,2916,2917,5,73,0,0,2917,2918,5,83,0,0,2918,2919,5,78,0,0,2919,2920,5,85,0,0,2920,2921,5,76,0,0,2921,2922,5,76,0,0,2922,2923,5,79,0,0,2923,2924,5,82,0,0,2924,2925,5,69,0,0,2925,2926,5,77,0,0,2926,2927,5,80,0,0,2927,2928,5,84,0,0,2928,2929,5,89,0,0,2929,572,1,0,0,0,2930,2931,5,73,0,0,2931,2932,5,83,0,0,2932,2933,5,78,0,0,2933,2934,5,85,0,0,2934,2935,5,76,0,0,2935,2936,5,76,0,0,2936,2937,5,79,0,0,2937,2938,5,82,0,0,2938,2939,5,87,0,0,2939,2940,5,72,0,0,2940,2941,5,73,0,0,2941,2942,5,84,0,0,2942,2943,5,69,0,0,2943,2944,5,83,0,0,2944,2945,5,80,0,0,2945,2946,5,65,0,0,2946,2947,5,67,0,0,2947,2948,5,69,0,0,2948,574,1,0,0,0,2949,2950,5,82,0,0,2950,2951,5,69,0,0,2951,2952,5,77,0,0,2952,2953,5,79,0,0,2953,2954,5,86,0,0,2954,2955,5,69,0,0,2955,2956,5,83,0,0,2956,2957,5,84,0,0,2957,2958,5,65,0,0,2958,2959,5,82,0,0,2959,2960,5,84,0,0,2960,576,1,0,0,0,2961,2962,5,82,0,0,2962,2963,5,69,0,0,2963,2964,5,77,0,0,2964,2965,5,79,0,0,2965,2966,5,86,0,0,2966,2967,5,69,0,0,2967,2968,5,69,0,0,2968,2969,5,78,0,0,2969,2970,5,68,0,0,2970,578,1,0,0,0,2971,2972,5,74,0,0,2972,2973,5,83,0,0,2973,2974,5,79,0,0,2974,2975,5,78,0,0,2975,580,1,0,0,0,2976,2977,5,76,0,0,2977,2978,5,79,0,0,2978,2979,5,79,0,0,2979,2980,5,75,0,0,2980,2981,5,67,0,0,2981,2982,5,69,0,0,2982,2983,5,73,0,0,2983,2984,5,76,0,0,2984,2985,5,73,0,0,2985,2986,5,78,0,0,2986,2987,5,71,0,0,2987,582,1,0,0,0,2988,2989,5,76,0,0,2989,2990,5,79,0,0,2990,2991,5,79,0,0,2991,2992,5,75,0,0,2992,2993,5,70,0,0,2993,2994,5,76,0,0,2994,2995,5,79,0,0,2995,2996,5,79,0,0,2996,2997,5,82,0,0,2997,584,1,0,0,0,2998,2999,5,65,0,0,2999,3e3,5,82,0,0,3e3,3001,5,82,0,0,3001,3002,5,65,0,0,3002,3003,5,89,0,0,3003,586,1,0,0,0,3004,3005,5,65,0,0,3005,3006,5,76,0,0,3006,3007,5,71,0,0,3007,3008,5,79,0,0,3008,3009,5,82,0,0,3009,3010,5,73,0,0,3010,3011,5,84,0,0,3011,3012,5,72,0,0,3012,3013,5,77,0,0,3013,3014,5,86,0,0,3014,3015,5,69,0,0,3015,3016,5,82,0,0,3016,3017,5,83,0,0,3017,3018,5,73,0,0,3018,3019,5,79,0,0,3019,3034,5,78,0,0,3020,3021,5,69,0,0,3021,3022,5,78,0,0,3022,3023,5,71,0,0,3023,3024,5,73,0,0,3024,3025,5,78,0,0,3025,3026,5,69,0,0,3026,3027,5,86,0,0,3027,3028,5,69,0,0,3028,3029,5,82,0,0,3029,3030,5,83,0,0,3030,3031,5,73,0,0,3031,3032,5,79,0,0,3032,3034,5,78,0,0,3033,3004,1,0,0,0,3033,3020,1,0,0,0,3034,588,1,0,0,0,3035,3036,5,65,0,0,3036,3037,5,68,0,0,3037,3038,5,68,0,0,3038,3039,5,89,0,0,3039,3040,5,69,0,0,3040,3041,5,65,0,0,3041,3042,5,82,0,0,3042,3043,5,83,0,0,3043,590,1,0,0,0,3044,3045,5,65,0,0,3045,3046,5,68,0,0,3046,3047,5,68,0,0,3047,3048,5,77,0,0,3048,3049,5,79,0,0,3049,3050,5,78,0,0,3050,3051,5,84,0,0,3051,3052,5,72,0,0,3052,3053,5,83,0,0,3053,592,1,0,0,0,3054,3055,5,65,0,0,3055,3056,5,68,0,0,3056,3057,5,68,0,0,3057,3058,5,68,0,0,3058,3059,5,65,0,0,3059,3060,5,89,0,0,3060,3061,5,83,0,0,3061,594,1,0,0,0,3062,3063,5,65,0,0,3063,3064,5,68,0,0,3064,3065,5,68,0,0,3065,3066,5,72,0,0,3066,3067,5,79,0,0,3067,3068,5,85,0,0,3068,3069,5,82,0,0,3069,3070,5,83,0,0,3070,596,1,0,0,0,3071,3072,5,65,0,0,3072,3073,5,68,0,0,3073,3074,5,68,0,0,3074,3075,5,77,0,0,3075,3076,5,73,0,0,3076,3077,5,78,0,0,3077,3078,5,85,0,0,3078,3079,5,84,0,0,3079,3080,5,69,0,0,3080,3081,5,83,0,0,3081,598,1,0,0,0,3082,3083,5,65,0,0,3083,3084,5,68,0,0,3084,3085,5,68,0,0,3085,3086,5,83,0,0,3086,3087,5,69,0,0,3087,3088,5,67,0,0,3088,3089,5,79,0,0,3089,3090,5,78,0,0,3090,3091,5,68,0,0,3091,3092,5,83,0,0,3092,600,1,0,0,0,3093,3094,5,84,0,0,3094,3095,5,73,0,0,3095,3096,5,77,0,0,3096,3097,5,69,0,0,3097,3098,5,83,0,0,3098,3099,5,84,0,0,3099,3100,5,65,0,0,3100,3101,5,77,0,0,3101,3102,5,80,0,0,3102,602,1,0,0,0,3103,3104,5,72,0,0,3104,3105,5,65,0,0,3105,3132,5,83,0,0,3106,3107,5,72,0,0,3107,3108,5,65,0,0,3108,3109,5,83,0,0,3109,3110,5,75,0,0,3110,3111,5,69,0,0,3111,3132,5,89,0,0,3112,3113,5,67,0,0,3113,3114,5,79,0,0,3114,3115,5,78,0,0,3115,3116,5,84,0,0,3116,3117,5,65,0,0,3117,3118,5,73,0,0,3118,3119,5,78,0,0,3119,3132,5,83,0,0,3120,3121,5,67,0,0,3121,3122,5,79,0,0,3122,3123,5,78,0,0,3123,3124,5,84,0,0,3124,3125,5,65,0,0,3125,3126,5,73,0,0,3126,3127,5,78,0,0,3127,3128,5,83,0,0,3128,3129,5,75,0,0,3129,3130,5,69,0,0,3130,3132,5,89,0,0,3131,3103,1,0,0,0,3131,3106,1,0,0,0,3131,3112,1,0,0,0,3131,3120,1,0,0,0,3132,604,1,0,0,0,3133,3134,5,72,0,0,3134,3135,5,65,0,0,3135,3136,5,83,0,0,3136,3137,5,86,0,0,3137,3138,5,65,0,0,3138,3139,5,76,0,0,3139,3140,5,85,0,0,3140,3155,5,69,0,0,3141,3142,5,67,0,0,3142,3143,5,79,0,0,3143,3144,5,78,0,0,3144,3145,5,84,0,0,3145,3146,5,65,0,0,3146,3147,5,73,0,0,3147,3148,5,78,0,0,3148,3149,5,83,0,0,3149,3150,5,86,0,0,3150,3151,5,65,0,0,3151,3152,5,76,0,0,3152,3153,5,85,0,0,3153,3155,5,69,0,0,3154,3133,1,0,0,0,3154,3141,1,0,0,0,3155,606,1,0,0,0,3156,3157,5,80,0,0,3157,3158,5,65,0,0,3158,3159,5,82,0,0,3159,3160,5,65,0,0,3160,3183,5,77,0,0,3161,3162,5,80,0,0,3162,3163,5,65,0,0,3163,3164,5,82,0,0,3164,3165,5,65,0,0,3165,3166,5,77,0,0,3166,3167,5,69,0,0,3167,3168,5,84,0,0,3168,3169,5,69,0,0,3169,3183,5,82,0,0,3170,3171,5,71,0,0,3171,3172,5,69,0,0,3172,3173,5,84,0,0,3173,3174,5,80,0,0,3174,3175,5,65,0,0,3175,3176,5,82,0,0,3176,3177,5,65,0,0,3177,3178,5,77,0,0,3178,3179,5,69,0,0,3179,3180,5,84,0,0,3180,3181,5,69,0,0,3181,3183,5,82,0,0,3182,3156,1,0,0,0,3182,3161,1,0,0,0,3182,3170,1,0,0,0,3183,608,1,0,0,0,3184,3187,7,6,0,0,3185,3187,3,611,305,0,3186,3184,1,0,0,0,3186,3185,1,0,0,0,3187,3192,1,0,0,0,3188,3191,7,7,0,0,3189,3191,3,611,305,0,3190,3188,1,0,0,0,3190,3189,1,0,0,0,3191,3194,1,0,0,0,3192,3190,1,0,0,0,3192,3193,1,0,0,0,3193,610,1,0,0,0,3194,3192,1,0,0,0,3195,3196,7,8,0,0,3196,612,1,0,0,0,3197,3199,7,9,0,0,3198,3197,1,0,0,0,3199,3200,1,0,0,0,3200,3198,1,0,0,0,3200,3201,1,0,0,0,3201,3202,1,0,0,0,3202,3203,6,306,0,0,3203,614,1,0,0,0,3204,3205,5,47,0,0,3205,3206,5,42,0,0,3206,3210,1,0,0,0,3207,3209,9,0,0,0,3208,3207,1,0,0,0,3209,3212,1,0,0,0,3210,3211,1,0,0,0,3210,3208,1,0,0,0,3211,3213,1,0,0,0,3212,3210,1,0,0,0,3213,3214,5,42,0,0,3214,3215,5,47,0,0,3215,3216,1,0,0,0,3216,3217,6,307,0,0,3217,616,1,0,0,0,3218,3219,5,47,0,0,3219,3220,5,47,0,0,3220,3224,1,0,0,0,3221,3223,8,10,0,0,3222,3221,1,0,0,0,3223,3226,1,0,0,0,3224,3222,1,0,0,0,3224,3225,1,0,0,0,3225,3227,1,0,0,0,3226,3224,1,0,0,0,3227,3228,6,308,0,0,3228,618,1,0,0,0,69,0,693,695,701,708,710,717,719,725,732,734,736,740,744,746,752,754,762,764,772,774,778,834,958,967,1575,1626,1666,1744,1962,1990,2069,2084,2103,2132,2143,2162,2179,2201,2221,2240,2257,2278,2299,2312,2323,2361,2380,2404,2429,2448,2473,2500,2521,2534,2545,2756,2839,2853,3033,3131,3154,3182,3186,3190,3192,3200,3210,3224,1,6,0,0]),vs=ys.Xs.map((t,s)=>new ks.Fh.DFA(t,s));class As extends ks.Lexer{static xu="";static Su=[];static mu=[];static Ai=[];static Ei=[];static us=[];constructor(t){super(t),this.Si=new ks.Pt.LexerATNSimulator(this,ys,vs,new ks.Pt.PredictionContextCache)}}class Cs{}class Es extends Cs{constructor(t){super(),this.Ml=t,this.Tu=[],this.index=-1,this.ku=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.yu(),this.index=this.vu(t)}get size(){return this.Tu.length}get(t){return this.yu(),this.Tu[t]}M(){let t=!1;if(t=this.index>=0&&(this.ku?this.index<this.Tu.length-1:this.index<this.Tu.length),!t&&this.LA(1)===i.EOF)throw"cannot consume EOF";this.sync(this.index+1)&&(this.index=this.vu(this.index+1))}sync(t){let s=t-this.Tu.length+1;return!(s>0)||this.fetch(s)>=s}fetch(t){if(this.ku)return 0;for(let s=0;s<t;s++){let t=this.Ml.un();if(t.o=this.Tu.length,this.Tu.push(t),t.type===i.EOF)return this.ku=!0,s+1}return t}du(t,s,e){if(void 0===e&&(e=null),t<0||s<0)return null;this.yu();let n=[];s>=this.Tu.length&&(s=this.Tu.length-1);for(let r=t;r<s;r++){let t=this.Tu[r];if(t.type===i.EOF)break;(null===e||e.contains(t.type))&&n.push(t)}return n}LA(t){return this.LT(t).type}LB(t){return this.index-t<0?null:this.Tu[this.index-t]}LT(t){if(this.yu(),0===t)return null;if(t<0)return this.LB(-t);let s=this.index+t-1;return this.sync(s),s>=this.Tu.length?this.Tu[this.Tu.length-1]:this.Tu[s]}vu(t){return t}yu(){-1===this.index&&this.Au()}Au(){this.sync(0),this.index=this.vu(0)}Cu(t){this.Ml=t,this.Tu=[],this.index=-1,this.ku=!1}Eu(t,s){if(this.sync(t),t>=this.Tu.length)return-1;let e=this.Tu[t];for(;e.channel!==s;){if(e.type===i.EOF)return-1;t+=1,this.sync(t),e=this.Tu[t]}return t}bu(t,s){for(;t>=0&&this.Tu[t].channel!==s;)t-=1;return t}Nu(t,s){if(void 0===s&&(s=-1),this.yu(),t<0||t>=this.Tu.length)throw t+" not in 0.."+this.Tu.length-1;let e=this.Eu(t+1,Ht.vn),i=t+1,n=-1===e?this.Tu.length-1:e;return this.Ru(i,n,s)}Lu(t,s){if(void 0===s&&(s=-1),this.yu(),t<0||t>=this.Tu.length)throw t+" not in 0.."+this.Tu.length-1;let e=this.bu(t-1,Ht.vn);if(e===t-1)return null;let i=e+1,n=t-1;return this.Ru(i,n,s)}Ru(t,s,e){let i=[];for(let n=t;n<s+1;n++){let t=this.Tu[n];-1===e?t.channel!==Ht.vn&&i.push(t):t.channel===e&&i.push(t)}return 0===i.length?null:i}au(){return this.Ml.au()}q(t){this.yu(),this.fill(),t||(t=new k(0,this.Tu.length-1));let s=t.start;s instanceof i&&(s=s.o);let e=t.stop;if(e instanceof i&&(e=e.o),null===s||null===e||s<0||e<0)return"";e>=this.Tu.length&&(e=this.Tu.length-1);let n="";for(let t=s;t<e+1;t++){let s=this.Tu[t];if(s.type===i.EOF)break;n+=s.text}return n}fill(){for(this.yu();1e3===this.fetch(1e3););}}Object.defineProperty(Es,"size",{get:function(){return this.Tu.length}});class bs extends Es{constructor(t,s){super(t),this.channel=void 0===s?i.N:s}vu(t){return this.Eu(t,this.channel)}LB(t){if(0===t||this.index-t<0)return null;let s=this.index,e=1;for(;e<=t;)s=this.bu(s-1,this.channel),e+=1;return s<0?null:this.Tu[s]}LT(t){if(this.yu(),0===t)return null;if(t<0)return this.LB(-t);let s=this.index,e=1;for(;e<t;)this.sync(s+1)&&(s=this.Eu(s+1,this.channel)),e+=1;return this.Tu[s]}Ou(){let t=0;this.fill();for(let s=0;s<this.Tu.length;s++){let e=this.Tu[s];if(e.channel===this.channel&&(t+=1),e.type===i.EOF)break}return t}}const Ns=(new ks.Pt.ATNDeserializer).Ke([4,1,308,463,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,24,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,34,8,1,10,1,12,1,37,9,1,3,1,39,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,52,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,63,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,76,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,91,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,102,8,1,3,1,104,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,113,8,1,10,1,12,1,116,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,146,8,1,10,1,12,1,149,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,162,8,1,3,1,164,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,173,8,1,11,1,12,1,174,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,188,8,1,10,1,12,1,191,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,217,8,1,3,1,219,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,236,8,1,3,1,238,8,1,3,1,240,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,257,8,1,3,1,259,8,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,267,8,1,10,1,12,1,270,9,1,1,1,5,1,273,8,1,10,1,12,1,276,9,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,284,8,1,10,1,12,1,287,9,1,1,1,5,1,290,8,1,10,1,12,1,293,9,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,301,8,1,1,1,1,1,3,1,305,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,341,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,351,8,1,10,1,12,1,354,9,1,3,1,356,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,373,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,386,8,1,3,1,388,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,399,8,1,10,1,12,1,402,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,424,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,442,8,1,10,1,12,1,445,9,1,1,2,3,2,448,8,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,459,8,3,1,4,1,4,1,4,0,1,2,5,0,2,4,6,8,0,28,1,0,52,53,4,0,54,55,110,110,176,177,268,268,28,0,33,33,39,40,42,45,51,51,68,68,71,72,74,74,79,100,107,108,112,113,115,116,118,118,121,123,135,135,145,151,157,158,160,160,164,164,167,167,169,171,173,173,178,183,220,221,228,229,232,232,257,264,286,287,290,290,21,0,41,41,46,47,56,67,73,73,102,102,105,106,117,117,128,129,136,136,138,138,154,154,156,156,163,163,165,165,172,172,184,184,192,192,250,250,277,278,301,301,304,304,10,0,35,35,38,38,144,144,175,175,187,187,190,191,203,203,209,209,252,252,283,285,2,0,161,161,166,166,1,0,254,255,2,0,155,155,288,289,14,0,48,50,75,76,119,120,130,131,152,152,193,195,197,197,202,202,204,206,208,208,210,212,215,217,248,248,293,293,27,0,69,70,77,78,101,101,103,104,109,109,111,111,114,114,124,127,132,134,140,143,153,153,162,162,168,168,186,186,188,189,196,196,198,201,207,207,213,214,239,239,265,265,267,267,273,276,281,281,291,292,295,300,302,303,12,0,139,139,159,159,185,185,219,219,222,223,225,227,231,231,234,238,249,249,251,251,253,253,266,266,1,0,279,280,7,0,137,137,218,218,224,224,230,230,233,233,240,240,256,256,2,0,241,241,244,246,2,0,174,174,247,247,1,0,242,243,2,0,34,34,167,167,1,0,8,10,2,0,11,12,29,29,1,0,13,16,1,0,17,22,13,0,39,40,42,43,74,74,157,158,164,164,167,167,169,171,173,173,178,183,257,258,269,272,286,287,290,290,7,0,41,41,46,47,156,156,163,163,172,172,277,278,301,301,7,0,153,153,168,168,265,265,267,267,281,281,295,300,302,303,2,0,283,285,288,289,2,0,159,159,266,266,1,0,30,31,2,0,32,292,294,305,542,0,10,1,0,0,0,2,304,1,0,0,0,4,447,1,0,0,0,6,458,1,0,0,0,8,460,1,0,0,0,10,11,3,2,1,0,11,12,5,0,0,1,12,1,1,0,0,0,13,14,6,1,-1,0,14,15,5,2,0,0,15,16,3,2,1,0,16,17,5,3,0,0,17,305,1,0,0,0,18,19,5,7,0,0,19,305,3,2,1,36,20,23,7,0,0,0,21,22,5,2,0,0,22,24,5,3,0,0,23,21,1,0,0,0,23,24,1,0,0,0,24,305,1,0,0,0,25,26,7,1,0,0,26,27,5,2,0,0,27,305,5,3,0,0,28,29,5,305,0,0,29,38,5,2,0,0,30,35,3,2,1,0,31,32,5,4,0,0,32,34,3,2,1,0,33,31,1,0,0,0,34,37,1,0,0,0,35,33,1,0,0,0,35,36,1,0,0,0,36,39,1,0,0,0,37,35,1,0,0,0,38,30,1,0,0,0,38,39,1,0,0,0,39,40,1,0,0,0,40,305,5,3,0,0,41,42,7,2,0,0,42,43,5,2,0,0,43,44,3,2,1,0,44,45,5,3,0,0,45,305,1,0,0,0,46,47,7,3,0,0,47,48,5,2,0,0,48,51,3,2,1,0,49,50,5,4,0,0,50,52,3,2,1,0,51,49,1,0,0,0,51,52,1,0,0,0,52,53,1,0,0,0,53,54,5,3,0,0,54,305,1,0,0,0,55,56,7,4,0,0,56,57,5,2,0,0,57,58,3,2,1,0,58,59,5,4,0,0,59,62,3,2,1,0,60,61,5,4,0,0,61,63,3,2,1,0,62,60,1,0,0,0,62,63,1,0,0,0,63,64,1,0,0,0,64,65,5,3,0,0,65,305,1,0,0,0,66,67,7,5,0,0,67,68,5,2,0,0,68,69,3,2,1,0,69,70,5,4,0,0,70,71,3,2,1,0,71,72,5,4,0,0,72,75,3,2,1,0,73,74,5,4,0,0,74,76,3,2,1,0,75,73,1,0,0,0,75,76,1,0,0,0,76,77,1,0,0,0,77,78,5,3,0,0,78,305,1,0,0,0,79,80,7,6,0,0,80,81,5,2,0,0,81,82,3,2,1,0,82,83,5,4,0,0,83,84,3,2,1,0,84,85,5,4,0,0,85,86,3,2,1,0,86,87,5,4,0,0,87,90,3,2,1,0,88,89,5,4,0,0,89,91,3,2,1,0,90,88,1,0,0,0,90,91,1,0,0,0,91,92,1,0,0,0,92,93,5,3,0,0,93,305,1,0,0,0,94,95,7,7,0,0,95,96,5,2,0,0,96,103,3,2,1,0,97,98,5,4,0,0,98,101,3,2,1,0,99,100,5,4,0,0,100,102,3,2,1,0,101,99,1,0,0,0,101,102,1,0,0,0,102,104,1,0,0,0,103,97,1,0,0,0,103,104,1,0,0,0,104,105,1,0,0,0,105,106,5,3,0,0,106,305,1,0,0,0,107,108,7,8,0,0,108,109,5,2,0,0,109,114,3,2,1,0,110,111,5,4,0,0,111,113,3,2,1,0,112,110,1,0,0,0,113,116,1,0,0,0,114,112,1,0,0,0,114,115,1,0,0,0,115,117,1,0,0,0,116,114,1,0,0,0,117,118,5,3,0,0,118,305,1,0,0,0,119,120,7,9,0,0,120,121,5,2,0,0,121,122,3,2,1,0,122,123,5,4,0,0,123,124,3,2,1,0,124,125,5,3,0,0,125,305,1,0,0,0,126,127,7,10,0,0,127,128,5,2,0,0,128,129,3,2,1,0,129,130,5,4,0,0,130,131,3,2,1,0,131,132,5,4,0,0,132,133,3,2,1,0,133,134,5,3,0,0,134,305,1,0,0,0,135,136,5,36,0,0,136,137,5,2,0,0,137,138,3,2,1,0,138,139,5,4,0,0,139,147,3,2,1,0,140,141,5,4,0,0,141,142,3,2,1,0,142,143,5,4,0,0,143,144,3,2,1,0,144,146,1,0,0,0,145,140,1,0,0,0,146,149,1,0,0,0,147,145,1,0,0,0,147,148,1,0,0,0,148,150,1,0,0,0,149,147,1,0,0,0,150,151,5,3,0,0,151,305,1,0,0,0,152,153,7,11,0,0,153,154,5,2,0,0,154,155,3,2,1,0,155,156,5,4,0,0,156,163,3,2,1,0,157,158,5,4,0,0,158,161,3,2,1,0,159,160,5,4,0,0,160,162,3,2,1,0,161,159,1,0,0,0,161,162,1,0,0,0,162,164,1,0,0,0,163,157,1,0,0,0,163,164,1,0,0,0,164,165,1,0,0,0,165,166,5,3,0,0,166,305,1,0,0,0,167,168,5,282,0,0,168,169,5,2,0,0,169,172,3,2,1,0,170,171,5,4,0,0,171,173,3,2,1,0,172,170,1,0,0,0,173,174,1,0,0,0,174,172,1,0,0,0,174,175,1,0,0,0,175,176,1,0,0,0,176,177,5,3,0,0,177,305,1,0,0,0,178,179,5,37,0,0,179,180,5,2,0,0,180,181,3,2,1,0,181,182,5,4,0,0,182,183,3,2,1,0,183,184,5,4,0,0,184,189,3,2,1,0,185,186,5,4,0,0,186,188,3,2,1,0,187,185,1,0,0,0,188,191,1,0,0,0,189,187,1,0,0,0,189,190,1,0,0,0,190,192,1,0,0,0,191,189,1,0,0,0,192,193,5,3,0,0,193,305,1,0,0,0,194,195,7,12,0,0,195,196,5,2,0,0,196,197,3,2,1,0,197,198,5,4,0,0,198,199,3,2,1,0,199,200,5,4,0,0,200,201,3,2,1,0,201,202,5,4,0,0,202,203,3,2,1,0,203,204,5,3,0,0,204,305,1,0,0,0,205,206,7,13,0,0,206,207,5,2,0,0,207,208,3,2,1,0,208,209,5,4,0,0,209,210,3,2,1,0,210,211,5,4,0,0,211,218,3,2,1,0,212,213,5,4,0,0,213,216,3,2,1,0,214,215,5,4,0,0,215,217,3,2,1,0,216,214,1,0,0,0,216,217,1,0,0,0,217,219,1,0,0,0,218,212,1,0,0,0,218,219,1,0,0,0,219,220,1,0,0,0,220,221,5,3,0,0,221,305,1,0,0,0,222,223,7,14,0,0,223,224,5,2,0,0,224,225,3,2,1,0,225,226,5,4,0,0,226,227,3,2,1,0,227,228,5,4,0,0,228,239,3,2,1,0,229,230,5,4,0,0,230,237,3,2,1,0,231,232,5,4,0,0,232,235,3,2,1,0,233,234,5,4,0,0,234,236,3,2,1,0,235,233,1,0,0,0,235,236,1,0,0,0,236,238,1,0,0,0,237,231,1,0,0,0,237,238,1,0,0,0,238,240,1,0,0,0,239,229,1,0,0,0,239,240,1,0,0,0,240,241,1,0,0,0,241,242,5,3,0,0,242,305,1,0,0,0,243,244,7,15,0,0,244,245,5,2,0,0,245,246,3,2,1,0,246,247,5,4,0,0,247,248,3,2,1,0,248,249,5,4,0,0,249,250,3,2,1,0,250,251,5,4,0,0,251,258,3,2,1,0,252,253,5,4,0,0,253,256,3,2,1,0,254,255,5,4,0,0,255,257,3,2,1,0,256,254,1,0,0,0,256,257,1,0,0,0,257,259,1,0,0,0,258,252,1,0,0,0,258,259,1,0,0,0,259,260,1,0,0,0,260,261,5,3,0,0,261,305,1,0,0,0,262,263,5,27,0,0,263,268,3,6,3,0,264,265,5,4,0,0,265,267,3,6,3,0,266,264,1,0,0,0,267,270,1,0,0,0,268,266,1,0,0,0,268,269,1,0,0,0,269,274,1,0,0,0,270,268,1,0,0,0,271,273,5,4,0,0,272,271,1,0,0,0,273,276,1,0,0,0,274,272,1,0,0,0,274,275,1,0,0,0,275,277,1,0,0,0,276,274,1,0,0,0,277,278,5,28,0,0,278,305,1,0,0,0,279,280,5,5,0,0,280,285,3,2,1,0,281,282,5,4,0,0,282,284,3,2,1,0,283,281,1,0,0,0,284,287,1,0,0,0,285,283,1,0,0,0,285,286,1,0,0,0,286,291,1,0,0,0,287,285,1,0,0,0,288,290,5,4,0,0,289,288,1,0,0,0,290,293,1,0,0,0,291,289,1,0,0,0,291,292,1,0,0,0,292,294,1,0,0,0,293,291,1,0,0,0,294,295,5,6,0,0,295,305,1,0,0,0,296,305,5,294,0,0,297,305,5,305,0,0,298,300,3,4,2,0,299,301,7,16,0,0,300,299,1,0,0,0,300,301,1,0,0,0,301,305,1,0,0,0,302,305,5,31,0,0,303,305,5,32,0,0,304,13,1,0,0,0,304,18,1,0,0,0,304,20,1,0,0,0,304,25,1,0,0,0,304,28,1,0,0,0,304,41,1,0,0,0,304,46,1,0,0,0,304,55,1,0,0,0,304,66,1,0,0,0,304,79,1,0,0,0,304,94,1,0,0,0,304,107,1,0,0,0,304,119,1,0,0,0,304,126,1,0,0,0,304,135,1,0,0,0,304,152,1,0,0,0,304,167,1,0,0,0,304,178,1,0,0,0,304,194,1,0,0,0,304,205,1,0,0,0,304,222,1,0,0,0,304,243,1,0,0,0,304,262,1,0,0,0,304,279,1,0,0,0,304,296,1,0,0,0,304,297,1,0,0,0,304,298,1,0,0,0,304,302,1,0,0,0,304,303,1,0,0,0,305,443,1,0,0,0,306,307,10,34,0,0,307,308,7,17,0,0,308,442,3,2,1,35,309,310,10,33,0,0,310,311,7,18,0,0,311,442,3,2,1,34,312,313,10,32,0,0,313,314,7,19,0,0,314,442,3,2,1,33,315,316,10,31,0,0,316,317,7,20,0,0,317,442,3,2,1,32,318,319,10,30,0,0,319,320,5,23,0,0,320,442,3,2,1,31,321,322,10,29,0,0,322,323,5,24,0,0,323,442,3,2,1,30,324,325,10,28,0,0,325,326,5,25,0,0,326,327,3,2,1,0,327,328,5,26,0,0,328,329,3,2,1,29,329,442,1,0,0,0,330,331,10,49,0,0,331,332,5,1,0,0,332,333,7,21,0,0,333,334,5,2,0,0,334,442,5,3,0,0,335,336,10,48,0,0,336,337,5,1,0,0,337,338,7,22,0,0,338,340,5,2,0,0,339,341,3,2,1,0,340,339,1,0,0,0,340,341,1,0,0,0,341,342,1,0,0,0,342,442,5,3,0,0,343,344,10,47,0,0,344,345,5,1,0,0,345,346,5,305,0,0,346,355,5,2,0,0,347,352,3,2,1,0,348,349,5,4,0,0,349,351,3,2,1,0,350,348,1,0,0,0,351,354,1,0,0,0,352,350,1,0,0,0,352,353,1,0,0,0,353,356,1,0,0,0,354,352,1,0,0,0,355,347,1,0,0,0,355,356,1,0,0,0,356,357,1,0,0,0,357,442,5,3,0,0,358,359,10,46,0,0,359,360,5,1,0,0,360,361,7,23,0,0,361,362,5,2,0,0,362,363,3,2,1,0,363,364,5,3,0,0,364,442,1,0,0,0,365,366,10,45,0,0,366,367,5,1,0,0,367,368,7,24,0,0,368,369,5,2,0,0,369,372,3,2,1,0,370,371,5,4,0,0,371,373,3,2,1,0,372,370,1,0,0,0,372,373,1,0,0,0,373,374,1,0,0,0,374,375,5,3,0,0,375,442,1,0,0,0,376,377,10,44,0,0,377,378,5,1,0,0,378,379,7,11,0,0,379,380,5,2,0,0,380,387,3,2,1,0,381,382,5,4,0,0,382,385,3,2,1,0,383,384,5,4,0,0,384,386,3,2,1,0,385,383,1,0,0,0,385,386,1,0,0,0,386,388,1,0,0,0,387,381,1,0,0,0,387,388,1,0,0,0,388,389,1,0,0,0,389,390,5,3,0,0,390,442,1,0,0,0,391,392,10,43,0,0,392,393,5,1,0,0,393,394,5,282,0,0,394,395,5,2,0,0,395,400,3,2,1,0,396,397,5,4,0,0,397,399,3,2,1,0,398,396,1,0,0,0,399,402,1,0,0,0,400,398,1,0,0,0,400,401,1,0,0,0,401,403,1,0,0,0,402,400,1,0,0,0,403,404,5,3,0,0,404,442,1,0,0,0,405,406,10,42,0,0,406,407,5,1,0,0,407,408,7,25,0,0,408,409,5,2,0,0,409,410,3,2,1,0,410,411,5,4,0,0,411,412,3,2,1,0,412,413,5,3,0,0,413,442,1,0,0,0,414,415,10,41,0,0,415,416,5,1,0,0,416,417,5,161,0,0,417,418,5,2,0,0,418,419,3,2,1,0,419,420,5,4,0,0,420,423,3,2,1,0,421,422,5,4,0,0,422,424,3,2,1,0,423,421,1,0,0,0,423,424,1,0,0,0,424,425,1,0,0,0,425,426,5,3,0,0,426,442,1,0,0,0,427,428,10,40,0,0,428,429,5,5,0,0,429,430,5,305,0,0,430,442,5,6,0,0,431,432,10,39,0,0,432,433,5,5,0,0,433,434,3,2,1,0,434,435,5,6,0,0,435,442,1,0,0,0,436,437,10,38,0,0,437,438,5,1,0,0,438,442,3,8,4,0,439,440,10,35,0,0,440,442,5,8,0,0,441,306,1,0,0,0,441,309,1,0,0,0,441,312,1,0,0,0,441,315,1,0,0,0,441,318,1,0,0,0,441,321,1,0,0,0,441,324,1,0,0,0,441,330,1,0,0,0,441,335,1,0,0,0,441,343,1,0,0,0,441,358,1,0,0,0,441,365,1,0,0,0,441,376,1,0,0,0,441,391,1,0,0,0,441,405,1,0,0,0,441,414,1,0,0,0,441,427,1,0,0,0,441,431,1,0,0,0,441,436,1,0,0,0,441,439,1,0,0,0,442,445,1,0,0,0,443,441,1,0,0,0,443,444,1,0,0,0,444,3,1,0,0,0,445,443,1,0,0,0,446,448,5,29,0,0,447,446,1,0,0,0,447,448,1,0,0,0,448,449,1,0,0,0,449,450,5,30,0,0,450,5,1,0,0,0,451,452,7,26,0,0,452,453,5,26,0,0,453,459,3,2,1,0,454,455,3,8,4,0,455,456,5,26,0,0,456,457,3,2,1,0,457,459,1,0,0,0,458,451,1,0,0,0,458,454,1,0,0,0,459,7,1,0,0,0,460,461,7,27,0,0,461,9,1,0,0,0,40,23,35,38,51,62,75,90,101,103,114,147,161,163,174,189,216,218,235,237,239,256,258,268,274,285,291,300,304,340,352,355,372,385,387,400,423,441,443,447,458]),Rs=Ns.Xs.map((t,s)=>new ks.Fh.DFA(t,s)),Ls=new ks.Pt.PredictionContextCache;class Os extends ks.Parser{static xu="mathjs.g4";static Ai=[];static Ei=[];static us=[];constructor(t){super(t),this.Si=new ks.Pt.ParserATNSimulator(this,Ns,Rs,Ls),this.us=Os.us,this.Ai=Os.Ai,this.Ei=Os.Ei}be(t,s,e){return!0}A(t){this.match(t)}B(t,s){this.match(t),this.match(s)}C(t,s,e){this.match(t),this.match(s),this.match(e)}D(t,s,e,i){this.match(t),this.match(s),this.match(e),this.match(i)}E(t,s){this.state=t,this.Pu(s)}I(t,s,e,i){this.match(t),this.match(s),this.state=e,this.Pu(i)}J(t,s,e){this.match(t),this.state=s,this.Pu(e)}R(){return this.$i.LT(1)}Q(){this.ml.sl(this),this.M()}W(t,s,e){this.Xl(t,s,e)}X(){this.ml.sync(this)}Y(){return this.$i.LA(1)}Z(){return this.ml.sync(this),this.$i.LA(1)}Iu(){let t=new Ps(this,this.Br,this.state);this.Fl(t,0,0);try{this.Jl(t,1),this.E(10,0),this.match(-1)}catch(s){if(!(s instanceof ks.error.RecognitionException))throw s;t.exception=s,this.ml.reportError(this,s),this.ml.fn(this,s)}finally{this._l()}return t}Pu(t){void 0===t&&(t=0);const s=this.Br,e=this.state;let i=new Is(this,this.Br,e);this.Ql(i,2,1,t);var n=0;try{switch(this.Jl(i,1),this.X(),this.Si.th(this.$i,27,this.Br)){case 1:this.J(2,15,0),this.A(3);break;case 2:this.J(7,19,36);break;case 3:52!==(n=this.Y())&&53!==n?this.ml.Wh(this):this.Q(),this.X(),1===this.Si.th(this.$i,0,this.Br)&&this.B(2,3);break;case 4:54!==(n=this.Y())&&55!==n&&110!==n&&176!==n&&177!==n&&268!==n?this.ml.Wh(this):this.Q(),this.B(2,3);break;case 5:if(this.B(305,2),!(-32&(n=this.Z()))&&1<<n&3892314276||!(n-32&-32)&&1<<n-32&4294967291||!(n-64&-32)&&1<<n-64&4294967295||!(n-96&-32)&&1<<n-96&4294967295||!(n-128&-32)&&1<<n-128&4294967295||!(n-160&-32)&&1<<n-160&4294967295||!(n-192&-32)&&1<<n-192&4294967295||!(n-224&-32)&&1<<n-224&4294967295||!(n-256&-32)&&1<<n-256&4294844415||!(n-288&-32)&&1<<n-288&262143)for(this.E(30,0),n=this.Z();4===n;)this.J(4,32,0),n=this.Z();this.A(3);break;case 6:!((n=this.Y())-33&-32)&&1<<n-33&270017||!(n-68&-32)&&1<<n-68&4294965337||!(n-100&-32)&&1<<n-100&15053185||!(n-135&-32)&&1<<n-135&583138305||!(n-167&-32)&&1<<n-167&129117||!(n-220&-32)&&1<<n-220&4867||!(n-257&-32)&&1<<n-257&1610612991||290===n?this.Q():this.ml.Wh(this),this.J(2,43,0),this.A(3);break;case 7:!((n=this.Y())-41&-32)&&1<<n-41&134185057||73===n||102===n||!(n-105&-32)&&1<<n-105&2172653571||!(n-138&-32)&&1<<n-138&168099841||!(n-172&-32)&&1<<n-172&1052673||!(n-250&-32)&&1<<n-250&402653185||301===n||304===n?this.Q():this.ml.Wh(this),this.J(2,48,0),4===(n=this.Z())&&this.J(4,50,0),this.A(3);break;case 8:35===(n=this.Y())||38===n||144===n||175===n||!(n-187&-32)&&1<<n-187&4259865||252===n||283===n||284===n||285===n?this.Q():this.ml.Wh(this),this.J(2,57,0),this.J(4,59,0),4===(n=this.Z())&&this.J(4,61,0),this.A(3);break;case 9:161!==(n=this.Y())&&166!==n?this.ml.Wh(this):this.Q(),this.J(2,68,0),this.J(4,70,0),this.J(4,72,0),4===(n=this.Z())&&this.J(4,74,0),this.A(3);break;case 10:254!==(n=this.Y())&&255!==n?this.ml.Wh(this):this.Q(),this.J(2,81,0),this.J(4,83,0),this.J(4,85,0),this.J(4,87,0),4===(n=this.Z())&&this.J(4,89,0),this.A(3);break;case 11:155!==(n=this.Y())&&288!==n&&289!==n?this.ml.Wh(this):this.Q(),this.J(2,96,0),4===(n=this.Z())&&(this.J(4,98,0),4===(n=this.Z())&&this.J(4,100,0)),this.A(3);break;case 12:for(!((n=this.Y())-48&-32)&&1<<n-48&402653191||!(n-119&-32)&&1<<n-119&6147||152===n||!(n-193&-32)&&1<<n-193&30325271||248===n||293===n?this.Q():this.ml.Wh(this),this.J(2,109,0),n=this.Z();4===n;)this.J(4,111,0),n=this.Z();this.A(3);break;case 13:!((n=this.Y())-69&-32)&&1<<n-69&771||!(n-101&-32)&&1<<n-101&2273322253||!(n-133&-32)&&1<<n-133&537921411||!(n-168&-32)&&1<<n-168&3493068801||!(n-200&-32)&&1<<n-200&24707||!(n-239&-32)&&1<<n-239&335544321||!(n-273&-32)&&1<<n-273&1875640591?this.Q():this.ml.Wh(this),this.J(2,121,0),this.J(4,123,0),this.A(3);break;case 14:139===(n=this.Y())||159===n||185===n||!(n-219&-32)&&1<<n-219&1074762201||!(n-251&-32)&&1<<n-251&32773?this.Q():this.ml.Wh(this),this.J(2,128,0),this.J(4,130,0),this.J(4,132,0),this.A(3);break;case 15:for(this.I(36,2,137,0),this.J(4,139,0),n=this.Z();4===n;)this.J(4,141,0),this.J(4,143,0),n=this.Z();this.A(3);break;case 16:279!==(n=this.Y())&&280!==n?this.ml.Wh(this):this.Q(),this.J(2,154,0),this.J(4,156,0),4===(n=this.Z())&&(this.J(4,158,0),4===(n=this.Z())&&this.J(4,160,0)),this.A(3);break;case 17:this.I(282,2,169,0),n=this.Z();do{this.J(4,171,0),n=this.Z()}while(4===n);this.A(3);break;case 18:for(this.I(37,2,180,0),this.J(4,182,0),this.J(4,184,0),n=this.Z();4===n;)this.J(4,186,0),n=this.Z();this.A(3);break;case 19:137===(n=this.Y())||!(n-218&-32)&&1<<n-218&4231233||256===n?this.Q():this.ml.Wh(this),this.J(2,196,0),this.J(4,198,0),this.J(4,200,0),this.J(4,202,0),this.A(3);break;case 20:(n=this.Y())-241&-32||!(1<<n-241&57)?this.ml.Wh(this):this.Q(),this.J(2,207,0),this.J(4,209,0),this.J(4,211,0),4===(n=this.Z())&&(this.J(4,213,0),4===(n=this.Z())&&this.J(4,215,0)),this.A(3);break;case 21:174!==(n=this.Y())&&247!==n?this.ml.Wh(this):this.Q(),this.J(2,224,0),this.J(4,226,0),this.J(4,228,0),4===(n=this.Z())&&(this.J(4,230,0),4===(n=this.Z())&&(this.J(4,232,0),4===(n=this.Z())&&this.J(4,234,0))),this.A(3);break;case 22:242!==(n=this.Y())&&243!==n?this.ml.Wh(this):this.Q(),this.J(2,245,0),this.J(4,247,0),this.J(4,249,0),this.J(4,251,0),4===(n=this.Z())&&(this.J(4,253,0),4===(n=this.Z())&&this.J(4,255,0)),this.A(3);break;case 23:this.A(27),this.state=263,this.Fu(),this.X();for(var r=this.Si.th(this.$i,22,this.Br);2!=r&&r!=ks.Pt.ATN.de;)1===r&&(this.A(4),this.state=265,this.Fu()),this.X(),r=this.Si.th(this.$i,22,this.Br);for(n=this.Z();4===n;)this.A(4),n=this.Z();this.A(28);break;case 24:for(this.J(5,280,0),this.X(),r=this.Si.th(this.$i,24,this.Br);2!=r&&r!=ks.Pt.ATN.de;)1===r&&this.J(4,282,0),this.X(),r=this.Si.th(this.$i,24,this.Br);for(n=this.Z();4===n;)this.A(4),n=this.Z();this.A(6);break;case 25:this.A(294);break;case 26:this.A(305);break;case 27:this.state=298,this.Du(),this.X(),1===this.Si.th(this.$i,26,this.Br)&&(i.unit=this.R(),34!==(n=this.Y())&&167!==n?i.unit=this.ml.Wh(this):this.Q());break;case 28:this.A(31);break;case 29:this.A(32)}for(this.Br.stop=this.$i.LT(-1),this.X(),r=this.Si.th(this.$i,37,this.Br);2!=r&&r!=ks.Pt.ATN.de;){if(1===r)switch(null!==this.vl&&this.Dl(),this.X(),this.Si.th(this.$i,36,this.Br)){case 1:i=new Is(this,s,e),this.W(i,2,1),i._u=this.R(),-32&(n=this.Y())||!(1<<n&1792)?i._u=this.ml.Wh(this):this.Q(),this.E(308,35);break;case 2:i=new Is(this,s,e),this.W(i,2,1),i._u=this.R(),-32&(n=this.Y())||!(1<<n&536877056)?i._u=this.ml.Wh(this):this.Q(),this.E(311,34);break;case 3:i=new Is(this,s,e),this.W(i,2,1),i._u=this.R(),-32&(n=this.Y())||!(1<<n&122880)?i._u=this.ml.Wh(this):this.Q(),this.E(314,33);break;case 4:i=new Is(this,s,e),this.W(i,2,1),i._u=this.R(),-32&(n=this.Y())||!(1<<n&8257536)?i._u=this.ml.Wh(this):this.Q(),this.E(317,32);break;case 5:i=new Is(this,s,e),this.W(i,2,1),i._u=this.J(23,320,31);break;case 6:i=new Is(this,s,e),this.W(i,2,1),i._u=this.J(24,323,30);break;case 7:i=new Is(this,s,e),this.W(i,2,1),this.J(25,326,0),this.J(26,328,29);break;case 8:i=new Is(this,s,e),this.W(i,2,1),this.A(1),!((n=this.Y())-39&-32)&&1<<n-39&27||74===n||!(n-157&-32)&&1<<n-157&132215939||!(n-257&-32)&&1<<n-257&1610674179||290===n?this.Q():this.ml.Wh(this),this.B(2,3);break;case 9:i=new Is(this,s,e),this.W(i,2,1),this.A(1),!((n=this.Y())-41&-32)&&1<<n-41&97||!(n-156&-32)&&1<<n-156&65665||!(n-277&-32)&&1<<n-277&16777219?this.Q():this.ml.Wh(this),this.A(2),(!(-32&(n=this.Z()))&&1<<n&3892314276||!(n-32&-32)&&1<<n-32&4294967291||!(n-64&-32)&&1<<n-64&4294967295||!(n-96&-32)&&1<<n-96&4294967295||!(n-128&-32)&&1<<n-128&4294967295||!(n-160&-32)&&1<<n-160&4294967295||!(n-192&-32)&&1<<n-192&4294967295||!(n-224&-32)&&1<<n-224&4294967295||!(n-256&-32)&&1<<n-256&4294844415||!(n-288&-32)&&1<<n-288&262143)&&this.E(339,0),this.A(3);break;case 10:if(i=new Is(this,s,e),this.W(i,2,1),this.C(1,305,2),!(-32&(n=this.Z()))&&1<<n&3892314276||!(n-32&-32)&&1<<n-32&4294967291||!(n-64&-32)&&1<<n-64&4294967295||!(n-96&-32)&&1<<n-96&4294967295||!(n-128&-32)&&1<<n-128&4294967295||!(n-160&-32)&&1<<n-160&4294967295||!(n-192&-32)&&1<<n-192&4294967295||!(n-224&-32)&&1<<n-224&4294967295||!(n-256&-32)&&1<<n-256&4294844415||!(n-288&-32)&&1<<n-288&262143)for(this.E(347,0),n=this.Z();4===n;)this.J(4,349,0),n=this.Z();this.A(3);break;case 11:i=new Is(this,s,e),this.W(i,2,1),this.A(1),153===(n=this.Y())||168===n||!(n-265&-32)&&1<<n-265&3221291013||!(n-297&-32)&&1<<n-297&111?this.Q():this.ml.Wh(this),this.J(2,362,0),this.A(3);break;case 12:i=new Is(this,s,e),this.W(i,2,1),this.A(1),(n=this.Y())-283&-32||!(1<<n-283&103)?this.ml.Wh(this):this.Q(),this.J(2,369,0),4===(n=this.Z())&&this.J(4,371,0),this.A(3);break;case 13:i=new Is(this,s,e),this.W(i,2,1),this.A(1),279!==(n=this.Y())&&280!==n?this.ml.Wh(this):this.Q(),this.J(2,380,0),4===(n=this.Z())&&(this.J(4,382,0),4===(n=this.Z())&&this.J(4,384,0)),this.A(3);break;case 14:for(i=new Is(this,s,e),this.W(i,2,1),this.G(1,282,2,395,0),n=this.Z();4===n;)this.J(4,397,0),n=this.Z();this.A(3);break;case 15:i=new Is(this,s,e),this.W(i,2,1),this.A(1),159!==(n=this.Y())&&266!==n?this.ml.Wh(this):this.Q(),this.J(2,409,0),this.J(4,411,0),this.A(3);break;case 16:i=new Is(this,s,e),this.W(i,2,1),this.G(1,161,2,418,0),this.J(4,420,0),4===(n=this.Z())&&this.J(4,422,0),this.A(3);break;case 17:i=new Is(this,s,e),this.W(i,2,1),this.C(5,305,6);break;case 18:i=new Is(this,s,e),this.W(i,2,1),this.J(5,433,0),this.A(6);break;case 19:i=new Is(this,s,e),this.W(i,2,1),this.A(1),this.state=438,this.Mu();break;case 20:i=new Is(this,s,e),this.W(i,2,1),this.A(8)}this.X(),r=this.Si.th(this.$i,37,this.Br)}}catch(t){if(!(t instanceof ks.error.RecognitionException))throw t;i.exception=t,this.ml.reportError(this,t),this.ml.fn(this,t)}finally{this.Yl(s)}return i}Du(){let t=new Fs(this,this.Br,this.state);this.Fl(t,4,2);try{this.Jl(t,1),29===this.Z()&&this.A(29),this.A(30)}catch(s){if(!(s instanceof ks.error.RecognitionException))throw s;t.exception=s,this.ml.reportError(this,s),this.ml.fn(this,s)}finally{this._l()}return t}Fu(){let t=new Ds(this,this.Br,this.state);this.Fl(t,6,3);var s=0;try{switch(this.X(),this.$i.LA(1)){case 30:case 31:this.Jl(t,1),t.key=this.R(),30!==(s=this.Y())&&31!==s?t.key=this.ml.Wh(this):this.Q(),this.J(26,453,0);break;case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 127:case 128:case 129:case 130:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 138:case 139:case 140:case 141:case 142:case 143:case 144:case 145:case 146:case 147:case 148:case 149:case 150:case 151:case 152:case 153:case 154:case 155:case 156:case 157:case 158:case 159:case 160:case 161:case 162:case 163:case 164:case 165:case 166:case 167:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 180:case 181:case 182:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:case 192:case 193:case 194:case 195:case 196:case 197:case 198:case 199:case 200:case 201:case 202:case 203:case 204:case 205:case 206:case 207:case 208:case 209:case 210:case 211:case 212:case 213:case 214:case 215:case 216:case 217:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 240:case 241:case 242:case 243:case 244:case 245:case 246:case 247:case 248:case 249:case 250:case 251:case 252:case 253:case 254:case 255:case 256:case 257:case 258:case 259:case 260:case 261:case 262:case 263:case 264:case 265:case 266:case 267:case 268:case 269:case 270:case 271:case 272:case 273:case 274:case 275:case 276:case 277:case 278:case 279:case 280:case 281:case 282:case 283:case 284:case 285:case 286:case 287:case 288:case 289:case 290:case 291:case 292:case 294:case 295:case 296:case 297:case 298:case 299:case 300:case 301:case 302:case 303:case 304:case 305:this.Jl(t,2),this.state=454,this.Mu(),this.J(26,456,0);break;default:throw new ks.error.NoViableAltException(this)}}catch(s){if(!(s instanceof ks.error.RecognitionException))throw s;t.exception=s,this.ml.reportError(this,s),this.ml.fn(this,s)}finally{this._l()}return t}Mu(){let t=new _s(this,this.Br,this.state);this.Fl(t,8,4);var s=0;try{this.Jl(t,1),!((s=this.Y())-32&-32)&&1<<s-32&4294967295||!(s-64&-32)&&1<<s-64&4294967295||!(s-96&-32)&&1<<s-96&4294967295||!(s-128&-32)&&1<<s-128&4294967295||!(s-160&-32)&&1<<s-160&4294967295||!(s-192&-32)&&1<<s-192&4294967295||!(s-224&-32)&&1<<s-224&4294967295||!(s-256&-32)&&1<<s-256&4294967295||!(s-288&-32)&&1<<s-288&262111?this.Q():this.ml.Wh(this)}catch(s){if(!(s instanceof ks.error.RecognitionException))throw s;t.exception=s,this.ml.reportError(this,s),this.ml.fn(this,s)}finally{this._l()}return t}}class Ps extends ks.ParserRuleContext{constructor(t,s,e){super(s,e),this.Kr=t,this.Dt=0}accept(t){return t.qu(this)}}class Is extends ks.ParserRuleContext{constructor(t,s,e){super(s,e),this.Kr=t,this.Dt=1,this.unit=null,this._u=null}accept(t){return t.Hu(this)}}class Fs extends ks.ParserRuleContext{constructor(t,s,e){super(s,e),this.Kr=t,this.Dt=2}accept(t){return t.Bu(this)}}class Ds extends ks.ParserRuleContext{constructor(t,s,e){super(s,e),this.Kr=t,this.Dt=3,this.key=null}accept(t){return t.Vu(this)}}class _s extends ks.ParserRuleContext{constructor(t,s,e){super(s,e),this.Kr=t,this.Dt=4}accept(t){return t.zu(this)}}class Ms extends ks.pu.ParseTreeVisitor{qu(t){return this.Os(t)}Hu(t){return this.Os(t)}Bu(t){return this.Os(t)}Vu(t){return this.Os(t)}zu(t){return this.Os(t)}}class qs{static ParseFormula(t,s){if(!t||""===t.trim())return null;if(!s)return null;let e=new r(t),i=new As(e);i.ki(),i.Ti(s);let n=new bs(i),h=new Os(n);h.ki(),h.Ti(s);let l=h.Iu();return(new Ms).Vh(l)}}class Hs extends Lt{constructor(){super()}fi(t,s,e,i,n,r){this.SyntaxError(t,s,e,i,n,r)}SyntaxError(t,s,e,i,n,r){}}const Bs={AlgorithmEngineHelper:qs,AntlrErrorListener:Hs};return"undefined"!=typeof window&&(window.ToolGood=window.ToolGood||{},window.ToolGood.Algorithm={AlgorithmEngineHelper:qs,AntlrErrorListener:Hs}),s.default})());