sysml-v2-lsp 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1079 @@
1
+ "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var parseWorker_exports={};__export(parseWorker_exports,{flagUnknownIdentifiers:()=>flagUnknownIdentifiers,validateKeywordsFromTokens:()=>validateKeywordsFromTokens});module.exports=__toCommonJS(parseWorker_exports);var __defProp2=Object.defineProperty,__name=(target,value)=>__defProp2(target,"name",{value,configurable:!0}),IntStream;(IntStream2=>{IntStream2.EOF=-1,IntStream2.UNKNOWN_SOURCE_NAME="<unknown>"})(IntStream||(IntStream={}));var Token;(Token22=>{Token22.INVALID_TYPE=0,Token22.EPSILON=-2,Token22.MIN_USER_TOKEN_TYPE=1,Token22.EOF=IntStream.EOF,Token22.DEFAULT_CHANNEL=0,Token22.HIDDEN_CHANNEL=1,Token22.MIN_USER_CHANNEL_VALUE=2})(Token||(Token={}));var isToken=__name(candidate=>{let token=candidate;return token.tokenSource!==void 0&&token.channel!==void 0},"isToken"),BitSet=class{static{__name(this,"BitSet")}data;constructor(data){data?this.data=new Uint32Array(data.map(value=>value>>>0)):this.data=new Uint32Array(1)}[Symbol.iterator](){let length=this.data.length,currentIndex=0,currentWord=this.data[currentIndex],words=this.data;return{[Symbol.iterator](){return this},next:__name(()=>{for(;currentIndex<length;)if(currentWord!==0){let t=currentWord&-currentWord,value=(currentIndex<<5)+this.bitCount(t-1);return currentWord^=t,{done:!1,value}}else currentIndex++,currentIndex<length&&(currentWord=words[currentIndex]);return{done:!0,value:void 0}},"next")}}clear(index){index===void 0?this.data=new Uint32Array:(this.resize(index),this.data[index>>>5]&=~(1<<index))}or(set){let minCount=Math.min(this.data.length,set.data.length);for(let k=0;k<minCount;++k)this.data[k]|=set.data[k];if(this.data.length<set.data.length){this.resize((set.data.length<<5)-1);let c=set.data.length;for(let k=minCount;k<c;++k)this.data[k]=set.data[k]}}get(index){if(index<0)throw new RangeError("index cannot be negative");let slot=index>>>5;return slot>=this.data.length?!1:(this.data[slot]&1<<index%32)!==0}get length(){let result=0,c=this.data.length,w=this.data;for(let i=0;i<c;i++)result+=this.bitCount(w[i]);return result}values(){let result=new Array(this.length),pos=0,length=this.data.length;for(let k=0;k<length;++k){let w=this.data[k];for(;w!==0;){let t=w&-w;result[pos++]=(k<<5)+this.bitCount(t-1),w^=t}}return result}nextSetBit(fromIndex){if(fromIndex<0)throw new RangeError("index cannot be negative");for(let index of this)if(index>=fromIndex)return index}set(index){if(index<0)throw new RangeError("index cannot be negative");this.resize(index),this.data[index>>>5]|=1<<index%32}toString(){return"{"+this.values().join(", ")+"}"}resize(index){let count=index+32>>>5;if(count<=this.data.length)return;let data=new Uint32Array(count);data.set(this.data),data.fill(0,this.data.length),this.data=data}bitCount(v){return v=v-(v>>1&1431655765),v=(v&858993459)+(v>>2&858993459),v=v+(v>>4)&252645135,v=v+(v>>8),v=v+(v>>16),v&63}},c1=3432918353,c2=461845907,r1=15,r2=13,m=5,n=3864292196,MurmurHash=class _MurmurHash{static{__name(this,"MurmurHash")}static defaultSeed=701;constructor(){}static initialize(seed=_MurmurHash.defaultSeed){return seed}static updateFromComparable(hash,value){return this.update(hash,value?.hashCode()??0)}static update(hash,value){return value=Math.imul(value,c1),value=value<<r1|value>>>32-r1,value=Math.imul(value,c2),hash=hash^value,hash=hash<<r2|hash>>>32-r2,hash=Math.imul(hash,m)+n,hash}static finish(hash,entryCount){return hash^=entryCount*4,hash^=hash>>>16,hash=Math.imul(hash,2246822507),hash^=hash>>>13,hash=Math.imul(hash,3266489909),hash^=hash>>>16,hash}static hashCode(value,seed){return _MurmurHash.finish(_MurmurHash.update(seed??_MurmurHash.defaultSeed,value),1)}},ObjectEqualityComparator=class _ObjectEqualityComparator{static{__name(this,"ObjectEqualityComparator")}static instance=new _ObjectEqualityComparator;hashCode(obj){return obj==null?0:obj.hashCode()}equals(a,b){return a==null?b==null:a.equals(b)}},DefaultEqualityComparator=class _DefaultEqualityComparator{static{__name(this,"DefaultEqualityComparator")}static instance=new _DefaultEqualityComparator;hashCode(obj){return obj==null?0:ObjectEqualityComparator.instance.hashCode(obj)}equals(a,b){return a==null?b==null:typeof a=="string"||typeof a=="number"?a===b:ObjectEqualityComparator.instance.equals(a,b)}},HashSet=class _HashSet{static{__name(this,"HashSet")}static defaultLoadFactor=.75;static initialCapacity=16;comparator;buckets;threshold;itemCount=0;constructor(comparatorOrSet,initialCapacity=_HashSet.initialCapacity){if(comparatorOrSet instanceof _HashSet){this.comparator=comparatorOrSet.comparator,this.buckets=comparatorOrSet.buckets.slice(0);for(let i=0;i<this.buckets.length;i++){let bucket=this.buckets[i];bucket&&(this.buckets[i]=bucket.slice(0))}this.itemCount=comparatorOrSet.itemCount,this.threshold=comparatorOrSet.threshold}else this.comparator=comparatorOrSet??DefaultEqualityComparator.instance,this.buckets=this.createBuckets(initialCapacity),this.threshold=Math.floor(_HashSet.initialCapacity*_HashSet.defaultLoadFactor)}getOrAdd(o){this.itemCount>this.threshold&&this.expand();let b=this.getBucket(o),bucket=this.buckets[b];if(!bucket)return bucket=[o],this.buckets[b]=bucket,++this.itemCount,o;for(let existing of bucket)if(this.comparator.equals(existing,o))return existing;return bucket.push(o),++this.itemCount,o}get(o){if(o==null)return o;let b=this.getBucket(o),bucket=this.buckets[b];if(bucket){for(let e of bucket)if(this.comparator.equals(e,o))return e}}remove(o){if(o==null)return!1;let b=this.getBucket(o),bucket=this.buckets[b];if(!bucket)return!1;for(let i=0;i<bucket.length;i++){let existing=bucket[i];if(this.comparator.equals(existing,o))return bucket.splice(i,1),--this.itemCount,!0}return!1}hashCode(){let hash=MurmurHash.initialize();for(let bucket of this.buckets)if(bucket!=null)for(let o of bucket){if(o==null)break;hash=MurmurHash.update(hash,this.comparator.hashCode(o))}return hash=MurmurHash.finish(hash,this.size),hash}equals(o){return o===this?!0:!(o instanceof _HashSet)||o.size!==this.size?!1:this.containsAll(o)}add(t){return this.getOrAdd(t)===t}contains(o){return this.containsFast(o)}containsFast(obj){return obj==null?!1:this.get(obj)!==void 0}*[Symbol.iterator](){yield*this.toArray()}toArray(){let a=new Array(this.size),i=0;for(let bucket of this.buckets)if(bucket!=null)for(let o of bucket){if(o==null)break;a[i++]=o}return a}containsAll(collection){if(collection instanceof _HashSet){for(let bucket of collection.buckets)if(bucket!=null)for(let o of bucket){if(o==null)break;if(!this.containsFast(o))return!1}}else for(let o of collection)if(!this.containsFast(o))return!1;return!0}addAll(c){let changed=!1;for(let o of c)this.getOrAdd(o)!==o&&(changed=!0);return changed}clear(){this.buckets=this.createBuckets(_HashSet.initialCapacity),this.itemCount=0,this.threshold=Math.floor(_HashSet.initialCapacity*_HashSet.defaultLoadFactor)}toString(){if(this.size===0)return"{}";let buf="{",first=!0;for(let bucket of this.buckets)if(bucket!=null)for(let o of bucket){if(o==null)break;first?first=!1:buf+=", ",buf+=o.toString()}return buf+="}",buf}toTableString(){let buf="";for(let bucket of this.buckets){if(bucket==null){buf+=`null
2
+ `;continue}buf+="[";let first=!0;for(let o of bucket)first?first=!1:buf+=" ",o==null?buf+="_":buf+=o.toString();buf+=`]
3
+ `}return buf}getBucket(o){return this.comparator.hashCode(o)&this.buckets.length-1}expand(){let old=this.buckets,newCapacity=this.buckets.length*2,newTable=this.createBuckets(newCapacity);this.buckets=newTable,this.threshold=Math.floor(newCapacity*_HashSet.defaultLoadFactor);for(let bucket of old)if(bucket)for(let o of bucket){let b=this.getBucket(o),newBucket=this.buckets[b];newBucket||(newBucket=[],this.buckets[b]=newBucket),newBucket.push(o)}}get size(){return this.itemCount}get isEmpty(){return this.itemCount===0}createBuckets(capacity){return new Array(capacity)}},Interval=class _Interval{static{__name(this,"Interval")}static INVALID_INTERVAL=new _Interval(-1,-2);static INTERVAL_POOL_MAX_VALUE=1e3;static cache=[];start;stop;cachedHashCode;constructor(start,stop){this.start=start,this.stop=stop,this.cachedHashCode=Math.imul(651+start,31)+stop}static of(a,b){return a!==b||a<0||a>_Interval.INTERVAL_POOL_MAX_VALUE?new _Interval(a,b):(_Interval.cache[a]||(_Interval.cache[a]=new _Interval(a,a)),_Interval.cache[a])}equals(o){return this.start===o.start&&this.stop===o.stop}hashCode(){return this.cachedHashCode}startsBeforeDisjoint(other){return this.start<other.start&&this.stop<other.start}startsBeforeNonDisjoint(other){return this.start<=other.start&&this.stop>=other.start}startsAfter(other){return this.start>other.start}startsAfterDisjoint(other){return this.start>other.stop}startsAfterNonDisjoint(other){return this.start>other.start&&this.start<=other.stop}disjoint(other){return this.startsBeforeDisjoint(other)||this.startsAfterDisjoint(other)}adjacent(other){return this.start===other.stop+1||this.stop===other.start-1}properlyContains(other){return other.start>=this.start&&other.stop<=this.stop}union(other){return _Interval.of(Math.min(this.start,other.start),Math.max(this.stop,other.stop))}intersection(other){return _Interval.of(Math.max(this.start,other.start),Math.min(this.stop,other.stop))}differenceNotProperlyContained(other){let diff=null;return other.startsBeforeNonDisjoint(this)?diff=_Interval.of(Math.max(this.start,other.stop+1),this.stop):other.startsAfterNonDisjoint(this)&&(diff=_Interval.of(this.start,other.start-1)),diff}toString(){return`${this.start}..${this.stop}`}get length(){return this.stop<this.start?0:this.stop-this.start+1}},Vocabulary=class _Vocabulary{static{__name(this,"Vocabulary")}static EMPTY_NAMES=[];static EMPTY_VOCABULARY=new _Vocabulary(_Vocabulary.EMPTY_NAMES,_Vocabulary.EMPTY_NAMES,_Vocabulary.EMPTY_NAMES);maxTokenType;literalNames;symbolicNames;displayNames;constructor(literalNames,symbolicNames,displayNames){this.literalNames=literalNames??_Vocabulary.EMPTY_NAMES,this.symbolicNames=symbolicNames??_Vocabulary.EMPTY_NAMES,this.displayNames=displayNames??_Vocabulary.EMPTY_NAMES,this.maxTokenType=Math.max(this.displayNames.length,Math.max(this.literalNames.length,this.symbolicNames.length))-1}static fromTokenNames(tokenNames){if(tokenNames==null||tokenNames.length===0)return _Vocabulary.EMPTY_VOCABULARY;let literalNames=[...tokenNames],symbolicNames=[...tokenNames];for(let i=0;i<tokenNames.length;i++){let tokenName=tokenNames[i];if(tokenName!=null){if(tokenName.length>0){let firstChar=tokenName.codePointAt(0);if(firstChar===39){symbolicNames[i]=null;continue}else if(firstChar>=65&&firstChar<=90){literalNames[i]=null;continue}}literalNames[i]=null,symbolicNames[i]=null}}return new _Vocabulary(literalNames,symbolicNames,tokenNames)}getMaxTokenType(){return this.maxTokenType}getLiteralName(tokenType){return tokenType>=0&&tokenType<this.literalNames.length?this.literalNames[tokenType]:null}getSymbolicName(tokenType){return tokenType>=0&&tokenType<this.symbolicNames.length?this.symbolicNames[tokenType]:tokenType===Token.EOF?"EOF":null}getDisplayName(tokenType){if(tokenType>=0&&tokenType<this.displayNames.length){let displayName=this.displayNames[tokenType];if(displayName!=null)return displayName}let literalName=this.getLiteralName(tokenType);if(literalName!=null)return literalName;let symbolicName=this.getSymbolicName(tokenType);return symbolicName??`${tokenType}`}getLiteralNames(){return this.literalNames}getSymbolicNames(){return this.symbolicNames}getDisplayNames(){return this.displayNames}},IntervalSet=class _IntervalSet{static{__name(this,"IntervalSet")}intervals=[];cachedHashCode;constructor(set){if(set)if(Array.isArray(set))for(let el of set)this.addOne(el);else this.addSet(set)}static of(a,b){let s=new _IntervalSet;return s.addRange(a,b),s}static or(sets){let result=new _IntervalSet;for(let set of sets)result.addSet(set);return result}[Symbol.iterator](){return this.intervals[Symbol.iterator]()}get(index){return this.intervals[index]}get minElement(){return this.intervals.length===0?Token.INVALID_TYPE:this.intervals[0].start}get maxElement(){return this.intervals.length===0?Token.INVALID_TYPE:this.intervals[this.intervals.length-1].stop}clear(){this.cachedHashCode=void 0,this.intervals=[]}addOne(v){this.addInterval(new Interval(v,v))}addRange(l,h){this.addInterval(new Interval(l,h))}addInterval(addition){if(this.cachedHashCode=void 0,this.intervals.length===0)this.intervals.push(addition);else{for(let pos=0;pos<this.intervals.length;pos++){let existing=this.intervals[pos];if(addition.equals(existing))return;if(addition.adjacent(existing)||!addition.disjoint(existing)){let bigger=addition.union(existing);this.intervals[pos]=bigger;for(let sub=pos+1;sub<this.intervals.length;){let next=this.intervals[sub];if(!bigger.adjacent(next)&&bigger.disjoint(next))break;this.intervals.splice(sub,1),this.intervals[pos]=bigger.union(next)}return}if(addition.startsBeforeDisjoint(existing)){this.intervals.splice(pos,0,addition);return}}this.intervals.push(addition)}}addSet(other){return other.intervals.forEach(toAdd=>this.addInterval(toAdd),this),this}complementWithVocabulary(vocabulary){let result=new _IntervalSet;return!vocabulary||vocabulary.length===0?result:(result.addSet(vocabulary),result.subtract(this))}complement(minElement,maxElement){let result=new _IntervalSet;return result.addInterval(new Interval(minElement,maxElement)),result.subtract(this)}or(sets){let result=new _IntervalSet;return result.addSet(this),sets.forEach(set=>result.addSet(set)),result}and(other){if(other.length===0)return new _IntervalSet;let myIntervals=this.intervals,theirIntervals=other.intervals,intersection,mySize=myIntervals.length,theirSize=theirIntervals.length,i=0,j=0;for(;i<mySize&&j<theirSize;){let mine=myIntervals[i],theirs=theirIntervals[j];mine.startsBeforeDisjoint(theirs)?i++:theirs.startsBeforeDisjoint(mine)?j++:mine.properlyContains(theirs)?(intersection||(intersection=new _IntervalSet),intersection.addInterval(mine.intersection(theirs)),j++):theirs.properlyContains(mine)?(intersection||(intersection=new _IntervalSet),intersection.addInterval(mine.intersection(theirs)),i++):mine.disjoint(theirs)||(intersection||(intersection=new _IntervalSet),intersection.addInterval(mine.intersection(theirs)),mine.startsAfterNonDisjoint(theirs)?j++:theirs.startsAfterNonDisjoint(mine)&&i++)}return intersection||new _IntervalSet}subtract(other){if(this.length===0)return new _IntervalSet;let result=new _IntervalSet(this);if(other.length===0)return result;let resultI=0,rightI=0;for(;resultI<result.intervals.length&&rightI<other.intervals.length;){let resultInterval=result.intervals[resultI],rightInterval=other.intervals[rightI];if(rightInterval.stop<resultInterval.start){rightI++;continue}if(rightInterval.start>resultInterval.stop){resultI++;continue}let beforeCurrent,afterCurrent;rightInterval.start>resultInterval.start&&(beforeCurrent=new Interval(resultInterval.start,rightInterval.start-1)),rightInterval.stop<resultInterval.stop&&(afterCurrent=new Interval(rightInterval.stop+1,resultInterval.stop)),beforeCurrent?afterCurrent?(result.intervals[resultI]=beforeCurrent,result.intervals.splice(resultI+1,0,afterCurrent),resultI++,rightI++):(result.intervals[resultI]=beforeCurrent,resultI++):afterCurrent?(result.intervals[resultI]=afterCurrent,rightI++):result.intervals.splice(resultI,1)}return result}contains(el){let n2=this.intervals.length,l=0,r=n2-1;for(;l<=r;){let m2=Math.floor((l+r)/2),interval=this.intervals[m2];if(interval.stop<el)l=m2+1;else if(interval.start>el)r=m2-1;else return!0}return!1}removeRange(toRemove){if(this.cachedHashCode=void 0,toRemove.start===toRemove.stop)this.removeOne(toRemove.start);else if(this.intervals!==null){let pos=0;for(let existing of this.intervals){if(toRemove.stop<=existing.start)return;if(toRemove.start>existing.start&&toRemove.stop<existing.stop){this.intervals[pos]=new Interval(existing.start,toRemove.start);let x=new Interval(toRemove.stop,existing.stop);this.intervals.splice(pos,0,x);return}else toRemove.start<=existing.start&&toRemove.stop>=existing.stop?(this.intervals.splice(pos,1),pos=pos-1):toRemove.start<existing.stop?this.intervals[pos]=new Interval(existing.start,toRemove.start):toRemove.stop<existing.stop&&(this.intervals[pos]=new Interval(toRemove.stop,existing.stop));pos+=1}}}removeOne(value){this.cachedHashCode=void 0;for(let i=0;i<this.intervals.length;i++){let existing=this.intervals[i];if(value<existing.start)return;if(value===existing.start&&value===existing.stop){this.intervals.splice(i,1);return}else if(value===existing.start){this.intervals[i]=new Interval(existing.start+1,existing.stop);return}else if(value===existing.stop){this.intervals[i]=new Interval(existing.start,existing.stop-1);return}else if(value<existing.stop){let replace=new Interval(existing.start,value-1);this.intervals[i]=new Interval(value+1,existing.stop),this.intervals.splice(i,0,replace);return}}}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();for(let interval of this.intervals)hash=MurmurHash.update(hash,interval.start),hash=MurmurHash.update(hash,interval.stop);this.cachedHashCode=MurmurHash.finish(hash,this.intervals.length*2)}return this.cachedHashCode}equals(other){if(this===other)return!0;if(this.intervals.length!==other.intervals.length)return!1;for(let i=0;i<this.intervals.length;i++)if(!this.intervals[i].equals(other.intervals[i]))return!1;return!0}toString(elementsAreChar){if(this.intervals.length===0)return"{}";let result="";this.length>1&&(result+="{");for(let i=0;i<this.intervals.length;++i){let interval=this.intervals[i],start=interval.start,stop=interval.stop;start===stop?start===Token.EOF?result+="<EOF>":elementsAreChar?result+="'"+String.fromCodePoint(start)+"'":result+=start:elementsAreChar?result+="'"+String.fromCodePoint(start)+"'..'"+String.fromCodePoint(stop)+"'":result+=start+".."+stop,i<this.intervals.length-1&&(result+=", ")}return this.length>1&&(result+="}"),result}toStringWithVocabulary(vocabulary){if(this.intervals.length===0)return"{}";let result="";this.length>1&&(result+="{");for(let i=0;i<this.intervals.length;++i){let interval=this.intervals[i],start=interval.start,stop=interval.stop;if(start===stop)start===Token.EOF?result+="<EOF>":result+=this.elementName(vocabulary,start);else for(let i2=start;i2<=stop;++i2)i2>start&&(result+=", "),result+=this.elementName(vocabulary,i2);i<this.intervals.length-1&&(result+=", ")}return this.length>1&&(result+="}"),result}toStringWithRuleNames(ruleNames){if(this.intervals.length===0)return"{}";let result="";this.length>1&&(result+="{");let vocabulary=Vocabulary.fromTokenNames(ruleNames);for(let i=0;i<this.intervals.length;++i){let interval=this.intervals[i],start=interval.start,stop=interval.stop;if(start===stop)start===Token.EOF?result+="<EOF>":result+=this.elementName(vocabulary,start);else for(let i2=start;i2<=stop;++i2)i2>start&&(result+=", "),result+=this.elementName(vocabulary,i2);i<this.intervals.length-1&&(result+=", ")}return this.length>1&&(result+="}"),result}toArray(){let data=[];for(let interval of this.intervals)for(let j=interval.start;j<=interval.stop;j++)data.push(j);return data}get length(){let result=0;for(let interval of this.intervals)result+=interval.length;return result}elementName(vocabulary,token){return token===Token.EOF?"<EOF>":token===Token.EPSILON?"<EPSILON>":vocabulary.getDisplayName(token)}};var valueToString=__name(v=>v===null?"null":v,"valueToString"),arrayToString=__name(value=>Array.isArray(value)?"["+value.map(valueToString).join(", ")+"]":"null","arrayToString"),equalArrays=__name((a,b)=>{if(a===b)return!0;if(a.length!==b.length)return!1;for(let i=0;i<a.length;i++){let left=a[i],right=b[i];if(left!==right&&(!left||!left.equals(right)))return!1}return!0},"equalArrays"),equalNumberArrays=__name((a,b)=>{if(a===b)return!0;if(a.length!==b.length)return!1;for(let i=0;i<a.length;i++)if(a[i]!==b[i])return!1;return!0},"equalNumberArrays"),escapeWhitespace=__name((s,escapeSpaces=!1)=>(s=s.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),escapeSpaces&&(s=s.replace(/ /g,"\xB7")),s),"escapeWhitespace"),SemanticContext=class _SemanticContext{static{__name(this,"SemanticContext")}cachedHashCode;static andContext(a,b){if(a===null||a===_SemanticContext.NONE)return b;if(b===null||b===_SemanticContext.NONE)return a;let result=new AND(a,b);return result.operands.length===1?result.operands[0]:result}static orContext(a,b){if(a===null)return b;if(b===null)return a;if(a===_SemanticContext.NONE||b===_SemanticContext.NONE)return _SemanticContext.NONE;let result=new OR(a,b);return result.operands.length===1?result.operands[0]:result}static filterPrecedencePredicates(set){let result=[];for(let context of set)context instanceof _SemanticContext.PrecedencePredicate&&result.push(context);return result}evalPrecedence(_parser,_parserCallStack){return this}},AND=class _AND extends SemanticContext{static{__name(this,"AND")}operands;constructor(a,b){super();let operands=new HashSet;a instanceof _AND?a.operands.forEach(o=>{operands.add(o)}):operands.add(a),b instanceof _AND?b.operands.forEach(o=>{operands.add(o)}):operands.add(b);let precedencePredicates=SemanticContext.filterPrecedencePredicates(operands);if(precedencePredicates.length>0){let reduced=null;precedencePredicates.forEach(p=>{(reduced===null||p.precedence<reduced.precedence)&&(reduced=p)}),reduced&&operands.add(reduced)}this.operands=operands.toArray()}equals(other){return this===other?!0:other instanceof _AND?equalArrays(this.operands,other.operands):!1}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();for(let operand of this.operands)hash=MurmurHash.updateFromComparable(hash,operand);hash=MurmurHash.update(hash,3813686060),this.cachedHashCode=MurmurHash.finish(hash,this.operands.length+1)}return this.cachedHashCode}evaluate(parser,parserCallStack){for(let operand of this.operands)if(!operand.evaluate(parser,parserCallStack))return!1;return!0}evalPrecedence(parser,parserCallStack){let differs=!1,operands=[];for(let context of this.operands){let evaluated=context.evalPrecedence(parser,parserCallStack);if(differs||=evaluated!==context,evaluated===null)return null;evaluated!==SemanticContext.NONE&&operands.push(evaluated)}if(!differs)return this;if(operands.length===0)return SemanticContext.NONE;let result=null;return operands.forEach(o=>{result=result===null?o:SemanticContext.andContext(result,o)}),result}toString(){let s=this.operands.map(o=>o.toString());return(s.length>3?s.slice(3):s).join("&&")}},OR=class _OR extends SemanticContext{static{__name(this,"OR")}operands;constructor(a,b){super();let operands=new HashSet;a instanceof _OR?a.operands.forEach(o=>{operands.add(o)}):operands.add(a),b instanceof _OR?b.operands.forEach(o=>{operands.add(o)}):operands.add(b);let precedencePredicates=SemanticContext.filterPrecedencePredicates(operands);if(precedencePredicates.length>0){let s=precedencePredicates.sort((a2,b2)=>a2.compareTo(b2)),reduced=s[s.length-1];operands.add(reduced)}this.operands=operands.toArray()}equals(other){return this===other?!0:other instanceof _OR?equalArrays(this.operands,other.operands):!1}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();for(let operand of this.operands)hash=MurmurHash.updateFromComparable(hash,operand);hash=MurmurHash.update(hash,3383313031),this.cachedHashCode=MurmurHash.finish(hash,this.operands.length+1)}return this.cachedHashCode}evaluate(parser,parserCallStack){for(let operand of this.operands)if(operand.evaluate(parser,parserCallStack))return!0;return!1}evalPrecedence(parser,parserCallStack){let differs=!1,operands=[];for(let context of this.operands){let evaluated=context.evalPrecedence(parser,parserCallStack);if(differs||=evaluated!==context,evaluated===SemanticContext.NONE)return SemanticContext.NONE;evaluated!==null&&operands.push(evaluated)}if(!differs)return this;if(operands.length===0)return null;let result=null;return operands.forEach(o=>{result=result===null?o:SemanticContext.orContext(result,o)}),result}toString(){let s=this.operands.map(o=>o.toString());return(s.length>3?s.slice(3):s).join("||")}};(SemanticContext2=>{class Predicate extends SemanticContext2{static{__name(this,"Predicate")}ruleIndex;predIndex;isCtxDependent;constructor(ruleIndex,predIndex,isCtxDependent){super(),this.ruleIndex=ruleIndex??-1,this.predIndex=predIndex??-1,this.isCtxDependent=isCtxDependent??!1}evaluate(parser,outerContext){let localctx=this.isCtxDependent?outerContext:null;return parser.sempred(localctx,this.ruleIndex,this.predIndex)}hashCode(){if(this.cachedHashCode===void 0){let hashCode=MurmurHash.initialize();hashCode=MurmurHash.update(hashCode,this.ruleIndex),hashCode=MurmurHash.update(hashCode,this.predIndex),hashCode=MurmurHash.update(hashCode,this.isCtxDependent?1:0),hashCode=MurmurHash.finish(hashCode,3),this.cachedHashCode=hashCode}return this.cachedHashCode}equals(other){return this===other?!0:this.ruleIndex===other.ruleIndex&&this.predIndex===other.predIndex&&this.isCtxDependent===other.isCtxDependent}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}}SemanticContext2.Predicate=Predicate;class PrecedencePredicate extends SemanticContext2{static{__name(this,"PrecedencePredicate")}precedence;constructor(precedence){super(),this.precedence=precedence??0}evaluate(parser,outerContext){return parser.precpred(outerContext,this.precedence)}evalPrecedence(parser,outerContext){return parser.precpred(outerContext??null,this.precedence)?SemanticContext2.NONE:null}compareTo(other){return this.precedence-other.precedence}hashCode(){return 31+this.precedence}equals(other){return this===other?!0:this.precedence===other.precedence}toString(){return"{"+this.precedence+">=prec}?"}}SemanticContext2.PrecedencePredicate=PrecedencePredicate,SemanticContext2.NONE=new Predicate})(SemanticContext||(SemanticContext={}));var ATNConfig=class _ATNConfig{static{__name(this,"ATNConfig")}state;alt;reachesIntoOuterContext=!1;precedenceFilterSuppressed=!1;get semanticContext(){return this.#semanticContext}cachedHashCode;#context=null;#semanticContext;constructor(c,state,context,semanticContext){this.state=state,this.alt=c.alt,this.context=context,this.#semanticContext=semanticContext??SemanticContext.NONE,this.reachesIntoOuterContext=c.reachesIntoOuterContext,c.precedenceFilterSuppressed!==void 0&&(this.precedenceFilterSuppressed=c.precedenceFilterSuppressed)}static duplicate(old,semanticContext){return new _ATNConfig(old,old.state,old.context,semanticContext??old.semanticContext)}static createWithContext(state,alt,context,semanticContext){return new _ATNConfig({alt},state,context,semanticContext)}static createWithConfig(state,config,context){return new _ATNConfig(config,state,context??config.context,config.semanticContext)}static createWithSemanticContext(state,c,semanticContext){return new _ATNConfig(c,state??c.state,c.context,semanticContext)}hashCode(){if(this.cachedHashCode===void 0){let hashCode=MurmurHash.initialize(7);hashCode=MurmurHash.update(hashCode,this.state.stateNumber),hashCode=MurmurHash.update(hashCode,this.alt),hashCode=MurmurHash.updateFromComparable(hashCode,this.#context),hashCode=MurmurHash.updateFromComparable(hashCode,this.semanticContext),hashCode=MurmurHash.finish(hashCode,4),this.cachedHashCode=hashCode}return this.cachedHashCode}get context(){return this.#context}set context(context){this.#context=context,this.cachedHashCode=void 0}equals(other){return this===other?!0:this.state.stateNumber===other.state.stateNumber&&this.alt===other.alt&&(this.context===null?other.context===null:this.context.equals(other.context))&&this.semanticContext.equals(other.semanticContext)&&this.precedenceFilterSuppressed===other.precedenceFilterSuppressed}toString(_recog,showAlt=!0){let alt="";return showAlt&&(alt=","+this.alt),"("+this.state+alt+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==SemanticContext.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext?",up="+this.reachesIntoOuterContext:"")+")"}},ATNState=class _ATNState{static{__name(this,"ATNState")}static INVALID_STATE_NUMBER=-1;static INVALID_TYPE=0;static BASIC=1;static RULE_START=2;static BLOCK_START=3;static PLUS_BLOCK_START=4;static STAR_BLOCK_START=5;static TOKEN_START=6;static RULE_STOP=7;static BLOCK_END=8;static STAR_LOOP_BACK=9;static STAR_LOOP_ENTRY=10;static PLUS_LOOP_BACK=11;static LOOP_END=12;static stateType=_ATNState.INVALID_STATE_NUMBER;stateNumber=0;ruleIndex=0;epsilonOnlyTransitions=!1;nextTokenWithinRule;transitions=[];hashCode(){return this.stateNumber}equals(other){return this.stateNumber===other.stateNumber}toString(){return`${this.stateNumber}`}addTransitionAtIndex(index,transition){this.transitions.length===0?this.epsilonOnlyTransitions=transition.isEpsilon:this.epsilonOnlyTransitions!==transition.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.splice(index,0,transition)}addTransition(transition){this.transitions.length===0?this.epsilonOnlyTransitions=transition.isEpsilon:this.epsilonOnlyTransitions!==transition.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.push(transition)}setTransition(i,e){this.transitions.splice(i,1,e)}removeTransition(index){return this.transitions.splice(index,1)[0]}},PredictionContext=class _PredictionContext{static{__name(this,"PredictionContext")}static EMPTY_RETURN_STATE=2147483647;static traceATNSimulator=!1;cachedHashCode;constructor(cachedHashCode){this.cachedHashCode=cachedHashCode}static calculateEmptyHashCode(){let hash=MurmurHash.initialize(31);return hash=MurmurHash.finish(hash,0),hash}static calculateHashCodeSingle(parent,returnState){let hash=MurmurHash.initialize(31);return hash=MurmurHash.updateFromComparable(hash,parent),hash=MurmurHash.update(hash,returnState),hash=MurmurHash.finish(hash,2),hash}static calculateHashCodeList(parents,returnStates){let hash=MurmurHash.initialize(31);for(let parent of parents)hash=MurmurHash.updateFromComparable(hash,parent);for(let returnState of returnStates)hash=MurmurHash.update(hash,returnState);return hash=MurmurHash.finish(hash,2*parents.length),hash}isEmpty(){return!1}hasEmptyPath(){return this.getReturnState(this.length-1)===_PredictionContext.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}toString(_recog){return""}},SingletonPredictionContext=class _SingletonPredictionContext extends PredictionContext{static{__name(this,"SingletonPredictionContext")}parent;returnState;constructor(parent,returnState){super(parent?PredictionContext.calculateHashCodeSingle(parent,returnState):PredictionContext.calculateEmptyHashCode()),this.parent=parent??null,this.returnState=returnState}getParent(_index){return this.parent}getReturnState(_index){return this.returnState}equals(other){return this===other?!0:!(other instanceof _SingletonPredictionContext)||this.hashCode()!==other.hashCode()||this.returnState!==other.returnState?!1:this.parent==null?other.parent==null:this.parent.equals(other.parent)}toString(){let up=this.parent===null?"":this.parent.toString();return up.length===0?this.returnState===PredictionContext.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+up}get length(){return 1}},EmptyPredictionContext=class _EmptyPredictionContext extends SingletonPredictionContext{static{__name(this,"EmptyPredictionContext")}static instance=new _EmptyPredictionContext;constructor(){super(void 0,PredictionContext.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(){return null}getReturnState(){return this.returnState}equals(other){return this===other}toString(){return"$"}},Transition=class{static{__name(this,"Transition")}static INVALID=0;static EPSILON=1;static RANGE=2;static RULE=3;static PREDICATE=4;static ATOM=5;static ACTION=6;static SET=7;static NOT_SET=8;static WILDCARD=9;static PRECEDENCE=10;target;constructor(target){this.target=target}get isEpsilon(){return!1}get label(){return null}toString(){return""}},SetTransition=class extends Transition{static{__name(this,"SetTransition")}set;constructor(target,set){super(target),set?this.set=set:this.set=IntervalSet.of(Token.INVALID_TYPE,Token.INVALID_TYPE)}get transitionType(){return Transition.SET}get label(){return this.set}matches(symbol,_minVocabSymbol,_maxVocabSymbol){return this.set.contains(symbol)}toString(){return this.set.toString()}},NotSetTransition=class extends SetTransition{static{__name(this,"NotSetTransition")}get transitionType(){return Transition.NOT_SET}matches(symbol,minVocabSymbol,maxVocabSymbol){return symbol>=minVocabSymbol&&symbol<=maxVocabSymbol&&!super.matches(symbol,minVocabSymbol,maxVocabSymbol)}toString(){return"~"+super.toString()}},MapKeyEqualityComparator=class{static{__name(this,"MapKeyEqualityComparator")}keyComparator;constructor(keyComparator){this.keyComparator=keyComparator}hashCode(obj){return this.keyComparator.hashCode(obj.key)}equals(a,b){return this.keyComparator.equals(a.key,b.key)}},HashMap=class _HashMap{static{__name(this,"HashMap")}backingStore;constructor(keyComparer){keyComparer instanceof _HashMap?this.backingStore=new HashSet(keyComparer.backingStore):(keyComparer=keyComparer??DefaultEqualityComparator.instance,this.backingStore=new HashSet(new MapKeyEqualityComparator(keyComparer)))}clear(){this.backingStore.clear()}containsKey(key){return this.backingStore.contains({key})}get(key){let bucket=this.backingStore.get({key});if(bucket)return bucket.value}get isEmpty(){return this.backingStore.isEmpty}set(key,value){let element=this.backingStore.get({key,value}),result;return element?(result=element.value,element.value=value):this.backingStore.add({key,value}),result}setIfAbsent(key,value){let element=this.backingStore.get({key,value}),result;return element?result=element.value:this.backingStore.add({key,value}),result}keys(){return this.backingStore.toArray().map(bucket=>bucket.key)}values(){return this.backingStore.toArray().map(bucket=>bucket.value)}get size(){return this.backingStore.size}hashCode(){return this.backingStore.hashCode()}equals(o){return this.backingStore.equals(o.backingStore)}},TerminalNode=class{static{__name(this,"TerminalNode")}parent=null;symbol;constructor(symbol){this.symbol=symbol}getChild(_i){return null}getSymbol(){return this.symbol}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return Interval.INVALID_INTERVAL;let tokenIndex=this.symbol.tokenIndex;return new Interval(tokenIndex,tokenIndex)}getChildCount(){return 0}accept(visitor){return visitor.visitTerminal(this)}getText(){return this.symbol?.text??""}toString(){return this.symbol?.type===Token.EOF?"<EOF>":this.symbol?.text??""}toStringTree(){return this.toString()}},ErrorNode=class extends TerminalNode{static{__name(this,"ErrorNode")}accept(visitor){return visitor.visitErrorNode(this)}},CommonToken=class _CommonToken{static{__name(this,"CommonToken")}static EMPTY_SOURCE=[null,null];source;tokenIndex;start;stop;type;line;column;channel;#text;constructor(details){this.type=details.type,this.source=details.source,this.tokenIndex=details.tokenIndex??-1,this.line=details.line??0,this.column=details.column??-1,this.channel=details.channel??Token.DEFAULT_CHANNEL,this.start=details.start??0,this.stop=details.stop??0,this.#text=details.text,details.line===void 0&&details.source[0]!==null&&(this.line=details.source[0].line),details.column===void 0&&details.source[0]!==null&&(this.column=details.source[0].column)}static fromToken(token){let source=[token.tokenSource,token.inputStream];return new _CommonToken({type:token.type,line:token.line,tokenIndex:token.tokenIndex,column:token.column,channel:token.channel,start:token.start,stop:token.stop,text:token.text,source})}static fromType(type,text){return new _CommonToken({type,text,source:_CommonToken.EMPTY_SOURCE})}static fromSource(source,type,channel,start,stop){return new _CommonToken({type,channel,start,stop,source})}get tokenSource(){return this.source[0]}get inputStream(){return this.source[1]}set inputStream(input){this.source[1]=input}clone(){return new _CommonToken({source:this.source,type:this.type,channel:this.channel,start:this.start,stop:this.stop,tokenIndex:this.tokenIndex,line:this.line,column:this.column,text:this.#text})}toString(recognizer){let channelStr="";this.channel>0&&(channelStr=",channel="+this.channel);let text=this.text;text?(text=text.replace(/\n/g,"\\n"),text=text.replace(/\r/g,"\\r"),text=text.replace(/\t/g,"\\t")):text="<no text>";let typeString=String(this.type);return recognizer&&(typeString=recognizer.vocabulary.getDisplayName(this.type)??"<unknown>"),"[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+text+"',<"+typeString+">"+channelStr+","+this.line+":"+this.column+"]"}get text(){if(this.#text!==void 0)return this.#text;let input=this.inputStream;if(!input)return;let n2=input.size;return this.start<n2&&this.stop<n2?input.getTextFromRange(this.start,this.stop):"<EOF>"}set text(text){this.#text=text}setText(text){this.#text=text}setType(ttype){this.type=ttype}setLine(line){this.line=line}setCharPositionInLine(pos){this.column=pos}setChannel(channel){this.channel=channel}setTokenIndex(index){this.tokenIndex=index}},Trees=class _Trees{static{__name(this,"Trees")}static toStringTree(tree,ruleNames,recog){ruleNames=ruleNames??null,recog&&(ruleNames=recog.ruleNames);let s=_Trees.getNodeText(tree,ruleNames);s=escapeWhitespace(s,!1);let c=tree.getChildCount();if(c===0)return s;let res="("+s+" ";c>0&&(s=_Trees.toStringTree(tree.getChild(0),ruleNames),res=res.concat(s));for(let i=1;i<c;i++)s=_Trees.toStringTree(tree.getChild(i),ruleNames),res=res.concat(" "+s);return res=res.concat(")"),res}static getNodeText(t,ruleNames,recog){if(ruleNames=ruleNames??null,recog&&(ruleNames=recog.ruleNames),ruleNames!==null)if(t instanceof ParserRuleContext){let altNumber=t.ruleContext.getAltNumber();return altNumber!==0?ruleNames[t.ruleIndex]+":"+altNumber:ruleNames[t.ruleIndex]}else{if(t instanceof ErrorNode)return t.toString();if(t instanceof TerminalNode)return t.symbol.text}let payload=t.getPayload();return isToken(payload)?payload.text:String(t.getPayload())}static getChildren(t){let list=[];for(let i=0;i<t.getChildCount();i++)list.push(t.getChild(i));return list}static getAncestors(t){if(t.parent===null)return[];let ancestors=[],p=t.parent;for(;p!==null;)ancestors=[p].concat(ancestors),p=p.parent;return ancestors}static isAncestorOf(t,u){if(t===null||u===null||t.parent===null)return!1;let p=u.parent;for(;p!==null;){if(t===p)return!0;p=p.parent}return!1}static findAllTokenNodes(t,ttype){return _Trees.findAllNodes(t,ttype,!0)}static findAllRuleNodes(t,ruleIndex){return _Trees.findAllNodes(t,ruleIndex,!1)}static findAllNodes(t,index,findTokens){let nodes=[];return _Trees.doFindAllNodes(t,index,findTokens,nodes),nodes}static descendants(t){let nodes=[t];for(let i=0;i<t.getChildCount();i++)nodes=nodes.concat(_Trees.descendants(t.getChild(i)));return nodes}static getRootOfSubtreeEnclosingRegion(t,startTokenIndex,stopTokenIndex){let n2=t.getChildCount();for(let i=0;i<n2;i++){let child=t.getChild(i),r=this.getRootOfSubtreeEnclosingRegion(child,startTokenIndex,stopTokenIndex);if(r!==null)return r}return t instanceof ParserRuleContext&&startTokenIndex>=t.start.tokenIndex&&(t.stop===null||stopTokenIndex<=t.stop.tokenIndex)?t:null}static stripChildrenOutOfRange(t,root,startIndex,stopIndex){if(t!==null)for(let i=0;i<t.getChildCount();i++){let child=t.getChild(i),range=child.getSourceInterval();if(t instanceof ParserRuleContext&&(range.stop<startIndex||range.start>stopIndex)&&this.isAncestorOf(child,root)){let abbrev=CommonToken.fromType(Token.INVALID_TYPE,"...");t.children[i]=new TerminalNode(abbrev)}}}static doFindAllNodes(t,index,findTokens,nodes){findTokens&&t instanceof TerminalNode?t.symbol?.type===index&&nodes.push(t):!findTokens&&t instanceof ParserRuleContext&&t.ruleIndex===index&&nodes.push(t);for(let i=0;i<t.getChildCount();i++)_Trees.doFindAllNodes(t.getChild(i),index,findTokens,nodes)}},ParserRuleContext=class _ParserRuleContext{static{__name(this,"ParserRuleContext")}static empty=new _ParserRuleContext(null);start=null;stop=null;children=[];invokingState;parent;constructor(parent,invokingStateNumber=-1){this.parent=parent,this.invokingState=invokingStateNumber}copyFrom(ctx){this.parent=ctx.parent,this.invokingState=ctx.invokingState,this.children.slice(0,this.children.length),this.start=ctx.start,this.stop=ctx.stop,ctx.children&&ctx.children.forEach(child=>{child instanceof ErrorNode&&(this.children.push(child),child.parent=this)})}enterRule(_listener){}exitRule(_listener){}addChild(child){return this.children.push(child),child}removeLastChild(){this.children.pop()}addTokenNode(token){let node=new TerminalNode(token);return this.children.push(node),node.parent=this,node}addErrorNode(errorNode){return errorNode.parent=this,this.children.push(errorNode),errorNode}getChild(i,type){if(i<0||i>=this.children.length)return null;if(!type)return this.children[i];for(let child of this.children)if(child instanceof type){if(i===0)return child;i-=1}return null}getToken(ttype,i){if(i<0||i>=this.children.length)return null;for(let child of this.children)if("symbol"in child&&child.symbol?.type===ttype){if(i===0)return child;i-=1}return null}getTokens(ttype){let tokens=[];for(let child of this.children)"symbol"in child&&child.symbol?.type===ttype&&tokens.push(child);return tokens}getRuleContext(index,ctxType){return this.getChild(index,ctxType)}getRuleContexts(ctxType){let contexts=[];for(let child of this.children)child instanceof ctxType&&contexts.push(child);return contexts}getChildCount(){return this.children.length}getSourceInterval(){return this.start===null?Interval.INVALID_INTERVAL:this.stop===null||this.stop.tokenIndex<this.start.tokenIndex?new Interval(this.start.tokenIndex,this.start.tokenIndex-1):new Interval(this.start.tokenIndex,this.stop.tokenIndex)}depth(){let n2=0,p=this;for(;p!==null;)p=p.parent,n2+=1;return n2}isEmpty(){return this.invokingState===-1}get ruleContext(){return this}get ruleIndex(){return-1}getPayload(){return this}getText(){return this.children.length===0?"":this.children.map(child=>child.getText()).join("")}getAltNumber(){return ATN.INVALID_ALT_NUMBER}setAltNumber(_altNumber){}accept(visitor){return visitor.visitChildren(this)}toStringTree(...args){return args.length<2?Trees.toStringTree(this,null,args[0]):Trees.toStringTree(this,args[0],args[1])}toString(ruleNames,stop){ruleNames=ruleNames??null,stop=stop??null;let p=this,s="[";for(;p!==null&&p!==stop;){if(ruleNames===null)p.isEmpty()||(s+=p.invokingState);else{let ri=p.ruleIndex,ruleName=ri>=0&&ri<ruleNames.length?ruleNames[ri]:""+ri;s+=ruleName}p.parent!==null&&(ruleNames!==null||!p.parent.isEmpty())&&(s+=" "),p=p.parent}return s+="]",s}},ArrayPredictionContext=class _ArrayPredictionContext extends PredictionContext{static{__name(this,"ArrayPredictionContext")}parents=[];returnStates=[];constructor(parents,returnStates){return super(PredictionContext.calculateHashCodeList(parents,returnStates)),this.parents=parents,this.returnStates=returnStates,this}isEmpty(){return this.returnStates[0]===PredictionContext.EMPTY_RETURN_STATE}get length(){return this.returnStates.length}getParent(index){return this.parents[index]}getReturnState(index){return this.returnStates[index]}equals(other){return this===other?!0:!(other instanceof _ArrayPredictionContext)||this.hashCode()!==other.hashCode()?!1:equalNumberArrays(this.returnStates,other.returnStates)&&equalArrays(this.parents,other.parents)}toString(){if(this.isEmpty())return"[]";let entries=[];for(let i=0;i<this.returnStates.length;i++){if(this.returnStates[i]===PredictionContext.EMPTY_RETURN_STATE){entries.push("$");continue}entries.push(this.returnStates[i].toString()),this.parents[i]?entries.push(this.parents[i].toString()):entries.push("null")}return`[${entries.join(", ")}]`}},createSingletonPredictionContext=__name((parent,returnState)=>returnState===PredictionContext.EMPTY_RETURN_STATE&&parent===null?EmptyPredictionContext.instance:new SingletonPredictionContext(parent,returnState),"createSingletonPredictionContext"),predictionContextFromRuleContext=__name((atn,outerContext)=>{if(outerContext||(outerContext=ParserRuleContext.empty),!outerContext.parent||outerContext===ParserRuleContext.empty)return EmptyPredictionContext.instance;let parent=predictionContextFromRuleContext(atn,outerContext.parent),transition=atn.states[outerContext.invokingState].transitions[0];return createSingletonPredictionContext(parent,transition.followState.stateNumber)},"predictionContextFromRuleContext"),getCachedPredictionContext=__name((context,contextCache,visited)=>{if(context.isEmpty())return context;let existing=visited.get(context);if(existing)return existing;if(existing=contextCache.get(context),existing)return visited.set(context,existing),existing;let changed=!1,parents=[];for(let i=0;i<parents.length;i++){let parent=getCachedPredictionContext(context.getParent(i),contextCache,visited);if(changed||parent!==context.getParent(i)){if(!changed){parents=[];for(let j=0;j<context.length;j++)parents[j]=context.getParent(j);changed=!0}parents[i]=parent}}if(!changed)return contextCache.add(context),visited.set(context,context),context;let updated;return parents.length===0?updated=EmptyPredictionContext.instance:parents.length===1?updated=createSingletonPredictionContext(parents[0]??void 0,context.getReturnState(0)):updated=new ArrayPredictionContext(parents,context.returnStates),contextCache.add(updated),visited.set(updated,updated),visited.set(context,updated),updated},"getCachedPredictionContext"),merge=__name((a,b,rootIsWildcard,mergeCache)=>{if(a===b||a.equals(b))return a;if(a instanceof SingletonPredictionContext&&b instanceof SingletonPredictionContext)return mergeSingletons(a,b,rootIsWildcard,mergeCache);if(rootIsWildcard){if(a instanceof EmptyPredictionContext)return a;if(b instanceof EmptyPredictionContext)return b}return a instanceof SingletonPredictionContext&&(a=new ArrayPredictionContext([a.parent],[a.returnState])),b instanceof SingletonPredictionContext&&(b=new ArrayPredictionContext([b.parent],[b.returnState])),mergeArrays(a,b,rootIsWildcard,mergeCache)},"merge"),mergeArrays=__name((a,b,rootIsWildcard,mergeCache)=>{if(mergeCache){let previous=mergeCache.get(a,b);if(previous||(previous=mergeCache.get(b,a),previous))return previous}let i=0,j=0,k=0,mergedReturnStates=new Array(a.returnStates.length+b.returnStates.length).fill(0),mergedParents=new Array(a.returnStates.length+b.returnStates.length).fill(null);for(;i<a.returnStates.length&&j<b.returnStates.length;){let aParent=a.parents[i],bParent=b.parents[j];if(a.returnStates[i]===b.returnStates[j]){let payload=a.returnStates[i];payload===PredictionContext.EMPTY_RETURN_STATE&&aParent===null&&bParent===null||aParent!==null&&bParent!==null&&aParent===bParent?(mergedParents[k]=aParent,mergedReturnStates[k]=payload):(mergedParents[k]=merge(aParent,bParent,rootIsWildcard,mergeCache),mergedReturnStates[k]=payload),i+=1,j+=1}else a.returnStates[i]<b.returnStates[j]?(mergedParents[k]=aParent,mergedReturnStates[k]=a.returnStates[i],i+=1):(mergedParents[k]=bParent,mergedReturnStates[k]=b.returnStates[j],j+=1);k+=1}if(i<a.returnStates.length)for(let p=i;p<a.returnStates.length;p++)mergedParents[k]=a.parents[p],mergedReturnStates[k]=a.returnStates[p],k+=1;else for(let p=j;p<b.returnStates.length;p++)mergedParents[k]=b.parents[p],mergedReturnStates[k]=b.returnStates[p],k+=1;if(k<mergedParents.length){if(k===1){let aNew=createSingletonPredictionContext(mergedParents[0]??void 0,mergedReturnStates[0]);return mergeCache!==null&&mergeCache.set(a,b,aNew),aNew}mergedParents=mergedParents.slice(0,k),mergedReturnStates=mergedReturnStates.slice(0,k)}let merged=new ArrayPredictionContext(mergedParents,mergedReturnStates);return merged.equals(a)?(mergeCache!==null&&mergeCache.set(a,b,a),PredictionContext.traceATNSimulator&&console.log("mergeArrays a="+a+",b="+b+" -> a"),a):merged.equals(b)?(mergeCache!==null&&mergeCache.set(a,b,b),b):(combineCommonParents(mergedParents),mergeCache!==null&&mergeCache.set(a,b,merged),PredictionContext.traceATNSimulator&&console.log("mergeArrays a="+a+",b="+b+" -> "+merged),merged)},"mergeArrays"),combineCommonParents=__name(parents=>{let uniqueParents=new HashMap(ObjectEqualityComparator.instance);for(let parent of parents)parent&&(uniqueParents.containsKey(parent)||uniqueParents.set(parent,parent));for(let q=0;q<parents.length;q++)parents[q]&&(parents[q]=uniqueParents.get(parents[q])??null)},"combineCommonParents"),mergeSingletons=__name((a,b,rootIsWildcard,mergeCache)=>{if(mergeCache!==null){let previous=mergeCache.get(a,b);if(previous!==null||(previous=mergeCache.get(b,a),previous!==null))return previous}let rootMerge=mergeRoot(a,b,rootIsWildcard);if(rootMerge!==null)return mergeCache!==null&&mergeCache.set(a,b,rootMerge),rootMerge;if(a.returnState===b.returnState){let parent=merge(a.parent,b.parent,rootIsWildcard,mergeCache);if(parent===a.parent)return a;if(parent===b.parent)return b;let spc=createSingletonPredictionContext(parent,a.returnState);return mergeCache!==null&&mergeCache.set(a,b,spc),spc}else{let singleParent=null;if((a===b||a.parent!==null&&a.parent.equals(b.parent))&&(singleParent=a.parent),singleParent!==null){let payloads2=[a.returnState,b.returnState];a.returnState>b.returnState&&(payloads2[0]=b.returnState,payloads2[1]=a.returnState);let parents2=[singleParent,singleParent],apc=new ArrayPredictionContext(parents2,payloads2);return mergeCache!==null&&mergeCache.set(a,b,apc),apc}let payloads=[a.returnState,b.returnState],parents=[a.parent,b.parent];a.returnState>b.returnState&&(payloads[0]=b.returnState,payloads[1]=a.returnState,parents=[b.parent,a.parent]);let aNew=new ArrayPredictionContext(parents,payloads);return mergeCache!==null&&mergeCache.set(a,b,aNew),aNew}},"mergeSingletons"),mergeRoot=__name((a,b,rootIsWildcard)=>{if(rootIsWildcard){if(a===EmptyPredictionContext.instance||b===EmptyPredictionContext.instance)return EmptyPredictionContext.instance}else{if(a===EmptyPredictionContext.instance&&b===EmptyPredictionContext.instance)return EmptyPredictionContext.instance;if(a===EmptyPredictionContext.instance){let payloads=[b.returnState,PredictionContext.EMPTY_RETURN_STATE],parents=[b.parent,null];return new ArrayPredictionContext(parents,payloads)}if(b===EmptyPredictionContext.instance){let payloads=[a.returnState,PredictionContext.EMPTY_RETURN_STATE],parents=[a.parent,null];return new ArrayPredictionContext(parents,payloads)}}return null},"mergeRoot"),LL1Analyzer=class _LL1Analyzer{constructor(atn){this.atn=atn}static{__name(this,"LL1Analyzer")}static hitPredicate=Token.INVALID_TYPE;getDecisionLookahead(s){let count=s.transitions.length,look=new Array(count);for(let alt=0;alt<count;alt++){let set=new IntervalSet,lookBusy=new HashSet;this.doLook(s.transitions[alt].target,void 0,EmptyPredictionContext.instance,set,lookBusy,new BitSet,!1,!1),set.length>0&&!set.contains(_LL1Analyzer.hitPredicate)&&(look[alt]=set)}return look}look(s,stopState,ctx){let r=new IntervalSet,lookContext=ctx?predictionContextFromRuleContext(this.atn,ctx):null;return this.doLook(s,stopState,lookContext,r,new HashSet,new BitSet,!0,!0),r}doLook(s,stopState,ctx,look,lookBusy,calledRuleStack,seeThruPreds,addEOF){let c=ATNConfig.createWithContext(s,0,ctx);if(!lookBusy.get(c)){if(lookBusy.add(c),s===stopState)if(ctx){if(ctx.isEmpty()&&addEOF){look.addOne(Token.EOF);return}}else{look.addOne(Token.EPSILON);return}if(s.constructor.stateType===ATNState.RULE_STOP){if(ctx){if(ctx.isEmpty()&&addEOF){look.addOne(Token.EOF);return}}else{look.addOne(Token.EPSILON);return}if(ctx!==EmptyPredictionContext.instance){let removed=calledRuleStack.get(s.ruleIndex);try{calledRuleStack.clear(s.ruleIndex);for(let i=0;i<ctx.length;i++){let returnState=this.atn.states[ctx.getReturnState(i)];this.doLook(returnState,stopState,ctx.getParent(i),look,lookBusy,calledRuleStack,seeThruPreds,addEOF)}}finally{removed&&calledRuleStack.set(s.ruleIndex)}return}}for(let t of s.transitions)switch(t.transitionType){case Transition.RULE:{if(calledRuleStack.get(t.target.ruleIndex))continue;let newContext=createSingletonPredictionContext(ctx??void 0,t.followState.stateNumber);try{calledRuleStack.set(t.target.ruleIndex),this.doLook(t.target,stopState,newContext,look,lookBusy,calledRuleStack,seeThruPreds,addEOF)}finally{calledRuleStack.clear(t.target.ruleIndex)}break}case Transition.PREDICATE:case Transition.PRECEDENCE:{seeThruPreds?this.doLook(t.target,stopState,ctx,look,lookBusy,calledRuleStack,seeThruPreds,addEOF):look.addOne(_LL1Analyzer.hitPredicate);break}case Transition.WILDCARD:{look.addRange(Token.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType);break}default:{if(t.isEpsilon)this.doLook(t.target,stopState,ctx,look,lookBusy,calledRuleStack,seeThruPreds,addEOF);else{let set=t.label;set&&(t instanceof NotSetTransition&&(set=set.complement(Token.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType)),look.addSet(set))}break}}}}},ATN=class{static{__name(this,"ATN")}static INVALID_ALT_NUMBER=0;static LEXER=0;static PARSER=1;grammarType;maxTokenType;states=[];decisionToState=[];ruleToStartState=[];ruleToStopState=[];modeNameToStartState=new Map;ruleToTokenType=[];lexerActions=[];modeToStartState=[];analyzer;constructor(grammarType,maxTokenType){this.grammarType=grammarType,this.maxTokenType=maxTokenType,this.analyzer=new LL1Analyzer(this)}nextTokens(atnState,ctx){if(!ctx&&atnState.nextTokenWithinRule)return atnState.nextTokenWithinRule;let next=this.analyzer.look(atnState,void 0,ctx);return ctx||(atnState.nextTokenWithinRule=next),next}addState(state){state&&(state.stateNumber=this.states.length),this.states.push(state)}removeState(state){this.states[state.stateNumber]=null}defineDecisionState(s){return this.decisionToState.push(s),s.decision=this.decisionToState.length-1,s.decision}getDecisionState(decision){return this.decisionToState.length===0?null:this.decisionToState[decision]}getNumberOfDecisions(){return this.decisionToState.length}getExpectedTokens(stateNumber,context){if(stateNumber<0||stateNumber>=this.states.length)throw new Error("Invalid state number.");let s=this.states[stateNumber],following=this.nextTokens(s);if(!following.contains(Token.EPSILON))return following;let ctx=context,expected=new IntervalSet;for(expected.addSet(following),expected.removeOne(Token.EPSILON);ctx!==null&&ctx.invokingState>=0&&following.contains(Token.EPSILON);){let rt=this.states[ctx.invokingState].transitions[0];following=this.nextTokens(rt.followState),expected.addSet(following),expected.removeOne(Token.EPSILON),ctx=ctx.parent}return following.contains(Token.EPSILON)&&expected.addOne(Token.EOF),expected}},KeyTypeEqualityComparer=class _KeyTypeEqualityComparer{static{__name(this,"KeyTypeEqualityComparer")}static instance=new _KeyTypeEqualityComparer;hashCode(config){let hashCode=7;return hashCode=31*hashCode+config.state.stateNumber,hashCode=31*hashCode+config.alt,hashCode=31*hashCode+config.semanticContext.hashCode(),hashCode}equals(a,b){return a===b?!0:a.state.stateNumber===b.state.stateNumber&&a.alt===b.alt&&a.semanticContext.equals(b.semanticContext)}},ATNConfigSet=class{static{__name(this,"ATNConfigSet")}configLookup=new HashSet(KeyTypeEqualityComparer.instance);configs=[];uniqueAlt=0;hasSemanticContext=!1;dipsIntoOuterContext=!1;fullCtx=!1;readOnly=!1;conflictingAlts=null;firstStopState;#cachedHashCode=-1;constructor(fullCtxOrOldSet){if(fullCtxOrOldSet!==void 0)if(typeof fullCtxOrOldSet=="boolean")this.fullCtx=fullCtxOrOldSet??!0;else{let old=fullCtxOrOldSet;this.addAll(old.configs),this.uniqueAlt=old.uniqueAlt,this.conflictingAlts=old.conflictingAlts,this.hasSemanticContext=old.hasSemanticContext,this.dipsIntoOuterContext=old.dipsIntoOuterContext}}[Symbol.iterator](){return this.configs[Symbol.iterator]()}add(config,mergeCache=null){if(this.readOnly)throw new Error("This set is readonly");!this.firstStopState&&config.state.constructor.stateType===ATNState.RULE_STOP&&(this.firstStopState=config),this.hasSemanticContext||=config.semanticContext!==SemanticContext.NONE,this.dipsIntoOuterContext||=config.reachesIntoOuterContext;let existing=this.configLookup.getOrAdd(config);if(existing===config){this.#cachedHashCode=-1,this.configs.push(config);return}let rootIsWildcard=!this.fullCtx,merged=merge(existing.context,config.context,rootIsWildcard,mergeCache);existing.reachesIntoOuterContext||=config.reachesIntoOuterContext,existing.precedenceFilterSuppressed||=config.precedenceFilterSuppressed,existing.context=merged}get elements(){return this.configs}getAlts(){let alts=new BitSet;for(let config of this.configs)alts.set(config.alt);return alts}getPredicates(){let preds=[];for(let config of this.configs)config.semanticContext!==SemanticContext.NONE&&preds.push(config.semanticContext);return preds}getStates(){let states=new HashSet;for(let config of this.configs)states.add(config.state);return states}optimizeConfigs(interpreter){if(this.readOnly)throw new Error("This set is readonly");if(this.configLookup.size!==0)for(let config of this.configs)config.context=interpreter.getCachedContext(config.context)}addAll(coll){for(let config of coll)this.add(config);return!1}equals(other){return!!(this===other||this.fullCtx===other.fullCtx&&this.uniqueAlt===other.uniqueAlt&&this.conflictingAlts===other.conflictingAlts&&this.hasSemanticContext===other.hasSemanticContext&&this.dipsIntoOuterContext===other.dipsIntoOuterContext&&equalArrays(this.configs,other.configs))}hashCode(){return this.#cachedHashCode===-1&&(this.#cachedHashCode=this.computeHashCode()),this.#cachedHashCode}get length(){return this.configs.length}isEmpty(){return this.configs.length===0}contains(item){if(this.configLookup===null)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(item)}containsFast(item){if(this.configLookup===null)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(item)}clear(){if(this.readOnly)throw new Error("This set is readonly");this.configs=[],this.#cachedHashCode=-1,this.configLookup=new HashSet(KeyTypeEqualityComparer.instance)}setReadonly(readOnly){this.readOnly=readOnly,readOnly&&(this.configLookup=null)}toString(){return arrayToString(this.configs)+(this.hasSemanticContext?",hasSemanticContext="+this.hasSemanticContext:"")+(this.uniqueAlt!==ATN.INVALID_ALT_NUMBER?",uniqueAlt="+this.uniqueAlt:"")+(this.conflictingAlts!==null?",conflictingAlts="+this.conflictingAlts:"")+(this.dipsIntoOuterContext?",dipsIntoOuterContext":"")}computeHashCode(){let hash=MurmurHash.initialize();return this.configs.forEach(config=>{hash=MurmurHash.update(hash,config.hashCode())}),hash=MurmurHash.finish(hash,this.configs.length),hash}},BasicState=class extends ATNState{static{__name(this,"BasicState")}static stateType=ATNState.BASIC},DecisionState=class extends ATNState{static{__name(this,"DecisionState")}decision=-1;nonGreedy=!1},BlockStartState=class extends DecisionState{static{__name(this,"BlockStartState")}endState},BlockEndState=class extends ATNState{static{__name(this,"BlockEndState")}static stateType=ATNState.BLOCK_END;startState},LoopEndState=class extends ATNState{static{__name(this,"LoopEndState")}static stateType=ATNState.LOOP_END;loopBackState},RuleStartState=class extends ATNState{static{__name(this,"RuleStartState")}static stateType=ATNState.RULE_START;stopState;isLeftRecursiveRule=!1},RuleStopState=class extends ATNState{static{__name(this,"RuleStopState")}static stateType=ATNState.RULE_STOP},TokensStartState=class extends DecisionState{static{__name(this,"TokensStartState")}static stateType=ATNState.TOKEN_START},PlusLoopbackState=class extends DecisionState{static{__name(this,"PlusLoopbackState")}static stateType=ATNState.PLUS_LOOP_BACK},StarLoopbackState=class extends ATNState{static{__name(this,"StarLoopbackState")}static stateType=ATNState.STAR_LOOP_BACK},StarLoopEntryState=class extends DecisionState{static{__name(this,"StarLoopEntryState")}static stateType=ATNState.STAR_LOOP_ENTRY;loopBackState;precedenceRuleDecision=!1},PlusBlockStartState=class extends BlockStartState{static{__name(this,"PlusBlockStartState")}static stateType=ATNState.PLUS_BLOCK_START;loopBackState},StarBlockStartState=class extends BlockStartState{static{__name(this,"StarBlockStartState")}static stateType=ATNState.STAR_BLOCK_START},BasicBlockStartState=class extends BlockStartState{static{__name(this,"BasicBlockStartState")}static stateType=ATNState.BLOCK_START},AtomTransition=class extends Transition{static{__name(this,"AtomTransition")}labelValue;#label;constructor(target,label){super(target),this.labelValue=label,this.#label=IntervalSet.of(label,label)}get label(){return this.#label}get transitionType(){return Transition.ATOM}matches(symbol){return this.labelValue===symbol}toString(){return this.labelValue.toString()}},RuleTransition=class extends Transition{static{__name(this,"RuleTransition")}ruleIndex;precedence;followState;constructor(ruleStart,ruleIndex,precedence,followState){super(ruleStart),this.ruleIndex=ruleIndex,this.precedence=precedence,this.followState=followState}get isEpsilon(){return!0}get transitionType(){return Transition.RULE}matches(_symbol,_minVocabSymbol,_maxVocabSymbol){return!1}},RangeTransition=class extends Transition{static{__name(this,"RangeTransition")}start;stop;#label=new IntervalSet;constructor(target,start,stop){super(target),this.start=start,this.stop=stop,this.#label.addRange(start,stop)}get label(){return this.#label}get transitionType(){return Transition.RANGE}matches(symbol,_minVocabSymbol,_maxVocabSymbol){return symbol>=this.start&&symbol<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},ActionTransition=class extends Transition{static{__name(this,"ActionTransition")}ruleIndex;actionIndex;isCtxDependent;constructor(target,ruleIndex,actionIndex,isCtxDependent){super(target),this.ruleIndex=ruleIndex,this.actionIndex=actionIndex??-1,this.isCtxDependent=isCtxDependent??!1}get isEpsilon(){return!0}get transitionType(){return Transition.ACTION}matches(_symbol,_minVocabSymbol,_maxVocabSymbol){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},EpsilonTransition=class extends Transition{static{__name(this,"EpsilonTransition")}#outermostPrecedenceReturn;constructor(target,outermostPrecedenceReturn=-1){super(target),this.#outermostPrecedenceReturn=outermostPrecedenceReturn}get outermostPrecedenceReturn(){return this.#outermostPrecedenceReturn}get isEpsilon(){return!0}get transitionType(){return Transition.EPSILON}matches(){return!1}toString(){return"epsilon"}},WildcardTransition=class extends Transition{static{__name(this,"WildcardTransition")}get transitionType(){return Transition.WILDCARD}matches(symbol,minVocabSymbol,maxVocabSymbol){return symbol>=minVocabSymbol&&symbol<=maxVocabSymbol}toString(){return"."}},AbstractPredicateTransition=class extends Transition{static{__name(this,"AbstractPredicateTransition")}constructor(target){super(target)}},PredicateTransition=class extends AbstractPredicateTransition{static{__name(this,"PredicateTransition")}ruleIndex;predIndex;isCtxDependent;constructor(target,ruleIndex,predIndex,isCtxDependent){super(target),this.ruleIndex=ruleIndex,this.predIndex=predIndex,this.isCtxDependent=isCtxDependent}get isEpsilon(){return!0}matches(_symbol,_minVocabSymbol,_maxVocabSymbol){return!1}get transitionType(){return Transition.PREDICATE}getPredicate(){return new SemanticContext.Predicate(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},PrecedencePredicateTransition=class extends AbstractPredicateTransition{static{__name(this,"PrecedencePredicateTransition")}precedence;constructor(target,precedence){super(target),this.precedence=precedence}get isEpsilon(){return!0}matches(_symbol,_minVocabSymbol,_maxVocabSymbol){return!1}getPredicate(){return new SemanticContext.PrecedencePredicate(this.precedence)}get transitionType(){return Transition.PRECEDENCE}toString(){return this.precedence+" >= _p"}},LexerActionType={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},LexerSkipAction=class _LexerSkipAction{static{__name(this,"LexerSkipAction")}static instance=new _LexerSkipAction;actionType;isPositionDependent=!1;constructor(){this.actionType=LexerActionType.SKIP}equals(obj){return obj===this}hashCode(){return LexerActionType.SKIP}execute(lexer){lexer.skip()}toString(){return"skip"}},LexerChannelAction=class _LexerChannelAction{static{__name(this,"LexerChannelAction")}channel;actionType;isPositionDependent=!1;cachedHashCode;constructor(channel){this.actionType=LexerActionType.CHANNEL,this.channel=channel}execute(lexer){lexer.channel=this.channel}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();hash=MurmurHash.update(hash,this.actionType),hash=MurmurHash.update(hash,this.channel),this.cachedHashCode=MurmurHash.finish(hash,2)}return this.cachedHashCode}equals(other){return this===other?!0:other instanceof _LexerChannelAction?this.channel===other.channel:!1}toString(){return"channel("+this.channel+")"}},LexerCustomAction=class _LexerCustomAction{static{__name(this,"LexerCustomAction")}ruleIndex;actionIndex;actionType;isPositionDependent=!0;cachedHashCode;constructor(ruleIndex,actionIndex){this.actionType=LexerActionType.CUSTOM,this.ruleIndex=ruleIndex,this.actionIndex=actionIndex}execute(lexer){lexer.action(null,this.ruleIndex,this.actionIndex)}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();hash=MurmurHash.update(hash,this.actionType),hash=MurmurHash.update(hash,this.ruleIndex),hash=MurmurHash.update(hash,this.actionIndex),this.cachedHashCode=MurmurHash.finish(hash,3)}return this.cachedHashCode}equals(other){return this===other?!0:other instanceof _LexerCustomAction?this.ruleIndex===other.ruleIndex&&this.actionIndex===other.actionIndex:!1}},LexerMoreAction=class _LexerMoreAction{static{__name(this,"LexerMoreAction")}static instance=new _LexerMoreAction;actionType;isPositionDependent=!1;constructor(){this.actionType=LexerActionType.MORE}equals(obj){return obj===this}hashCode(){return LexerActionType.MORE}execute(lexer){lexer.more()}toString(){return"more"}},LexerTypeAction=class _LexerTypeAction{static{__name(this,"LexerTypeAction")}type;actionType;isPositionDependent=!1;cachedHashCode;constructor(type){this.actionType=LexerActionType.TYPE,this.type=type}execute(lexer){lexer.type=this.type}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();hash=MurmurHash.update(hash,this.actionType),hash=MurmurHash.update(hash,this.type),this.cachedHashCode=MurmurHash.finish(hash,2)}return this.cachedHashCode}equals(other){return this===other?!0:other instanceof _LexerTypeAction?this.type===other.type:!1}toString(){return"type("+this.type+")"}},LexerPushModeAction=class _LexerPushModeAction{static{__name(this,"LexerPushModeAction")}mode;actionType;isPositionDependent=!1;cachedHashCode;constructor(mode){this.actionType=LexerActionType.PUSH_MODE,this.mode=mode}execute(lexer){lexer.pushMode(this.mode)}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();hash=MurmurHash.update(hash,this.actionType),hash=MurmurHash.update(hash,this.mode),this.cachedHashCode=MurmurHash.finish(hash,2)}return this.cachedHashCode}equals(other){return this===other?!0:other instanceof _LexerPushModeAction?this.mode===other.mode:!1}toString(){return"pushMode("+this.mode+")"}},LexerPopModeAction=class _LexerPopModeAction{static{__name(this,"LexerPopModeAction")}static instance=new _LexerPopModeAction;actionType;isPositionDependent=!1;constructor(){this.actionType=LexerActionType.POP_MODE}equals(obj){return obj===this}hashCode(){return LexerActionType.POP_MODE}execute(lexer){lexer.popMode()}toString(){return"popMode"}},LexerModeAction=class _LexerModeAction{static{__name(this,"LexerModeAction")}mode;actionType;isPositionDependent=!1;cachedHashCode;constructor(mode){this.actionType=LexerActionType.MODE,this.mode=mode}execute(lexer){lexer.mode=this.mode}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();hash=MurmurHash.update(hash,this.actionType),hash=MurmurHash.update(hash,this.mode),this.cachedHashCode=MurmurHash.finish(hash,2)}return this.cachedHashCode}equals(other){return this===other?!0:other instanceof _LexerModeAction?this.mode===other.mode:!1}toString(){return"mode("+this.mode+")"}},ATNDeserializer=class _ATNDeserializer{static{__name(this,"ATNDeserializer")}static SERIALIZED_VERSION=4;static stateTypeMapper=new Map([[ATNState.INVALID_TYPE,void 0],[ATNState.BASIC,BasicState],[ATNState.RULE_START,RuleStartState],[ATNState.BLOCK_START,BasicBlockStartState],[ATNState.PLUS_BLOCK_START,PlusBlockStartState],[ATNState.STAR_BLOCK_START,StarBlockStartState],[ATNState.TOKEN_START,TokensStartState],[ATNState.RULE_STOP,RuleStopState],[ATNState.BLOCK_END,BlockEndState],[ATNState.STAR_LOOP_BACK,StarLoopbackState],[ATNState.STAR_LOOP_ENTRY,StarLoopEntryState],[ATNState.PLUS_LOOP_BACK,PlusLoopbackState],[ATNState.LOOP_END,LoopEndState]]);static lexerActionFactoryMapper=new Map([[LexerActionType.CHANNEL,data1=>new LexerChannelAction(data1)],[LexerActionType.CUSTOM,(data1,data2)=>new LexerCustomAction(data1,data2)],[LexerActionType.MODE,data1=>new LexerModeAction(data1)],[LexerActionType.MORE,()=>LexerMoreAction.instance],[LexerActionType.POP_MODE,()=>LexerPopModeAction.instance],[LexerActionType.PUSH_MODE,data1=>new LexerPushModeAction(data1)],[LexerActionType.SKIP,()=>LexerSkipAction.instance],[LexerActionType.TYPE,data1=>new LexerTypeAction(data1)]]);data=[];pos=0;deserializationOptions;actionFactories;constructor(options){options||(options={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!1}),this.deserializationOptions=options}deserialize(data){this.data=data,this.checkVersion();let atn=this.readATN();this.readStates(atn),this.readRules(atn),this.readModes(atn);let sets=[];return this.readSets(atn,sets),this.readEdges(atn,sets),this.readDecisions(atn),this.readLexerActions(atn),this.markPrecedenceDecisions(atn),this.verifyATN(atn),this.deserializationOptions.generateRuleBypassTransitions&&atn.grammarType===ATN.PARSER&&(this.generateRuleBypassTransitions(atn),this.verifyATN(atn)),atn}checkVersion(){let version=this.data[this.pos++];if(version!==_ATNDeserializer.SERIALIZED_VERSION)throw new Error("Could not deserialize ATN with version "+version+" (expected "+_ATNDeserializer.SERIALIZED_VERSION+").")}readATN(){let grammarType=this.data[this.pos++],maxTokenType=this.data[this.pos++];return new ATN(grammarType,maxTokenType)}readStates(atn){let j,stateNumber,loopBackStateNumbers=[],endStateNumbers=[],stateCount=this.data[this.pos++];for(let i=0;i<stateCount;i++){let stateType=this.data[this.pos++];if(stateType===ATNState.INVALID_TYPE){atn.addState(null);continue}let ruleIndex=this.data[this.pos++],s=this.stateFactory(stateType,ruleIndex);if(stateType===ATNState.LOOP_END){let loopBackStateNumber=this.data[this.pos++];loopBackStateNumbers.push([s,loopBackStateNumber])}else if(s instanceof BlockStartState){let endStateNumber=this.data[this.pos++];endStateNumbers.push([s,endStateNumber])}atn.addState(s)}for(j=0;j<loopBackStateNumbers.length;j++){let pair=loopBackStateNumbers[j];pair[0].loopBackState=atn.states[pair[1]]??void 0}for(j=0;j<endStateNumbers.length;j++){let pair=endStateNumbers[j];pair[0].endState=atn.states[pair[1]]}let numNonGreedyStates=this.data[this.pos++];for(j=0;j<numNonGreedyStates;j++)stateNumber=this.data[this.pos++],atn.states[stateNumber].nonGreedy=!0;let numPrecedenceStates=this.data[this.pos++];for(j=0;j<numPrecedenceStates;j++)stateNumber=this.data[this.pos++],atn.states[stateNumber].isLeftRecursiveRule=!0}readRules(atn){let i,ruleCount=this.data[this.pos++];for(atn.grammarType===ATN.LEXER&&(atn.ruleToTokenType=new Array(ruleCount),atn.ruleToTokenType.fill(0)),atn.ruleToStartState=new Array(ruleCount),atn.ruleToStartState.fill(null),i=0;i<ruleCount;i++){let s=this.data[this.pos++];if(atn.ruleToStartState[i]=atn.states[s],atn.grammarType===ATN.LEXER){let tokenType=this.data[this.pos++];atn.ruleToTokenType[i]=tokenType}}for(atn.ruleToStopState=new Array(ruleCount),atn.ruleToStopState.fill(null),i=0;i<atn.states.length;i++){let state=atn.states[i];state instanceof RuleStopState&&(atn.ruleToStopState[state.ruleIndex]=state,atn.ruleToStartState[state.ruleIndex].stopState=state)}}readModes(atn){let modeCount=this.data[this.pos++];for(let i=0;i<modeCount;i++){let s=this.data[this.pos++];atn.modeToStartState.push(atn.states[s])}}readSets(atn,sets){let m2=this.data[this.pos++];for(let i=0;i<m2;i++){let intervalSet=new IntervalSet;sets.push(intervalSet);let n2=this.data[this.pos++];this.data[this.pos++]!==0&&intervalSet.addOne(-1);for(let j=0;j<n2;j++){let i1=this.data[this.pos++],i2=this.data[this.pos++];intervalSet.addRange(i1,i2)}}}readEdges(atn,sets){let i,j,state,trans,target,edgeCount=this.data[this.pos++];for(i=0;i<edgeCount;i++){let src=this.data[this.pos++],trg=this.data[this.pos++],ttype=this.data[this.pos++],arg1=this.data[this.pos++],arg2=this.data[this.pos++],arg3=this.data[this.pos++];trans=this.edgeFactory(atn,ttype,trg,arg1,arg2,arg3,sets),atn.states[src].addTransition(trans)}for(i=0;i<atn.states.length;i++)for(state=atn.states[i],j=0;j<state.transitions.length;j++){let t=state.transitions[j];if(!(t instanceof RuleTransition))continue;let outermostPrecedenceReturn=-1;atn.ruleToStartState[t.target.ruleIndex].isLeftRecursiveRule&&t.precedence===0&&(outermostPrecedenceReturn=t.target.ruleIndex),trans=new EpsilonTransition(t.followState,outermostPrecedenceReturn),atn.ruleToStopState[t.target.ruleIndex].addTransition(trans)}for(i=0;i<atn.states.length;i++){if(state=atn.states[i],state instanceof BlockStartState){if(!state.endState)throw new Error("IllegalState");if(state.endState.startState)throw new Error("IllegalState");state.endState.startState=state}if(state instanceof PlusLoopbackState)for(j=0;j<state.transitions.length;j++)target=state.transitions[j].target,target instanceof PlusBlockStartState&&(target.loopBackState=state);else if(state instanceof StarLoopbackState)for(j=0;j<state.transitions.length;j++)target=state.transitions[j].target,target instanceof StarLoopEntryState&&(target.loopBackState=state)}}readDecisions(atn){let decisionCount=this.data[this.pos++];for(let i=0;i<decisionCount;i++){let s=this.data[this.pos++],decState=atn.states[s];atn.decisionToState.push(decState),decState.decision=i}}readLexerActions(atn){if(atn.grammarType===ATN.LEXER){let count=this.data[this.pos++];atn.lexerActions=[];for(let i=0;i<count;i++){let actionType=this.data[this.pos++],data1=this.data[this.pos++],data2=this.data[this.pos++];atn.lexerActions.push(this.lexerActionFactory(actionType,data1,data2))}}}generateRuleBypassTransitions(atn){let i,count=atn.ruleToStartState.length;for(i=0;i<count;i++)atn.ruleToTokenType[i]=atn.maxTokenType+i+1;for(i=0;i<count;i++)this.generateRuleBypassTransition(atn,i)}generateRuleBypassTransition(atn,idx){let i,state,bypassStart=new BasicBlockStartState;bypassStart.ruleIndex=idx,atn.addState(bypassStart);let bypassStop=new BlockEndState;bypassStop.ruleIndex=idx,atn.addState(bypassStop),bypassStart.endState=bypassStop,atn.defineDecisionState(bypassStart),bypassStop.startState=bypassStart;let excludeTransition=null,endState=null;if(atn.ruleToStartState[idx].isLeftRecursiveRule){for(endState=null,i=0;i<atn.states.length;i++)if(state=atn.states[i],this.stateIsEndStateFor(state,idx)){endState=state,excludeTransition=state.loopBackState.transitions[0];break}if(excludeTransition===null)throw new Error("Couldn't identify final state of the precedence rule prefix section.")}else endState=atn.ruleToStopState[idx];for(i=0;i<atn.states.length;i++){state=atn.states[i];for(let transition of state.transitions)transition!==excludeTransition&&transition.target===endState&&(transition.target=bypassStop)}let ruleToStartState=atn.ruleToStartState[idx];for(;ruleToStartState.transitions.length>0;){let transition=ruleToStartState.removeTransition(ruleToStartState.transitions.length-1);bypassStart.addTransition(transition)}atn.ruleToStartState[idx].addTransition(new EpsilonTransition(bypassStart)),endState&&bypassStop.addTransition(new EpsilonTransition(endState));let matchState=new BasicState;atn.addState(matchState),matchState.addTransition(new AtomTransition(bypassStop,atn.ruleToTokenType[idx])),bypassStart.addTransition(new EpsilonTransition(matchState))}stateIsEndStateFor(state,idx){if(state.ruleIndex!==idx||!(state instanceof StarLoopEntryState))return null;let maybeLoopEndState=state.transitions[state.transitions.length-1].target;return maybeLoopEndState instanceof LoopEndState&&maybeLoopEndState.epsilonOnlyTransitions&&maybeLoopEndState.transitions[0].target instanceof RuleStopState?state:null}markPrecedenceDecisions(atn){for(let state of atn.states)if(state instanceof StarLoopEntryState&&atn.ruleToStartState[state.ruleIndex].isLeftRecursiveRule){let maybeLoopEndState=state.transitions[state.transitions.length-1].target;maybeLoopEndState instanceof LoopEndState&&maybeLoopEndState.epsilonOnlyTransitions&&maybeLoopEndState.transitions[0].target instanceof RuleStopState&&(state.precedenceRuleDecision=!0)}}verifyATN(atn){if(this.deserializationOptions.verifyATN){for(let state of atn.states)if(state!==null)if(this.checkCondition(state.epsilonOnlyTransitions||state.transitions.length<=1),state instanceof PlusBlockStartState)this.checkCondition(state.loopBackState!==null);else if(state instanceof StarLoopEntryState)if(this.checkCondition(state.loopBackState!==null),this.checkCondition(state.transitions.length===2),state.transitions[0].target instanceof StarBlockStartState)this.checkCondition(state.transitions[1].target instanceof LoopEndState),this.checkCondition(!state.nonGreedy);else if(state.transitions[0].target instanceof LoopEndState)this.checkCondition(state.transitions[1].target instanceof StarBlockStartState),this.checkCondition(state.nonGreedy);else throw new Error("IllegalState");else state instanceof StarLoopbackState?(this.checkCondition(state.transitions.length===1),this.checkCondition(state.transitions[0].target instanceof StarLoopEntryState)):state instanceof LoopEndState?this.checkCondition(state.loopBackState!==null):state instanceof RuleStartState?this.checkCondition(state.stopState!==null):state instanceof BlockStartState?this.checkCondition(state.endState!==null):state instanceof BlockEndState?this.checkCondition(state.startState!==null):state instanceof DecisionState?this.checkCondition(state.transitions.length<=1||state.decision>=0):this.checkCondition(state.transitions.length<=1||state instanceof RuleStopState)}}checkCondition(condition,message){if(!condition)throw message==null&&(message="IllegalState"),message}edgeFactory(atn,type,trg,arg1,arg2,arg3,sets){let target=atn.states[trg];switch(type){case Transition.EPSILON:return new EpsilonTransition(target);case Transition.RANGE:return arg3!==0?new RangeTransition(target,Token.EOF,arg2):new RangeTransition(target,arg1,arg2);case Transition.RULE:return new RuleTransition(atn.states[arg1],arg2,arg3,target);case Transition.PREDICATE:return new PredicateTransition(target,arg1,arg2,arg3!==0);case Transition.PRECEDENCE:return new PrecedencePredicateTransition(target,arg1);case Transition.ATOM:return arg3!==0?new AtomTransition(target,Token.EOF):new AtomTransition(target,arg1);case Transition.ACTION:return new ActionTransition(target,arg1,arg2,arg3!==0);case Transition.SET:return new SetTransition(target,sets[arg1]);case Transition.NOT_SET:return new NotSetTransition(target,sets[arg1]);case Transition.WILDCARD:return new WildcardTransition(target);default:throw new Error("The specified transition type: "+type+" is not valid.")}}stateFactory(type,ruleIndex){let ctor=_ATNDeserializer.stateTypeMapper.get(type);if(!ctor)throw new Error("The specified state type "+type+" is not valid.");let s=new ctor;return s.ruleIndex=ruleIndex,s}lexerActionFactory(type,data1,data2){let factory=_ATNDeserializer.lexerActionFactoryMapper.get(type);if(!factory)throw new Error("The specified lexer action type "+type+" is not valid.");return factory(data1,data2)}},OrderedHashMap=class _OrderedHashMap extends HashMap{static{__name(this,"OrderedHashMap")}#keys=[];clear(){super.clear(),this.#keys=[]}get(key){return super.get(key)}set(key,value){let result=super.set(key,value);return result===void 0&&this.#keys.push(key),result}setIfAbsent(key,value){let result=super.setIfAbsent(key,value);return result===void 0&&this.#keys.push(key),result}values(){return{[Symbol.iterator]:()=>{let index=0;return{next:__name(()=>index<this.#keys.length?{done:!1,value:super.get(this.#keys[index++])}:{done:!0,value:void 0},"next")}}}}keys(){return this.#keys[Symbol.iterator]()}equals(o){return o instanceof _OrderedHashMap?super.equals(o):!1}},ATNSerializer=class _ATNSerializer{static{__name(this,"ATNSerializer")}atn;data=[];sets=new OrderedHashMap(ObjectEqualityComparator.instance);nonGreedyStates=[];precedenceStates=[];constructor(atn){this.atn=atn}static getSerialized(atn){return new _ATNSerializer(atn).serialize()}static serializeSets(data,sets){data.push(sets.length);for(let set of sets){let containsEof=set.contains(Token.EOF),intervals=[...set];containsEof&&intervals[0].stop===Token.EOF?data.push(intervals.length-1):data.push(intervals.length),data.push(containsEof?1:0);for(let interval of intervals){if(interval.start===Token.EOF){if(interval.stop===Token.EOF)continue;data.push(0)}else data.push(interval.start);data.push(interval.stop)}}}serialize(){this.addPreamble();let edgeCount=this.addEdges();this.addNonGreedyStates(),this.addPrecedenceStates(),this.addRuleStatesAndLexerTokenTypes(),this.addModeStartStates();let setIndices=this.addSets();return this.addEdges(edgeCount,setIndices),this.addDecisionStartStates(),this.addLexerActions(),this.data}addPreamble(){this.data.push(ATNDeserializer.SERIALIZED_VERSION),this.data.push(this.atn.grammarType),this.data.push(this.atn.maxTokenType)}addLexerActions(){if(this.atn.grammarType===ATN.LEXER){this.data.push(this.atn.lexerActions.length);for(let action of this.atn.lexerActions)switch(this.data.push(action.actionType),action.actionType){case LexerActionType.CHANNEL:{let channel=action.channel;this.data.push(channel),this.data.push(0);break}case LexerActionType.CUSTOM:{let ruleIndex=action.ruleIndex,actionIndex=action.actionIndex;this.data.push(ruleIndex),this.data.push(actionIndex);break}case LexerActionType.MODE:{let mode=action.mode;this.data.push(mode),this.data.push(0);break}case LexerActionType.MORE:{this.data.push(0),this.data.push(0);break}case LexerActionType.POP_MODE:{this.data.push(0),this.data.push(0);break}case LexerActionType.PUSH_MODE:{let mode=action.mode;this.data.push(mode),this.data.push(0);break}case LexerActionType.SKIP:{this.data.push(0),this.data.push(0);break}case LexerActionType.TYPE:{let type=action.type;this.data.push(type),this.data.push(0);break}default:throw new Error(`The specified lexer action type ${action.actionType} is not valid.`)}}}addDecisionStartStates(){this.data.push(this.atn.decisionToState.length);for(let decStartState of this.atn.decisionToState)this.data.push(decStartState.stateNumber)}addEdges(...args){switch(args.length){case 0:{let edgeCount=0;this.data.push(this.atn.states.length);for(let s of this.atn.states){if(s===null){this.data.push(ATNState.INVALID_TYPE);continue}let stateType=s.constructor.stateType;s instanceof DecisionState&&s.nonGreedy&&this.nonGreedyStates.push(s.stateNumber),s instanceof RuleStartState&&s.isLeftRecursiveRule&&this.precedenceStates.push(s.stateNumber),this.data.push(stateType),this.data.push(s.ruleIndex),s.constructor.stateType===ATNState.LOOP_END?this.data.push(s.loopBackState.stateNumber):s instanceof BlockStartState&&this.data.push(s.endState.stateNumber),s.constructor.stateType!==ATNState.RULE_STOP&&(edgeCount+=s.transitions.length);for(let t of s.transitions){let edgeType=t.transitionType;if(edgeType===Transition.SET||edgeType===Transition.NOT_SET){let st=t;this.sets.set(st.set,!0)}}}return edgeCount}case 2:{let[edgeCount,setIndices]=args;this.data.push(edgeCount);for(let s of this.atn.states)if(s!==null&&s.constructor.stateType!==ATNState.RULE_STOP)for(let t of s.transitions){if(this.atn.states[t.target.stateNumber]===null)throw new Error("Cannot serialize a transition to a removed state.");let src=s.stateNumber,trg=t.target.stateNumber,edgeType=t.transitionType,arg1=0,arg2=0,arg3=0;switch(edgeType){case Transition.RULE:{trg=t.followState.stateNumber,arg1=t.target.stateNumber,arg2=t.ruleIndex,arg3=t.precedence;break}case Transition.PRECEDENCE:{arg1=t.precedence;break}case Transition.PREDICATE:{let pt=t;arg1=pt.ruleIndex,arg2=pt.predIndex,arg3=pt.isCtxDependent?1:0;break}case Transition.RANGE:{arg1=t.start,arg2=t.stop,arg1===Token.EOF&&(arg1=0,arg3=1);break}case Transition.ATOM:{arg1=t.labelValue,arg1===Token.EOF&&(arg1=0,arg3=1);break}case Transition.ACTION:{let at=t;arg1=at.ruleIndex,arg2=at.actionIndex,arg3=at.isCtxDependent?1:0;break}case Transition.SET:{arg1=setIndices.get(t.set);break}case Transition.NOT_SET:{arg1=setIndices.get(t.set);break}case Transition.WILDCARD:break;default:}this.data.push(src),this.data.push(trg),this.data.push(edgeType),this.data.push(arg1),this.data.push(arg2),this.data.push(arg3)}break}default:throw new Error("Invalid number of arguments")}}addSets(){_ATNSerializer.serializeSets(this.data,[...this.sets.keys()]);let setIndices=new HashMap,setIndex=0;for(let s of this.sets.keys())setIndices.set(s,setIndex++);return setIndices}addModeStartStates(){let modeCount=this.atn.modeToStartState.length;if(this.data.push(modeCount),modeCount>0)for(let modeStartState of this.atn.modeToStartState)this.data.push(modeStartState.stateNumber)}addRuleStatesAndLexerTokenTypes(){let ruleCount=this.atn.ruleToStartState.length;this.data.push(ruleCount);for(let r=0;r<ruleCount;r++){let ruleStartState=this.atn.ruleToStartState[r];this.data.push(ruleStartState.stateNumber),this.atn.grammarType===ATN.LEXER&&this.data.push(this.atn.ruleToTokenType[r])}}addPrecedenceStates(){this.data.push(this.precedenceStates.length);for(let state of this.precedenceStates)this.data.push(state)}addNonGreedyStates(){this.data.push(this.nonGreedyStates.length);for(let state of this.nonGreedyStates)this.data.push(state)}},DFAState=class _DFAState{static{__name(this,"DFAState")}stateNumber=-1;configs;edges=[];isAcceptState=!1;prediction=-1;lexerActionExecutor=null;requiresFullContext=!1;predicates=null;constructor(configs){configs&&(this.configs=configs)}static fromState(stateNumber){let result=new _DFAState;return result.stateNumber=stateNumber,result}static fromConfigs(configs){return new _DFAState(configs)}static hashCode(state){return state.configs.hashCode()}static equals(a,b){return a.configs.equals(b.configs)}getAltSet(){let alts=new Set;for(let config of this.configs)alts.add(config.alt);return alts.size===0?null:alts}toString(){let buf="";return buf+=this.stateNumber,buf+=":",buf+=this.configs?this.configs.toString():"",this.isAcceptState&&(buf+="=>",this.predicates?buf+=arrayToString(this.predicates):buf+=this.prediction),buf.toString()}},ATNSimulator=class{static{__name(this,"ATNSimulator")}static ERROR=DFAState.fromState(2147483647);atn;sharedContextCache;constructor(atn,sharedContextCache){return this.atn=atn,this.sharedContextCache=sharedContextCache,this}getCachedContext(context){if(!this.sharedContextCache)return context;let visited=new HashMap(ObjectEqualityComparator.instance);return getCachedPredictionContext(context,this.sharedContextCache,visited)}},CodePointTransitions=class _CodePointTransitions{static{__name(this,"CodePointTransitions")}static createWithCodePoint(target,codePoint){return _CodePointTransitions.createWithCodePointRange(target,codePoint,codePoint)}static createWithCodePointRange(target,codePointFrom,codePointTo){return codePointFrom===codePointTo?new AtomTransition(target,codePointFrom):new RangeTransition(target,codePointFrom,codePointTo)}},DecisionInfo=class{static{__name(this,"DecisionInfo")}decision=0;invocations=0;timeInPrediction=0;sllTotalLook=0;sllMinLook=0;sllMaxLook=0;sllMaxLookEvent;llTotalLook=0;llMinLook=0;llMaxLook=0;llMaxLookEvent;contextSensitivities;errors;ambiguities;predicateEvals;sllATNTransitions=0;sllDFATransitions=0;llFallback=0;llATNTransitions=0;llDFATransitions=0;constructor(decision){this.decision=decision,this.contextSensitivities=[],this.errors=[],this.ambiguities=[],this.predicateEvals=[]}toString(){return"{decision="+this.decision+", contextSensitivities="+this.contextSensitivities.length+", errors="+this.errors.length+", ambiguities="+this.ambiguities.length+", sllLookahead="+this.sllTotalLook+", sllATNTransitions="+this.sllATNTransitions+", sllDFATransitions="+this.sllDFATransitions+", llFallback="+this.llFallback+", llLookahead="+this.llTotalLook+", llATNTransitions="+this.llATNTransitions+"}"}},LexerATNConfig=class _LexerATNConfig extends ATNConfig{static{__name(this,"LexerATNConfig")}lexerActionExecutor;passedThroughNonGreedyDecision;constructor(config,state,context,lexerActionExecutor){return super(config,state,context??config.context,context?SemanticContext.NONE:config.semanticContext),this.lexerActionExecutor=context?lexerActionExecutor:config.lexerActionExecutor??null,this.passedThroughNonGreedyDecision=_LexerATNConfig.checkNonGreedyDecision(config,this.state),this}static createWithExecutor(config,state,lexerActionExecutor){return new _LexerATNConfig(config,state,config.context,lexerActionExecutor)}static createWithConfig(state,config,context){return new _LexerATNConfig(config,state,context??null,config.lexerActionExecutor)}static createWithContext(state,alt,context){return new _LexerATNConfig({alt},state,context,null)}static checkNonGreedyDecision(source,target){return source.passedThroughNonGreedyDecision||"nonGreedy"in target&&target.nonGreedy}hashCode(){if(this.cachedHashCode===void 0){let hashCode=MurmurHash.initialize(7);hashCode=MurmurHash.update(hashCode,this.state.stateNumber),hashCode=MurmurHash.update(hashCode,this.alt),hashCode=MurmurHash.updateFromComparable(hashCode,this.context),hashCode=MurmurHash.updateFromComparable(hashCode,this.semanticContext),hashCode=MurmurHash.update(hashCode,this.passedThroughNonGreedyDecision?1:0),hashCode=MurmurHash.updateFromComparable(hashCode,this.lexerActionExecutor),hashCode=MurmurHash.finish(hashCode,6),this.cachedHashCode=hashCode}return this.cachedHashCode}equals(other){return this===other?!0:this.passedThroughNonGreedyDecision===other.passedThroughNonGreedyDecision&&(this.lexerActionExecutor&&other.lexerActionExecutor?this.lexerActionExecutor.equals(other.lexerActionExecutor):!other.lexerActionExecutor)&&super.equals(other)}},BaseErrorListener=class{static{__name(this,"BaseErrorListener")}syntaxError(recognizer,offendingSymbol,line,column,msg,e){}reportAmbiguity(recognizer,dfa,startIndex,stopIndex,exact,ambigAlts,configs){}reportAttemptingFullContext(recognizer,dfa,startIndex,stopIndex,conflictingAlts,configs){}reportContextSensitivity(recognizer,dfa,startIndex,stopIndex,prediction,configs){}},ConsoleErrorListener=class _ConsoleErrorListener extends BaseErrorListener{static{__name(this,"ConsoleErrorListener")}static instance=new _ConsoleErrorListener;syntaxError(recognizer,offendingSymbol,line,charPositionInLine,msg,_e){console.error("line "+line+":"+charPositionInLine+" "+msg)}},ProxyErrorListener=class extends BaseErrorListener{constructor(delegates){return super(),this.delegates=delegates,this}static{__name(this,"ProxyErrorListener")}syntaxError(recognizer,offendingSymbol,line,column,msg,e){this.delegates.forEach(d=>{d.syntaxError(recognizer,offendingSymbol,line,column,msg,e)})}reportAmbiguity(recognizer,dfa,startIndex,stopIndex,exact,ambigAlts,configs){this.delegates.forEach(d=>{d.reportAmbiguity(recognizer,dfa,startIndex,stopIndex,exact,ambigAlts,configs)})}reportAttemptingFullContext(recognizer,dfa,startIndex,stopIndex,conflictingAlts,configs){this.delegates.forEach(d=>{d.reportAttemptingFullContext(recognizer,dfa,startIndex,stopIndex,conflictingAlts,configs)})}reportContextSensitivity(recognizer,dfa,startIndex,stopIndex,prediction,configs){this.delegates.forEach(d=>{d.reportContextSensitivity(recognizer,dfa,startIndex,stopIndex,prediction,configs)})}},Recognizer=class _Recognizer{static{__name(this,"Recognizer")}static EOF=-1;static tokenTypeMapCache=new Map;static ruleIndexMapCache=new Map;interpreter;listeners=[ConsoleErrorListener.instance];stateNumber=-1;checkVersion(toolVersion){let runtimeVersion="4.13.1";runtimeVersion!==toolVersion&&console.error("ANTLR runtime and generated code versions disagree: "+runtimeVersion+"!="+toolVersion)}addErrorListener(listener){this.listeners.push(listener)}removeErrorListeners(){this.listeners=[]}removeErrorListener(listener){for(let i=0;i<this.listeners.length;i++)if(this.listeners[i]===listener){this.listeners.splice(i,1);return}}getErrorListeners(){return this.listeners}getTokenTypeMap(){let vocabulary=this.vocabulary,result=_Recognizer.tokenTypeMapCache.get(vocabulary);if(!result){result=new Map;for(let i=0;i<=this.atn.maxTokenType;i++){let literalName=vocabulary.getLiteralName(i);literalName&&result.set(literalName,i);let symbolicName=vocabulary.getSymbolicName(i);symbolicName&&result.set(symbolicName,i)}result.set("EOF",Token.EOF),_Recognizer.tokenTypeMapCache.set(vocabulary,result)}return result}getRuleIndexMap(){let ruleNames=this.ruleNames,result=_Recognizer.ruleIndexMapCache.get(ruleNames);return result||(result=new Map,ruleNames.forEach((ruleName,idx)=>result.set(ruleName,idx)),_Recognizer.ruleIndexMapCache.set(ruleNames,result)),result}getTokenType(tokenName){let ttype=this.getTokenTypeMap().get(tokenName);return ttype||Token.INVALID_TYPE}getErrorHeader(e){let line=e.offendingToken?.line,column=e.offendingToken?.column;return"line "+line+":"+column}get errorListenerDispatch(){return new ProxyErrorListener(this.listeners)}sempred(_localctx,_ruleIndex,_actionIndex){return!0}precpred(_localctx,_precedence){return!0}action(_localctx,_ruleIndex,_actionIndex){}get atn(){return this.interpreter.atn}get state(){return this.stateNumber}set state(state){this.stateNumber=state}getParseInfo(){}},CommonTokenFactory=class _CommonTokenFactory{static{__name(this,"CommonTokenFactory")}static DEFAULT=new _CommonTokenFactory;copyText=!1;constructor(copyText){this.copyText=copyText??!1}create(source,type,text,channel,start,stop,line,column){let t=CommonToken.fromSource(source,type,channel,start,stop);return t.line=line,t.column=column,text?t.text=text:this.copyText&&source[1]!==null&&(t.text=source[1].getTextFromRange(start,stop)),t}},RecognitionException=class _RecognitionException extends Error{static{__name(this,"RecognitionException")}ctx;offendingToken=null;offendingState=-1;recognizer;input;constructor(params){super(params.message),Error.captureStackTrace&&Error.captureStackTrace(this,_RecognitionException),this.message=params.message,this.recognizer=params.recognizer,this.input=params.input,this.ctx=params.ctx,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null&&this.ctx!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},LexerNoViableAltException=class extends RecognitionException{static{__name(this,"LexerNoViableAltException")}startIndex;deadEndConfigs;constructor(lexer,input,startIndex,deadEndConfigs){super({message:"",recognizer:lexer,input,ctx:null}),this.startIndex=startIndex,this.deadEndConfigs=deadEndConfigs}toString(){let symbol="";return this.input&&this.startIndex>=0&&this.startIndex<this.input.size&&(symbol=this.input.getTextFromRange(this.startIndex,this.startIndex)),`LexerNoViableAltException(${symbol})`}},Lexer=class _Lexer extends Recognizer{static{__name(this,"Lexer")}static DEFAULT_MODE=0;static MORE=-2;static SKIP=-3;static DEFAULT_TOKEN_CHANNEL=Token.DEFAULT_CHANNEL;static HIDDEN=Token.HIDDEN_CHANNEL;options={minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111};tokenStartCharIndex=-1;channel=0;type=0;mode=_Lexer.DEFAULT_MODE;currentTokenColumn=0;currentTokenStartLine=0;input;token=null;hitEOF=!1;factory;#modeStack=[];#text;constructor(input,options){super(),this.options={...this.options,...options},this.input=input,this.factory=CommonTokenFactory.DEFAULT}reset(seekBack=!0){seekBack&&this.input.seek(0),this.token=null,this.type=Token.INVALID_TYPE,this.channel=Token.DEFAULT_CHANNEL,this.tokenStartCharIndex=-1,this.currentTokenColumn=-1,this.currentTokenStartLine=-1,this.#text=void 0,this.hitEOF=!1,this.mode=_Lexer.DEFAULT_MODE,this.#modeStack=[],this.interpreter.reset()}nextToken(){if(this.input===null)throw new Error("nextToken requires a non-null input stream.");let tokenStartMarker=this.input.mark();try{for(;;){if(this.hitEOF)return this.emitEOF(),this.token;this.token=null,this.channel=Token.DEFAULT_CHANNEL,this.tokenStartCharIndex=this.input.index,this.currentTokenColumn=this.interpreter.column,this.currentTokenStartLine=this.interpreter.line,this.#text=void 0;let continueOuter=!1;for(;;){this.type=Token.INVALID_TYPE;let ttype=_Lexer.SKIP;try{ttype=this.interpreter.match(this.input,this.mode)}catch(e){if(e instanceof LexerNoViableAltException)this.notifyListeners(e),this.recover(e);else throw e}if(this.input.LA(1)===Token.EOF&&(this.hitEOF=!0),this.type===Token.INVALID_TYPE&&(this.type=ttype),this.type===_Lexer.SKIP){continueOuter=!0;break}if(this.type!==_Lexer.MORE)break}if(!continueOuter)return this.token===null&&this.emit(),this.token}}finally{this.input.release(tokenStartMarker)}}skip(){this.type=_Lexer.SKIP}more(){this.type=_Lexer.MORE}pushMode(m2){LexerATNSimulator.debug&&console.log("pushMode "+m2),this.#modeStack.push(this.mode),this.mode=m2}popMode(){if(this.#modeStack.length===0)throw new Error("Empty Stack");return LexerATNSimulator.debug&&console.log("popMode back to "+this.#modeStack.slice(0,-1)),this.mode=this.#modeStack.pop(),this.mode}get modeStack(){return this.#modeStack}emitToken(token){this.token=token}emit(){let t=this.factory.create([this,this.input],this.type,this.#text,this.channel,this.tokenStartCharIndex,this.getCharIndex()-1,this.currentTokenStartLine,this.currentTokenColumn);return this.emitToken(t),t}emitEOF(){let eof=this.factory.create([this,this.input],Token.EOF,void 0,Token.DEFAULT_CHANNEL,this.input.index,this.input.index-1,this.line,this.column);return this.emitToken(eof),eof}getCharIndex(){return this.input.index}getAllTokens(){let tokens=[],t=this.nextToken();for(;t.type!==Token.EOF;)tokens.push(t),t=this.nextToken();return tokens}notifyListeners(e){let start=this.tokenStartCharIndex,stop=this.input.index,text=this.input.getTextFromRange(start,stop),msg="token recognition error at: '"+this.getErrorDisplay(text)+"'";this.errorListenerDispatch.syntaxError(this,null,this.currentTokenStartLine,this.currentTokenColumn,msg,e)}getErrorDisplay(s){return s}getErrorDisplayForChar(c){return c.charCodeAt(0)===Token.EOF?"<EOF>":c===`
4
+ `?"\\n":c===" "?"\\t":c==="\r"?"\\r":c}getCharErrorDisplay(c){return"'"+this.getErrorDisplayForChar(c)+"'"}recover(re){this.input.LA(1)!==Token.EOF&&(re instanceof LexerNoViableAltException?this.interpreter.consume(this.input):this.input.consume())}get inputStream(){return this.input}set inputStream(input){this.reset(!1),this.input=input}set tokenFactory(factory){this.factory=factory}get tokenFactory(){return this.factory}get sourceName(){return this.input.getSourceName()}get line(){return this.interpreter.line}set line(line){this.interpreter.line=line}get column(){return this.interpreter.column}set column(column){this.interpreter.column=column}get text(){return this.#text?this.#text:this.interpreter.getText(this.input)}set text(text){this.#text=text}},DFASerializer=class{static{__name(this,"DFASerializer")}dfa;vocabulary;constructor(dfa,vocabulary){this.dfa=dfa,this.vocabulary=vocabulary}toString(){if(!this.dfa.s0)return"";let buf="",states=this.dfa.getStates();for(let s of states){let n2=0;n2=s.edges.length;for(let i=0;i<n2;i++){let t=s.edges[i];if(t&&t.stateNumber!==2147483647){buf+=this.getStateString(s);let label=this.getEdgeLabel(i);buf+="-",buf+=label,buf+="->",buf+=this.getStateString(t),buf+=`
5
+ `}}}return buf}getEdgeLabel(i){return`${this.vocabulary.getDisplayName(i-1)}`}getStateString(s){let n2=s.stateNumber,baseStateStr=(s.isAcceptState?":":"")+"s"+n2+(s.requiresFullContext?"^":"");return s.isAcceptState?s.predicates!==null?`${baseStateStr}=>${s.predicates.toString()}`:`${baseStateStr}=>${s.prediction}`:`${baseStateStr}`}},LexerDFASerializer=class extends DFASerializer{static{__name(this,"LexerDFASerializer")}constructor(dfa){super(dfa,Vocabulary.EMPTY_VOCABULARY)}getEdgeLabel=__name(i=>"'"+String.fromCharCode(i)+"'","getEdgeLabel")},DFA=class{static{__name(this,"DFA")}s0;decision;atnStartState;isPrecedenceDfa;states=new Map;constructor(atnStartState,decision){this.atnStartState=atnStartState,this.decision=decision??0;let precedenceDfa=!1;atnStartState instanceof StarLoopEntryState&&atnStartState.precedenceRuleDecision&&(precedenceDfa=!0,this.s0=DFAState.fromState(-1)),this.isPrecedenceDfa=precedenceDfa}[Symbol.iterator]=()=>this.states.values()[Symbol.iterator]();getPrecedenceStartState=__name(precedence=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");if(!(!this.s0||!this.s0.edges||precedence<0||precedence>=this.s0.edges.length))return this.s0.edges[precedence]},"getPrecedenceStartState");setPrecedenceStartState=__name((precedence,startState)=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");precedence<0||!this.s0||(this.s0.edges[precedence]=startState)},"setPrecedenceStartState");getStates(){let result=[...this.states.values()];return result.sort((o1,o2)=>o1.stateNumber-o2.stateNumber),result}getState(state){return this.states.get(state.configs.hashCode())??null}getStateForConfigs(configs){return this.states.get(configs.hashCode())??null}addState(state){let hash=state.configs.hashCode();this.states.has(hash)||(this.states.set(hash,state),state.stateNumber=this.states.size-1)}toString(vocabulary){return vocabulary?this.s0?new DFASerializer(this,vocabulary).toString()??"":"":this.toString(Vocabulary.EMPTY_VOCABULARY)}toLexerString(){return this.s0?new LexerDFASerializer(this).toString()??"":""}get length(){return this.states.size}},LexerIndexedCustomAction=class _LexerIndexedCustomAction{static{__name(this,"LexerIndexedCustomAction")}offset;action;actionType;isPositionDependent=!0;cachedHashCode;constructor(offset,action){this.actionType=action.actionType,this.offset=offset,this.action=action}execute(lexer){this.action.execute(lexer)}hashCode(){if(this.cachedHashCode===void 0){let hash=MurmurHash.initialize();hash=MurmurHash.update(hash,this.offset),hash=MurmurHash.updateFromComparable(hash,this.action),this.cachedHashCode=MurmurHash.finish(hash,2)}return this.cachedHashCode}equals(other){return this===other?!0:other instanceof _LexerIndexedCustomAction?this.offset===other.offset&&this.action===other.action:!1}},LexerActionExecutor=class _LexerActionExecutor{static{__name(this,"LexerActionExecutor")}lexerActions;actionType;isPositionDependent=!1;cachedHashCode;constructor(lexerActions){return this.actionType=-1,this.lexerActions=lexerActions??[],this}static append(lexerActionExecutor,lexerAction){if(lexerActionExecutor===null)return new _LexerActionExecutor([lexerAction]);let lexerActions=lexerActionExecutor.lexerActions.concat([lexerAction]);return new _LexerActionExecutor(lexerActions)}fixOffsetBeforeMatch(offset){let updatedLexerActions=null;for(let i=0;i<this.lexerActions.length;i++)this.lexerActions[i].isPositionDependent&&!(this.lexerActions[i]instanceof LexerIndexedCustomAction)&&(updatedLexerActions===null&&(updatedLexerActions=this.lexerActions.concat([])),updatedLexerActions[i]=new LexerIndexedCustomAction(offset,this.lexerActions[i]));return updatedLexerActions===null?this:new _LexerActionExecutor(updatedLexerActions)}execute(lexer,input,startIndex){if(input===void 0||startIndex===void 0)return;let requiresSeek=!1,stopIndex=input.index;try{for(let lexerAction of this.lexerActions){let action=lexerAction;if(lexerAction instanceof LexerIndexedCustomAction){let offset=lexerAction.offset;input.seek(startIndex+offset),action=lexerAction.action,requiresSeek=startIndex+offset!==stopIndex}else lexerAction.isPositionDependent&&(input.seek(stopIndex),requiresSeek=!1);action.execute(lexer)}}finally{requiresSeek&&input.seek(stopIndex)}}hashCode(){if(this.cachedHashCode===void 0){let hashCode=MurmurHash.initialize(7);for(let lexerAction of this.lexerActions)hashCode=MurmurHash.update(hashCode,lexerAction.hashCode());this.cachedHashCode=MurmurHash.finish(hashCode,this.lexerActions.length)}return this.cachedHashCode}equals(other){return this===other?!0:this.cachedHashCode!==other.cachedHashCode||this.lexerActions.length!==other.lexerActions.length?!1:this.lexerActions.every((action,index)=>action.equals(other.lexerActions[index]))}},OrderedHashSet=class _OrderedHashSet extends HashSet{static{__name(this,"OrderedHashSet")}elements=[];getOrAdd(o){let oldSize=this.size,result=super.getOrAdd(o);return this.size>oldSize&&this.elements.push(o),result}equals(o){return o instanceof _OrderedHashSet?super.equals(o):!1}clear(){super.clear(),this.elements=[]}*[Symbol.iterator](){yield*this.elements}toArray(){return this.elements.slice(0)}},OrderedATNConfigSet=class extends ATNConfigSet{static{__name(this,"OrderedATNConfigSet")}constructor(){super(),this.configLookup=new OrderedHashSet}},LexerATNSimulator=class _LexerATNSimulator extends ATNSimulator{static{__name(this,"LexerATNSimulator")}static debug=!1;decisionToDFA;recognizer=null;startIndex=-1;line=1;column=0;mode=Lexer.DEFAULT_MODE;prevAccept;options;lexerATNConfigFactory;constructor(recog,atn,decisionToDFA,sharedContextCache){super(atn,sharedContextCache),this.decisionToDFA=decisionToDFA,this.recognizer=recog,recog?this.options=recog.options:this.options={minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111}}match(input,mode){this.mode=mode;let mark=input.mark();try{this.startIndex=input.index,this.prevAccept=void 0;let dfa=this.decisionToDFA[mode];return dfa.s0?this.execATN(input,dfa.s0):this.matchATN(input)}finally{input.release(mark)}}reset(){this.prevAccept=void 0,this.startIndex=-1,this.line=1,this.column=0,this.mode=Lexer.DEFAULT_MODE}clearDFA(){for(let d=0;d<this.decisionToDFA.length;d++)this.decisionToDFA[d]=new DFA(this.atn.getDecisionState(d),d)}getDFA(mode){return this.decisionToDFA[mode]}getText(input){return input.getTextFromRange(this.startIndex,input.index-1)}consume(input){input.LA(1)===10?(this.line+=1,this.column=0):this.column+=1,input.consume()}getTokenName(tt){return tt===Token.EOF?"EOF":"'"+String.fromCharCode(tt)+"'"}matchATN(input){let startState=this.atn.modeToStartState[this.mode];_LexerATNSimulator.debug&&console.log("matchATN mode "+this.mode+" start: "+startState);let oldMode=this.mode,s0Closure=this.computeStartState(input,startState),suppressEdge=s0Closure.hasSemanticContext;s0Closure.hasSemanticContext=!1;let next=this.addDFAState(s0Closure);suppressEdge||(this.decisionToDFA[this.mode].s0=next);let predict=this.execATN(input,next);return _LexerATNSimulator.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[oldMode].toLexerString()),predict}execATN(input,state){_LexerATNSimulator.debug&&console.log("start state closure="+state.configs),state.isAcceptState&&this.captureSimState(input,state);let t=input.LA(1);for(;;){_LexerATNSimulator.debug&&console.log("execATN loop starting closure: "+state.configs);let target=this.getExistingTargetState(state,t);if(target||(target=this.computeTargetState(input,state,t)),target===ATNSimulator.ERROR||(t!==Token.EOF&&this.consume(input),target.isAcceptState&&(this.captureSimState(input,target),t===Token.EOF)))break;t=input.LA(1),state=target}return this.failOrAccept(input,state.configs,t)}getExistingTargetState(s,t){if(t>=this.options.minDFAEdge&&t<=this.options.maxDFAEdge){let target=s.edges[t-this.options.minDFAEdge];return _LexerATNSimulator.debug&&target&&console.log("reuse state "+s.stateNumber+" edge to "+target.stateNumber),target}}computeTargetState(input,s,t){let reach=new OrderedATNConfigSet;return this.getReachableConfigSet(input,s.configs,reach,t),reach.length===0?(reach.hasSemanticContext||this.addDFAEdge(s,t,ATNSimulator.ERROR),ATNSimulator.ERROR):this.addDFAEdge(s,t,null,reach)}failOrAccept(input,reach,t){if(this.prevAccept?.dfaState){let{dfaState,index,line,column}=this.prevAccept;return this.accept(input,dfaState.lexerActionExecutor,this.startIndex,index,line,column),dfaState.prediction}if(t===Token.EOF&&input.index===this.startIndex)return Token.EOF;throw new LexerNoViableAltException(this.recognizer,input,this.startIndex,reach)}getReachableConfigSet(input,closure,reach,t){let skipAlt=ATN.INVALID_ALT_NUMBER;for(let cfg of closure){let currentAltReachedAcceptState=cfg.alt===skipAlt;if(!(currentAltReachedAcceptState&&cfg.passedThroughNonGreedyDecision)){_LexerATNSimulator.debug&&console.log(`testing %s at %s
6
+ `,this.getTokenName(t),cfg.toString(this.recognizer,!0));for(let trans of cfg.state.transitions){let target=this.getReachableTarget(trans,t);if(target){let lexerActionExecutor=cfg.lexerActionExecutor;lexerActionExecutor&&(lexerActionExecutor=lexerActionExecutor.fixOffsetBeforeMatch(input.index-this.startIndex));let treatEofAsEpsilon=t===Token.EOF,config=LexerATNConfig.createWithExecutor(cfg,target,lexerActionExecutor);this.closure(input,config,reach,currentAltReachedAcceptState,!0,treatEofAsEpsilon)&&(skipAlt=cfg.alt)}}}}}accept(input,lexerActionExecutor,startIndex,index,line,charPos){_LexerATNSimulator.debug&&console.log(`ACTION %s
7
+ `,lexerActionExecutor),input.seek(index),this.line=line,this.column=charPos,lexerActionExecutor&&this.recognizer&&lexerActionExecutor.execute(this.recognizer,input,startIndex)}getReachableTarget(trans,t){if(trans.matches(t,this.options.minCodePoint,this.options.maxCodePoint))return trans.target}computeStartState(input,p){let initialContext=EmptyPredictionContext.instance,configs=new OrderedATNConfigSet;for(let i=0;i<p.transitions.length;i++){let target=p.transitions[i].target,cfg=LexerATNConfig.createWithContext(target,i+1,initialContext);this.closure(input,cfg,configs,!1,!1,!1)}return configs}closure(input,config,configs,currentAltReachedAcceptState,speculative,treatEofAsEpsilon){let cfg=null;if(_LexerATNSimulator.debug&&console.log("closure("+config.toString(this.recognizer,!0)+")"),config.state.constructor.stateType===ATNState.RULE_STOP){if(_LexerATNSimulator.debug&&(this.recognizer!==null?console.log(`closure at %s rule stop %s
8
+ `,this.recognizer.ruleNames[config.state.ruleIndex],config):console.log(`closure at rule stop %s
9
+ `,config)),!config.context||config.context.hasEmptyPath()){if(!config.context||config.context.isEmpty())return configs.add(config),!0;configs.add(LexerATNConfig.createWithConfig(config.state,config,EmptyPredictionContext.instance)),currentAltReachedAcceptState=!0}if(config.context&&!config.context.isEmpty()){for(let i=0;i<config.context.length;i++)if(config.context.getReturnState(i)!==PredictionContext.EMPTY_RETURN_STATE){let newContext=config.context.getParent(i),returnState=this.atn.states[config.context.getReturnState(i)];cfg=LexerATNConfig.createWithConfig(returnState,config,newContext),currentAltReachedAcceptState=this.closure(input,cfg,configs,currentAltReachedAcceptState,speculative,treatEofAsEpsilon)}}return currentAltReachedAcceptState}config.state.epsilonOnlyTransitions||(!currentAltReachedAcceptState||!config.passedThroughNonGreedyDecision)&&configs.add(config);for(let trans of config.state.transitions)cfg=this.getEpsilonTarget(input,config,trans,configs,speculative,treatEofAsEpsilon),cfg&&(currentAltReachedAcceptState=this.closure(input,cfg,configs,currentAltReachedAcceptState,speculative,treatEofAsEpsilon));return currentAltReachedAcceptState}getEpsilonTarget(input,config,trans,configs,speculative,treatEofAsEpsilon){this.lexerATNConfigFactory||this.setupATNFactoryLookup();let factory=this.lexerATNConfigFactory[trans.transitionType];return factory?factory(input,config,trans,configs,speculative,treatEofAsEpsilon):null}setupATNFactoryLookup(){this.lexerATNConfigFactory=[],this.lexerATNConfigFactory[Transition.RULE]=(input,config,trans)=>{let newContext=createSingletonPredictionContext(config.context??void 0,trans.followState.stateNumber);return LexerATNConfig.createWithConfig(trans.target,config,newContext)},this.lexerATNConfigFactory[Transition.PRECEDENCE]=()=>{throw new Error("Precedence predicates are not supported in lexers.")},this.lexerATNConfigFactory[Transition.PREDICATE]=(input,config,trans,configs,speculative)=>{let pt=trans;return _LexerATNSimulator.debug&&console.log("EVAL rule "+pt.ruleIndex+":"+pt.predIndex),configs.hasSemanticContext=!0,this.evaluatePredicate(input,pt.ruleIndex,pt.predIndex,speculative)?LexerATNConfig.createWithConfig(trans.target,config):null},this.lexerATNConfigFactory[Transition.ACTION]=(input,config,trans)=>{if(config.context===null||config.context.hasEmptyPath()){let lexerActionExecutor=LexerActionExecutor.append(config.lexerActionExecutor,this.atn.lexerActions[trans.actionIndex]);return LexerATNConfig.createWithExecutor(config,trans.target,lexerActionExecutor)}else return LexerATNConfig.createWithConfig(trans.target,config)},this.lexerATNConfigFactory[Transition.EPSILON]=(input,config,trans)=>LexerATNConfig.createWithConfig(trans.target,config);let simple=__name((input,config,trans,configs,speculative,treatEofAsEpsilon)=>treatEofAsEpsilon&&trans.matches(Token.EOF,this.options.minCodePoint,this.options.maxCodePoint)?LexerATNConfig.createWithConfig(trans.target,config):null,"simple");this.lexerATNConfigFactory[Transition.ATOM]=simple,this.lexerATNConfigFactory[Transition.RANGE]=simple,this.lexerATNConfigFactory[Transition.SET]=simple}evaluatePredicate(input,ruleIndex,predIndex,speculative){if(!this.recognizer)return!0;if(!speculative)return this.recognizer.sempred(null,ruleIndex,predIndex);let savedColumn=this.column,savedLine=this.line,index=input.index,marker=input.mark();try{return this.consume(input),this.recognizer.sempred(null,ruleIndex,predIndex)}finally{this.column=savedColumn,this.line=savedLine,input.seek(index),input.release(marker)}}captureSimState(input,dfaState){this.prevAccept={index:input.index,line:this.line,column:this.column,dfaState}}addDFAEdge(from,tk,to,configs){if(!to&&configs){let suppressEdge=configs.hasSemanticContext;if(configs.hasSemanticContext=!1,to=this.addDFAState(configs),suppressEdge)return to}return tk<this.options.minDFAEdge||tk>this.options.maxDFAEdge||(_LexerATNSimulator.debug&&console.log("EDGE "+from+" -> "+to+" upon "+tk),from.edges[tk-this.options.minDFAEdge]=to),to}addDFAState(configs){let dfa=this.decisionToDFA[this.mode],existing=dfa.getStateForConfigs(configs);if(existing)return existing;let proposed=DFAState.fromConfigs(configs),firstConfigWithRuleStopState=configs.firstStopState;return firstConfigWithRuleStopState&&(proposed.isAcceptState=!0,proposed.lexerActionExecutor=firstConfigWithRuleStopState.lexerActionExecutor,proposed.prediction=this.atn.ruleToTokenType[firstConfigWithRuleStopState.state.ruleIndex]),configs.setReadonly(!0),dfa.addState(proposed),proposed}},ParseInfo=class{static{__name(this,"ParseInfo")}atnSimulator;constructor(atnSimulator){this.atnSimulator=atnSimulator}getDecisionInfo(){return this.atnSimulator.getDecisionInfo()}getLLDecisions(){let decisions=this.atnSimulator.getDecisionInfo(),result=new Array;for(let i=0;i<decisions.length;i++)decisions[i].llFallback>0&&result.push(i);return result}getTotalTimeInPrediction(){let decisions=this.atnSimulator.getDecisionInfo(),t=0;for(let decision of decisions)t+=decision.timeInPrediction;return t}getTotalSLLLookaheadOps(){let decisions=this.atnSimulator.getDecisionInfo(),k=0;for(let decision of decisions)k+=decision.sllTotalLook;return k}getTotalLLLookaheadOps(){let decisions=this.atnSimulator.getDecisionInfo(),k=0;for(let decision of decisions)k+=decision.llTotalLook;return k}getTotalSLLATNLookaheadOps(){let decisions=this.atnSimulator.getDecisionInfo(),k=0;for(let decision of decisions)k+=decision.sllATNTransitions;return k}getTotalLLATNLookaheadOps(){let decisions=this.atnSimulator.getDecisionInfo(),k=0;for(let decision of decisions)k+=decision.llATNTransitions;return k}getTotalATNLookaheadOps(){let decisions=this.atnSimulator.getDecisionInfo(),k=0;for(let decision of decisions)k+=decision.sllATNTransitions,k+=decision.llATNTransitions;return k}getDFASize(decision){if(decision===void 0){let n2=0,decisionToDFA=this.atnSimulator.decisionToDFA;for(let i=0;i<decisionToDFA.length;i++)n2+=this.getDFASize(i);return n2}else return this.atnSimulator.decisionToDFA[decision].length}},NoViableAltException=class extends RecognitionException{static{__name(this,"NoViableAltException")}deadEndConfigs=null;startToken;constructor(recognizer,input=null,startToken=null,offendingToken=null,deadEndConfigs=null,ctx=null){ctx=ctx??recognizer.context,offendingToken=offendingToken??recognizer.getCurrentToken(),startToken=startToken??recognizer.getCurrentToken(),input=input??recognizer.inputStream,super({message:"",recognizer,input,ctx}),this.deadEndConfigs=deadEndConfigs,this.startToken=startToken,this.offendingToken=offendingToken}},DoubleDict=class{static{__name(this,"DoubleDict")}cacheMap;constructor(){this.cacheMap=new HashMap}get(a,b){let d=this.cacheMap.get(a)??null;return d===null?null:d.get(b)??null}set(a,b,o){let d=this.cacheMap.get(a);d||(d=new HashMap,this.cacheMap.set(a,d)),d.set(b,o)}},SubsetEqualityComparer=class _SubsetEqualityComparer{static{__name(this,"SubsetEqualityComparer")}static instance=new _SubsetEqualityComparer;hashCode(config){let hashCode=MurmurHash.initialize(7);return hashCode=MurmurHash.update(hashCode,config.state.stateNumber),hashCode=MurmurHash.updateFromComparable(hashCode,config.context),hashCode=MurmurHash.finish(hashCode,2),hashCode}equals(a,b){return a.state.stateNumber===b.state.stateNumber&&(a.context?.equals(b.context)??!0)}},PredictionMode=class _PredictionMode{static{__name(this,"PredictionMode")}static SLL=0;static LL=1;static LL_EXACT_AMBIG_DETECTION=2;static hasSLLConflictTerminatingPrediction(mode,configs){if(_PredictionMode.allConfigsInRuleStopStates(configs))return!0;if(mode===_PredictionMode.SLL&&configs.hasSemanticContext){let dup=new ATNConfigSet;for(let c of configs)c=ATNConfig.duplicate(c,SemanticContext.NONE),dup.add(c);configs=dup}let altSets=_PredictionMode.getConflictingAltSubsets(configs);return _PredictionMode.hasConflictingAltSet(altSets)&&!_PredictionMode.hasStateAssociatedWithOneAlt(configs)}static hasConfigInRuleStopState(configs){for(let c of configs)if(c.state instanceof RuleStopState)return!0;return!1}static allConfigsInRuleStopStates(configs){for(let c of configs)if(!(c.state instanceof RuleStopState))return!1;return!0}static resolvesToJustOneViableAlt(altSets){return _PredictionMode.getSingleViableAlt(altSets)}static allSubsetsConflict(altSets){return!_PredictionMode.hasNonConflictingAltSet(altSets)}static hasNonConflictingAltSet(altSets){for(let alts of altSets)if(alts.length===1)return!0;return!1}static hasConflictingAltSet(altSets){for(let alts of altSets)if(alts.length>1)return!0;return!1}static allSubsetsEqual(altSets){let first=null;for(let alts of altSets)if(first===null)first=alts;else if(alts!==first)return!1;return!0}static getUniqueAlt(altSets){let all=_PredictionMode.getAlts(altSets);return all.length===1?all.nextSetBit(0):ATN.INVALID_ALT_NUMBER}static getAlts(altSets){let all=new BitSet;return altSets.forEach(alts=>{all.or(alts)}),all}static getConflictingAltSubsets(configs){let configToAlts=new HashMap(SubsetEqualityComparer.instance);for(let cfg of configs){let alts=configToAlts.get(cfg);alts||(alts=new BitSet,configToAlts.set(cfg,alts)),alts.set(cfg.alt)}return Array.from(configToAlts.values())}static getStateToAltMap(configs){let m2=new HashMap(ObjectEqualityComparator.instance);for(let c of configs){let alts=m2.get(c.state);alts||(alts=new BitSet,m2.set(c.state,alts)),alts.set(c.alt)}return m2}static hasStateAssociatedWithOneAlt(configs){let counts={};for(let c of configs){let stateNumber=c.state.stateNumber;counts[stateNumber]||(counts[stateNumber]=0),counts[stateNumber]++}return Object.values(counts).some(count=>count===1)}static getSingleViableAlt(altSets){let result=null;for(let alts of altSets){let minAlt=alts.nextSetBit(0);if(result===null)result=minAlt;else if(result!==minAlt)return ATN.INVALID_ALT_NUMBER}return result??0}},ParserATNSimulator=class _ParserATNSimulator extends ATNSimulator{static{__name(this,"ParserATNSimulator")}static traceATNSimulator=!1;static debug;static debugAdd=!1;static debugClosure=!1;static dfaDebug=!1;static retryDebug=!1;predictionMode;decisionToDFA;parser;mergeCache=new DoubleDict;predictionState;constructor(recog,atn,decisionToDFA,sharedContextCache){super(atn,sharedContextCache),this.parser=recog,this.decisionToDFA=decisionToDFA}static getUniqueAlt(configs){let alt=ATN.INVALID_ALT_NUMBER;for(let c of configs)if(alt===ATN.INVALID_ALT_NUMBER)alt=c.alt;else if(c.alt!==alt)return ATN.INVALID_ALT_NUMBER;return alt}reset(){}clearDFA(){for(let d=0;d<this.decisionToDFA.length;d++)this.decisionToDFA[d]=new DFA(this.atn.getDecisionState(d),d)}adaptivePredict(input,decision,outerContext){(_ParserATNSimulator.debug||_ParserATNSimulator.traceATNSimulator)&&console.log("adaptivePredict decision "+decision+" exec LA(1)=="+this.getLookaheadName(input)+" line "+input.LT(1).line+":"+input.LT(1).column);let dfa=this.decisionToDFA[decision];this.predictionState={input,startIndex:input.index,outerContext:outerContext??void 0,dfa};let m2=input.mark(),index=input.index;try{let s0;if(dfa.isPrecedenceDfa?s0=dfa.getPrecedenceStartState(this.parser.getPrecedence()):s0=dfa.s0,!s0){outerContext||(outerContext=ParserRuleContext.empty),_ParserATNSimulator.debug&&console.log("predictATN decision "+dfa.decision+" exec LA(1)=="+this.getLookaheadName(input)+", outerContext="+outerContext.toString(this.parser.ruleNames));let s0_closure=this.computeStartState(dfa.atnStartState,ParserRuleContext.empty,!1);dfa.isPrecedenceDfa?(s0_closure=this.applyPrecedenceFilter(s0_closure),s0=this.addDFAState(dfa,DFAState.fromConfigs(s0_closure)),dfa.setPrecedenceStartState(this.parser.getPrecedence(),s0)):(s0=this.addDFAState(dfa,DFAState.fromConfigs(s0_closure)),dfa.s0=s0)}let alt=this.execATN(dfa,s0,input,index,outerContext);return _ParserATNSimulator.debug&&console.log("DFA after predictATN: "+dfa.toString(this.parser.vocabulary)),alt}finally{this.predictionState.dfa=void 0,this.mergeCache=new DoubleDict,input.seek(index),input.release(m2)}}execATN(dfa,s0,input,startIndex,outerContext){(_ParserATNSimulator.debug||_ParserATNSimulator.traceATNSimulator)&&console.log("execATN decision "+dfa.decision+", DFA state "+s0+", LA(1)=="+this.getLookaheadName(input)+" line "+input.LT(1).line+":"+input.LT(1).column);let alt,previousState=s0,t=input.LA(1);for(;;){let nextState=this.getExistingTargetState(previousState,t);if(nextState||(nextState=this.computeTargetState(dfa,previousState,t)),nextState===ATNSimulator.ERROR){let e=this.noViableAlt(input,outerContext,previousState.configs,startIndex);if(input.seek(startIndex),alt=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previousState.configs,outerContext),alt!==ATN.INVALID_ALT_NUMBER)return alt;throw e}if(nextState.requiresFullContext&&this.predictionMode!==PredictionMode.SLL){let conflictingAlts=null;if(nextState.predicates!==null){_ParserATNSimulator.debug&&console.log("DFA state has preds in DFA sim LL failover");let conflictIndex=input.index;if(conflictIndex!==startIndex&&input.seek(startIndex),conflictingAlts=this.evalSemanticContext(nextState.predicates,outerContext,!0),conflictingAlts.length===1)return _ParserATNSimulator.debug&&console.log("Full LL avoided"),conflictingAlts.nextSetBit(0);conflictIndex!==startIndex&&input.seek(conflictIndex)}_ParserATNSimulator.dfaDebug&&console.log("ctx sensitive state "+outerContext+" in "+nextState);let s0_closure=this.computeStartState(dfa.atnStartState,outerContext,!0);return this.reportAttemptingFullContext(dfa,conflictingAlts,nextState.configs,startIndex,input.index),alt=this.execATNWithFullContext(dfa,nextState,s0_closure,input,startIndex,outerContext),alt}if(nextState.isAcceptState){if(nextState.predicates===null)return nextState.prediction;let stopIndex=input.index;input.seek(startIndex);let alts=this.evalSemanticContext(nextState.predicates,outerContext,!0);if(alts.length===0)throw this.noViableAlt(input,outerContext,nextState.configs,startIndex);return alts.length===1||this.reportAmbiguity(dfa,nextState,startIndex,stopIndex,!1,alts,nextState.configs),alts.nextSetBit(0)}previousState=nextState,t!==Token.EOF&&(input.consume(),t=input.LA(1))}}getExistingTargetState(previousD,t){return previousD.edges[t+1]}computeTargetState(dfa,previousD,t){let reach=this.computeReachSet(previousD.configs,t,!1);if(reach===null)return this.addDFAEdge(dfa,previousD,t,ATNSimulator.ERROR),ATNSimulator.ERROR;let D=DFAState.fromConfigs(reach),predictedAlt=_ParserATNSimulator.getUniqueAlt(reach);if(_ParserATNSimulator.debug){let altSubSets=PredictionMode.getConflictingAltSubsets(reach);console.log("SLL altSubSets="+arrayToString(altSubSets)+", configs="+reach+", predict="+predictedAlt+", allSubsetsConflict="+PredictionMode.allSubsetsConflict(altSubSets)+", conflictingAlts="+this.getConflictingAlts(reach))}return predictedAlt!==ATN.INVALID_ALT_NUMBER?(D.isAcceptState=!0,D.configs.uniqueAlt=predictedAlt,D.prediction=predictedAlt):PredictionMode.hasSLLConflictTerminatingPrediction(this.predictionMode,reach)&&(D.configs.conflictingAlts=this.getConflictingAlts(reach),D.requiresFullContext=!0,D.isAcceptState=!0,D.prediction=D.configs.conflictingAlts.nextSetBit(0)),D.isAcceptState&&D.configs.hasSemanticContext&&(this.predicateDFAState(D,this.atn.getDecisionState(dfa.decision)),D.predicates!==null&&(D.prediction=ATN.INVALID_ALT_NUMBER)),D=this.addDFAEdge(dfa,previousD,t,D),D}getRuleName(index){return this.parser!==null&&index>=0?this.parser.ruleNames[index]:"<rule "+index+">"}getTokenName(t){if(t===Token.EOF)return"EOF";let displayName=(this.parser?.vocabulary??Vocabulary.EMPTY_VOCABULARY).getDisplayName(t);return displayName===t.toString()?displayName:displayName+"<"+t+">"}getLookaheadName(input){return this.getTokenName(input.LA(1))}dumpDeadEndConfigs(e){console.log("dead end configs: ");let decs=e.deadEndConfigs;for(let c of decs){let trans="no edges";if(c.state.transitions.length>0){let t=c.state.transitions[0];t instanceof AtomTransition?trans="Atom "+this.getTokenName(t.labelValue):t instanceof SetTransition&&(trans=(t instanceof NotSetTransition?"~":"")+"Set "+t.label)}console.error(c.toString(this.parser,!0)+":"+trans)}}predicateDFAState(dfaState,decisionState){let altCount=decisionState.transitions.length,altsToCollectPredsFrom=this.getConflictingAltsOrUniqueAlt(dfaState.configs),altToPred=this.getPredsForAmbigAlts(altsToCollectPredsFrom,dfaState.configs,altCount);altToPred!==null?(dfaState.predicates=this.getPredicatePredictions(altsToCollectPredsFrom,altToPred),dfaState.prediction=ATN.INVALID_ALT_NUMBER):dfaState.prediction=altsToCollectPredsFrom.nextSetBit(0)}execATNWithFullContext(dfa,D,s0,input,startIndex,outerContext){(_ParserATNSimulator.debug||_ParserATNSimulator.traceATNSimulator)&&console.log("execATNWithFullContext "+s0);let fullCtx=!0,foundExactAmbig=!1,reach,previous=s0;input.seek(startIndex);let t=input.LA(1),predictedAlt=-1;for(;;){if(reach=this.computeReachSet(previous,t,fullCtx),reach===null){let e=this.noViableAlt(input,outerContext,previous,startIndex);input.seek(startIndex);let alt=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(previous,outerContext);if(alt!==ATN.INVALID_ALT_NUMBER)return alt;throw e}let altSubSets=PredictionMode.getConflictingAltSubsets(reach);if(_ParserATNSimulator.debug&&console.log("LL altSubSets="+altSubSets+", predict="+PredictionMode.getUniqueAlt(altSubSets)+", resolvesToJustOneViableAlt="+PredictionMode.resolvesToJustOneViableAlt(altSubSets)),reach.uniqueAlt=_ParserATNSimulator.getUniqueAlt(reach),reach.uniqueAlt!==ATN.INVALID_ALT_NUMBER){predictedAlt=reach.uniqueAlt;break}else if(this.predictionMode!==PredictionMode.LL_EXACT_AMBIG_DETECTION){if(predictedAlt=PredictionMode.resolvesToJustOneViableAlt(altSubSets),predictedAlt!==ATN.INVALID_ALT_NUMBER)break}else if(PredictionMode.allSubsetsConflict(altSubSets)&&PredictionMode.allSubsetsEqual(altSubSets)){foundExactAmbig=!0,predictedAlt=PredictionMode.getSingleViableAlt(altSubSets);break}previous=reach,t!==Token.EOF&&(input.consume(),t=input.LA(1))}return reach.uniqueAlt!==ATN.INVALID_ALT_NUMBER?(this.reportContextSensitivity(dfa,predictedAlt,reach,startIndex,input.index),predictedAlt):(this.reportAmbiguity(dfa,D,startIndex,input.index,foundExactAmbig,reach.getAlts(),reach),predictedAlt)}computeReachSet(closure,t,fullCtx){_ParserATNSimulator.debug&&console.log("in computeReachSet, starting closure: "+closure);let intermediate=new ATNConfigSet(fullCtx),skippedStopStates=null;for(let c of closure){if(_ParserATNSimulator.debug&&console.log("testing "+this.getTokenName(t)+" at "+c),c.state instanceof RuleStopState){(fullCtx||t===Token.EOF)&&(skippedStopStates===null&&(skippedStopStates=[]),skippedStopStates.push(c));continue}for(let trans of c.state.transitions){let target=this.getReachableTarget(trans,t);if(target!==null){let cfg=ATNConfig.createWithConfig(target,c);intermediate.add(cfg,this.mergeCache),_ParserATNSimulator.debugAdd&&console.log("added "+cfg+" to intermediate")}}}let reach=null;if(skippedStopStates===null&&t!==Token.EOF&&(intermediate.length===1||_ParserATNSimulator.getUniqueAlt(intermediate)!==ATN.INVALID_ALT_NUMBER)&&(reach=intermediate),reach===null){reach=new ATNConfigSet(fullCtx);let closureBusy=new HashSet,treatEofAsEpsilon=t===Token.EOF;for(let config of intermediate)this.closure(config,reach,closureBusy,!1,fullCtx,treatEofAsEpsilon)}if(t===Token.EOF&&(reach=this.removeAllConfigsNotInRuleStopState(reach,reach===intermediate)),skippedStopStates!==null&&(!fullCtx||!PredictionMode.hasConfigInRuleStopState(reach)))for(let config of skippedStopStates)reach.add(config,this.mergeCache);return _ParserATNSimulator.traceATNSimulator&&console.log("computeReachSet "+closure+" -> "+reach),reach.length===0?null:reach}removeAllConfigsNotInRuleStopState(configs,lookToEndOfRule){if(PredictionMode.allConfigsInRuleStopStates(configs))return configs;let result=new ATNConfigSet(configs.fullCtx);for(let config of configs){if(config.state instanceof RuleStopState){result.add(config,this.mergeCache);continue}if(lookToEndOfRule&&config.state.epsilonOnlyTransitions&&this.atn.nextTokens(config.state).contains(Token.EPSILON)){let endOfRuleState=this.atn.ruleToStopState[config.state.ruleIndex];result.add(ATNConfig.createWithConfig(endOfRuleState,config),this.mergeCache)}}return result}computeStartState(p,ctx,fullCtx){let initialContext=predictionContextFromRuleContext(this.atn,ctx),configs=new ATNConfigSet(fullCtx);_ParserATNSimulator.traceATNSimulator&&console.log("computeStartState from ATN state "+p+" initialContext="+initialContext.toString(this.parser));for(let i=0;i<p.transitions.length;i++){let target=p.transitions[i].target,c=ATNConfig.createWithContext(target,i+1,initialContext),closureBusy=new HashSet;this.closure(c,configs,closureBusy,!0,fullCtx,!1)}return configs}applyPrecedenceFilter(configs){let statesFromAlt1=[],configSet=new ATNConfigSet(configs.fullCtx);for(let config of configs){if(config.alt!==1)continue;let updatedContext=config.semanticContext.evalPrecedence(this.parser,this.predictionState.outerContext);updatedContext!==null&&(statesFromAlt1[config.state.stateNumber]=config.context,updatedContext!==config.semanticContext?configSet.add(ATNConfig.duplicate(config,updatedContext),this.mergeCache):configSet.add(config,this.mergeCache))}for(let config of configs)if(config.alt!==1){if(!config.precedenceFilterSuppressed){let context=statesFromAlt1[config.state.stateNumber]||null;if(context!==null&&context.equals(config.context))continue}configSet.add(config,this.mergeCache)}return configSet}getReachableTarget(trans,ttype){return trans.matches(ttype,0,this.atn.maxTokenType)?trans.target:null}getPredsForAmbigAlts(ambigAlts,configs,altCount){let altToPred=[];for(let c of configs)ambigAlts.get(c.alt)&&(altToPred[c.alt]=SemanticContext.orContext(altToPred[c.alt]??null,c.semanticContext));let nPredAlts=0;for(let i=1;i<altCount+1;i++){let pred=altToPred[i]??null;pred===null?altToPred[i]=SemanticContext.NONE:pred!==SemanticContext.NONE&&(nPredAlts+=1)}return nPredAlts===0&&(altToPred=null),_ParserATNSimulator.debug&&console.log("getPredsForAmbigAlts result "+arrayToString(altToPred)),altToPred}getPredicatePredictions(ambigAlts,altToPred){let pairs=[],containsPredicate=!1;for(let i=1;i<altToPred.length;i++){let pred=altToPred[i];ambigAlts.get(i)&&pairs.push({pred,alt:i}),pred!==SemanticContext.NONE&&(containsPredicate=!0)}return containsPredicate?pairs:null}getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(configs,outerContext){let splitConfigs=this.splitAccordingToSemanticValidity(configs,outerContext),semValidConfigs=splitConfigs[0],semInvalidConfigs=splitConfigs[1],alt=this.getAltThatFinishedDecisionEntryRule(semValidConfigs);return alt!==ATN.INVALID_ALT_NUMBER||semInvalidConfigs.length>0&&(alt=this.getAltThatFinishedDecisionEntryRule(semInvalidConfigs),alt!==ATN.INVALID_ALT_NUMBER)?alt:ATN.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(configs){let alts=[];for(let c of configs)(c.reachesIntoOuterContext||c.state instanceof RuleStopState&&c.context.hasEmptyPath())&&alts.indexOf(c.alt)<0&&alts.push(c.alt);return alts.length===0?ATN.INVALID_ALT_NUMBER:Math.min(...alts)}splitAccordingToSemanticValidity(configs,outerContext){let succeeded=new ATNConfigSet(configs.fullCtx),failed=new ATNConfigSet(configs.fullCtx);for(let c of configs)c.semanticContext!==SemanticContext.NONE?c.semanticContext.evaluate(this.parser,outerContext)?succeeded.add(c):failed.add(c):succeeded.add(c);return[succeeded,failed]}evalSemanticContext(predPredictions,outerContext,complete){let predictions=new BitSet;for(let pair of predPredictions){if(pair.pred===SemanticContext.NONE){if(predictions.set(pair.alt),!complete)break;continue}let predicateEvaluationResult=pair.pred.evaluate(this.parser,outerContext);if((_ParserATNSimulator.debug||_ParserATNSimulator.dfaDebug)&&console.log("eval pred "+pair+"="+predicateEvaluationResult),predicateEvaluationResult&&(predictions.set(pair.alt),!complete))break}return predictions}closure(config,configs,closureBusy,collectPredicates,fullCtx,treatEofAsEpsilon){this.closureCheckingStopState(config,configs,closureBusy,collectPredicates,fullCtx,0,treatEofAsEpsilon)}closureCheckingStopState(config,configs,closureBusy,collectPredicates,fullCtx,depth,treatEofAsEpsilon){if((_ParserATNSimulator.traceATNSimulator||_ParserATNSimulator.debugClosure)&&console.log("closure("+config.toString(this.parser,!0)+")"),config.state instanceof RuleStopState)if(config.context&&!config.context.isEmpty()){for(let i=0;i<config.context.length;i++){if(config.context.getReturnState(i)===PredictionContext.EMPTY_RETURN_STATE){if(fullCtx){configs.add(ATNConfig.createWithConfig(config.state,config,EmptyPredictionContext.instance),this.mergeCache);continue}else _ParserATNSimulator.debug&&console.log("FALLING off rule "+this.getRuleName(config.state.ruleIndex)),this.closure_(config,configs,closureBusy,collectPredicates,fullCtx,depth,treatEofAsEpsilon);continue}let returnState=this.atn.states[config.context.getReturnState(i)],newContext=config.context.getParent(i),c=ATNConfig.createWithContext(returnState,config.alt,newContext,config.semanticContext);c.reachesIntoOuterContext=config.reachesIntoOuterContext,this.closureCheckingStopState(c,configs,closureBusy,collectPredicates,fullCtx,depth-1,treatEofAsEpsilon)}return}else if(fullCtx){configs.add(config,this.mergeCache);return}else _ParserATNSimulator.debug&&console.log("FALLING off rule "+this.getRuleName(config.state.ruleIndex));this.closure_(config,configs,closureBusy,collectPredicates,fullCtx,depth,treatEofAsEpsilon)}closure_(config,configs,closureBusy,collectPredicates,fullCtx,depth,treatEofAsEpsilon){let p=config.state;p.epsilonOnlyTransitions||configs.add(config,this.mergeCache);for(let i=0;i<p.transitions.length;i++){if(i===0&&this.canDropLoopEntryEdgeInLeftRecursiveRule(config))continue;let t=p.transitions[i],continueCollecting=collectPredicates&&!(t instanceof ActionTransition),c=this.getEpsilonTarget(config,t,continueCollecting,depth===0,fullCtx,treatEofAsEpsilon);if(c){let newDepth=depth;if(config.state.constructor.stateType===ATNState.RULE_STOP){if(this.predictionState.dfa&&this.predictionState?.dfa.isPrecedenceDfa&&t.outermostPrecedenceReturn===this.predictionState?.dfa.atnStartState?.ruleIndex&&(c.precedenceFilterSuppressed=!0),c.reachesIntoOuterContext=!0,closureBusy.getOrAdd(c)!==c)continue;configs.dipsIntoOuterContext=!0,newDepth-=1,_ParserATNSimulator.debug&&console.log("dips into outer ctx: "+c)}else{if(!t.isEpsilon&&closureBusy.getOrAdd(c)!==c)continue;t instanceof RuleTransition&&newDepth>=0&&(newDepth+=1)}this.closureCheckingStopState(c,configs,closureBusy,continueCollecting,fullCtx,newDepth,treatEofAsEpsilon)}}}canDropLoopEntryEdgeInLeftRecursiveRule(config){let p=config.state;if(p.constructor.stateType!==ATNState.STAR_LOOP_ENTRY||!config.context||!p.precedenceRuleDecision||config.context.isEmpty()||config.context.hasEmptyPath())return!1;let numCtxs=config.context.length;for(let i=0;i<numCtxs;i++)if(this.atn.states[config.context.getReturnState(i)].ruleIndex!==p.ruleIndex)return!1;let blockEndStateNum=p.transitions[0].target.endState.stateNumber,blockEndState=this.atn.states[blockEndStateNum];for(let i=0;i<numCtxs;i++){let returnStateNumber=config.context.getReturnState(i),returnState=this.atn.states[returnStateNumber];if(returnState.transitions.length!==1||!returnState.transitions[0].isEpsilon)return!1;let returnStateTarget=returnState.transitions[0].target;if(!(returnState.constructor.stateType===ATNState.BLOCK_END&&returnStateTarget===p)&&returnState!==blockEndState&&returnStateTarget!==blockEndState&&!(returnStateTarget.constructor.stateType===ATNState.BLOCK_END&&returnStateTarget.transitions.length===1&&returnStateTarget.transitions[0].isEpsilon&&returnStateTarget.transitions[0].target===p))return!1}return!0}getEpsilonTarget(config,t,collectPredicates,inContext,fullCtx,treatEofAsEpsilon){switch(t.transitionType){case Transition.RULE:return this.ruleTransition(config,t);case Transition.PRECEDENCE:return this.precedenceTransition(config,t,collectPredicates,inContext,fullCtx);case Transition.PREDICATE:return this.predTransition(config,t,collectPredicates,inContext,fullCtx);case Transition.ACTION:{if(_ParserATNSimulator.debug){let at=t,index=at.actionIndex===-1?65535:at.actionIndex;console.log("ACTION edge "+at.ruleIndex+":"+index)}return ATNConfig.createWithConfig(t.target,config)}case Transition.EPSILON:return ATNConfig.createWithConfig(t.target,config);case Transition.ATOM:case Transition.RANGE:case Transition.SET:return treatEofAsEpsilon&&t.matches(Token.EOF,0,1)?ATNConfig.createWithConfig(t.target,config):null;default:return null}}precedenceTransition(config,pt,collectPredicates,inContext,fullCtx){_ParserATNSimulator.debug&&(console.log("PRED (collectPredicates="+collectPredicates+") "+pt.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+arrayToString(this.parser.getRuleInvocationStack())));let c=null;if(collectPredicates&&inContext)if(fullCtx&&this.predictionState?.input){let currentPosition=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);let predSucceeds=pt.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(currentPosition),predSucceeds&&(c=ATNConfig.createWithConfig(pt.target,config))}else{let newSemCtx=SemanticContext.andContext(config.semanticContext,pt.getPredicate());c=ATNConfig.createWithSemanticContext(pt.target,config,newSemCtx)}else c=ATNConfig.createWithConfig(pt.target,config);return _ParserATNSimulator.debug&&console.log("config from pred transition="+c),c}predTransition(config,pt,collectPredicates,inContext,fullCtx){_ParserATNSimulator.debug&&(console.log("PRED (collectPredicates="+collectPredicates+") "+pt.ruleIndex+":"+pt.predIndex+", ctx dependent="+pt.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+arrayToString(this.parser.getRuleInvocationStack())));let c=null;if(collectPredicates&&(pt.isCtxDependent&&inContext||!pt.isCtxDependent))if(fullCtx&&this.predictionState?.input){let currentPosition=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);let predSucceeds=pt.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(currentPosition),predSucceeds&&(c=ATNConfig.createWithConfig(pt.target,config))}else{let newSemCtx=SemanticContext.andContext(config.semanticContext,pt.getPredicate());c=ATNConfig.createWithSemanticContext(pt.target,config,newSemCtx)}else c=ATNConfig.createWithConfig(pt.target,config);return _ParserATNSimulator.debug&&console.log("config from pred transition="+c),c}ruleTransition(config,t){_ParserATNSimulator.debug&&console.log("CALL rule "+this.getRuleName(t.target.ruleIndex)+", ctx="+config.context);let returnState=t.followState,newContext=createSingletonPredictionContext(config.context??void 0,returnState.stateNumber);return ATNConfig.createWithConfig(t.target,config,newContext)}getConflictingAlts(configs){let altSets=PredictionMode.getConflictingAltSubsets(configs);return PredictionMode.getAlts(altSets)}getConflictingAltsOrUniqueAlt(configs){let conflictingAlts;return configs.uniqueAlt!==ATN.INVALID_ALT_NUMBER?(conflictingAlts=new BitSet,conflictingAlts.set(configs.uniqueAlt)):conflictingAlts=configs.conflictingAlts,conflictingAlts}noViableAlt(input,outerContext,configs,startIndex){return new NoViableAltException(this.parser,input,input.get(startIndex),input.LT(1),configs,outerContext)}addDFAEdge(dfa,from,t,to){return _ParserATNSimulator.debug&&console.log("EDGE "+from+" -> "+to+" upon "+this.getTokenName(t)),to=this.addDFAState(dfa,to),t<-1||t>this.atn.maxTokenType||(_ParserATNSimulator.debug&&console.log(`DFA=
10
+ `+dfa.toString(this.parser!=null?this.parser.vocabulary:Vocabulary.EMPTY_VOCABULARY)),from.edges[t+1]=to),to}addDFAState(dfa,newState){if(newState===ATNSimulator.ERROR)return newState;let existing=dfa.getState(newState);return existing!==null?existing:(newState.configs.readOnly||(newState.configs.optimizeConfigs(this),newState.configs.setReadonly(!0)),_ParserATNSimulator.traceATNSimulator&&console.log("addDFAState new "+newState),dfa.addState(newState),newState)}reportAttemptingFullContext(dfa,conflictingAlts,configs,startIndex,stopIndex){if(_ParserATNSimulator.debug||_ParserATNSimulator.retryDebug){let interval=new Interval(startIndex,stopIndex+1);console.log("reportAttemptingFullContext decision="+dfa.decision+":"+configs+", input="+this.parser.tokenStream.getTextFromInterval(interval))}this.parser.errorListenerDispatch.reportAttemptingFullContext(this.parser,dfa,startIndex,stopIndex,conflictingAlts,configs)}reportContextSensitivity(dfa,prediction,configs,startIndex,stopIndex){if(_ParserATNSimulator.debug||_ParserATNSimulator.retryDebug){let interval=new Interval(startIndex,stopIndex+1);console.log("reportContextSensitivity decision="+dfa.decision+":"+configs+", input="+this.parser.tokenStream.getTextFromInterval(interval))}this.parser.errorListenerDispatch.reportContextSensitivity(this.parser,dfa,startIndex,stopIndex,prediction,configs)}reportAmbiguity(dfa,D,startIndex,stopIndex,exact,ambigAlts,configs){if(_ParserATNSimulator.debug||_ParserATNSimulator.retryDebug){let interval=new Interval(startIndex,stopIndex+1);console.log("reportAmbiguity "+ambigAlts+":"+configs+", input="+this.parser.tokenStream.getTextFromInterval(interval))}this.parser.errorListenerDispatch.reportAmbiguity(this.parser,dfa,startIndex,stopIndex,exact,ambigAlts,configs)}},PredictionContextCache=class{static{__name(this,"PredictionContextCache")}cache=new HashMap(ObjectEqualityComparator.instance);add(ctx){if(ctx===EmptyPredictionContext.instance)return ctx;let existing=this.cache.get(ctx);return existing||(this.cache.set(ctx,ctx),ctx)}get(ctx){return this.cache.get(ctx)}get length(){return this.cache.size}},ProfilingATNSimulator=class extends ParserATNSimulator{static{__name(this,"ProfilingATNSimulator")}decisions;numDecisions=0;currentDecision=0;currentState;conflictingAltResolvedBySLL;sllStopIndex=0;llStopIndex=0;constructor(parser){let sharedContextCache=parser.interpreter.sharedContextCache;if(super(parser,parser.interpreter.atn,parser.interpreter.decisionToDFA,sharedContextCache),sharedContextCache){this.numDecisions=this.atn.decisionToState.length,this.decisions=new Array(this.numDecisions);for(let i=0;i<this.numDecisions;i++)this.decisions[i]=new DecisionInfo(i)}}adaptivePredict(input,decision,outerContext){try{this.sllStopIndex=-1,this.llStopIndex=-1,this.currentDecision=decision;let start=performance.now(),alt=super.adaptivePredict(input,decision,outerContext),stop=performance.now();this.decisions[decision].timeInPrediction+=stop-start,this.decisions[decision].invocations++;let sllLook=this.sllStopIndex-this.predictionState.startIndex+1;if(this.decisions[decision].sllTotalLook+=sllLook,this.decisions[decision].sllMinLook=this.decisions[decision].sllMinLook===0?sllLook:Math.min(this.decisions[decision].sllMinLook,sllLook),sllLook>this.decisions[decision].sllMaxLook&&(this.decisions[decision].sllMaxLook=sllLook,this.decisions[decision].sllMaxLookEvent={decision,configs:null,predictedAlt:alt,input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1}),this.llStopIndex>=0){let llLook=this.llStopIndex-this.predictionState.startIndex+1;this.decisions[decision].llTotalLook+=llLook,this.decisions[decision].llMinLook=this.decisions[decision].llMinLook===0?llLook:Math.min(this.decisions[decision].llMinLook,llLook),llLook>this.decisions[decision].llMaxLook&&(this.decisions[decision].llMaxLook=llLook,this.decisions[decision].llMaxLookEvent={decision,configs:null,predictedAlt:alt,input,startIndex:this.predictionState.startIndex,stopIndex:this.llStopIndex,fullCtx:!0})}return alt}finally{this.currentDecision=-1}}getExistingTargetState(previousD,t){this.sllStopIndex=this.predictionState.input.index;let existingTargetState=super.getExistingTargetState(previousD,t);return existingTargetState!==void 0&&(this.decisions[this.currentDecision].sllDFATransitions++,existingTargetState===ATNSimulator.ERROR&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:previousD.configs,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1})),this.currentState=existingTargetState,existingTargetState}computeTargetState(dfa,previousD,t){let state=super.computeTargetState(dfa,previousD,t);return this.currentState=state,state}computeReachSet(closure,t,fullCtx){fullCtx&&this.predictionState?.input&&(this.llStopIndex=this.predictionState.input.index);let reachConfigs=super.computeReachSet(closure,t,fullCtx);return this.predictionState?.input&&(fullCtx?(this.decisions[this.currentDecision].llATNTransitions++,reachConfigs===null&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:closure,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!0})):(this.decisions[this.currentDecision].sllATNTransitions++,reachConfigs===null&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:closure,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1}))),reachConfigs}reportAttemptingFullContext(dfa,conflictingAlts,configs,startIndex,stopIndex){conflictingAlts!==null?this.conflictingAltResolvedBySLL=conflictingAlts.nextSetBit(0):this.conflictingAltResolvedBySLL=configs.getAlts().nextSetBit(0),this.decisions[this.currentDecision].llFallback++,conflictingAlts&&super.reportAttemptingFullContext(dfa,conflictingAlts,configs,startIndex,stopIndex)}reportContextSensitivity(dfa,prediction,configs,startIndex,stopIndex){prediction!==this.conflictingAltResolvedBySLL&&this.predictionState.input&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs,input:this.predictionState.input,startIndex,stopIndex,fullCtx:!0}),super.reportContextSensitivity(dfa,prediction,configs,startIndex,stopIndex)}reportAmbiguity(dfa,state,startIndex,stopIndex,exact,ambigAlts,configs){let prediction;ambigAlts?prediction=ambigAlts.nextSetBit(0):prediction=configs.getAlts().nextSetBit(0),this.predictionState?.input&&(configs.fullCtx&&prediction!==this.conflictingAltResolvedBySLL&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs,input:this.predictionState.input,startIndex,stopIndex,fullCtx:!0}),this.decisions[this.currentDecision].ambiguities.push({ambigAlts,decision:this.currentDecision,configs,input:this.predictionState.input,startIndex,stopIndex,fullCtx:configs.fullCtx})),super.reportAmbiguity(dfa,state,startIndex,stopIndex,exact,ambigAlts,configs)}getDecisionInfo(){return this.decisions}getCurrentState(){return this.currentState}},PredPrediction;(PredPrediction2=>{PredPrediction2.toString=__name(prediction=>`(${prediction.pred}, ${prediction.alt})`,"toString")})(PredPrediction||(PredPrediction={}));var ParseCancellationException=class extends Error{static{__name(this,"ParseCancellationException")}constructor(e){super(),this.cause=e}},InterpreterDataReader=class{static{__name(this,"InterpreterDataReader")}static parseInterpreterData(source){let ruleNames=[],channels=[],modes=[],literalNames=[],symbolicNames=[],lines=source.split(`
11
+ `),index=0,line=lines[index++];if(line!=="token literal names:")throw new Error("Unexpected data entry");do{if(line=lines[index++],line.length===0)break;literalNames.push(line==="null"?null:line)}while(!0);if(line=lines[index++],line!=="token symbolic names:")throw new Error("Unexpected data entry");do{if(line=lines[index++],line.length===0)break;symbolicNames.push(line==="null"?null:line)}while(!0);if(line=lines[index++],line!=="rule names:")throw new Error("Unexpected data entry");do{if(line=lines[index++],line.length===0)break;ruleNames.push(line)}while(!0);if(line=lines[index++],line==="channel names:"){do{if(line=lines[index++],line.length===0)break;channels.push(line)}while(!0);if(line=lines[index++],line!=="mode names:")throw new Error("Unexpected data entry");do{if(line=lines[index++],line.length===0)break;modes.push(line)}while(!0)}if(line=lines[index++],line!=="atn:")throw new Error("Unexpected data entry");line=lines[index++];let elements=line.split(","),value,serializedATN=[];for(let i=0;i<elements.length;++i){let element=elements[i];element.startsWith("[")?value=Number(element.substring(1).trim()):element.endsWith("]")?value=Number(element.substring(0,element.length-1).trim()):value=Number(element.trim()),serializedATN[i]=value}return{atn:new ATNDeserializer().deserialize(serializedATN),vocabulary:new Vocabulary(literalNames,symbolicNames,[]),ruleNames,channels:channels.length>0?channels:void 0,modes:modes.length>0?modes:void 0}}},AbstractParseTreeVisitor=class{static{__name(this,"AbstractParseTreeVisitor")}visit(tree){return tree.accept(this)}visitChildren(node){let result=this.defaultResult(),n2=node.getChildCount();for(let i=0;i<n2&&this.shouldVisitNextChild(node,result);i++){let c=node.getChild(i);if(c){let childResult=c.accept(this);result=this.aggregateResult(result,childResult)}}return result}visitTerminal(_node){return this.defaultResult()}visitErrorNode(_node){return this.defaultResult()}defaultResult(){return null}shouldVisitNextChild(_node,_currentResult){return!0}aggregateResult(aggregate,nextResult){return nextResult}},ParseTreeWalker=class _ParseTreeWalker{static{__name(this,"ParseTreeWalker")}static DEFAULT=new _ParseTreeWalker;walk(listener,t){if(t instanceof ErrorNode)listener.visitErrorNode(t);else if(t instanceof TerminalNode)listener.visitTerminal(t);else{let r=t;this.enterRule(listener,r);for(let i=0;i<t.getChildCount();i++)this.walk(listener,t.getChild(i));this.exitRule(listener,r)}}enterRule(listener,r){let ctx=r.ruleContext;listener.enterEveryRule(ctx),ctx.enterRule(listener)}exitRule(listener,r){let ctx=r.ruleContext;ctx.exitRule(listener),listener.exitEveryRule(ctx)}},CharStream;(CharStream2=>{CharStream2.fromString=__name(str=>new CharStreamImpl(str),"fromString")})(CharStream||(CharStream={}));var CharStreamImpl=class{static{__name(this,"CharStreamImpl")}name="";index=0;data;constructor(input){let codePoints=[];for(let char of input)codePoints.push(char.codePointAt(0));this.data=new Uint32Array(codePoints)}reset(){this.index=0}consume(){if(this.index>=this.data.length)throw new Error("cannot consume EOF");this.index+=1}LA(offset){if(offset===0)return 0;offset<0&&(offset+=1);let pos=this.index+offset-1;return pos<0||pos>=this.data.length?Token.EOF:this.data[pos]}mark(){return-1}release(_marker){}seek(index){if(index<=this.index){this.index=index;return}this.index=Math.min(index,this.data.length)}getTextFromRange(start,stop){return stop=stop??this.data.length-1,stop>=this.data.length&&(stop=this.data.length-1),start>=this.data.length?"":this.stringFromRange(start,stop+1)}getTextFromInterval(interval){let start=interval.start,stop=interval.stop;return stop>=this.data.length&&(stop=this.data.length-1),start>=this.data.length?"":this.stringFromRange(start,stop+1)}toString(){return this.stringFromRange(0)}get size(){return this.data.length}getSourceName(){return this.name?this.name:IntStream.UNKNOWN_SOURCE_NAME}stringFromRange(start,stop){let data=this.data.slice(start,stop),result="";return data.forEach(value=>{result+=String.fromCodePoint(value)}),result}},isWritableToken=__name(candidate=>candidate.setText!==void 0,"isWritableToken"),BufferedTokenStream=class{static{__name(this,"BufferedTokenStream")}tokenSource;tokens=[];p=-1;fetchedEOF=!1;constructor(tokenSource){this.tokenSource=tokenSource}mark(){return 0}release(_marker){}reset(){this.seek(0)}seek(index){this.lazyInit(),this.p=this.adjustSeekIndex(index)}get size(){return this.tokens.length}get index(){return this.p}get(index){return this.lazyInit(),this.tokens[index]}consume(){let skipEofCheck=!1;if(this.p>=0?this.fetchedEOF?skipEofCheck=this.p<this.tokens.length-1:skipEofCheck=this.p<this.tokens.length:skipEofCheck=!1,!skipEofCheck&&this.LA(1)===Token.EOF)throw new Error("cannot consume EOF");this.sync(this.p+1)&&(this.p=this.adjustSeekIndex(this.p+1))}sync(i){let n2=i-this.tokens.length+1;return n2>0?this.fetch(n2)>=n2:!0}fetch(n2){if(this.fetchedEOF)return 0;for(let i=0;i<n2;i++){let t=this.tokenSource.nextToken();if(isWritableToken(t)&&(t.tokenIndex=this.tokens.length),this.tokens.push(t),t.type===Token.EOF)return this.fetchedEOF=!0,i+1}return n2}getTokens(start,stop,types){if(this.lazyInit(),start===void 0&&stop===void 0)return this.tokens;if(start??=0,stop===void 0&&(stop=this.tokens.length-1),start<0||stop>=this.tokens.length||stop<0||start>=this.tokens.length)throw new RangeError("start "+start+" or stop "+stop+" not in 0.."+(this.tokens.length-1));if(start>stop)return[];if(types===void 0)return this.tokens.slice(start,stop+1);let subset=[];stop>=this.tokens.length&&(stop=this.tokens.length-1);for(let i=start;i<stop;i++){let t=this.tokens[i];if(t.type===Token.EOF){subset.push(t);break}types.has(t.type)&&subset.push(t)}return subset}LA(k){return this.LT(k)?.type??Token.INVALID_TYPE}LB(k){return this.p-k<0?null:this.tokens[this.p-k]}LT(k){if(this.lazyInit(),k===0)return null;if(k<0)return this.LB(-k);let i=this.p+k-1;return this.sync(i),i>=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[i]}adjustSeekIndex(i){return i}lazyInit(){this.p===-1&&this.setup()}setup(){this.sync(0),this.p=this.adjustSeekIndex(0)}setTokenSource(tokenSource){this.tokenSource=tokenSource,this.tokens=[],this.p=-1,this.fetchedEOF=!1}nextTokenOnChannel(i,channel){if(this.sync(i),i>=this.tokens.length)return-1;let token=this.tokens[i];for(;token.channel!==channel;){if(token.type===Token.EOF)return-1;i+=1,this.sync(i),token=this.tokens[i]}return i}previousTokenOnChannel(i,channel){if(i>=this.tokens.length)return this.tokens.length-1;for(;i>=0;){let token=this.tokens[i];if(token.type===Token.EOF||token.channel===channel)return i;--i}return i}getHiddenTokensToRight(tokenIndex,channel){if(channel===void 0&&(channel=-1),this.lazyInit(),tokenIndex<0||tokenIndex>=this.tokens.length)throw new Error(`${tokenIndex} not in 0..${this.tokens.length-1}`);let nextOnChannel=this.nextTokenOnChannel(tokenIndex+1,Lexer.DEFAULT_TOKEN_CHANNEL),from=tokenIndex+1,to=nextOnChannel===-1?this.tokens.length-1:nextOnChannel;return this.filterForChannel(from,to,channel)}getHiddenTokensToLeft(tokenIndex,channel){if(channel===void 0&&(channel=-1),this.lazyInit(),tokenIndex<0||tokenIndex>=this.tokens.length)throw new Error(`${tokenIndex} not in 0..${this.tokens.length-1}`);let prevOnChannel=this.previousTokenOnChannel(tokenIndex-1,Lexer.DEFAULT_TOKEN_CHANNEL);if(prevOnChannel===tokenIndex-1)return;let from=prevOnChannel+1,to=tokenIndex-1;return this.filterForChannel(from,to,channel)}filterForChannel(left,right,channel){let hidden=[];for(let i=left;i<right+1;i++){let t=this.tokens[i];channel===-1?t.channel!==Lexer.DEFAULT_TOKEN_CHANNEL&&hidden.push(t):t.channel===channel&&hidden.push(t)}if(hidden.length!==0)return hidden}getSourceName(){return this.tokenSource.sourceName}getText(){return this.getTextFromInterval(Interval.of(0,this.size-1))}getTextFromInterval(interval){let start=interval.start,stop=interval.stop;if(start<0||stop<0)return"";this.sync(stop),stop>=this.tokens.length&&(stop=this.tokens.length-1);let result="";for(let i=start;i<=stop;++i){let t=this.tokens[i];if(t.type===Token.EOF)break;result+=t.text}return result}getTextFromContext(ctx){return this.getTextFromInterval(ctx.getSourceInterval())}getTextFromRange(start,stop){return start!==null&&stop!==null?this.getTextFromInterval(Interval.of(start.tokenIndex,stop.tokenIndex)):""}fill(){for(this.lazyInit();this.fetch(1e3)===1e3;);}setLine(line){this.tokenSource.line=line}setColumn(column){this.tokenSource.column=column}},CommonTokenStream=class extends BufferedTokenStream{static{__name(this,"CommonTokenStream")}channel=Token.DEFAULT_CHANNEL;constructor(lexer,channel){super(lexer),this.channel=channel??Token.DEFAULT_CHANNEL}adjustSeekIndex(i){return this.nextTokenOnChannel(i,this.channel)}LB(k){if(k===0||this.index-k<0)return null;let i=this.index,n2=1;for(;n2<=k;)i=this.previousTokenOnChannel(i-1,this.channel),n2+=1;return i<0?null:this.tokens[i]}LT(k){if(this.lazyInit(),k===0)return null;if(k<0)return this.LB(-k);let i=this.index,n2=1;for(;n2<k;)this.sync(i+1)&&(i=this.nextTokenOnChannel(i+1,this.channel)),n2+=1;return this.tokens[i]}getNumberOfOnChannelTokens(){let n2=0;this.fill();for(let t of this.tokens)if(t.channel===this.channel&&(n2+=1),t.type===Token.EOF)break;return n2}},XPathLexer=class _XPathLexer extends Lexer{static{__name(this,"XPathLexer")}static TOKEN_REF=1;static RULE_REF=2;static ANYWHERE=3;static ROOT=4;static WILDCARD=5;static BANG=6;static ID=7;static STRING=8;static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static literalNames=[null,null,null,"'//'","'/'","'*'","'!'"];static symbolicNames=[null,"TOKEN_REF","RULE_REF","ANYWHERE","ROOT","WILDCARD","BANG","ID","STRING"];static modeNames=["DEFAULT_MODE"];static ruleNames=["ANYWHERE","ROOT","WILDCARD","BANG","ID","NameChar","NameStartChar","STRING"];constructor(input){super(input),this.interpreter=new LexerATNSimulator(this,_XPathLexer._ATN,_XPathLexer.decisionsToDFA,new PredictionContextCache)}get grammarFileName(){return"XPathLexer.g4"}get literalNames(){return _XPathLexer.literalNames}get symbolicNames(){return _XPathLexer.symbolicNames}get ruleNames(){return _XPathLexer.ruleNames}get serializedATN(){return _XPathLexer._serializedATN}get channelNames(){return _XPathLexer.channelNames}get modeNames(){return _XPathLexer.modeNames}action(localContext,ruleIndex,actionIndex){ruleIndex===4&&this.ID_action(localContext,actionIndex)}ID_action(localContext,actionIndex){if(actionIndex===0){let text=this.text;text.charAt(0)===text.charAt(0).toUpperCase()?this.type=_XPathLexer.TOKEN_REF:this.type=_XPathLexer.RULE_REF}}static _serializedATN=[4,0,8,48,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,1,0,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,5,4,29,8,4,10,4,12,4,32,9,4,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,5,7,42,8,7,10,7,12,7,45,9,7,1,7,1,7,1,43,0,8,1,3,3,4,5,5,7,6,9,7,11,0,13,0,15,8,1,0,2,784,0,0,8,14,27,48,57,65,90,95,95,97,122,127,159,170,170,173,173,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1536,1541,1552,1562,1564,1564,1568,1641,1646,1747,1749,1757,1759,1768,1770,1788,1791,1791,1807,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2192,2193,2200,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8203,8207,8234,8238,8255,8256,8276,8276,8288,8292,8294,8303,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65279,65279,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65529,65531,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69821,69821,69826,69826,69837,69837,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,113824,113827,118528,118573,118576,118598,119141,119145,119149,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,917505,917505,917536,917631,917760,917999,662,0,65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6276,6279,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,47,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,15,1,0,0,0,1,17,1,0,0,0,3,20,1,0,0,0,5,22,1,0,0,0,7,24,1,0,0,0,9,26,1,0,0,0,11,35,1,0,0,0,13,37,1,0,0,0,15,39,1,0,0,0,17,18,5,47,0,0,18,19,5,47,0,0,19,2,1,0,0,0,20,21,5,47,0,0,21,4,1,0,0,0,22,23,5,42,0,0,23,6,1,0,0,0,24,25,5,33,0,0,25,8,1,0,0,0,26,30,3,13,6,0,27,29,3,11,5,0,28,27,1,0,0,0,29,32,1,0,0,0,30,28,1,0,0,0,30,31,1,0,0,0,31,33,1,0,0,0,32,30,1,0,0,0,33,34,6,4,0,0,34,10,1,0,0,0,35,36,7,0,0,0,36,12,1,0,0,0,37,38,7,1,0,0,38,14,1,0,0,0,39,43,5,39,0,0,40,42,9,0,0,0,41,40,1,0,0,0,42,45,1,0,0,0,43,44,1,0,0,0,43,41,1,0,0,0,44,46,1,0,0,0,45,43,1,0,0,0,46,47,5,39,0,0,47,16,1,0,0,0,3,0,30,43,1,1,4,0];static __ATN;static get _ATN(){return _XPathLexer.__ATN||(_XPathLexer.__ATN=new ATNDeserializer().deserialize(_XPathLexer._serializedATN)),_XPathLexer.__ATN}static vocabulary=new Vocabulary(_XPathLexer.literalNames,_XPathLexer.symbolicNames,[]);get vocabulary(){return _XPathLexer.vocabulary}static decisionsToDFA=_XPathLexer._ATN.decisionToState.map((ds,index)=>new DFA(ds,index))},XPathLexerErrorListener=class extends BaseErrorListener{static{__name(this,"XPathLexerErrorListener")}syntaxError(_recognizer,_offendingSymbol,_line,_charPositionInLine,_msg,_e){}},XPathElement=class{static{__name(this,"XPathElement")}invert;nodeName;constructor(nodeName){this.nodeName=nodeName,this.invert=!1}toString(){return"XPathElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPathRuleAnywhereElement=class extends XPathElement{static{__name(this,"XPathRuleAnywhereElement")}ruleIndex;constructor(ruleName,ruleIndex){super(ruleName),this.ruleIndex=ruleIndex}evaluate(t){return Trees.findAllRuleNodes(t,this.ruleIndex)}toString(){return"XPathRuleAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPathRuleElement=class extends XPathElement{static{__name(this,"XPathRuleElement")}ruleIndex;constructor(ruleName,ruleIndex){super(ruleName),this.ruleIndex=ruleIndex}evaluate(t){let nodes=[];for(let c of Trees.getChildren(t))c instanceof ParserRuleContext&&(c.ruleIndex===this.ruleIndex&&!this.invert||c.ruleIndex!==this.ruleIndex&&this.invert)&&nodes.push(c);return nodes}toString(){return"XPathRuleElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPathTokenAnywhereElement=class extends XPathElement{static{__name(this,"XPathTokenAnywhereElement")}tokenType;constructor(tokenName,tokenType){super(tokenName),this.tokenType=tokenType}evaluate(t){return Trees.findAllTokenNodes(t,this.tokenType)}toString(){return"XPathTokenAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPathTokenElement=class extends XPathElement{static{__name(this,"XPathTokenElement")}tokenType;constructor(tokenName,tokenType){super(tokenName),this.tokenType=tokenType}evaluate(t){let nodes=[];for(let c of Trees.getChildren(t))c instanceof TerminalNode&&c.symbol&&(c.symbol.type===this.tokenType&&!this.invert||c.symbol.type!==this.tokenType&&this.invert)&&nodes.push(c);return nodes}toString(){return"XPathTokenElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPathWildcardAnywhereElement=class extends XPathElement{static{__name(this,"XPathWildcardAnywhereElement")}constructor(){super(XPath.WILDCARD)}evaluate(t){return this.invert?[]:Trees.descendants(t)}toString(){return"XPathWildcardAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPathWildcardElement=class extends XPathElement{static{__name(this,"XPathWildcardElement")}constructor(){super(XPath.WILDCARD)}evaluate(t){let kids=[];if(this.invert)return kids;for(let c of Trees.getChildren(t))kids.push(c);return kids}toString(){return"XPathWildcardElement["+(this.invert?"!":"")+this.nodeName+"]"}},XPath=class _XPath{static{__name(this,"XPath")}static WILDCARD="*";static NOT="!";path;elements;parser;constructor(parser,path){this.parser=parser,this.path=path,this.elements=this.split(path)}static findAll(tree,xpath,parser){return new _XPath(parser,xpath).evaluate(tree)}split(path){let lexer=new XPathLexer(CharStream.fromString(path));lexer.recover=e=>{throw e},lexer.removeErrorListeners(),lexer.addErrorListener(new XPathLexerErrorListener);let tokenStream=new CommonTokenStream(lexer);try{tokenStream.fill()}catch(e){if(e instanceof LexerNoViableAltException){let msg="Invalid tokens or characters at index "+lexer.column+" in path '"+path+"' -- "+e.message;throw new RangeError(msg)}throw e}let tokens=tokenStream.getTokens(),elements=[],n2=tokens.length,i=0;loop:for(;i<n2;){let el=tokens[i],next;switch(el.type){case XPathLexer.ROOT:case XPathLexer.ANYWHERE:let anywhere=el.type===XPathLexer.ANYWHERE;i++,next=tokens[i];let invert=next.type===XPathLexer.BANG;invert&&(i++,next=tokens[i]);let pathElement=this.getXPathElement(next,anywhere);pathElement.invert=invert,elements.push(pathElement),i++;break;case XPathLexer.TOKEN_REF:case XPathLexer.RULE_REF:case XPathLexer.WILDCARD:elements.push(this.getXPathElement(el,!1)),++i;break;case Token.EOF:break loop;default:throw new Error("Unknown path element "+el)}}return elements}evaluate(t){let dummyRoot=new ParserRuleContext(null);dummyRoot.addChild(t);let work=new Set([dummyRoot]),i=0;for(;i<this.elements.length;){let next=new Set;for(let node of work)node.getChildCount()>0&&this.elements[i].evaluate(node).forEach(tree=>{next.add(tree)},next);i++,work=next}return work}getXPathElement(wordToken,anywhere){if(wordToken.type===Token.EOF)throw new Error("Missing path element at end of path");let word=wordToken.text;if(word==null)throw new Error("Expected wordToken to have text content.");let ttype=this.parser.getTokenType(word),ruleIndex=this.parser.getRuleIndex(word);switch(wordToken.type){case XPathLexer.WILDCARD:return anywhere?new XPathWildcardAnywhereElement:new XPathWildcardElement;case XPathLexer.TOKEN_REF:case XPathLexer.STRING:if(ttype===Token.INVALID_TYPE)throw new Error(word+" at index "+wordToken.start+" isn't a valid token name");return anywhere?new XPathTokenAnywhereElement(word,ttype):new XPathTokenElement(word,ttype);default:if(ruleIndex===-1)throw new Error(word+" at index "+wordToken.start+" isn't a valid rule name");return anywhere?new XPathRuleAnywhereElement(word,ruleIndex):new XPathRuleElement(word,ruleIndex)}}},Chunk=class{static{__name(this,"Chunk")}},ParseTreeMatch=class{static{__name(this,"ParseTreeMatch")}tree;pattern;labels;mismatchedNode;constructor(tree,pattern,labels,mismatchedNode){this.tree=tree,this.pattern=pattern,this.labels=labels,this.mismatchedNode=mismatchedNode}get(label){let parseTrees=this.labels.get(label);return!parseTrees||parseTrees.length===0?null:parseTrees[parseTrees.length-1]}getAll(label){return this.labels.get(label)??[]}getLabels(){return this.labels}getMismatchedNode(){return this.mismatchedNode}succeeded(){return!this.mismatchedNode}getPattern(){return this.pattern}getTree(){return this.tree}toString(){return`Match ${this.succeeded()?"succeeded":"failed"}; found ${this.getLabels().size} labels`}},ParseTreePattern=class{static{__name(this,"ParseTreePattern")}patternRuleIndex;pattern;patternTree;matcher;constructor(matcher,pattern,patternRuleIndex,patternTree){this.matcher=matcher,this.patternRuleIndex=patternRuleIndex,this.pattern=pattern,this.patternTree=patternTree}match(tree){return this.matcher.match(tree,this)}matches(tree){return this.matcher.match(tree,this).succeeded()}findAll(tree,xpath){let subtrees=XPath.findAll(tree,xpath,this.matcher.getParser()),matches=new Array;for(let t of subtrees){let match=this.match(t);match.succeeded()&&matches.push(match)}return matches}getMatcher(){return this.matcher}getPattern(){return this.pattern}getPatternRuleIndex(){return this.patternRuleIndex}getPatternTree(){return this.patternTree}},InputMismatchException=class extends RecognitionException{static{__name(this,"InputMismatchException")}constructor(recognizer){super({message:"",recognizer,input:recognizer.inputStream,ctx:recognizer.context}),this.offendingToken=recognizer.getCurrentToken()}},FailedPredicateException=class extends RecognitionException{static{__name(this,"FailedPredicateException")}ruleIndex=0;predicateIndex=0;predicate;constructor(recognizer,predicate,message=null){super({message:formatMessage(predicate??"no predicate",message??null),recognizer,input:recognizer.inputStream,ctx:recognizer.context});let trans=recognizer.atn.states[recognizer.state].transitions[0];trans instanceof PredicateTransition?(this.ruleIndex=trans.ruleIndex,this.predicateIndex=trans.predIndex):(this.ruleIndex=0,this.predicateIndex=0),this.predicate=predicate,this.offendingToken=recognizer.getCurrentToken()}},formatMessage=__name((predicate,message)=>message!==null?message:"failed predicate: {"+predicate+"}?","formatMessage"),DefaultErrorStrategy=class{static{__name(this,"DefaultErrorStrategy")}errorRecoveryMode=!1;lastErrorIndex=-1;lastErrorStates=new IntervalSet;nextTokensContext=null;nextTokenState=0;reset(recognizer){this.endErrorCondition(recognizer)}beginErrorCondition(_recognizer){this.errorRecoveryMode=!0}inErrorRecoveryMode(_recognizer){return this.errorRecoveryMode}endErrorCondition(_recognizer){this.errorRecoveryMode=!1,this.lastErrorStates=new IntervalSet,this.lastErrorIndex=-1}reportMatch(recognizer){this.endErrorCondition(recognizer)}reportError(recognizer,e){this.inErrorRecoveryMode(recognizer)||(this.beginErrorCondition(recognizer),e instanceof NoViableAltException?this.reportNoViableAlternative(recognizer,e):e instanceof InputMismatchException?this.reportInputMismatch(recognizer,e):e instanceof FailedPredicateException?this.reportFailedPredicate(recognizer,e):recognizer.notifyErrorListeners(e.message,e.offendingToken,e))}recover(recognizer,_e){this.lastErrorIndex===recognizer.inputStream?.index&&this.lastErrorStates.contains(recognizer.state)&&recognizer.consume(),this.lastErrorIndex=recognizer.inputStream?.index??0,this.lastErrorStates.addOne(recognizer.state);let followSet=this.getErrorRecoverySet(recognizer);this.consumeUntil(recognizer,followSet)}sync(recognizer){if(this.inErrorRecoveryMode(recognizer))return;let s=recognizer.atn.states[recognizer.state],la=recognizer.tokenStream.LA(1),nextTokens=recognizer.atn.nextTokens(s);if(nextTokens.contains(la)){this.nextTokensContext=null,this.nextTokenState=ATNState.INVALID_STATE_NUMBER;return}if(nextTokens.contains(Token.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=recognizer.context,this.nextTokenState=recognizer.state);return}switch(s.constructor.stateType){case ATNState.BLOCK_START:case ATNState.STAR_BLOCK_START:case ATNState.PLUS_BLOCK_START:case ATNState.STAR_LOOP_ENTRY:{if(this.singleTokenDeletion(recognizer)!==null)return;throw new InputMismatchException(recognizer)}case ATNState.PLUS_LOOP_BACK:case ATNState.STAR_LOOP_BACK:{this.reportUnwantedToken(recognizer);let expecting=new IntervalSet;expecting.addSet(recognizer.getExpectedTokens());let whatFollowsLoopIterationOrRule=expecting.addSet(this.getErrorRecoverySet(recognizer));this.consumeUntil(recognizer,whatFollowsLoopIterationOrRule);break}default:}}reportNoViableAlternative(recognizer,e){if(e.message.length>0){recognizer.notifyErrorListeners(e.message,e.offendingToken,e);return}let tokens=recognizer.tokenStream,input;tokens!==null&&e.startToken?e.startToken.type===Token.EOF?input="<EOF>":input=tokens.getTextFromRange(e.startToken,e.offendingToken):input="<unknown input>";let msg="no viable alternative at input "+this.escapeWSAndQuote(input);recognizer.notifyErrorListeners(msg,e.offendingToken,e)}reportInputMismatch(recognizer,e){if(e.message.length>0){recognizer.notifyErrorListeners(e.message,e.offendingToken,e);return}let msg="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toStringWithVocabulary(recognizer.vocabulary);recognizer.notifyErrorListeners(msg,e.offendingToken,e)}reportFailedPredicate(recognizer,e){let msg="rule "+recognizer.ruleNames[recognizer.context.ruleIndex]+" "+e.message;recognizer.notifyErrorListeners(msg,e.offendingToken,e)}reportUnwantedToken(recognizer){if(this.inErrorRecoveryMode(recognizer))return;this.beginErrorCondition(recognizer);let t=recognizer.getCurrentToken(),tokenName=this.getTokenErrorDisplay(t),expecting=this.getExpectedTokens(recognizer),msg="extraneous input "+tokenName+" expecting "+expecting.toStringWithVocabulary(recognizer.vocabulary);recognizer.notifyErrorListeners(msg,t,null)}reportMissingToken(recognizer){if(this.inErrorRecoveryMode(recognizer))return;this.beginErrorCondition(recognizer);let t=recognizer.getCurrentToken(),msg="missing "+this.getExpectedTokens(recognizer).toStringWithVocabulary(recognizer.vocabulary)+" at "+this.getTokenErrorDisplay(t);recognizer.notifyErrorListeners(msg,t,null)}recoverInline(recognizer){let matchedSymbol=this.singleTokenDeletion(recognizer);if(matchedSymbol)return recognizer.consume(),matchedSymbol;if(this.singleTokenInsertion(recognizer))return this.getMissingSymbol(recognizer);throw new InputMismatchException(recognizer)}singleTokenInsertion(recognizer){let currentSymbolType=recognizer.tokenStream?.LA(1)??-1,atn=recognizer.atn,next=atn.states[recognizer.state].transitions[0].target;return atn.nextTokens(next,recognizer.context??void 0).contains(currentSymbolType)?(this.reportMissingToken(recognizer),!0):!1}singleTokenDeletion(recognizer){let nextTokenType=recognizer.tokenStream?.LA(2)??-1;if(this.getExpectedTokens(recognizer).contains(nextTokenType)){this.reportUnwantedToken(recognizer),recognizer.consume();let matchedSymbol=recognizer.getCurrentToken();return this.reportMatch(recognizer),matchedSymbol}return null}getMissingSymbol(recognizer){let currentSymbol=recognizer.getCurrentToken(),expecting=this.getExpectedTokens(recognizer),expectedTokenType=Token.INVALID_TYPE;expecting.length!==0&&(expectedTokenType=expecting.minElement);let tokenText;expectedTokenType===Token.EOF?tokenText="<missing EOF>":tokenText="<missing "+recognizer.vocabulary.getDisplayName(expectedTokenType)+">";let current=currentSymbol,lookBack=recognizer.tokenStream?.LT(-1);return current.type===Token.EOF&&lookBack!==null&&(current=lookBack),recognizer.getTokenFactory().create(current.source,expectedTokenType,tokenText,Token.DEFAULT_CHANNEL,-1,-1,current.line,current.column)}getExpectedTokens(recognizer){return recognizer.getExpectedTokens()}getTokenErrorDisplay(t){if(t===null)return"<no token>";let s=t.text;return s||(t.type===Token.EOF?s="<EOF>":s="<"+t.type+">"),this.escapeWSAndQuote(s)}escapeWSAndQuote(s){return s=s.replace(/\n/g,"\\n"),s=s.replace(/\r/g,"\\r"),s=s.replace(/\t/g,"\\t"),"'"+s+"'"}getErrorRecoverySet(recognizer){let atn=recognizer.atn,ctx=recognizer.context,recoverSet=new IntervalSet;for(;ctx!==null&&ctx.invokingState>=0;){let rt=atn.states[ctx.invokingState].transitions[0],follow=atn.nextTokens(rt.followState);recoverSet.addSet(follow),ctx=ctx.parent}return recoverSet.removeOne(Token.EPSILON),recoverSet}consumeUntil(recognizer,set){let ttype=recognizer.tokenStream?.LA(1)??-1;for(;ttype!==Token.EOF&&!set.contains(ttype);)recognizer.consume(),ttype=recognizer.tokenStream?.LA(1)??-1}},BailErrorStrategy=class extends DefaultErrorStrategy{static{__name(this,"BailErrorStrategy")}recover(recognizer,e){throw new ParseCancellationException(e)}recoverInline(recognizer){let exception=new InputMismatchException(recognizer);throw new ParseCancellationException(exception)}sync(_recognizer){}},ListTokenSource=class{static{__name(this,"ListTokenSource")}sourceName;tokenFactory=CommonTokenFactory.DEFAULT;tokens=[];i=0;eofToken=null;constructor(tokens,sourceName){this.tokens=tokens,this.sourceName=sourceName??""}get column(){if(this.i<this.tokens.length)return this.tokens[this.i].column;if(this.eofToken!==null)return this.eofToken.column;if(this.tokens.length>0){let lastToken=this.tokens[this.tokens.length-1],tokenText=lastToken.text;if(tokenText){let lastNewLine=tokenText.lastIndexOf(`
12
+ `);if(lastNewLine>=0)return tokenText.length-lastNewLine-1}return lastToken.column+lastToken.stop-lastToken.start+1}return 0}nextToken(){if(this.i>=this.tokens.length){if(this.eofToken===null){let start=-1;if(this.tokens.length>0){let previousStop=this.tokens[this.tokens.length-1].stop;previousStop!==-1&&(start=previousStop+1)}let stop=Math.max(-1,start-1);this.eofToken=this.tokenFactory.create([this,this.inputStream],Token.EOF,"EOF",Token.DEFAULT_CHANNEL,start,stop,this.line,this.column)}return this.eofToken}let t=this.tokens[this.i];return this.i===this.tokens.length-1&&t.type===Token.EOF&&(this.eofToken=t),this.i++,t}get line(){if(this.i<this.tokens.length)return this.tokens[this.i].line;if(this.eofToken!==null)return this.eofToken.line;if(this.tokens.length>0){let lastToken=this.tokens[this.tokens.length-1],line=lastToken.line,tokenText=lastToken.text;if(tokenText)for(let char of tokenText)char===`
13
+ `&&line++;return line}return 1}get inputStream(){return this.i<this.tokens.length?this.tokens[this.i].inputStream:this.eofToken!==null?this.eofToken.inputStream:this.tokens.length>0?this.tokens[this.tokens.length-1].inputStream:null}getSourceName(){if(this.sourceName!==null)return this.sourceName;let inputStream=this.inputStream;return inputStream!==null?inputStream.getSourceName():"List"}},InterpreterRuleContext=class extends ParserRuleContext{static{__name(this,"InterpreterRuleContext")}#ruleIndex;constructor(ruleIndex,parent,invokingStateNumber){super(parent,invokingStateNumber),this.#ruleIndex=ruleIndex}get ruleIndex(){return this.#ruleIndex}},TraceListener=class{static{__name(this,"TraceListener")}parser;constructor(parser){this.parser=parser}enterEveryRule(ctx){console.log("enter "+this.parser.ruleNames[ctx.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitTerminal(node){console.log("consume "+node.getSymbol()+" rule "+this.parser.ruleNames[this.parser.context.ruleIndex])}exitEveryRule(ctx){console.log("exit "+this.parser.ruleNames[ctx.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitErrorNode(_node){}},Parser=class extends Recognizer{static{__name(this,"Parser")}printer=null;buildParseTrees=!0;errorHandler=new DefaultErrorStrategy;context=null;precedenceStack=[];parseListeners=null;syntaxErrors=0;matchedEOF=!1;tracer=null;bypassAltsAtnCache=null;#inputStream;constructor(input){super(),this.precedenceStack.push(0),this.syntaxErrors=0,this.#inputStream=input}reset(rewindInputStream=!0){rewindInputStream&&this.inputStream.seek(0),this.errorHandler.reset(this),this.context=null,this.syntaxErrors=0,this.matchedEOF=!1,this.setTrace(!1),this.precedenceStack=[],this.precedenceStack.push(0),this.interpreter&&this.interpreter.reset()}match(ttype){let t=this.getCurrentToken();return t.type===ttype?(ttype===Token.EOF&&(this.matchedEOF=!0),this.errorHandler.reportMatch(this),this.consume()):(t=this.errorHandler.recoverInline(this),this.buildParseTrees&&t.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,t))),t}matchWildcard(){let t=this.getCurrentToken();return t.type>0?(this.errorHandler.reportMatch(this),this.consume()):(t=this.errorHandler.recoverInline(this),this.buildParseTrees&&t.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,t))),t}getParseListeners(){return this.parseListeners??[]}addParseListener(listener){if(listener===null)throw new Error("listener");this.parseListeners===null&&(this.parseListeners=[]),this.parseListeners.push(listener)}removeParseListener(listener){if(this.parseListeners!==null&&listener!==null){let idx=this.parseListeners.indexOf(listener);idx>=0&&this.parseListeners.splice(idx,1),this.parseListeners.length===0&&(this.parseListeners=null)}}removeParseListeners(){this.parseListeners=null}triggerEnterRuleEvent(){if(this.parseListeners!==null){let ctx=this.context;this.parseListeners.forEach(listener=>{listener.enterEveryRule(ctx),ctx.enterRule(listener)})}}triggerExitRuleEvent(){if(this.parseListeners!==null){let ctx=this.context;this.parseListeners.slice(0).reverse().forEach(listener=>{ctx.exitRule(listener),listener.exitEveryRule(ctx)})}}getTokenFactory(){return this.inputStream.tokenSource.tokenFactory}setTokenFactory(factory){this.inputStream.tokenSource.tokenFactory=factory}compileParseTreePattern(pattern,patternRuleIndex,lexer){if(!lexer&&this.tokenStream!==null){let tokenSource=this.tokenStream.tokenSource;tokenSource instanceof Lexer&&(lexer=tokenSource)}if(!lexer)throw new Error("Parser can't discover a lexer to use");return new ParseTreePatternMatcher(lexer,this).compile(pattern,patternRuleIndex)}getATNWithBypassAlts(){let serializedAtn=this.serializedATN;if(serializedAtn===null)throw new Error("The current parser does not support an ATN with bypass alternatives.");if(this.bypassAltsAtnCache!==null)return this.bypassAltsAtnCache;let deserializationOptions={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!0};return this.bypassAltsAtnCache=new ATNDeserializer(deserializationOptions).deserialize(serializedAtn),this.bypassAltsAtnCache}get numberOfSyntaxErrors(){return this.syntaxErrors}get inputStream(){return this.#inputStream}set inputStream(input){this.tokenStream=input}get tokenStream(){return this.#inputStream}set tokenStream(input){this.reset(!1),this.#inputStream=input}getCurrentToken(){return this.inputStream.LT(1)}notifyErrorListeners(msg,offendingToken,err){offendingToken=offendingToken??null,err=err??null,offendingToken===null&&(offendingToken=this.getCurrentToken()),this.syntaxErrors+=1;let line=offendingToken.line,column=offendingToken.column;this.errorListenerDispatch.syntaxError(this,offendingToken,line,column,msg,err)}consume(){let o=this.getCurrentToken();o.type!==Token.EOF&&this.tokenStream.consume();let hasListener=this.parseListeners!==null&&this.parseListeners.length>0;if(this.buildParseTrees||hasListener){let node;this.errorHandler.inErrorRecoveryMode(this)?node=this.context.addErrorNode(this.createErrorNode(this.context,o)):node=this.context.addTokenNode(o),hasListener&&this.parseListeners.forEach(listener=>{node instanceof ErrorNode?listener.visitErrorNode(node):listener.visitTerminal(node)})}return o}addContextToParseTree(){this.context?.parent&&this.context.parent.addChild(this.context)}enterRule(localctx,state,_ruleIndex){this.state=state,this.context=localctx,this.context.start=this.inputStream.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this.matchedEOF?this.context.stop=this.inputStream.LT(1):this.context.stop=this.inputStream.LT(-1),this.triggerExitRuleEvent(),this.state=this.context.invokingState,this.context=this.context.parent}enterOuterAlt(localctx,altNum){localctx.setAltNumber(altNum),this.buildParseTrees&&this.context!==localctx&&this.context?.parent&&(this.context.parent.removeLastChild(),this.context.parent.addChild(localctx)),this.context=localctx}getPrecedence(){return this.precedenceStack.length===0?-1:this.precedenceStack[this.precedenceStack.length-1]}enterRecursionRule(localctx,state,ruleIndex,precedence){this.state=state,this.precedenceStack.push(precedence),this.context=localctx,this.context.start=this.inputStream.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(localctx,state,_ruleIndex){let previous=this.context;previous.parent=localctx,previous.invokingState=state,previous.stop=this.inputStream.LT(-1),this.context=localctx,this.context.start=previous.start,this.buildParseTrees&&this.context.addChild(previous),this.triggerEnterRuleEvent()}unrollRecursionContexts(parent){this.precedenceStack.pop(),this.context.stop=this.inputStream.LT(-1);let retCtx=this.context,parseListeners=this.getParseListeners();if(parseListeners!==null&&parseListeners.length>0)for(;this.context!==parent;)this.triggerExitRuleEvent(),this.context=this.context.parent;else this.context=parent;retCtx.parent=parent,this.buildParseTrees&&parent!==null&&parent.addChild(retCtx)}getInvokingContext(ruleIndex){let ctx=this.context;for(;ctx!==null;){if(ctx.ruleIndex===ruleIndex)return ctx;ctx=ctx.parent}return null}precpred(_localctx,precedence){return precedence>=this.precedenceStack[this.precedenceStack.length-1]}isExpectedToken(symbol){let atn=this.interpreter.atn,ctx=this.context,s=atn.states[this.state],following=atn.nextTokens(s);if(following.contains(symbol))return!0;if(!following.contains(Token.EPSILON))return!1;for(;ctx!==null&&ctx.invokingState>=0&&following.contains(Token.EPSILON);){let rt=atn.states[ctx.invokingState].transitions[0];if(following=atn.nextTokens(rt.followState),following.contains(symbol))return!0;ctx=ctx.parent}return!!(following.contains(Token.EPSILON)&&symbol===Token.EOF)}getExpectedTokens(){return this.interpreter.atn.getExpectedTokens(this.state,this.context)}getExpectedTokensWithinCurrentRule(){let atn=this.interpreter.atn,s=atn.states[this.state];return atn.nextTokens(s)}getRuleIndex(ruleName){return this.getRuleIndexMap().get(ruleName)??-1}getRuleInvocationStack(p){p=p??null,p===null&&(p=this.context);let stack=[];for(;p!==null;){let ruleIndex=p.ruleIndex;ruleIndex<0?stack.push("n/a"):stack.push(this.ruleNames[ruleIndex]),p=p.parent}return stack}getDFAStrings(){return this.interpreter.decisionToDFA.toString()}dumpDFA(){let seenOne=!1;for(let dfa of this.interpreter.decisionToDFA)dfa.length>0&&(seenOne&&console.log(),this.printer&&(this.printer.println("Decision "+dfa.decision+":"),this.printer.print(dfa.toString(this.vocabulary))),seenOne=!0)}getSourceName(){return this.inputStream.getSourceName()}getParseInfo(){let interp=this.interpreter;if(interp instanceof ProfilingATNSimulator)return new ParseInfo(interp)}setProfile(profile){let interp=this.interpreter,saveMode=interp.predictionMode;if(profile)interp instanceof ProfilingATNSimulator||(this.interpreter=new ProfilingATNSimulator(this));else if(interp instanceof ProfilingATNSimulator){let sharedContextCache=interp.sharedContextCache;if(sharedContextCache){let sim=new ParserATNSimulator(this,this.atn,interp.decisionToDFA,sharedContextCache);this.interpreter=sim}}this.interpreter.predictionMode=saveMode}setTrace(trace){trace?(this.tracer!==null&&this.removeParseListener(this.tracer),this.tracer=new TraceListener(this),this.addParseListener(this.tracer)):(this.removeParseListener(this.tracer),this.tracer=null)}createTerminalNode(parent,t){return new TerminalNode(t)}createErrorNode(parent,t){return new ErrorNode(t)}},ParserInterpreter=class extends Parser{static{__name(this,"ParserInterpreter")}rootContext;overrideDecisionRoot=null;parentContextStack=[];overrideDecisionAlt=-1;overrideDecisionReached=!1;decisionToDFA;sharedContextCache=new PredictionContextCache;pushRecursionContextStates;#overrideDecision=-1;#overrideDecisionInputIndex=-1;#grammarFileName;#atn;#ruleNames;#vocabulary;constructor(grammarFileName,vocabulary,ruleNames,atn,input){super(input),this.#grammarFileName=grammarFileName,this.#atn=atn,this.#ruleNames=ruleNames.slice(0),this.#vocabulary=vocabulary,this.pushRecursionContextStates=new BitSet;for(let state of atn.states)state instanceof StarLoopEntryState&&state.precedenceRuleDecision&&this.pushRecursionContextStates.set(state.stateNumber);this.decisionToDFA=atn.decisionToState.map((ds,i)=>new DFA(ds,i)),this.interpreter=new ParserATNSimulator(this,atn,this.decisionToDFA,this.sharedContextCache)}reset(){super.reset(),this.overrideDecisionReached=!1,this.overrideDecisionRoot=null}get atn(){return this.#atn}get vocabulary(){return this.#vocabulary}get ruleNames(){return this.#ruleNames}get grammarFileName(){return this.#grammarFileName}get atnState(){return this.#atn.states[this.state]}parse(startRuleIndex){let startRuleStartState=this.#atn.ruleToStartState[startRuleIndex];for(this.rootContext=this.createInterpreterRuleContext(null,ATNState.INVALID_STATE_NUMBER,startRuleIndex),startRuleStartState.isLeftRecursiveRule?this.enterRecursionRule(this.rootContext,startRuleStartState.stateNumber,startRuleIndex,0):this.enterRule(this.rootContext,startRuleStartState.stateNumber,startRuleIndex);;){let p=this.atnState;switch(p.constructor.stateType){case ATNState.RULE_STOP:{if(this.context?.isEmpty())if(startRuleStartState.isLeftRecursiveRule){let result=this.context,parentContext=this.parentContextStack.pop();return this.unrollRecursionContexts(parentContext[0]),result}else return this.exitRule(),this.rootContext;this.visitRuleStopState(p);break}default:{try{this.visitState(p)}catch(e){if(e instanceof RecognitionException)this.state=this.#atn.ruleToStopState[p.ruleIndex].stateNumber,this.errorHandler.reportError(this,e),this.recover(e);else throw e}break}}}}addDecisionOverride(decision,tokenIndex,forcedAlt){this.#overrideDecision=decision,this.#overrideDecisionInputIndex=tokenIndex,this.overrideDecisionAlt=forcedAlt}get overrideDecision(){return this.#overrideDecision}get overrideDecisionInputIndex(){return this.#overrideDecisionInputIndex}enterRecursionRule(localctx,state,ruleIndex,precedence){this.parentContextStack.push([this.context,localctx.invokingState]),super.enterRecursionRule(localctx,state,ruleIndex,precedence)}get serializedATN(){throw new Error("The ParserInterpreter does not support the serializedATN property.")}visitState(p){let predictedAlt=1;p instanceof DecisionState&&(predictedAlt=this.visitDecisionState(p));let transition=p.transitions[predictedAlt-1];switch(transition.transitionType){case Transition.EPSILON:if(this.pushRecursionContextStates.get(p.stateNumber)&&transition.target.constructor.stateType!==ATNState.LOOP_END){let parentContext=this.parentContextStack[this.parentContextStack.length-1],localctx=this.createInterpreterRuleContext(parentContext[0],parentContext[1],this.context.ruleIndex);this.pushNewRecursionContext(localctx,this.#atn.ruleToStartState[p.ruleIndex].stateNumber,this.context.ruleIndex)}break;case Transition.ATOM:this.match(transition.label.minElement);break;case Transition.RANGE:case Transition.SET:case Transition.NOT_SET:transition.matches(this.inputStream.LA(1),Token.MIN_USER_TOKEN_TYPE,65535)||this.recoverInline(),this.matchWildcard();break;case Transition.WILDCARD:this.matchWildcard();break;case Transition.RULE:let ruleStartState=transition.target,ruleIndex=ruleStartState.ruleIndex,newContext=this.createInterpreterRuleContext(this.context,p.stateNumber,ruleIndex);ruleStartState.isLeftRecursiveRule?this.enterRecursionRule(newContext,ruleStartState.stateNumber,ruleIndex,transition.precedence):this.enterRule(newContext,transition.target.stateNumber,ruleIndex);break;case Transition.PREDICATE:let predicateTransition=transition;if(!this.sempred(this.context,predicateTransition.ruleIndex,predicateTransition.predIndex))throw new FailedPredicateException(this);break;case Transition.ACTION:let actionTransition=transition;this.action(this.context,actionTransition.ruleIndex,actionTransition.actionIndex);break;case Transition.PRECEDENCE:if(!this.precpred(this.context,transition.precedence)){let precedence=transition.precedence;throw new FailedPredicateException(this,`precpred(_ctx, ${precedence})`)}break;default:throw new Error("UnsupportedOperationException: Unrecognized ATN transition type.")}this.state=transition.target.stateNumber}visitDecisionState(p){let predictedAlt=1;if(p.transitions.length>1){this.errorHandler.sync(this);let decision=p.decision;decision===this.#overrideDecision&&this.inputStream.index===this.#overrideDecisionInputIndex&&!this.overrideDecisionReached?(predictedAlt=this.overrideDecisionAlt,this.overrideDecisionReached=!0):predictedAlt=this.interpreter.adaptivePredict(this.inputStream,decision,this.context)}return predictedAlt}createInterpreterRuleContext(parent,invokingStateNumber,ruleIndex){return new InterpreterRuleContext(ruleIndex,parent,invokingStateNumber)}visitRuleStopState(p){if(this.#atn.ruleToStartState[p.ruleIndex].isLeftRecursiveRule){let[parentContext,state]=this.parentContextStack.pop();this.unrollRecursionContexts(parentContext),this.state=state}else this.exitRule();let ruleTransition=this.#atn.states[this.state].transitions[0];this.state=ruleTransition.followState.stateNumber}recover(e){let i=this.inputStream.index;if(this.errorHandler.recover(this,e),this.inputStream.index===i){let tok=e.offendingToken;if(!tok)throw new Error("Expected exception to have an offending token");let source=tok.tokenSource,stream=source?.inputStream??null,sourcePair=[source,stream];if(e instanceof InputMismatchException){let expectedTokens=e.getExpectedTokens();if(!expectedTokens)throw new Error("Expected the exception to provide expected tokens");let expectedTokenType=Token.INVALID_TYPE;expectedTokens.length!==0&&(expectedTokenType=expectedTokens.minElement);let errToken=this.getTokenFactory().create(sourcePair,expectedTokenType,tok.text,Token.DEFAULT_CHANNEL,-1,-1,tok.line,tok.column);this.context.addErrorNode(this.createErrorNode(this.context,errToken))}else{let errToken=this.getTokenFactory().create(sourcePair,Token.INVALID_TYPE,tok.text,Token.DEFAULT_CHANNEL,-1,-1,tok.line,tok.column);this.context.addErrorNode(this.createErrorNode(this.context,errToken))}}}recoverInline(){return this.errorHandler.recoverInline(this)}},MultiMap=class extends Map{static{__name(this,"MultiMap")}map(key,value){let elementsForKey=this.get(key);elementsForKey||(elementsForKey=new Array,this.set(key,elementsForKey)),elementsForKey.push(value)}getPairs(){let pairs=new Array;for(let key of this.keys()){let keys=this.get(key)??[];for(let value of keys)pairs.push([key,value])}return pairs}toString(){let entries=[];return this.forEach((value,key)=>{entries.push(`${key}=[${value.join(", ")}]`)}),`{${entries.join(", ")}}`}},CannotInvokeStartRuleError=class extends Error{static{__name(this,"CannotInvokeStartRuleError")}constructor(e){super(),this.cause=e}},RuleTagToken=class{static{__name(this,"RuleTagToken")}label;ruleName;bypassTokenType;constructor(ruleName,bypassTokenType,label){this.ruleName=ruleName,this.bypassTokenType=bypassTokenType,this.label=label}get channel(){return Token.DEFAULT_CHANNEL}get text(){return this.label!==void 0?"<"+this.label+":"+this.ruleName+">":"<"+this.ruleName+">"}get type(){return this.bypassTokenType}get line(){return 0}get column(){return-1}get tokenIndex(){return-1}get start(){return-1}get stop(){return-1}get tokenSource(){return null}get inputStream(){return null}toString(){return this.ruleName+":"+this.bypassTokenType}},StartRuleDoesNotConsumeFullPatternError=class extends Error{static{__name(this,"StartRuleDoesNotConsumeFullPatternError")}},TagChunk=class extends Chunk{static{__name(this,"TagChunk")}tag;label;constructor(...args){let label,tag;if(args.length===1?tag=args[0]:(label=args[0],tag=args[1]),super(),!tag)throw new Error("tag cannot be null or empty");this.label=label,this.tag=tag}toString(){return this.label!==void 0?this.label+":"+this.tag:this.tag}},TextChunk=class extends Chunk{static{__name(this,"TextChunk")}text;constructor(text){super(),this.text=text}toString(){return"'"+this.text+"'"}},TokenTagToken=class extends CommonToken{static{__name(this,"TokenTagToken")}tokenName;label;constructor(tokenName,type,label){super({type,source:CommonToken.EMPTY_SOURCE}),this.tokenName=tokenName,this.label=label}get text(){return this.label!==void 0?"<"+this.label+":"+this.tokenName+">":"<"+this.tokenName+">"}toString(){return this.tokenName+":"+this.type}},ParseTreePatternMatcher=class{static{__name(this,"ParseTreePatternMatcher")}start="<";stop=">";escape="\\";lexer;parser;constructor(lexer,parser){this.lexer=lexer,this.parser=parser}setDelimiters(start,stop,escapeLeft){if(start===null||start.length===0)throw new Error("start cannot be null or empty");if(stop===null||stop.length===0)throw new Error("stop cannot be null or empty");this.start=start,this.stop=stop,this.escape=escapeLeft}matches(...args){switch(args.length){case 2:{let[tree,pattern]=args,labels=new MultiMap;return this.matchImpl(tree,pattern.getPatternTree(),labels)===null}case 3:{let[tree,pattern,patternRuleIndex]=args,p=this.compile(pattern,patternRuleIndex);return this.matches(tree,p)}default:throw new Error("Invalid number of arguments")}}match(...args){switch(args.length){case 2:{let[tree,pattern]=args,labels=new MultiMap,mismatchedNode=this.matchImpl(tree,pattern.getPatternTree(),labels);return new ParseTreeMatch(tree,pattern,labels,mismatchedNode)}case 3:{let[tree,pattern,patternRuleIndex]=args,p=this.compile(pattern,patternRuleIndex);return this.match(tree,p)}default:throw new Error("Invalid number of arguments")}}compile(pattern,patternRuleIndex){let tokenList=this.tokenize(pattern),tokenSrc=new ListTokenSource(tokenList),tokens=new CommonTokenStream(tokenSrc),parserInterp=new ParserInterpreter(this.parser.grammarFileName,this.parser.vocabulary,this.parser.ruleNames,this.parser.getATNWithBypassAlts(),tokens);parserInterp.removeErrorListeners();let tree=null;try{parserInterp.errorHandler=new BailErrorStrategy,tree=parserInterp.parse(patternRuleIndex)}catch(error){throw error instanceof ParseCancellationException?error.cause:error instanceof RecognitionException?error:error instanceof Error?new CannotInvokeStartRuleError(error):error}if(tokens.LA(1)!==Token.EOF)throw new StartRuleDoesNotConsumeFullPatternError;return new ParseTreePattern(this,pattern,patternRuleIndex,tree)}getLexer(){return this.lexer}getParser(){return this.parser}tokenize(pattern){let chunks=this.split(pattern),tokens=new Array;for(let chunk of chunks)if(chunk instanceof TagChunk){let tagChunk=chunk,char=tagChunk.tag[0];if(char===char.toUpperCase()){let ttype=this.parser.getTokenType(tagChunk.tag);if(ttype===Token.INVALID_TYPE)throw new Error("Unknown token "+tagChunk.tag+" in pattern: "+pattern);let t=new TokenTagToken(tagChunk.tag,ttype,tagChunk.label);tokens.push(t)}else if(char===char.toLowerCase()){let ruleIndex=this.parser.getRuleIndex(tagChunk.tag);if(ruleIndex===-1)throw new Error("Unknown rule "+tagChunk.tag+" in pattern: "+pattern);let ruleImaginaryTokenType=this.parser.getATNWithBypassAlts().ruleToTokenType[ruleIndex];tokens.push(new RuleTagToken(tagChunk.tag,ruleImaginaryTokenType,tagChunk.label))}else throw new Error("invalid tag: "+tagChunk.tag+" in pattern: "+pattern)}else{let textChunk=chunk,input=CharStream.fromString(textChunk.text);this.lexer.inputStream=input;let t=this.lexer.nextToken();for(;t.type!==Token.EOF;)tokens.push(t),t=this.lexer.nextToken()}return tokens}split(pattern){let p=0,n2=pattern.length,chunks=new Array,starts=new Array,stops=new Array;for(;p<n2;)p===pattern.indexOf(this.escape+this.start,p)?p+=this.escape.length+this.start.length:p===pattern.indexOf(this.escape+this.stop,p)?p+=this.escape.length+this.stop.length:p===pattern.indexOf(this.start,p)?(starts.push(p),p+=this.start.length):p===pattern.indexOf(this.stop,p)?(stops.push(p),p+=this.stop.length):p++;if(starts.length>stops.length)throw new Error("unterminated tag in pattern: "+pattern);if(starts.length<stops.length)throw new Error("missing start tag in pattern: "+pattern);let tagCount=starts.length;for(let i=0;i<tagCount;i++)if(starts[i]>=stops[i])throw new Error("tag delimiters out of order in pattern: "+pattern);if(tagCount===0){let text=pattern.substring(0,n2);chunks.push(new TextChunk(text))}if(tagCount>0&&starts[0]>0){let text=pattern.substring(0,starts[0]);chunks.push(new TextChunk(text))}for(let i=0;i<tagCount;i++){let tag=pattern.substring(starts[i]+this.start.length,stops[i]),ruleOrToken=tag,label,colon=tag.indexOf(":");if(colon>=0&&(label=tag.substring(0,colon),ruleOrToken=tag.substring(colon+1,tag.length)),chunks.push(new TagChunk(label,ruleOrToken)),i+1<tagCount){let text=pattern.substring(stops[i]+this.stop.length,starts[i+1]);chunks.push(new TextChunk(text))}}if(tagCount>0){let afterLastTag=stops[tagCount-1]+this.stop.length;if(afterLastTag<n2){let text=pattern.substring(afterLastTag,n2);chunks.push(new TextChunk(text))}}for(let i=0;i<chunks.length;i++){let c=chunks[i];if(c instanceof TextChunk){let tc=c,unescaped=tc.text.replaceAll(this.escape,"");unescaped.length<tc.text.length&&(chunks[i]=new TextChunk(unescaped))}}return chunks}matchImpl(tree,patternTree,labels){if(tree instanceof TerminalNode&&patternTree instanceof TerminalNode){let t1=tree,t2=patternTree,mismatchedNode;if(t1.getSymbol().type===t2.getSymbol().type)if(t2.getSymbol()instanceof TokenTagToken){let tokenTagToken=t2.getSymbol();labels.map(tokenTagToken.tokenName,tree),tokenTagToken.label!==void 0&&labels.map(tokenTagToken.label,tree)}else t1.getText()===t2.getText()||mismatchedNode||(mismatchedNode=t1);else mismatchedNode||(mismatchedNode=t1);return mismatchedNode}if(tree instanceof ParserRuleContext&&patternTree instanceof ParserRuleContext){let mismatchedNode,ruleTagToken=this.getRuleTagToken(patternTree);if(ruleTagToken)return tree.ruleIndex===patternTree.ruleIndex?(labels.map(ruleTagToken.ruleName,tree),ruleTagToken.label&&labels.map(ruleTagToken.label,tree)):mismatchedNode||(mismatchedNode=tree),mismatchedNode;if(tree.getChildCount()!==patternTree.getChildCount())return mismatchedNode||(mismatchedNode=tree),mismatchedNode;let n2=tree.getChildCount();for(let i=0;i<n2;i++){let childMatch=this.matchImpl(tree.getChild(i),patternTree.getChild(i),labels);if(childMatch)return childMatch}return mismatchedNode}return tree}getRuleTagToken(t){if(t instanceof ParserRuleContext&&t.getChildCount()===1&&t.getChild(0)instanceof TerminalNode){let c=t.getChild(0);if(c.getSymbol()instanceof RuleTagToken)return c.getSymbol()}}},DiagnosticErrorListener=class extends BaseErrorListener{static{__name(this,"DiagnosticErrorListener")}exactOnly;constructor(exactOnly){super(),this.exactOnly=exactOnly??!0}reportAmbiguity=__name((recognizer,dfa,startIndex,stopIndex,exact,ambigAlts,configs)=>{if(this.exactOnly&&!exact)return;let decision=this.getDecisionDescription(recognizer,dfa),conflictingAlts=this.getConflictingAlts(ambigAlts,configs),text=recognizer.tokenStream?.getTextFromInterval(Interval.of(startIndex,stopIndex)),message=`reportAmbiguity d=${decision}: ambigAlts=${conflictingAlts}, input='${text}'`;recognizer.notifyErrorListeners(message,null,null)},"reportAmbiguity");reportAttemptingFullContext=__name((recognizer,dfa,startIndex,stopIndex,_conflictingAlts,_configs)=>{let decision=this.getDecisionDescription(recognizer,dfa),text=recognizer.tokenStream?.getTextFromInterval(Interval.of(startIndex,stopIndex)),message=`reportAttemptingFullContext d=${decision}, input='${text}'`;recognizer.notifyErrorListeners(message,null,null)},"reportAttemptingFullContext");reportContextSensitivity=__name((recognizer,dfa,startIndex,stopIndex,_prediction,_configs)=>{let decision=this.getDecisionDescription(recognizer,dfa),text=recognizer.tokenStream?.getTextFromInterval(Interval.of(startIndex,stopIndex)),message=`reportContextSensitivity d=${decision}, input='${text}'`;recognizer.notifyErrorListeners(message,null,null)},"reportContextSensitivity");getDecisionDescription=__name((recognizer,dfa)=>{let decision=dfa.decision,ruleIndex=dfa.atnStartState.ruleIndex,ruleNames=recognizer.ruleNames;if(ruleIndex<0||ruleIndex>=ruleNames.length)return decision.toString();let ruleName=ruleNames[ruleIndex];return ruleName.length===0?decision.toString():`${decision} (${ruleName})`},"getDecisionDescription");getConflictingAlts=__name((reportedAlts,configs)=>{if(reportedAlts)return reportedAlts;let result=new BitSet;for(let i=0;i<configs.configs.length;i++)result.set(configs.configs[i].alt);return result},"getConflictingAlts")},LexerInterpreter=class extends Lexer{static{__name(this,"LexerInterpreter")}decisionToDFA;sharedContextCache=new PredictionContextCache;#grammarFileName;#atn;#ruleNames;#channelNames;#modeNames;#vocabulary;constructor(grammarFileName,vocabulary,ruleNames,channelNames,modeNames,atn,input){if(super(input),atn.grammarType!==ATN.LEXER)throw new Error("IllegalArgumentException: The ATN must be a lexer ATN.");this.#grammarFileName=grammarFileName,this.#atn=atn,this.#ruleNames=ruleNames.slice(0),this.#channelNames=channelNames.slice(0),this.#modeNames=modeNames.slice(0),this.#vocabulary=vocabulary,this.decisionToDFA=atn.decisionToState.map((ds,i)=>new DFA(ds,i)),this.interpreter=new LexerATNSimulator(this,atn,this.decisionToDFA,this.sharedContextCache)}get atn(){return this.#atn}get grammarFileName(){return this.#grammarFileName}get ruleNames(){return this.#ruleNames}get channelNames(){return this.#channelNames}get modeNames(){return this.#modeNames}get vocabulary(){return this.#vocabulary}get serializedATN(){throw new Error("The LexerInterpreter does not support the serializedATN property.")}},RuntimeMetaData=class _RuntimeMetaData{static{__name(this,"RuntimeMetaData")}static VERSION="4.13.1";static getRuntimeVersion(){return _RuntimeMetaData.VERSION}static checkVersion(generatingToolVersion,compileTimeVersion){let runtimeVersion=_RuntimeMetaData.VERSION,runtimeConflictsWithGeneratingTool=!1,runtimeConflictsWithCompileTimeTool=!1;runtimeConflictsWithGeneratingTool=runtimeVersion!==generatingToolVersion&&_RuntimeMetaData.getMajorMinorVersion(runtimeVersion)!==_RuntimeMetaData.getMajorMinorVersion(generatingToolVersion),runtimeConflictsWithCompileTimeTool=runtimeVersion!==compileTimeVersion&&_RuntimeMetaData.getMajorMinorVersion(runtimeVersion)!==_RuntimeMetaData.getMajorMinorVersion(compileTimeVersion),runtimeConflictsWithGeneratingTool&&console.error(`ANTLR Tool version ${generatingToolVersion} used for code generation does not match the current runtime version ${runtimeVersion}`),runtimeConflictsWithCompileTimeTool&&console.error(`ANTLR Runtime version ${compileTimeVersion} used for parser compilation does not match the current runtime version ${runtimeVersion}`)}static getMajorMinorVersion(version){let firstDot=version.indexOf("."),secondDot=firstDot>=0?version.indexOf(".",firstDot+1):-1,firstDash=version.indexOf("-"),referenceLength=version.length;return secondDot>=0&&(referenceLength=Math.min(referenceLength,secondDot)),firstDash>=0&&(referenceLength=Math.min(referenceLength,firstDash)),version.substring(0,referenceLength)}},TokenStreamRewriter=class _TokenStreamRewriter{static{__name(this,"TokenStreamRewriter")}static DEFAULT_PROGRAM_NAME="default";static PROGRAM_INIT_SIZE=100;static MIN_TOKEN_INDEX=0;tokens;programs=new Map;lastRewriteTokenIndexes;constructor(tokens){this.tokens=tokens}getTokenStream(){return this.tokens}insertAfter(tokenOrIndex,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){let index;typeof tokenOrIndex=="number"?index=tokenOrIndex:index=tokenOrIndex.tokenIndex;let rewrites=this.getProgram(programName),op=new InsertAfterOp(this.tokens,index,rewrites.length,text);rewrites.push(op)}insertBefore(tokenOrIndex,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){let index;typeof tokenOrIndex=="number"?index=tokenOrIndex:index=tokenOrIndex.tokenIndex;let rewrites=this.getProgram(programName),op=new InsertBeforeOp(this.tokens,index,rewrites.length,text);rewrites.push(op)}replaceSingle(tokenOrIndex,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){this.replace(tokenOrIndex,tokenOrIndex,text,programName)}replace(from,to,text,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){if(typeof from!="number"&&(from=from.tokenIndex),typeof to!="number"&&(to=to.tokenIndex),from>to||from<0||to<0||to>=this.tokens.size)throw new RangeError(`replace: range invalid: ${from}..${to}(size=${this.tokens.size})`);let rewrites=this.getProgram(programName),op=new ReplaceOp(this.tokens,from,to,rewrites.length,text);rewrites.push(op)}delete(from,to,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){to==null&&(to=from),this.replace(from,to,null,programName)}getProgram(name){let is=this.programs.get(name);return is==null&&(is=this.initializeProgram(name)),is}initializeProgram(name){let is=[];return this.programs.set(name,is),is}getText(intervalOrProgram,programName=_TokenStreamRewriter.DEFAULT_PROGRAM_NAME){let interval;intervalOrProgram instanceof Interval?interval=intervalOrProgram:interval=new Interval(0,this.tokens.size-1),typeof intervalOrProgram=="string"&&(programName=intervalOrProgram);let rewrites=this.programs.get(programName),start=interval.start,stop=interval.stop;if(stop>this.tokens.size-1&&(stop=this.tokens.size-1),start<0&&(start=0),rewrites==null||rewrites.length===0)return this.tokens.getTextFromInterval(new Interval(start,stop));let buf=[],indexToOp=this.reduceToSingleOperationPerIndex(rewrites),i=start;for(;i<=stop&&i<this.tokens.size;){let op=indexToOp.get(i);indexToOp.delete(i);let t=this.tokens.get(i);op==null?(t.type!==Token.EOF&&buf.push(String(t.text)),i++):i=op.execute(buf)}if(stop===this.tokens.size-1)for(let op of indexToOp.values())op&&op.index>=this.tokens.size-1&&buf.push(String(op.text));return buf.join("")}reduceToSingleOperationPerIndex(rewrites){for(let i=0;i<rewrites.length;i++){let op=rewrites[i];if(op==null||!(op instanceof ReplaceOp))continue;let rop=op,inserts=this.getKindOfOps(rewrites,InsertBeforeOp,i);for(let iop of inserts)iop.index===rop.index?(rewrites[iop.instructionIndex]=null,rop.text=String(iop.text)+(rop.text!=null?rop.text.toString():"")):iop.index>rop.index&&iop.index<=rop.lastIndex&&(rewrites[iop.instructionIndex]=null);let prevReplaces=this.getKindOfOps(rewrites,ReplaceOp,i);for(let prevRop of prevReplaces){if(prevRop.index>=rop.index&&prevRop.lastIndex<=rop.lastIndex){rewrites[prevRop.instructionIndex]=null;continue}let disjoint=prevRop.lastIndex<rop.index||prevRop.index>rop.lastIndex;if(prevRop.text==null&&rop.text==null&&!disjoint)rewrites[prevRop.instructionIndex]=null,rop.index=Math.min(prevRop.index,rop.index),rop.lastIndex=Math.max(prevRop.lastIndex,rop.lastIndex);else if(!disjoint)throw new Error(`replace op boundaries of ${rop} overlap with previous ${prevRop}`)}}for(let i=0;i<rewrites.length;i++){let op=rewrites[i];if(op==null||!(op instanceof InsertBeforeOp))continue;let iop=op,prevInserts=this.getKindOfOps(rewrites,InsertBeforeOp,i);for(let prevIop of prevInserts)prevIop.index===iop.index&&(prevIop instanceof InsertAfterOp?(iop.text=this.catOpText(prevIop.text,iop.text),rewrites[prevIop.instructionIndex]=null):prevIop instanceof InsertBeforeOp&&(iop.text=this.catOpText(iop.text,prevIop.text),rewrites[prevIop.instructionIndex]=null));let prevReplaces=this.getKindOfOps(rewrites,ReplaceOp,i);for(let rop of prevReplaces){if(iop.index===rop.index){rop.text=this.catOpText(iop.text,rop.text),rewrites[i]=null;continue}if(iop.index>=rop.index&&iop.index<=rop.lastIndex)throw new Error(`insert op ${iop} within boundaries of previous ${rop}`)}}let m2=new Map;for(let op of rewrites)if(op!=null){if(m2.get(op.index)!=null)throw new Error("should only be one op per index");m2.set(op.index,op)}return m2}catOpText(a,b){let x="",y="";return a!=null&&(x=a.toString()),b!=null&&(y=b.toString()),x+y}getKindOfOps(rewrites,kind,before){return rewrites.slice(0,before).filter(op=>op&&op instanceof kind)}},RewriteOperation=class{static{__name(this,"RewriteOperation")}instructionIndex;index;text;tokens;constructor(tokens,index,instructionIndex,text){this.tokens=tokens,this.instructionIndex=instructionIndex,this.index=index,this.text=text===void 0?"":text}execute(_buf){return this.index}toString(){return"<RewriteOperation@"+this.tokens.get(this.index)+':"'+this.text+'">'}},InsertBeforeOp=class extends RewriteOperation{static{__name(this,"InsertBeforeOp")}constructor(tokens,index,instructionIndex,text){super(tokens,index,instructionIndex,text)}execute(buf){return this.text&&buf.push(this.text.toString()),this.tokens.get(this.index).type!==Token.EOF&&buf.push(String(this.tokens.get(this.index).text)),this.index+1}toString(){return"<InsertBeforeOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},InsertAfterOp=class extends InsertBeforeOp{static{__name(this,"InsertAfterOp")}constructor(tokens,index,instructionIndex,text){super(tokens,index+1,instructionIndex,text)}toString(){return"<InsertAfterOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},ReplaceOp=class extends RewriteOperation{static{__name(this,"ReplaceOp")}lastIndex;constructor(tokens,from,to,instructionIndex,text){super(tokens,from,instructionIndex,text),this.lastIndex=to}execute(buf){return this.text&&buf.push(this.text.toString()),this.lastIndex+1}toString(){return this.text==null?"<DeleteOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+">":"<ReplaceOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+':"'+this.text+'">'}},UnbufferedTokenStream=class{static{__name(this,"UnbufferedTokenStream")}tokenSource;tokens;n;p=0;numMarkers=0;lastToken;lastTokenBufferStart;currentTokenIndex=0;constructor(tokenSource,bufferSize){this.tokenSource=tokenSource,bufferSize=bufferSize??256,this.tokens=new Array(bufferSize),this.n=0,this.fill(1)}get(i){let bufferStartIndex=this.getBufferStartIndex();if(i<bufferStartIndex||i>=bufferStartIndex+this.n)throw new Error("get("+i+") outside buffer: "+bufferStartIndex+".."+(bufferStartIndex+this.n));return this.tokens[i-bufferStartIndex]}LT(i){if(i===-1)return this.lastToken;this.sync(i);let index=this.p+i-1;if(index<0)throw new Error("LT("+i+") gives negative index");return index>=this.n?this.tokens[this.n-1]:this.tokens[index]}LA(i){return this.LT(i).type}getText(){return""}getTextFromContext(ctx){return this.getTextFromInterval(ctx.getSourceInterval())}getTextFromInterval(interval){let bufferStartIndex=this.getBufferStartIndex(),bufferStopIndex=bufferStartIndex+this.tokens.length-1,start=interval.start,stop=interval.stop;if(start<bufferStartIndex||stop>bufferStopIndex)throw new Error("interval "+interval+" not in token buffer window: "+bufferStartIndex+".."+bufferStopIndex);let a=start-bufferStartIndex,b=stop-bufferStartIndex,result="";for(let i=a;i<=b;i++){let t=this.tokens[i];result+=t.text}return result}getTextFromRange(start,stop){return this.getTextFromInterval(Interval.of(start.tokenIndex,stop.tokenIndex))}consume(){if(this.LA(1)===Token.EOF)throw new Error("cannot consume EOF");this.lastToken=this.tokens[this.p],this.p===this.n-1&&this.numMarkers===0&&(this.n=0,this.p=-1,this.lastTokenBufferStart=this.lastToken),this.p++,this.currentTokenIndex++,this.sync(1)}mark(){this.numMarkers===0&&(this.lastTokenBufferStart=this.lastToken);let mark=-this.numMarkers-1;return this.numMarkers++,mark}release(marker){let expectedMark=-this.numMarkers;if(marker!==expectedMark)throw new Error("release() called with an invalid marker.");this.numMarkers--,this.numMarkers===0&&(this.p>0&&(this.tokens.copyWithin(0,this.p,this.n),this.n=this.n-this.p,this.p=0),this.lastTokenBufferStart=this.lastToken)}get index(){return this.currentTokenIndex}seek(index){if(index===this.currentTokenIndex)return;index>this.currentTokenIndex&&(this.sync(index-this.currentTokenIndex),index=Math.min(index,this.getBufferStartIndex()+this.n-1));let bufferStartIndex=this.getBufferStartIndex(),i=index-bufferStartIndex;if(i<0)throw new Error("cannot seek to negative index "+index);if(i>=this.n)throw new Error("seek to index outside buffer: "+index+" not in "+bufferStartIndex+".."+(bufferStartIndex+this.n));this.p=i,this.currentTokenIndex=index,this.p===0?this.lastToken=this.lastTokenBufferStart:this.lastToken=this.tokens[this.p-1]}get size(){throw new Error("Unbuffered stream cannot know its size")}getSourceName(){return this.tokenSource.sourceName}setLine(line){this.tokenSource.line=line}setColumn(column){this.tokenSource.column=column}sync(want){let need=this.p+want-1-this.n+1;need>0&&this.fill(need)}fill(n2){for(let i=0;i<n2;i++){if(this.n>0&&this.tokens[this.n-1].type===Token.EOF)return i;let t=this.tokenSource.nextToken();this.add(t)}return n2}add(t){this.n>=this.tokens.length&&(this.tokens.length=this.tokens.length*2),isWritableToken(t)&&t.setTokenIndex(this.getBufferStartIndex()+this.n),this.tokens[this.n++]=t}getBufferStartIndex(){return this.currentTokenIndex-this.p}};var import_node_worker_threads=require("node:worker_threads");var SysMLv2Lexer=class _SysMLv2Lexer extends Lexer{static ABOUT=1;static ABSTRACT=2;static ACCEPT=3;static ACTION=4;static ACTOR=5;static AFTER=6;static ALIAS=7;static ALL=8;static ALLOCATE=9;static ALLOCATION=10;static ANALYSIS=11;static AND=12;static AS=13;static ASSERT=14;static ASSIGN=15;static ASSOC=16;static ASSUME=17;static AT=18;static ATTRIBUTE=19;static BEHAVIOR=20;static BIND=21;static BINDING=22;static BOOL=23;static BY=24;static CALC=25;static CASE=26;static CHAINS=27;static CLASS=28;static CLASSIFIER=29;static COMMENT=30;static COMPOSITE=31;static CONCERN=32;static CONJUGATE=33;static CONJUGATES=34;static CONJUGATION=35;static CONNECT=36;static CONNECTION=37;static CONNECTOR=38;static CONST=39;static CONSTANT=40;static CONSTRAINT=41;static CROSSES=42;static DATATYPE=43;static DECIDE=44;static DEF=45;static DEFAULT=46;static DEFINED=47;static DEPENDENCY=48;static DERIVED=49;static DIFFERENCES=50;static DISJOINING=51;static DISJOINT=52;static DO=53;static DOC=54;static ELSE=55;static END=56;static ENTRY=57;static ENUM=58;static EVENT=59;static EXHIBIT=60;static EXIT=61;static EXPOSE=62;static EXPR=63;static FALSE=64;static FEATURE=65;static FEATURED=66;static FEATURING=67;static FILTER=68;static FIRST=69;static FLOW=70;static FOR=71;static FORK=72;static FRAME=73;static FROM=74;static FUNCTION=75;static HASTYPE=76;static IF=77;static IMPLIES=78;static IMPORT=79;static IN=80;static INCLUDE=81;static INDIVIDUAL=82;static INOUT=83;static INTERACTION=84;static INTERFACE=85;static INTERSECTS=86;static INV=87;static INVERSE=88;static INVERTING=89;static ISTYPE=90;static ITEM=91;static JOIN=92;static LANGUAGE=93;static LIBRARY=94;static LOCALE=95;static LOOP=96;static MEMBER=97;static MERGE=98;static MESSAGE=99;static META=100;static METACLASS=101;static METADATA=102;static MULTIPLICITY=103;static NAMESPACE=104;static NEW=105;static NONUNIQUE=106;static NOT=107;static NULL=108;static OBJECTIVE=109;static OCCURRENCE=110;static OF=111;static OR=112;static ORDERED=113;static OUT=114;static PACKAGE=115;static PARALLEL=116;static PART=117;static PERFORM=118;static PORT=119;static PORTION=120;static PREDICATE=121;static PRIVATE=122;static PROTECTED=123;static PUBLIC=124;static REDEFINES=125;static REDEFINITION=126;static REF=127;static REFERENCES=128;static RENDER=129;static RENDERING=130;static REP=131;static REQUIRE=132;static REQUIREMENT=133;static RETURN=134;static SATISFY=135;static SEND=136;static SNAPSHOT=137;static SPECIALIZATION=138;static SPECIALIZES=139;static STAKEHOLDER=140;static STANDARD=141;static STATE=142;static STEP=143;static STRUCT=144;static SUBCLASSIFIER=145;static SUBJECT=146;static SUBSET=147;static SUBSETS=148;static SUBTYPE=149;static SUCCESSION=150;static TERMINATE=151;static THEN=152;static TIMESLICE=153;static TO=154;static TRANSITION=155;static TRUE=156;static TYPE=157;static TYPED=158;static TYPING=159;static UNIONS=160;static UNTIL=161;static USE=162;static VAR=163;static VARIANT=164;static VARIATION=165;static VERIFICATION=166;static VERIFY=167;static VIA=168;static VIEW=169;static VIEWPOINT=170;static WHEN=171;static WHILE=172;static XOR=173;static BANG_EQ_EQ=174;static COLON_COLON_GT=175;static COLON_GT_GT=176;static EQ_EQ_EQ=177;static BANG_EQ=178;static STAR_STAR=179;static ARROW=180;static DOT_DOT=181;static DOT_QUESTION=182;static COLON_COLON=183;static COLON_EQ=184;static COLON_GT=185;static LE=186;static EQ_EQ=187;static FAT_ARROW=188;static GE=189;static QUESTION_QUESTION=190;static AT_AT=191;static HASH=192;static DOLLAR=193;static PERCENT=194;static AMP=195;static LPAREN=196;static RPAREN=197;static STAR=198;static PLUS=199;static COMMA=200;static MINUS=201;static DOT=202;static SLASH=203;static COLON=204;static SEMI=205;static LT=206;static EQ=207;static GT=208;static QUESTION=209;static AT_SIGN=210;static LBRACK=211;static RBRACK=212;static CARET=213;static LBRACE=214;static PIPE=215;static RBRACE=216;static TILDE=217;static IDENTIFIER=218;static STRING=219;static DOUBLE_STRING=220;static INTEGER=221;static REAL=222;static REGULAR_COMMENT=223;static SINGLE_LINE_NOTE=224;static BARE_LINE_COMMENT=225;static WS=226;static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static literalNames=[null,"'about'","'abstract'","'accept'","'action'","'actor'","'after'","'alias'","'all'","'allocate'","'allocation'","'analysis'","'and'","'as'","'assert'","'assign'","'assoc'","'assume'","'at'","'attribute'","'behavior'","'bind'","'binding'","'bool'","'by'","'calc'","'case'","'chains'","'class'","'classifier'","'comment'","'composite'","'concern'","'conjugate'","'conjugates'","'conjugation'","'connect'","'connection'","'connector'","'const'","'constant'","'constraint'","'crosses'","'datatype'","'decide'","'def'","'default'","'defined'","'dependency'","'derived'","'differences'","'disjoining'","'disjoint'","'do'","'doc'","'else'","'end'","'entry'","'enum'","'event'","'exhibit'","'exit'","'expose'","'expr'","'false'","'feature'","'featured'","'featuring'","'filter'","'first'","'flow'","'for'","'fork'","'frame'","'from'","'function'","'hastype'","'if'","'implies'","'import'","'in'","'include'","'individual'","'inout'","'interaction'","'interface'","'intersects'","'inv'","'inverse'","'inverting'","'istype'","'item'","'join'","'language'","'library'","'locale'","'loop'","'member'","'merge'","'message'","'meta'","'metaclass'","'metadata'","'multiplicity'","'namespace'","'new'","'nonunique'","'not'","'null'","'objective'","'occurrence'","'of'","'or'","'ordered'","'out'","'package'","'parallel'","'part'","'perform'","'port'","'portion'","'predicate'","'private'","'protected'","'public'","'redefines'","'redefinition'","'ref'","'references'","'render'","'rendering'","'rep'","'require'","'requirement'","'return'","'satisfy'","'send'","'snapshot'","'specialization'","'specializes'","'stakeholder'","'standard'","'state'","'step'","'struct'","'subclassifier'","'subject'","'subset'","'subsets'","'subtype'","'succession'","'terminate'","'then'","'timeslice'","'to'","'transition'","'true'","'type'","'typed'","'typing'","'unions'","'until'","'use'","'var'","'variant'","'variation'","'verification'","'verify'","'via'","'view'","'viewpoint'","'when'","'while'","'xor'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,"'//'"];static symbolicNames=[null,"ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","BARE_LINE_COMMENT","WS"];static modeNames=["DEFAULT_MODE"];static ruleNames=["ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","BARE_LINE_COMMENT","WS"];constructor(input){super(input),this.interpreter=new LexerATNSimulator(this,_SysMLv2Lexer._ATN,_SysMLv2Lexer.decisionsToDFA,new PredictionContextCache)}get grammarFileName(){return"SysMLv2Lexer.g4"}get literalNames(){return _SysMLv2Lexer.literalNames}get symbolicNames(){return _SysMLv2Lexer.symbolicNames}get ruleNames(){return _SysMLv2Lexer.ruleNames}get serializedATN(){return _SysMLv2Lexer._serializedATN}get channelNames(){return _SysMLv2Lexer.channelNames}get modeNames(){return _SysMLv2Lexer.modeNames}static _serializedATN=[4,0,226,1971,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,1,0,1,0,1,0,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,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,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,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,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,37,1,37,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,39,1,39,1,40,1,40,1,40,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,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,45,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,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,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,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,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,65,1,66,1,66,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,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,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,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,77,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,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,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,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,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,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,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,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,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,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,102,1,102,1,102,1,103,1,103,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,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,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,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,111,1,111,1,111,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,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,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,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,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,124,1,124,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,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,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,129,1,129,1,129,1,129,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,132,1,132,1,132,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,134,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,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,137,1,137,1,137,1,137,1,137,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,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,139,1,139,1,140,1,140,1,140,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,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,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,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,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,149,1,149,1,149,1,150,1,150,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,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,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,156,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,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,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,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,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,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,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,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,177,1,177,1,177,1,178,1,178,1,178,1,179,1,179,1,179,1,180,1,180,1,180,1,181,1,181,1,181,1,182,1,182,1,182,1,183,1,183,1,183,1,184,1,184,1,184,1,185,1,185,1,185,1,186,1,186,1,186,1,187,1,187,1,187,1,188,1,188,1,188,1,189,1,189,1,189,1,190,1,190,1,190,1,191,1,191,1,192,1,192,1,193,1,193,1,194,1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,199,1,199,1,200,1,200,1,201,1,201,1,202,1,202,1,203,1,203,1,204,1,204,1,205,1,205,1,206,1,206,1,207,1,207,1,208,1,208,1,209,1,209,1,210,1,210,1,211,1,211,1,212,1,212,1,213,1,213,1,214,1,214,1,215,1,215,1,216,1,216,1,217,1,217,5,217,1852,8,217,10,217,12,217,1855,9,217,1,218,1,218,1,218,1,218,5,218,1861,8,218,10,218,12,218,1864,9,218,1,218,1,218,1,219,1,219,1,219,1,219,5,219,1872,8,219,10,219,12,219,1875,9,219,1,219,1,219,1,220,4,220,1880,8,220,11,220,12,220,1881,1,221,5,221,1885,8,221,10,221,12,221,1888,9,221,1,221,1,221,4,221,1892,8,221,11,221,12,221,1893,1,221,1,221,3,221,1898,8,221,1,221,4,221,1901,8,221,11,221,12,221,1902,3,221,1905,8,221,1,221,4,221,1908,8,221,11,221,12,221,1909,1,221,1,221,3,221,1914,8,221,1,221,4,221,1917,8,221,11,221,12,221,1918,3,221,1921,8,221,1,222,1,222,1,222,1,222,5,222,1927,8,222,10,222,12,222,1930,9,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,5,222,1939,8,222,10,222,12,222,1942,9,222,1,222,1,222,3,222,1946,8,222,1,223,1,223,1,223,1,223,1,223,5,223,1953,8,223,10,223,12,223,1956,9,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,225,4,225,1966,8,225,11,225,12,225,1967,1,225,1,225,2,1928,1940,0,226,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,1,0,10,3,0,65,90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,2,0,39,39,92,92,2,0,34,34,92,92,1,0,48,57,2,0,69,69,101,101,2,0,43,43,45,45,3,0,10,10,13,13,42,42,2,0,10,10,13,13,3,0,9,10,13,13,32,32,1990,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,1,453,1,0,0,0,3,459,1,0,0,0,5,468,1,0,0,0,7,475,1,0,0,0,9,482,1,0,0,0,11,488,1,0,0,0,13,494,1,0,0,0,15,500,1,0,0,0,17,504,1,0,0,0,19,513,1,0,0,0,21,524,1,0,0,0,23,533,1,0,0,0,25,537,1,0,0,0,27,540,1,0,0,0,29,547,1,0,0,0,31,554,1,0,0,0,33,560,1,0,0,0,35,567,1,0,0,0,37,570,1,0,0,0,39,580,1,0,0,0,41,589,1,0,0,0,43,594,1,0,0,0,45,602,1,0,0,0,47,607,1,0,0,0,49,610,1,0,0,0,51,615,1,0,0,0,53,620,1,0,0,0,55,627,1,0,0,0,57,633,1,0,0,0,59,644,1,0,0,0,61,652,1,0,0,0,63,662,1,0,0,0,65,670,1,0,0,0,67,680,1,0,0,0,69,691,1,0,0,0,71,703,1,0,0,0,73,711,1,0,0,0,75,722,1,0,0,0,77,732,1,0,0,0,79,738,1,0,0,0,81,747,1,0,0,0,83,758,1,0,0,0,85,766,1,0,0,0,87,775,1,0,0,0,89,782,1,0,0,0,91,786,1,0,0,0,93,794,1,0,0,0,95,802,1,0,0,0,97,813,1,0,0,0,99,821,1,0,0,0,101,833,1,0,0,0,103,844,1,0,0,0,105,853,1,0,0,0,107,856,1,0,0,0,109,860,1,0,0,0,111,865,1,0,0,0,113,869,1,0,0,0,115,875,1,0,0,0,117,880,1,0,0,0,119,886,1,0,0,0,121,894,1,0,0,0,123,899,1,0,0,0,125,906,1,0,0,0,127,911,1,0,0,0,129,917,1,0,0,0,131,925,1,0,0,0,133,934,1,0,0,0,135,944,1,0,0,0,137,951,1,0,0,0,139,957,1,0,0,0,141,962,1,0,0,0,143,966,1,0,0,0,145,971,1,0,0,0,147,977,1,0,0,0,149,982,1,0,0,0,151,991,1,0,0,0,153,999,1,0,0,0,155,1002,1,0,0,0,157,1010,1,0,0,0,159,1017,1,0,0,0,161,1020,1,0,0,0,163,1028,1,0,0,0,165,1039,1,0,0,0,167,1045,1,0,0,0,169,1057,1,0,0,0,171,1067,1,0,0,0,173,1078,1,0,0,0,175,1082,1,0,0,0,177,1090,1,0,0,0,179,1100,1,0,0,0,181,1107,1,0,0,0,183,1112,1,0,0,0,185,1117,1,0,0,0,187,1126,1,0,0,0,189,1134,1,0,0,0,191,1141,1,0,0,0,193,1146,1,0,0,0,195,1153,1,0,0,0,197,1159,1,0,0,0,199,1167,1,0,0,0,201,1172,1,0,0,0,203,1182,1,0,0,0,205,1191,1,0,0,0,207,1204,1,0,0,0,209,1214,1,0,0,0,211,1218,1,0,0,0,213,1228,1,0,0,0,215,1232,1,0,0,0,217,1237,1,0,0,0,219,1247,1,0,0,0,221,1258,1,0,0,0,223,1261,1,0,0,0,225,1264,1,0,0,0,227,1272,1,0,0,0,229,1276,1,0,0,0,231,1284,1,0,0,0,233,1293,1,0,0,0,235,1298,1,0,0,0,237,1306,1,0,0,0,239,1311,1,0,0,0,241,1319,1,0,0,0,243,1329,1,0,0,0,245,1337,1,0,0,0,247,1347,1,0,0,0,249,1354,1,0,0,0,251,1364,1,0,0,0,253,1377,1,0,0,0,255,1381,1,0,0,0,257,1392,1,0,0,0,259,1399,1,0,0,0,261,1409,1,0,0,0,263,1413,1,0,0,0,265,1421,1,0,0,0,267,1433,1,0,0,0,269,1440,1,0,0,0,271,1448,1,0,0,0,273,1453,1,0,0,0,275,1462,1,0,0,0,277,1477,1,0,0,0,279,1489,1,0,0,0,281,1501,1,0,0,0,283,1510,1,0,0,0,285,1516,1,0,0,0,287,1521,1,0,0,0,289,1528,1,0,0,0,291,1542,1,0,0,0,293,1550,1,0,0,0,295,1557,1,0,0,0,297,1565,1,0,0,0,299,1573,1,0,0,0,301,1584,1,0,0,0,303,1594,1,0,0,0,305,1599,1,0,0,0,307,1609,1,0,0,0,309,1612,1,0,0,0,311,1623,1,0,0,0,313,1628,1,0,0,0,315,1633,1,0,0,0,317,1639,1,0,0,0,319,1646,1,0,0,0,321,1653,1,0,0,0,323,1659,1,0,0,0,325,1663,1,0,0,0,327,1667,1,0,0,0,329,1675,1,0,0,0,331,1685,1,0,0,0,333,1698,1,0,0,0,335,1705,1,0,0,0,337,1709,1,0,0,0,339,1714,1,0,0,0,341,1724,1,0,0,0,343,1729,1,0,0,0,345,1735,1,0,0,0,347,1739,1,0,0,0,349,1743,1,0,0,0,351,1747,1,0,0,0,353,1751,1,0,0,0,355,1755,1,0,0,0,357,1758,1,0,0,0,359,1761,1,0,0,0,361,1764,1,0,0,0,363,1767,1,0,0,0,365,1770,1,0,0,0,367,1773,1,0,0,0,369,1776,1,0,0,0,371,1779,1,0,0,0,373,1782,1,0,0,0,375,1785,1,0,0,0,377,1788,1,0,0,0,379,1791,1,0,0,0,381,1794,1,0,0,0,383,1797,1,0,0,0,385,1799,1,0,0,0,387,1801,1,0,0,0,389,1803,1,0,0,0,391,1805,1,0,0,0,393,1807,1,0,0,0,395,1809,1,0,0,0,397,1811,1,0,0,0,399,1813,1,0,0,0,401,1815,1,0,0,0,403,1817,1,0,0,0,405,1819,1,0,0,0,407,1821,1,0,0,0,409,1823,1,0,0,0,411,1825,1,0,0,0,413,1827,1,0,0,0,415,1829,1,0,0,0,417,1831,1,0,0,0,419,1833,1,0,0,0,421,1835,1,0,0,0,423,1837,1,0,0,0,425,1839,1,0,0,0,427,1841,1,0,0,0,429,1843,1,0,0,0,431,1845,1,0,0,0,433,1847,1,0,0,0,435,1849,1,0,0,0,437,1856,1,0,0,0,439,1867,1,0,0,0,441,1879,1,0,0,0,443,1920,1,0,0,0,445,1945,1,0,0,0,447,1947,1,0,0,0,449,1959,1,0,0,0,451,1965,1,0,0,0,453,454,5,97,0,0,454,455,5,98,0,0,455,456,5,111,0,0,456,457,5,117,0,0,457,458,5,116,0,0,458,2,1,0,0,0,459,460,5,97,0,0,460,461,5,98,0,0,461,462,5,115,0,0,462,463,5,116,0,0,463,464,5,114,0,0,464,465,5,97,0,0,465,466,5,99,0,0,466,467,5,116,0,0,467,4,1,0,0,0,468,469,5,97,0,0,469,470,5,99,0,0,470,471,5,99,0,0,471,472,5,101,0,0,472,473,5,112,0,0,473,474,5,116,0,0,474,6,1,0,0,0,475,476,5,97,0,0,476,477,5,99,0,0,477,478,5,116,0,0,478,479,5,105,0,0,479,480,5,111,0,0,480,481,5,110,0,0,481,8,1,0,0,0,482,483,5,97,0,0,483,484,5,99,0,0,484,485,5,116,0,0,485,486,5,111,0,0,486,487,5,114,0,0,487,10,1,0,0,0,488,489,5,97,0,0,489,490,5,102,0,0,490,491,5,116,0,0,491,492,5,101,0,0,492,493,5,114,0,0,493,12,1,0,0,0,494,495,5,97,0,0,495,496,5,108,0,0,496,497,5,105,0,0,497,498,5,97,0,0,498,499,5,115,0,0,499,14,1,0,0,0,500,501,5,97,0,0,501,502,5,108,0,0,502,503,5,108,0,0,503,16,1,0,0,0,504,505,5,97,0,0,505,506,5,108,0,0,506,507,5,108,0,0,507,508,5,111,0,0,508,509,5,99,0,0,509,510,5,97,0,0,510,511,5,116,0,0,511,512,5,101,0,0,512,18,1,0,0,0,513,514,5,97,0,0,514,515,5,108,0,0,515,516,5,108,0,0,516,517,5,111,0,0,517,518,5,99,0,0,518,519,5,97,0,0,519,520,5,116,0,0,520,521,5,105,0,0,521,522,5,111,0,0,522,523,5,110,0,0,523,20,1,0,0,0,524,525,5,97,0,0,525,526,5,110,0,0,526,527,5,97,0,0,527,528,5,108,0,0,528,529,5,121,0,0,529,530,5,115,0,0,530,531,5,105,0,0,531,532,5,115,0,0,532,22,1,0,0,0,533,534,5,97,0,0,534,535,5,110,0,0,535,536,5,100,0,0,536,24,1,0,0,0,537,538,5,97,0,0,538,539,5,115,0,0,539,26,1,0,0,0,540,541,5,97,0,0,541,542,5,115,0,0,542,543,5,115,0,0,543,544,5,101,0,0,544,545,5,114,0,0,545,546,5,116,0,0,546,28,1,0,0,0,547,548,5,97,0,0,548,549,5,115,0,0,549,550,5,115,0,0,550,551,5,105,0,0,551,552,5,103,0,0,552,553,5,110,0,0,553,30,1,0,0,0,554,555,5,97,0,0,555,556,5,115,0,0,556,557,5,115,0,0,557,558,5,111,0,0,558,559,5,99,0,0,559,32,1,0,0,0,560,561,5,97,0,0,561,562,5,115,0,0,562,563,5,115,0,0,563,564,5,117,0,0,564,565,5,109,0,0,565,566,5,101,0,0,566,34,1,0,0,0,567,568,5,97,0,0,568,569,5,116,0,0,569,36,1,0,0,0,570,571,5,97,0,0,571,572,5,116,0,0,572,573,5,116,0,0,573,574,5,114,0,0,574,575,5,105,0,0,575,576,5,98,0,0,576,577,5,117,0,0,577,578,5,116,0,0,578,579,5,101,0,0,579,38,1,0,0,0,580,581,5,98,0,0,581,582,5,101,0,0,582,583,5,104,0,0,583,584,5,97,0,0,584,585,5,118,0,0,585,586,5,105,0,0,586,587,5,111,0,0,587,588,5,114,0,0,588,40,1,0,0,0,589,590,5,98,0,0,590,591,5,105,0,0,591,592,5,110,0,0,592,593,5,100,0,0,593,42,1,0,0,0,594,595,5,98,0,0,595,596,5,105,0,0,596,597,5,110,0,0,597,598,5,100,0,0,598,599,5,105,0,0,599,600,5,110,0,0,600,601,5,103,0,0,601,44,1,0,0,0,602,603,5,98,0,0,603,604,5,111,0,0,604,605,5,111,0,0,605,606,5,108,0,0,606,46,1,0,0,0,607,608,5,98,0,0,608,609,5,121,0,0,609,48,1,0,0,0,610,611,5,99,0,0,611,612,5,97,0,0,612,613,5,108,0,0,613,614,5,99,0,0,614,50,1,0,0,0,615,616,5,99,0,0,616,617,5,97,0,0,617,618,5,115,0,0,618,619,5,101,0,0,619,52,1,0,0,0,620,621,5,99,0,0,621,622,5,104,0,0,622,623,5,97,0,0,623,624,5,105,0,0,624,625,5,110,0,0,625,626,5,115,0,0,626,54,1,0,0,0,627,628,5,99,0,0,628,629,5,108,0,0,629,630,5,97,0,0,630,631,5,115,0,0,631,632,5,115,0,0,632,56,1,0,0,0,633,634,5,99,0,0,634,635,5,108,0,0,635,636,5,97,0,0,636,637,5,115,0,0,637,638,5,115,0,0,638,639,5,105,0,0,639,640,5,102,0,0,640,641,5,105,0,0,641,642,5,101,0,0,642,643,5,114,0,0,643,58,1,0,0,0,644,645,5,99,0,0,645,646,5,111,0,0,646,647,5,109,0,0,647,648,5,109,0,0,648,649,5,101,0,0,649,650,5,110,0,0,650,651,5,116,0,0,651,60,1,0,0,0,652,653,5,99,0,0,653,654,5,111,0,0,654,655,5,109,0,0,655,656,5,112,0,0,656,657,5,111,0,0,657,658,5,115,0,0,658,659,5,105,0,0,659,660,5,116,0,0,660,661,5,101,0,0,661,62,1,0,0,0,662,663,5,99,0,0,663,664,5,111,0,0,664,665,5,110,0,0,665,666,5,99,0,0,666,667,5,101,0,0,667,668,5,114,0,0,668,669,5,110,0,0,669,64,1,0,0,0,670,671,5,99,0,0,671,672,5,111,0,0,672,673,5,110,0,0,673,674,5,106,0,0,674,675,5,117,0,0,675,676,5,103,0,0,676,677,5,97,0,0,677,678,5,116,0,0,678,679,5,101,0,0,679,66,1,0,0,0,680,681,5,99,0,0,681,682,5,111,0,0,682,683,5,110,0,0,683,684,5,106,0,0,684,685,5,117,0,0,685,686,5,103,0,0,686,687,5,97,0,0,687,688,5,116,0,0,688,689,5,101,0,0,689,690,5,115,0,0,690,68,1,0,0,0,691,692,5,99,0,0,692,693,5,111,0,0,693,694,5,110,0,0,694,695,5,106,0,0,695,696,5,117,0,0,696,697,5,103,0,0,697,698,5,97,0,0,698,699,5,116,0,0,699,700,5,105,0,0,700,701,5,111,0,0,701,702,5,110,0,0,702,70,1,0,0,0,703,704,5,99,0,0,704,705,5,111,0,0,705,706,5,110,0,0,706,707,5,110,0,0,707,708,5,101,0,0,708,709,5,99,0,0,709,710,5,116,0,0,710,72,1,0,0,0,711,712,5,99,0,0,712,713,5,111,0,0,713,714,5,110,0,0,714,715,5,110,0,0,715,716,5,101,0,0,716,717,5,99,0,0,717,718,5,116,0,0,718,719,5,105,0,0,719,720,5,111,0,0,720,721,5,110,0,0,721,74,1,0,0,0,722,723,5,99,0,0,723,724,5,111,0,0,724,725,5,110,0,0,725,726,5,110,0,0,726,727,5,101,0,0,727,728,5,99,0,0,728,729,5,116,0,0,729,730,5,111,0,0,730,731,5,114,0,0,731,76,1,0,0,0,732,733,5,99,0,0,733,734,5,111,0,0,734,735,5,110,0,0,735,736,5,115,0,0,736,737,5,116,0,0,737,78,1,0,0,0,738,739,5,99,0,0,739,740,5,111,0,0,740,741,5,110,0,0,741,742,5,115,0,0,742,743,5,116,0,0,743,744,5,97,0,0,744,745,5,110,0,0,745,746,5,116,0,0,746,80,1,0,0,0,747,748,5,99,0,0,748,749,5,111,0,0,749,750,5,110,0,0,750,751,5,115,0,0,751,752,5,116,0,0,752,753,5,114,0,0,753,754,5,97,0,0,754,755,5,105,0,0,755,756,5,110,0,0,756,757,5,116,0,0,757,82,1,0,0,0,758,759,5,99,0,0,759,760,5,114,0,0,760,761,5,111,0,0,761,762,5,115,0,0,762,763,5,115,0,0,763,764,5,101,0,0,764,765,5,115,0,0,765,84,1,0,0,0,766,767,5,100,0,0,767,768,5,97,0,0,768,769,5,116,0,0,769,770,5,97,0,0,770,771,5,116,0,0,771,772,5,121,0,0,772,773,5,112,0,0,773,774,5,101,0,0,774,86,1,0,0,0,775,776,5,100,0,0,776,777,5,101,0,0,777,778,5,99,0,0,778,779,5,105,0,0,779,780,5,100,0,0,780,781,5,101,0,0,781,88,1,0,0,0,782,783,5,100,0,0,783,784,5,101,0,0,784,785,5,102,0,0,785,90,1,0,0,0,786,787,5,100,0,0,787,788,5,101,0,0,788,789,5,102,0,0,789,790,5,97,0,0,790,791,5,117,0,0,791,792,5,108,0,0,792,793,5,116,0,0,793,92,1,0,0,0,794,795,5,100,0,0,795,796,5,101,0,0,796,797,5,102,0,0,797,798,5,105,0,0,798,799,5,110,0,0,799,800,5,101,0,0,800,801,5,100,0,0,801,94,1,0,0,0,802,803,5,100,0,0,803,804,5,101,0,0,804,805,5,112,0,0,805,806,5,101,0,0,806,807,5,110,0,0,807,808,5,100,0,0,808,809,5,101,0,0,809,810,5,110,0,0,810,811,5,99,0,0,811,812,5,121,0,0,812,96,1,0,0,0,813,814,5,100,0,0,814,815,5,101,0,0,815,816,5,114,0,0,816,817,5,105,0,0,817,818,5,118,0,0,818,819,5,101,0,0,819,820,5,100,0,0,820,98,1,0,0,0,821,822,5,100,0,0,822,823,5,105,0,0,823,824,5,102,0,0,824,825,5,102,0,0,825,826,5,101,0,0,826,827,5,114,0,0,827,828,5,101,0,0,828,829,5,110,0,0,829,830,5,99,0,0,830,831,5,101,0,0,831,832,5,115,0,0,832,100,1,0,0,0,833,834,5,100,0,0,834,835,5,105,0,0,835,836,5,115,0,0,836,837,5,106,0,0,837,838,5,111,0,0,838,839,5,105,0,0,839,840,5,110,0,0,840,841,5,105,0,0,841,842,5,110,0,0,842,843,5,103,0,0,843,102,1,0,0,0,844,845,5,100,0,0,845,846,5,105,0,0,846,847,5,115,0,0,847,848,5,106,0,0,848,849,5,111,0,0,849,850,5,105,0,0,850,851,5,110,0,0,851,852,5,116,0,0,852,104,1,0,0,0,853,854,5,100,0,0,854,855,5,111,0,0,855,106,1,0,0,0,856,857,5,100,0,0,857,858,5,111,0,0,858,859,5,99,0,0,859,108,1,0,0,0,860,861,5,101,0,0,861,862,5,108,0,0,862,863,5,115,0,0,863,864,5,101,0,0,864,110,1,0,0,0,865,866,5,101,0,0,866,867,5,110,0,0,867,868,5,100,0,0,868,112,1,0,0,0,869,870,5,101,0,0,870,871,5,110,0,0,871,872,5,116,0,0,872,873,5,114,0,0,873,874,5,121,0,0,874,114,1,0,0,0,875,876,5,101,0,0,876,877,5,110,0,0,877,878,5,117,0,0,878,879,5,109,0,0,879,116,1,0,0,0,880,881,5,101,0,0,881,882,5,118,0,0,882,883,5,101,0,0,883,884,5,110,0,0,884,885,5,116,0,0,885,118,1,0,0,0,886,887,5,101,0,0,887,888,5,120,0,0,888,889,5,104,0,0,889,890,5,105,0,0,890,891,5,98,0,0,891,892,5,105,0,0,892,893,5,116,0,0,893,120,1,0,0,0,894,895,5,101,0,0,895,896,5,120,0,0,896,897,5,105,0,0,897,898,5,116,0,0,898,122,1,0,0,0,899,900,5,101,0,0,900,901,5,120,0,0,901,902,5,112,0,0,902,903,5,111,0,0,903,904,5,115,0,0,904,905,5,101,0,0,905,124,1,0,0,0,906,907,5,101,0,0,907,908,5,120,0,0,908,909,5,112,0,0,909,910,5,114,0,0,910,126,1,0,0,0,911,912,5,102,0,0,912,913,5,97,0,0,913,914,5,108,0,0,914,915,5,115,0,0,915,916,5,101,0,0,916,128,1,0,0,0,917,918,5,102,0,0,918,919,5,101,0,0,919,920,5,97,0,0,920,921,5,116,0,0,921,922,5,117,0,0,922,923,5,114,0,0,923,924,5,101,0,0,924,130,1,0,0,0,925,926,5,102,0,0,926,927,5,101,0,0,927,928,5,97,0,0,928,929,5,116,0,0,929,930,5,117,0,0,930,931,5,114,0,0,931,932,5,101,0,0,932,933,5,100,0,0,933,132,1,0,0,0,934,935,5,102,0,0,935,936,5,101,0,0,936,937,5,97,0,0,937,938,5,116,0,0,938,939,5,117,0,0,939,940,5,114,0,0,940,941,5,105,0,0,941,942,5,110,0,0,942,943,5,103,0,0,943,134,1,0,0,0,944,945,5,102,0,0,945,946,5,105,0,0,946,947,5,108,0,0,947,948,5,116,0,0,948,949,5,101,0,0,949,950,5,114,0,0,950,136,1,0,0,0,951,952,5,102,0,0,952,953,5,105,0,0,953,954,5,114,0,0,954,955,5,115,0,0,955,956,5,116,0,0,956,138,1,0,0,0,957,958,5,102,0,0,958,959,5,108,0,0,959,960,5,111,0,0,960,961,5,119,0,0,961,140,1,0,0,0,962,963,5,102,0,0,963,964,5,111,0,0,964,965,5,114,0,0,965,142,1,0,0,0,966,967,5,102,0,0,967,968,5,111,0,0,968,969,5,114,0,0,969,970,5,107,0,0,970,144,1,0,0,0,971,972,5,102,0,0,972,973,5,114,0,0,973,974,5,97,0,0,974,975,5,109,0,0,975,976,5,101,0,0,976,146,1,0,0,0,977,978,5,102,0,0,978,979,5,114,0,0,979,980,5,111,0,0,980,981,5,109,0,0,981,148,1,0,0,0,982,983,5,102,0,0,983,984,5,117,0,0,984,985,5,110,0,0,985,986,5,99,0,0,986,987,5,116,0,0,987,988,5,105,0,0,988,989,5,111,0,0,989,990,5,110,0,0,990,150,1,0,0,0,991,992,5,104,0,0,992,993,5,97,0,0,993,994,5,115,0,0,994,995,5,116,0,0,995,996,5,121,0,0,996,997,5,112,0,0,997,998,5,101,0,0,998,152,1,0,0,0,999,1e3,5,105,0,0,1e3,1001,5,102,0,0,1001,154,1,0,0,0,1002,1003,5,105,0,0,1003,1004,5,109,0,0,1004,1005,5,112,0,0,1005,1006,5,108,0,0,1006,1007,5,105,0,0,1007,1008,5,101,0,0,1008,1009,5,115,0,0,1009,156,1,0,0,0,1010,1011,5,105,0,0,1011,1012,5,109,0,0,1012,1013,5,112,0,0,1013,1014,5,111,0,0,1014,1015,5,114,0,0,1015,1016,5,116,0,0,1016,158,1,0,0,0,1017,1018,5,105,0,0,1018,1019,5,110,0,0,1019,160,1,0,0,0,1020,1021,5,105,0,0,1021,1022,5,110,0,0,1022,1023,5,99,0,0,1023,1024,5,108,0,0,1024,1025,5,117,0,0,1025,1026,5,100,0,0,1026,1027,5,101,0,0,1027,162,1,0,0,0,1028,1029,5,105,0,0,1029,1030,5,110,0,0,1030,1031,5,100,0,0,1031,1032,5,105,0,0,1032,1033,5,118,0,0,1033,1034,5,105,0,0,1034,1035,5,100,0,0,1035,1036,5,117,0,0,1036,1037,5,97,0,0,1037,1038,5,108,0,0,1038,164,1,0,0,0,1039,1040,5,105,0,0,1040,1041,5,110,0,0,1041,1042,5,111,0,0,1042,1043,5,117,0,0,1043,1044,5,116,0,0,1044,166,1,0,0,0,1045,1046,5,105,0,0,1046,1047,5,110,0,0,1047,1048,5,116,0,0,1048,1049,5,101,0,0,1049,1050,5,114,0,0,1050,1051,5,97,0,0,1051,1052,5,99,0,0,1052,1053,5,116,0,0,1053,1054,5,105,0,0,1054,1055,5,111,0,0,1055,1056,5,110,0,0,1056,168,1,0,0,0,1057,1058,5,105,0,0,1058,1059,5,110,0,0,1059,1060,5,116,0,0,1060,1061,5,101,0,0,1061,1062,5,114,0,0,1062,1063,5,102,0,0,1063,1064,5,97,0,0,1064,1065,5,99,0,0,1065,1066,5,101,0,0,1066,170,1,0,0,0,1067,1068,5,105,0,0,1068,1069,5,110,0,0,1069,1070,5,116,0,0,1070,1071,5,101,0,0,1071,1072,5,114,0,0,1072,1073,5,115,0,0,1073,1074,5,101,0,0,1074,1075,5,99,0,0,1075,1076,5,116,0,0,1076,1077,5,115,0,0,1077,172,1,0,0,0,1078,1079,5,105,0,0,1079,1080,5,110,0,0,1080,1081,5,118,0,0,1081,174,1,0,0,0,1082,1083,5,105,0,0,1083,1084,5,110,0,0,1084,1085,5,118,0,0,1085,1086,5,101,0,0,1086,1087,5,114,0,0,1087,1088,5,115,0,0,1088,1089,5,101,0,0,1089,176,1,0,0,0,1090,1091,5,105,0,0,1091,1092,5,110,0,0,1092,1093,5,118,0,0,1093,1094,5,101,0,0,1094,1095,5,114,0,0,1095,1096,5,116,0,0,1096,1097,5,105,0,0,1097,1098,5,110,0,0,1098,1099,5,103,0,0,1099,178,1,0,0,0,1100,1101,5,105,0,0,1101,1102,5,115,0,0,1102,1103,5,116,0,0,1103,1104,5,121,0,0,1104,1105,5,112,0,0,1105,1106,5,101,0,0,1106,180,1,0,0,0,1107,1108,5,105,0,0,1108,1109,5,116,0,0,1109,1110,5,101,0,0,1110,1111,5,109,0,0,1111,182,1,0,0,0,1112,1113,5,106,0,0,1113,1114,5,111,0,0,1114,1115,5,105,0,0,1115,1116,5,110,0,0,1116,184,1,0,0,0,1117,1118,5,108,0,0,1118,1119,5,97,0,0,1119,1120,5,110,0,0,1120,1121,5,103,0,0,1121,1122,5,117,0,0,1122,1123,5,97,0,0,1123,1124,5,103,0,0,1124,1125,5,101,0,0,1125,186,1,0,0,0,1126,1127,5,108,0,0,1127,1128,5,105,0,0,1128,1129,5,98,0,0,1129,1130,5,114,0,0,1130,1131,5,97,0,0,1131,1132,5,114,0,0,1132,1133,5,121,0,0,1133,188,1,0,0,0,1134,1135,5,108,0,0,1135,1136,5,111,0,0,1136,1137,5,99,0,0,1137,1138,5,97,0,0,1138,1139,5,108,0,0,1139,1140,5,101,0,0,1140,190,1,0,0,0,1141,1142,5,108,0,0,1142,1143,5,111,0,0,1143,1144,5,111,0,0,1144,1145,5,112,0,0,1145,192,1,0,0,0,1146,1147,5,109,0,0,1147,1148,5,101,0,0,1148,1149,5,109,0,0,1149,1150,5,98,0,0,1150,1151,5,101,0,0,1151,1152,5,114,0,0,1152,194,1,0,0,0,1153,1154,5,109,0,0,1154,1155,5,101,0,0,1155,1156,5,114,0,0,1156,1157,5,103,0,0,1157,1158,5,101,0,0,1158,196,1,0,0,0,1159,1160,5,109,0,0,1160,1161,5,101,0,0,1161,1162,5,115,0,0,1162,1163,5,115,0,0,1163,1164,5,97,0,0,1164,1165,5,103,0,0,1165,1166,5,101,0,0,1166,198,1,0,0,0,1167,1168,5,109,0,0,1168,1169,5,101,0,0,1169,1170,5,116,0,0,1170,1171,5,97,0,0,1171,200,1,0,0,0,1172,1173,5,109,0,0,1173,1174,5,101,0,0,1174,1175,5,116,0,0,1175,1176,5,97,0,0,1176,1177,5,99,0,0,1177,1178,5,108,0,0,1178,1179,5,97,0,0,1179,1180,5,115,0,0,1180,1181,5,115,0,0,1181,202,1,0,0,0,1182,1183,5,109,0,0,1183,1184,5,101,0,0,1184,1185,5,116,0,0,1185,1186,5,97,0,0,1186,1187,5,100,0,0,1187,1188,5,97,0,0,1188,1189,5,116,0,0,1189,1190,5,97,0,0,1190,204,1,0,0,0,1191,1192,5,109,0,0,1192,1193,5,117,0,0,1193,1194,5,108,0,0,1194,1195,5,116,0,0,1195,1196,5,105,0,0,1196,1197,5,112,0,0,1197,1198,5,108,0,0,1198,1199,5,105,0,0,1199,1200,5,99,0,0,1200,1201,5,105,0,0,1201,1202,5,116,0,0,1202,1203,5,121,0,0,1203,206,1,0,0,0,1204,1205,5,110,0,0,1205,1206,5,97,0,0,1206,1207,5,109,0,0,1207,1208,5,101,0,0,1208,1209,5,115,0,0,1209,1210,5,112,0,0,1210,1211,5,97,0,0,1211,1212,5,99,0,0,1212,1213,5,101,0,0,1213,208,1,0,0,0,1214,1215,5,110,0,0,1215,1216,5,101,0,0,1216,1217,5,119,0,0,1217,210,1,0,0,0,1218,1219,5,110,0,0,1219,1220,5,111,0,0,1220,1221,5,110,0,0,1221,1222,5,117,0,0,1222,1223,5,110,0,0,1223,1224,5,105,0,0,1224,1225,5,113,0,0,1225,1226,5,117,0,0,1226,1227,5,101,0,0,1227,212,1,0,0,0,1228,1229,5,110,0,0,1229,1230,5,111,0,0,1230,1231,5,116,0,0,1231,214,1,0,0,0,1232,1233,5,110,0,0,1233,1234,5,117,0,0,1234,1235,5,108,0,0,1235,1236,5,108,0,0,1236,216,1,0,0,0,1237,1238,5,111,0,0,1238,1239,5,98,0,0,1239,1240,5,106,0,0,1240,1241,5,101,0,0,1241,1242,5,99,0,0,1242,1243,5,116,0,0,1243,1244,5,105,0,0,1244,1245,5,118,0,0,1245,1246,5,101,0,0,1246,218,1,0,0,0,1247,1248,5,111,0,0,1248,1249,5,99,0,0,1249,1250,5,99,0,0,1250,1251,5,117,0,0,1251,1252,5,114,0,0,1252,1253,5,114,0,0,1253,1254,5,101,0,0,1254,1255,5,110,0,0,1255,1256,5,99,0,0,1256,1257,5,101,0,0,1257,220,1,0,0,0,1258,1259,5,111,0,0,1259,1260,5,102,0,0,1260,222,1,0,0,0,1261,1262,5,111,0,0,1262,1263,5,114,0,0,1263,224,1,0,0,0,1264,1265,5,111,0,0,1265,1266,5,114,0,0,1266,1267,5,100,0,0,1267,1268,5,101,0,0,1268,1269,5,114,0,0,1269,1270,5,101,0,0,1270,1271,5,100,0,0,1271,226,1,0,0,0,1272,1273,5,111,0,0,1273,1274,5,117,0,0,1274,1275,5,116,0,0,1275,228,1,0,0,0,1276,1277,5,112,0,0,1277,1278,5,97,0,0,1278,1279,5,99,0,0,1279,1280,5,107,0,0,1280,1281,5,97,0,0,1281,1282,5,103,0,0,1282,1283,5,101,0,0,1283,230,1,0,0,0,1284,1285,5,112,0,0,1285,1286,5,97,0,0,1286,1287,5,114,0,0,1287,1288,5,97,0,0,1288,1289,5,108,0,0,1289,1290,5,108,0,0,1290,1291,5,101,0,0,1291,1292,5,108,0,0,1292,232,1,0,0,0,1293,1294,5,112,0,0,1294,1295,5,97,0,0,1295,1296,5,114,0,0,1296,1297,5,116,0,0,1297,234,1,0,0,0,1298,1299,5,112,0,0,1299,1300,5,101,0,0,1300,1301,5,114,0,0,1301,1302,5,102,0,0,1302,1303,5,111,0,0,1303,1304,5,114,0,0,1304,1305,5,109,0,0,1305,236,1,0,0,0,1306,1307,5,112,0,0,1307,1308,5,111,0,0,1308,1309,5,114,0,0,1309,1310,5,116,0,0,1310,238,1,0,0,0,1311,1312,5,112,0,0,1312,1313,5,111,0,0,1313,1314,5,114,0,0,1314,1315,5,116,0,0,1315,1316,5,105,0,0,1316,1317,5,111,0,0,1317,1318,5,110,0,0,1318,240,1,0,0,0,1319,1320,5,112,0,0,1320,1321,5,114,0,0,1321,1322,5,101,0,0,1322,1323,5,100,0,0,1323,1324,5,105,0,0,1324,1325,5,99,0,0,1325,1326,5,97,0,0,1326,1327,5,116,0,0,1327,1328,5,101,0,0,1328,242,1,0,0,0,1329,1330,5,112,0,0,1330,1331,5,114,0,0,1331,1332,5,105,0,0,1332,1333,5,118,0,0,1333,1334,5,97,0,0,1334,1335,5,116,0,0,1335,1336,5,101,0,0,1336,244,1,0,0,0,1337,1338,5,112,0,0,1338,1339,5,114,0,0,1339,1340,5,111,0,0,1340,1341,5,116,0,0,1341,1342,5,101,0,0,1342,1343,5,99,0,0,1343,1344,5,116,0,0,1344,1345,5,101,0,0,1345,1346,5,100,0,0,1346,246,1,0,0,0,1347,1348,5,112,0,0,1348,1349,5,117,0,0,1349,1350,5,98,0,0,1350,1351,5,108,0,0,1351,1352,5,105,0,0,1352,1353,5,99,0,0,1353,248,1,0,0,0,1354,1355,5,114,0,0,1355,1356,5,101,0,0,1356,1357,5,100,0,0,1357,1358,5,101,0,0,1358,1359,5,102,0,0,1359,1360,5,105,0,0,1360,1361,5,110,0,0,1361,1362,5,101,0,0,1362,1363,5,115,0,0,1363,250,1,0,0,0,1364,1365,5,114,0,0,1365,1366,5,101,0,0,1366,1367,5,100,0,0,1367,1368,5,101,0,0,1368,1369,5,102,0,0,1369,1370,5,105,0,0,1370,1371,5,110,0,0,1371,1372,5,105,0,0,1372,1373,5,116,0,0,1373,1374,5,105,0,0,1374,1375,5,111,0,0,1375,1376,5,110,0,0,1376,252,1,0,0,0,1377,1378,5,114,0,0,1378,1379,5,101,0,0,1379,1380,5,102,0,0,1380,254,1,0,0,0,1381,1382,5,114,0,0,1382,1383,5,101,0,0,1383,1384,5,102,0,0,1384,1385,5,101,0,0,1385,1386,5,114,0,0,1386,1387,5,101,0,0,1387,1388,5,110,0,0,1388,1389,5,99,0,0,1389,1390,5,101,0,0,1390,1391,5,115,0,0,1391,256,1,0,0,0,1392,1393,5,114,0,0,1393,1394,5,101,0,0,1394,1395,5,110,0,0,1395,1396,5,100,0,0,1396,1397,5,101,0,0,1397,1398,5,114,0,0,1398,258,1,0,0,0,1399,1400,5,114,0,0,1400,1401,5,101,0,0,1401,1402,5,110,0,0,1402,1403,5,100,0,0,1403,1404,5,101,0,0,1404,1405,5,114,0,0,1405,1406,5,105,0,0,1406,1407,5,110,0,0,1407,1408,5,103,0,0,1408,260,1,0,0,0,1409,1410,5,114,0,0,1410,1411,5,101,0,0,1411,1412,5,112,0,0,1412,262,1,0,0,0,1413,1414,5,114,0,0,1414,1415,5,101,0,0,1415,1416,5,113,0,0,1416,1417,5,117,0,0,1417,1418,5,105,0,0,1418,1419,5,114,0,0,1419,1420,5,101,0,0,1420,264,1,0,0,0,1421,1422,5,114,0,0,1422,1423,5,101,0,0,1423,1424,5,113,0,0,1424,1425,5,117,0,0,1425,1426,5,105,0,0,1426,1427,5,114,0,0,1427,1428,5,101,0,0,1428,1429,5,109,0,0,1429,1430,5,101,0,0,1430,1431,5,110,0,0,1431,1432,5,116,0,0,1432,266,1,0,0,0,1433,1434,5,114,0,0,1434,1435,5,101,0,0,1435,1436,5,116,0,0,1436,1437,5,117,0,0,1437,1438,5,114,0,0,1438,1439,5,110,0,0,1439,268,1,0,0,0,1440,1441,5,115,0,0,1441,1442,5,97,0,0,1442,1443,5,116,0,0,1443,1444,5,105,0,0,1444,1445,5,115,0,0,1445,1446,5,102,0,0,1446,1447,5,121,0,0,1447,270,1,0,0,0,1448,1449,5,115,0,0,1449,1450,5,101,0,0,1450,1451,5,110,0,0,1451,1452,5,100,0,0,1452,272,1,0,0,0,1453,1454,5,115,0,0,1454,1455,5,110,0,0,1455,1456,5,97,0,0,1456,1457,5,112,0,0,1457,1458,5,115,0,0,1458,1459,5,104,0,0,1459,1460,5,111,0,0,1460,1461,5,116,0,0,1461,274,1,0,0,0,1462,1463,5,115,0,0,1463,1464,5,112,0,0,1464,1465,5,101,0,0,1465,1466,5,99,0,0,1466,1467,5,105,0,0,1467,1468,5,97,0,0,1468,1469,5,108,0,0,1469,1470,5,105,0,0,1470,1471,5,122,0,0,1471,1472,5,97,0,0,1472,1473,5,116,0,0,1473,1474,5,105,0,0,1474,1475,5,111,0,0,1475,1476,5,110,0,0,1476,276,1,0,0,0,1477,1478,5,115,0,0,1478,1479,5,112,0,0,1479,1480,5,101,0,0,1480,1481,5,99,0,0,1481,1482,5,105,0,0,1482,1483,5,97,0,0,1483,1484,5,108,0,0,1484,1485,5,105,0,0,1485,1486,5,122,0,0,1486,1487,5,101,0,0,1487,1488,5,115,0,0,1488,278,1,0,0,0,1489,1490,5,115,0,0,1490,1491,5,116,0,0,1491,1492,5,97,0,0,1492,1493,5,107,0,0,1493,1494,5,101,0,0,1494,1495,5,104,0,0,1495,1496,5,111,0,0,1496,1497,5,108,0,0,1497,1498,5,100,0,0,1498,1499,5,101,0,0,1499,1500,5,114,0,0,1500,280,1,0,0,0,1501,1502,5,115,0,0,1502,1503,5,116,0,0,1503,1504,5,97,0,0,1504,1505,5,110,0,0,1505,1506,5,100,0,0,1506,1507,5,97,0,0,1507,1508,5,114,0,0,1508,1509,5,100,0,0,1509,282,1,0,0,0,1510,1511,5,115,0,0,1511,1512,5,116,0,0,1512,1513,5,97,0,0,1513,1514,5,116,0,0,1514,1515,5,101,0,0,1515,284,1,0,0,0,1516,1517,5,115,0,0,1517,1518,5,116,0,0,1518,1519,5,101,0,0,1519,1520,5,112,0,0,1520,286,1,0,0,0,1521,1522,5,115,0,0,1522,1523,5,116,0,0,1523,1524,5,114,0,0,1524,1525,5,117,0,0,1525,1526,5,99,0,0,1526,1527,5,116,0,0,1527,288,1,0,0,0,1528,1529,5,115,0,0,1529,1530,5,117,0,0,1530,1531,5,98,0,0,1531,1532,5,99,0,0,1532,1533,5,108,0,0,1533,1534,5,97,0,0,1534,1535,5,115,0,0,1535,1536,5,115,0,0,1536,1537,5,105,0,0,1537,1538,5,102,0,0,1538,1539,5,105,0,0,1539,1540,5,101,0,0,1540,1541,5,114,0,0,1541,290,1,0,0,0,1542,1543,5,115,0,0,1543,1544,5,117,0,0,1544,1545,5,98,0,0,1545,1546,5,106,0,0,1546,1547,5,101,0,0,1547,1548,5,99,0,0,1548,1549,5,116,0,0,1549,292,1,0,0,0,1550,1551,5,115,0,0,1551,1552,5,117,0,0,1552,1553,5,98,0,0,1553,1554,5,115,0,0,1554,1555,5,101,0,0,1555,1556,5,116,0,0,1556,294,1,0,0,0,1557,1558,5,115,0,0,1558,1559,5,117,0,0,1559,1560,5,98,0,0,1560,1561,5,115,0,0,1561,1562,5,101,0,0,1562,1563,5,116,0,0,1563,1564,5,115,0,0,1564,296,1,0,0,0,1565,1566,5,115,0,0,1566,1567,5,117,0,0,1567,1568,5,98,0,0,1568,1569,5,116,0,0,1569,1570,5,121,0,0,1570,1571,5,112,0,0,1571,1572,5,101,0,0,1572,298,1,0,0,0,1573,1574,5,115,0,0,1574,1575,5,117,0,0,1575,1576,5,99,0,0,1576,1577,5,99,0,0,1577,1578,5,101,0,0,1578,1579,5,115,0,0,1579,1580,5,115,0,0,1580,1581,5,105,0,0,1581,1582,5,111,0,0,1582,1583,5,110,0,0,1583,300,1,0,0,0,1584,1585,5,116,0,0,1585,1586,5,101,0,0,1586,1587,5,114,0,0,1587,1588,5,109,0,0,1588,1589,5,105,0,0,1589,1590,5,110,0,0,1590,1591,5,97,0,0,1591,1592,5,116,0,0,1592,1593,5,101,0,0,1593,302,1,0,0,0,1594,1595,5,116,0,0,1595,1596,5,104,0,0,1596,1597,5,101,0,0,1597,1598,5,110,0,0,1598,304,1,0,0,0,1599,1600,5,116,0,0,1600,1601,5,105,0,0,1601,1602,5,109,0,0,1602,1603,5,101,0,0,1603,1604,5,115,0,0,1604,1605,5,108,0,0,1605,1606,5,105,0,0,1606,1607,5,99,0,0,1607,1608,5,101,0,0,1608,306,1,0,0,0,1609,1610,5,116,0,0,1610,1611,5,111,0,0,1611,308,1,0,0,0,1612,1613,5,116,0,0,1613,1614,5,114,0,0,1614,1615,5,97,0,0,1615,1616,5,110,0,0,1616,1617,5,115,0,0,1617,1618,5,105,0,0,1618,1619,5,116,0,0,1619,1620,5,105,0,0,1620,1621,5,111,0,0,1621,1622,5,110,0,0,1622,310,1,0,0,0,1623,1624,5,116,0,0,1624,1625,5,114,0,0,1625,1626,5,117,0,0,1626,1627,5,101,0,0,1627,312,1,0,0,0,1628,1629,5,116,0,0,1629,1630,5,121,0,0,1630,1631,5,112,0,0,1631,1632,5,101,0,0,1632,314,1,0,0,0,1633,1634,5,116,0,0,1634,1635,5,121,0,0,1635,1636,5,112,0,0,1636,1637,5,101,0,0,1637,1638,5,100,0,0,1638,316,1,0,0,0,1639,1640,5,116,0,0,1640,1641,5,121,0,0,1641,1642,5,112,0,0,1642,1643,5,105,0,0,1643,1644,5,110,0,0,1644,1645,5,103,0,0,1645,318,1,0,0,0,1646,1647,5,117,0,0,1647,1648,5,110,0,0,1648,1649,5,105,0,0,1649,1650,5,111,0,0,1650,1651,5,110,0,0,1651,1652,5,115,0,0,1652,320,1,0,0,0,1653,1654,5,117,0,0,1654,1655,5,110,0,0,1655,1656,5,116,0,0,1656,1657,5,105,0,0,1657,1658,5,108,0,0,1658,322,1,0,0,0,1659,1660,5,117,0,0,1660,1661,5,115,0,0,1661,1662,5,101,0,0,1662,324,1,0,0,0,1663,1664,5,118,0,0,1664,1665,5,97,0,0,1665,1666,5,114,0,0,1666,326,1,0,0,0,1667,1668,5,118,0,0,1668,1669,5,97,0,0,1669,1670,5,114,0,0,1670,1671,5,105,0,0,1671,1672,5,97,0,0,1672,1673,5,110,0,0,1673,1674,5,116,0,0,1674,328,1,0,0,0,1675,1676,5,118,0,0,1676,1677,5,97,0,0,1677,1678,5,114,0,0,1678,1679,5,105,0,0,1679,1680,5,97,0,0,1680,1681,5,116,0,0,1681,1682,5,105,0,0,1682,1683,5,111,0,0,1683,1684,5,110,0,0,1684,330,1,0,0,0,1685,1686,5,118,0,0,1686,1687,5,101,0,0,1687,1688,5,114,0,0,1688,1689,5,105,0,0,1689,1690,5,102,0,0,1690,1691,5,105,0,0,1691,1692,5,99,0,0,1692,1693,5,97,0,0,1693,1694,5,116,0,0,1694,1695,5,105,0,0,1695,1696,5,111,0,0,1696,1697,5,110,0,0,1697,332,1,0,0,0,1698,1699,5,118,0,0,1699,1700,5,101,0,0,1700,1701,5,114,0,0,1701,1702,5,105,0,0,1702,1703,5,102,0,0,1703,1704,5,121,0,0,1704,334,1,0,0,0,1705,1706,5,118,0,0,1706,1707,5,105,0,0,1707,1708,5,97,0,0,1708,336,1,0,0,0,1709,1710,5,118,0,0,1710,1711,5,105,0,0,1711,1712,5,101,0,0,1712,1713,5,119,0,0,1713,338,1,0,0,0,1714,1715,5,118,0,0,1715,1716,5,105,0,0,1716,1717,5,101,0,0,1717,1718,5,119,0,0,1718,1719,5,112,0,0,1719,1720,5,111,0,0,1720,1721,5,105,0,0,1721,1722,5,110,0,0,1722,1723,5,116,0,0,1723,340,1,0,0,0,1724,1725,5,119,0,0,1725,1726,5,104,0,0,1726,1727,5,101,0,0,1727,1728,5,110,0,0,1728,342,1,0,0,0,1729,1730,5,119,0,0,1730,1731,5,104,0,0,1731,1732,5,105,0,0,1732,1733,5,108,0,0,1733,1734,5,101,0,0,1734,344,1,0,0,0,1735,1736,5,120,0,0,1736,1737,5,111,0,0,1737,1738,5,114,0,0,1738,346,1,0,0,0,1739,1740,5,33,0,0,1740,1741,5,61,0,0,1741,1742,5,61,0,0,1742,348,1,0,0,0,1743,1744,5,58,0,0,1744,1745,5,58,0,0,1745,1746,5,62,0,0,1746,350,1,0,0,0,1747,1748,5,58,0,0,1748,1749,5,62,0,0,1749,1750,5,62,0,0,1750,352,1,0,0,0,1751,1752,5,61,0,0,1752,1753,5,61,0,0,1753,1754,5,61,0,0,1754,354,1,0,0,0,1755,1756,5,33,0,0,1756,1757,5,61,0,0,1757,356,1,0,0,0,1758,1759,5,42,0,0,1759,1760,5,42,0,0,1760,358,1,0,0,0,1761,1762,5,45,0,0,1762,1763,5,62,0,0,1763,360,1,0,0,0,1764,1765,5,46,0,0,1765,1766,5,46,0,0,1766,362,1,0,0,0,1767,1768,5,46,0,0,1768,1769,5,63,0,0,1769,364,1,0,0,0,1770,1771,5,58,0,0,1771,1772,5,58,0,0,1772,366,1,0,0,0,1773,1774,5,58,0,0,1774,1775,5,61,0,0,1775,368,1,0,0,0,1776,1777,5,58,0,0,1777,1778,5,62,0,0,1778,370,1,0,0,0,1779,1780,5,60,0,0,1780,1781,5,61,0,0,1781,372,1,0,0,0,1782,1783,5,61,0,0,1783,1784,5,61,0,0,1784,374,1,0,0,0,1785,1786,5,61,0,0,1786,1787,5,62,0,0,1787,376,1,0,0,0,1788,1789,5,62,0,0,1789,1790,5,61,0,0,1790,378,1,0,0,0,1791,1792,5,63,0,0,1792,1793,5,63,0,0,1793,380,1,0,0,0,1794,1795,5,64,0,0,1795,1796,5,64,0,0,1796,382,1,0,0,0,1797,1798,5,35,0,0,1798,384,1,0,0,0,1799,1800,5,36,0,0,1800,386,1,0,0,0,1801,1802,5,37,0,0,1802,388,1,0,0,0,1803,1804,5,38,0,0,1804,390,1,0,0,0,1805,1806,5,40,0,0,1806,392,1,0,0,0,1807,1808,5,41,0,0,1808,394,1,0,0,0,1809,1810,5,42,0,0,1810,396,1,0,0,0,1811,1812,5,43,0,0,1812,398,1,0,0,0,1813,1814,5,44,0,0,1814,400,1,0,0,0,1815,1816,5,45,0,0,1816,402,1,0,0,0,1817,1818,5,46,0,0,1818,404,1,0,0,0,1819,1820,5,47,0,0,1820,406,1,0,0,0,1821,1822,5,58,0,0,1822,408,1,0,0,0,1823,1824,5,59,0,0,1824,410,1,0,0,0,1825,1826,5,60,0,0,1826,412,1,0,0,0,1827,1828,5,61,0,0,1828,414,1,0,0,0,1829,1830,5,62,0,0,1830,416,1,0,0,0,1831,1832,5,63,0,0,1832,418,1,0,0,0,1833,1834,5,64,0,0,1834,420,1,0,0,0,1835,1836,5,91,0,0,1836,422,1,0,0,0,1837,1838,5,93,0,0,1838,424,1,0,0,0,1839,1840,5,94,0,0,1840,426,1,0,0,0,1841,1842,5,123,0,0,1842,428,1,0,0,0,1843,1844,5,124,0,0,1844,430,1,0,0,0,1845,1846,5,125,0,0,1846,432,1,0,0,0,1847,1848,5,126,0,0,1848,434,1,0,0,0,1849,1853,7,0,0,0,1850,1852,7,1,0,0,1851,1850,1,0,0,0,1852,1855,1,0,0,0,1853,1851,1,0,0,0,1853,1854,1,0,0,0,1854,436,1,0,0,0,1855,1853,1,0,0,0,1856,1862,5,39,0,0,1857,1858,5,92,0,0,1858,1861,9,0,0,0,1859,1861,8,2,0,0,1860,1857,1,0,0,0,1860,1859,1,0,0,0,1861,1864,1,0,0,0,1862,1860,1,0,0,0,1862,1863,1,0,0,0,1863,1865,1,0,0,0,1864,1862,1,0,0,0,1865,1866,5,39,0,0,1866,438,1,0,0,0,1867,1873,5,34,0,0,1868,1869,5,92,0,0,1869,1872,9,0,0,0,1870,1872,8,3,0,0,1871,1868,1,0,0,0,1871,1870,1,0,0,0,1872,1875,1,0,0,0,1873,1871,1,0,0,0,1873,1874,1,0,0,0,1874,1876,1,0,0,0,1875,1873,1,0,0,0,1876,1877,5,34,0,0,1877,440,1,0,0,0,1878,1880,7,4,0,0,1879,1878,1,0,0,0,1880,1881,1,0,0,0,1881,1879,1,0,0,0,1881,1882,1,0,0,0,1882,442,1,0,0,0,1883,1885,7,4,0,0,1884,1883,1,0,0,0,1885,1888,1,0,0,0,1886,1884,1,0,0,0,1886,1887,1,0,0,0,1887,1889,1,0,0,0,1888,1886,1,0,0,0,1889,1891,5,46,0,0,1890,1892,7,4,0,0,1891,1890,1,0,0,0,1892,1893,1,0,0,0,1893,1891,1,0,0,0,1893,1894,1,0,0,0,1894,1904,1,0,0,0,1895,1897,7,5,0,0,1896,1898,7,6,0,0,1897,1896,1,0,0,0,1897,1898,1,0,0,0,1898,1900,1,0,0,0,1899,1901,7,4,0,0,1900,1899,1,0,0,0,1901,1902,1,0,0,0,1902,1900,1,0,0,0,1902,1903,1,0,0,0,1903,1905,1,0,0,0,1904,1895,1,0,0,0,1904,1905,1,0,0,0,1905,1921,1,0,0,0,1906,1908,7,4,0,0,1907,1906,1,0,0,0,1908,1909,1,0,0,0,1909,1907,1,0,0,0,1909,1910,1,0,0,0,1910,1911,1,0,0,0,1911,1913,7,5,0,0,1912,1914,7,6,0,0,1913,1912,1,0,0,0,1913,1914,1,0,0,0,1914,1916,1,0,0,0,1915,1917,7,4,0,0,1916,1915,1,0,0,0,1917,1918,1,0,0,0,1918,1916,1,0,0,0,1918,1919,1,0,0,0,1919,1921,1,0,0,0,1920,1886,1,0,0,0,1920,1907,1,0,0,0,1921,444,1,0,0,0,1922,1923,5,47,0,0,1923,1924,5,42,0,0,1924,1928,1,0,0,0,1925,1927,9,0,0,0,1926,1925,1,0,0,0,1927,1930,1,0,0,0,1928,1929,1,0,0,0,1928,1926,1,0,0,0,1929,1931,1,0,0,0,1930,1928,1,0,0,0,1931,1932,5,42,0,0,1932,1946,5,47,0,0,1933,1934,5,47,0,0,1934,1935,5,47,0,0,1935,1936,5,42,0,0,1936,1940,1,0,0,0,1937,1939,9,0,0,0,1938,1937,1,0,0,0,1939,1942,1,0,0,0,1940,1941,1,0,0,0,1940,1938,1,0,0,0,1941,1943,1,0,0,0,1942,1940,1,0,0,0,1943,1944,5,42,0,0,1944,1946,5,47,0,0,1945,1922,1,0,0,0,1945,1933,1,0,0,0,1946,446,1,0,0,0,1947,1948,5,47,0,0,1948,1949,5,47,0,0,1949,1950,1,0,0,0,1950,1954,8,7,0,0,1951,1953,8,8,0,0,1952,1951,1,0,0,0,1953,1956,1,0,0,0,1954,1952,1,0,0,0,1954,1955,1,0,0,0,1955,1957,1,0,0,0,1956,1954,1,0,0,0,1957,1958,6,223,0,0,1958,448,1,0,0,0,1959,1960,5,47,0,0,1960,1961,5,47,0,0,1961,1962,1,0,0,0,1962,1963,6,224,0,0,1963,450,1,0,0,0,1964,1966,7,9,0,0,1965,1964,1,0,0,0,1966,1967,1,0,0,0,1967,1965,1,0,0,0,1967,1968,1,0,0,0,1968,1969,1,0,0,0,1969,1970,6,225,0,0,1970,452,1,0,0,0,21,0,1853,1860,1862,1871,1873,1881,1886,1893,1897,1902,1904,1909,1913,1918,1920,1928,1940,1945,1954,1967,1,6,0,0];static __ATN;static get _ATN(){return _SysMLv2Lexer.__ATN||(_SysMLv2Lexer.__ATN=new ATNDeserializer().deserialize(_SysMLv2Lexer._serializedATN)),_SysMLv2Lexer.__ATN}static vocabulary=new Vocabulary(_SysMLv2Lexer.literalNames,_SysMLv2Lexer.symbolicNames,[]);get vocabulary(){return _SysMLv2Lexer.vocabulary}static decisionsToDFA=_SysMLv2Lexer._ATN.decisionToState.map((ds,index)=>new DFA(ds,index))};var SysMLv2Parser=class _SysMLv2Parser extends Parser{static ABOUT=1;static ABSTRACT=2;static ACCEPT=3;static ACTION=4;static ACTOR=5;static AFTER=6;static ALIAS=7;static ALL=8;static ALLOCATE=9;static ALLOCATION=10;static ANALYSIS=11;static AND=12;static AS=13;static ASSERT=14;static ASSIGN=15;static ASSOC=16;static ASSUME=17;static AT=18;static ATTRIBUTE=19;static BEHAVIOR=20;static BIND=21;static BINDING=22;static BOOL=23;static BY=24;static CALC=25;static CASE=26;static CHAINS=27;static CLASS=28;static CLASSIFIER=29;static COMMENT=30;static COMPOSITE=31;static CONCERN=32;static CONJUGATE=33;static CONJUGATES=34;static CONJUGATION=35;static CONNECT=36;static CONNECTION=37;static CONNECTOR=38;static CONST=39;static CONSTANT=40;static CONSTRAINT=41;static CROSSES=42;static DATATYPE=43;static DECIDE=44;static DEF=45;static DEFAULT=46;static DEFINED=47;static DEPENDENCY=48;static DERIVED=49;static DIFFERENCES=50;static DISJOINING=51;static DISJOINT=52;static DO=53;static DOC=54;static ELSE=55;static END=56;static ENTRY=57;static ENUM=58;static EVENT=59;static EXHIBIT=60;static EXIT=61;static EXPOSE=62;static EXPR=63;static FALSE=64;static FEATURE=65;static FEATURED=66;static FEATURING=67;static FILTER=68;static FIRST=69;static FLOW=70;static FOR=71;static FORK=72;static FRAME=73;static FROM=74;static FUNCTION=75;static HASTYPE=76;static IF=77;static IMPLIES=78;static IMPORT=79;static IN=80;static INCLUDE=81;static INDIVIDUAL=82;static INOUT=83;static INTERACTION=84;static INTERFACE=85;static INTERSECTS=86;static INV=87;static INVERSE=88;static INVERTING=89;static ISTYPE=90;static ITEM=91;static JOIN=92;static LANGUAGE=93;static LIBRARY=94;static LOCALE=95;static LOOP=96;static MEMBER=97;static MERGE=98;static MESSAGE=99;static META=100;static METACLASS=101;static METADATA=102;static MULTIPLICITY=103;static NAMESPACE=104;static NEW=105;static NONUNIQUE=106;static NOT=107;static NULL=108;static OBJECTIVE=109;static OCCURRENCE=110;static OF=111;static OR=112;static ORDERED=113;static OUT=114;static PACKAGE=115;static PARALLEL=116;static PART=117;static PERFORM=118;static PORT=119;static PORTION=120;static PREDICATE=121;static PRIVATE=122;static PROTECTED=123;static PUBLIC=124;static REDEFINES=125;static REDEFINITION=126;static REF=127;static REFERENCES=128;static RENDER=129;static RENDERING=130;static REP=131;static REQUIRE=132;static REQUIREMENT=133;static RETURN=134;static SATISFY=135;static SEND=136;static SNAPSHOT=137;static SPECIALIZATION=138;static SPECIALIZES=139;static STAKEHOLDER=140;static STANDARD=141;static STATE=142;static STEP=143;static STRUCT=144;static SUBCLASSIFIER=145;static SUBJECT=146;static SUBSET=147;static SUBSETS=148;static SUBTYPE=149;static SUCCESSION=150;static TERMINATE=151;static THEN=152;static TIMESLICE=153;static TO=154;static TRANSITION=155;static TRUE=156;static TYPE=157;static TYPED=158;static TYPING=159;static UNIONS=160;static UNTIL=161;static USE=162;static VAR=163;static VARIANT=164;static VARIATION=165;static VERIFICATION=166;static VERIFY=167;static VIA=168;static VIEW=169;static VIEWPOINT=170;static WHEN=171;static WHILE=172;static XOR=173;static BANG_EQ_EQ=174;static COLON_COLON_GT=175;static COLON_GT_GT=176;static EQ_EQ_EQ=177;static BANG_EQ=178;static STAR_STAR=179;static ARROW=180;static DOT_DOT=181;static DOT_QUESTION=182;static COLON_COLON=183;static COLON_EQ=184;static COLON_GT=185;static LE=186;static EQ_EQ=187;static FAT_ARROW=188;static GE=189;static QUESTION_QUESTION=190;static AT_AT=191;static HASH=192;static DOLLAR=193;static PERCENT=194;static AMP=195;static LPAREN=196;static RPAREN=197;static STAR=198;static PLUS=199;static COMMA=200;static MINUS=201;static DOT=202;static SLASH=203;static COLON=204;static SEMI=205;static LT=206;static EQ=207;static GT=208;static QUESTION=209;static AT_SIGN=210;static LBRACK=211;static RBRACK=212;static CARET=213;static LBRACE=214;static PIPE=215;static RBRACE=216;static TILDE=217;static IDENTIFIER=218;static STRING=219;static DOUBLE_STRING=220;static INTEGER=221;static REAL=222;static REGULAR_COMMENT=223;static SINGLE_LINE_NOTE=224;static BARE_LINE_COMMENT=225;static WS=226;static RULE_ownedExpression=0;static RULE_typeReference=1;static RULE_sequenceExpressionList=2;static RULE_baseExpression=3;static RULE_nullExpression=4;static RULE_featureReferenceExpression=5;static RULE_metadataAccessExpression=6;static RULE_invocationExpression=7;static RULE_constructorExpression=8;static RULE_bodyExpression=9;static RULE_argumentList=10;static RULE_positionalArgumentList=11;static RULE_namedArgumentList=12;static RULE_namedArgument=13;static RULE_literalExpression=14;static RULE_literalBoolean=15;static RULE_literalString=16;static RULE_literalInteger=17;static RULE_literalReal=18;static RULE_literalInfinity=19;static RULE_argumentMember=20;static RULE_argumentExpressionMember=21;static RULE_name=22;static RULE_unreservedKeyword=23;static RULE_identification=24;static RULE_relationshipBody=25;static RULE_relationshipOwnedElement=26;static RULE_ownedRelatedElement=27;static RULE_dependency=28;static RULE_annotation=29;static RULE_ownedAnnotation=30;static RULE_annotatingElement=31;static RULE_comment=32;static RULE_documentation=33;static RULE_textualRepresentation=34;static RULE_rootNamespace=35;static RULE_namespace=36;static RULE_namespaceDeclaration=37;static RULE_namespaceBody=38;static RULE_namespaceBodyElement=39;static RULE_memberPrefix=40;static RULE_visibilityIndicator=41;static RULE_namespaceMember=42;static RULE_nonFeatureMember=43;static RULE_namespaceFeatureMember=44;static RULE_aliasMember=45;static RULE_qualifiedName=46;static RULE_importRule=47;static RULE_importDeclaration=48;static RULE_membershipImport=49;static RULE_namespaceImport=50;static RULE_filterPackage=51;static RULE_filterPackageMember=52;static RULE_memberElement=53;static RULE_nonFeatureElement=54;static RULE_featureElement=55;static RULE_type=56;static RULE_typePrefix=57;static RULE_typeDeclaration=58;static RULE_specializationPart=59;static RULE_conjugationPart=60;static RULE_typeRelationshipPart=61;static RULE_disjoiningPart=62;static RULE_unioningPart=63;static RULE_intersectingPart=64;static RULE_differencingPart=65;static RULE_typeBody=66;static RULE_typeBodyElement=67;static RULE_specialization=68;static RULE_ownedSpecialization=69;static RULE_specificType=70;static RULE_generalType=71;static RULE_conjugation=72;static RULE_ownedConjugation=73;static RULE_disjoining=74;static RULE_ownedDisjoining=75;static RULE_unioning=76;static RULE_intersecting=77;static RULE_differencing=78;static RULE_featureMember=79;static RULE_typeFeatureMember=80;static RULE_ownedFeatureMember=81;static RULE_classifier=82;static RULE_classifierDeclaration=83;static RULE_superclassingPart=84;static RULE_subclassification=85;static RULE_ownedSubclassification=86;static RULE_feature=87;static RULE_endFeaturePrefix=88;static RULE_basicFeaturePrefix=89;static RULE_featurePrefix=90;static RULE_ownedCrossFeatureMember=91;static RULE_ownedCrossFeature=92;static RULE_featureDirection=93;static RULE_featureDeclaration=94;static RULE_featureIdentification=95;static RULE_featureRelationshipPart=96;static RULE_chainingPart=97;static RULE_invertingPart=98;static RULE_typeFeaturingPart=99;static RULE_featureSpecializationPart=100;static RULE_multiplicityPart=101;static RULE_featureSpecialization=102;static RULE_typings=103;static RULE_typedBy=104;static RULE_subsettings=105;static RULE_subsets=106;static RULE_references=107;static RULE_crosses=108;static RULE_redefinitions=109;static RULE_redefines=110;static RULE_featureTyping=111;static RULE_ownedFeatureTyping=112;static RULE_subsetting=113;static RULE_ownedSubsetting=114;static RULE_ownedReferenceSubsetting=115;static RULE_ownedCrossSubsetting=116;static RULE_redefinition=117;static RULE_ownedRedefinition=118;static RULE_ownedFeatureChain=119;static RULE_featureChain=120;static RULE_ownedFeatureChaining=121;static RULE_featureInverting=122;static RULE_ownedFeatureInverting=123;static RULE_typeFeaturing=124;static RULE_ownedTypeFeaturing=125;static RULE_dataType=126;static RULE_class=127;static RULE_structure=128;static RULE_association=129;static RULE_associationStructure=130;static RULE_connector=131;static RULE_connectorDeclaration=132;static RULE_binaryConnectorDeclaration=133;static RULE_naryConnectorDeclaration=134;static RULE_connectorEndMember=135;static RULE_connectorEnd=136;static RULE_ownedCrossMultiplicityMember=137;static RULE_ownedCrossMultiplicity=138;static RULE_bindingConnector=139;static RULE_bindingConnectorDeclaration=140;static RULE_succession=141;static RULE_successionDeclaration=142;static RULE_behavior=143;static RULE_step=144;static RULE_function=145;static RULE_functionBody=146;static RULE_functionBodyPart=147;static RULE_returnFeatureMember=148;static RULE_resultExpressionMember=149;static RULE_expression=150;static RULE_predicate=151;static RULE_booleanExpression=152;static RULE_invariant=153;static RULE_ownedExpressionMember=154;static RULE_metadataReference=155;static RULE_typeReferenceMember=156;static RULE_typeResultMember=157;static RULE_referenceTyping=158;static RULE_emptyResultMember=159;static RULE_sequenceOperatorExpression=160;static RULE_sequenceExpressionListMember=161;static RULE_bodyArgumentMember=162;static RULE_bodyArgument=163;static RULE_bodyArgumentValue=164;static RULE_functionReferenceArgumentMember=165;static RULE_functionReferenceArgument=166;static RULE_functionReferenceArgumentValue=167;static RULE_functionReferenceExpression=168;static RULE_functionReferenceMember=169;static RULE_functionReference=170;static RULE_featureChainMember=171;static RULE_ownedFeatureChainMember=172;static RULE_featureReferenceMember=173;static RULE_featureReference=174;static RULE_elementReferenceMember=175;static RULE_constructorResultMember=176;static RULE_constructorResult=177;static RULE_instantiatedTypeMember=178;static RULE_instantiatedTypeReference=179;static RULE_namedArgumentMember=180;static RULE_parameterRedefinition=181;static RULE_expressionBodyMember=182;static RULE_expressionBody=183;static RULE_booleanValue=184;static RULE_realValue=185;static RULE_interaction=186;static RULE_flow=187;static RULE_successionFlow=188;static RULE_flowDeclaration=189;static RULE_payloadFeatureMember=190;static RULE_payloadFeature=191;static RULE_payloadFeatureSpecializationPart=192;static RULE_flowEndMember=193;static RULE_flowEnd=194;static RULE_flowFeatureMember=195;static RULE_flowFeature=196;static RULE_flowFeatureRedefinition=197;static RULE_valuePart=198;static RULE_featureValue=199;static RULE_multiplicity=200;static RULE_multiplicitySubset=201;static RULE_multiplicityRange=202;static RULE_ownedMultiplicity=203;static RULE_ownedMultiplicityRange=204;static RULE_multiplicityBounds=205;static RULE_multiplicityExpressionMember=206;static RULE_metaclass=207;static RULE_prefixMetadataAnnotation=208;static RULE_prefixMetadataMember=209;static RULE_prefixMetadataFeature=210;static RULE_metadataFeature=211;static RULE_metadataFeatureDeclaration=212;static RULE_metadataBody=213;static RULE_metadataBodyElement=214;static RULE_metadataBodyFeatureMember=215;static RULE_metadataBodyFeature=216;static RULE_package=217;static RULE_libraryPackage=218;static RULE_packageDeclaration=219;static RULE_packageBody=220;static RULE_elementFilterMember=221;static RULE_dependencyDeclaration=222;static RULE_annotatingMember=223;static RULE_packageBodyElement=224;static RULE_packageMember=225;static RULE_definitionElement=226;static RULE_usageElement=227;static RULE_basicDefinitionPrefix=228;static RULE_definitionExtensionKeyword=229;static RULE_definitionPrefix=230;static RULE_definition=231;static RULE_definitionDeclaration=232;static RULE_definitionBody=233;static RULE_definitionBodyItem=234;static RULE_definitionBodyItemContent=235;static RULE_definitionMember=236;static RULE_variantUsageMember=237;static RULE_nonOccurrenceUsageMember=238;static RULE_occurrenceUsageMember=239;static RULE_structureUsageMember=240;static RULE_behaviorUsageMember=241;static RULE_refPrefix=242;static RULE_basicUsagePrefix=243;static RULE_endUsagePrefix=244;static RULE_usageExtensionKeyword=245;static RULE_unextendedUsagePrefix=246;static RULE_usagePrefix=247;static RULE_usage=248;static RULE_usageDeclaration=249;static RULE_usageCompletion=250;static RULE_usageBody=251;static RULE_defaultReferenceUsage=252;static RULE_referenceUsage=253;static RULE_endFeatureUsage=254;static RULE_variantReference=255;static RULE_nonOccurrenceUsageElement=256;static RULE_endOccurrenceUsageElement=257;static RULE_occurrenceUsageElement=258;static RULE_structureUsageElement=259;static RULE_behaviorUsageElement=260;static RULE_variantUsageElement=261;static RULE_subclassificationPart=262;static RULE_attributeDefinition=263;static RULE_attributeUsage=264;static RULE_enumerationDefinition=265;static RULE_enumerationBody=266;static RULE_enumerationUsageMember=267;static RULE_enumeratedValue=268;static RULE_enumerationUsage=269;static RULE_occurrenceDefinitionPrefix=270;static RULE_occurrenceDefinition=271;static RULE_individualDefinition=272;static RULE_emptyMultiplicityMember=273;static RULE_occurrenceUsagePrefix=274;static RULE_occurrenceUsage=275;static RULE_individualUsage=276;static RULE_portionUsage=277;static RULE_portionKind=278;static RULE_eventOccurrenceUsage=279;static RULE_sourceSuccessionMember=280;static RULE_sourceSuccession=281;static RULE_sourceEndMember=282;static RULE_sourceEnd=283;static RULE_itemDefinition=284;static RULE_itemUsage=285;static RULE_partDefinition=286;static RULE_partUsage=287;static RULE_portDefinition=288;static RULE_conjugatedPortDefinitionMember=289;static RULE_conjugatedPortDefinition=290;static RULE_portUsage=291;static RULE_conjugatedPortTyping=292;static RULE_connectionDefinition=293;static RULE_connectionUsage=294;static RULE_connectorPart=295;static RULE_binaryConnectorPart=296;static RULE_naryConnectorPart=297;static RULE_bindingConnectorAsUsage=298;static RULE_successionAsUsage=299;static RULE_interfaceDefinition=300;static RULE_interfaceBody=301;static RULE_interfaceBodyItem=302;static RULE_interfaceNonOccurrenceUsageMember=303;static RULE_interfaceNonOccurrenceUsageElement=304;static RULE_interfaceOccurrenceUsageMember=305;static RULE_interfaceOccurrenceUsageElement=306;static RULE_defaultInterfaceEnd=307;static RULE_interfaceUsage=308;static RULE_interfaceUsageDeclaration=309;static RULE_interfacePart=310;static RULE_binaryInterfacePart=311;static RULE_naryInterfacePart=312;static RULE_interfaceEndMember=313;static RULE_interfaceEnd=314;static RULE_allocationDefinition=315;static RULE_allocationUsage=316;static RULE_allocationUsageDeclaration=317;static RULE_flowDefinition=318;static RULE_message=319;static RULE_messageDeclaration=320;static RULE_messageEventMember=321;static RULE_messageEvent=322;static RULE_flowUsage=323;static RULE_successionFlowUsage=324;static RULE_flowPayloadFeatureMember=325;static RULE_flowPayloadFeature=326;static RULE_flowEndSubsetting=327;static RULE_featureChainPrefix=328;static RULE_actionDefinition=329;static RULE_actionBody=330;static RULE_actionBodyItem=331;static RULE_nonBehaviorBodyItem=332;static RULE_actionBehaviorMember=333;static RULE_initialNodeMember=334;static RULE_actionNodeMember=335;static RULE_actionTargetSuccessionMember=336;static RULE_guardedSuccessionMember=337;static RULE_actionUsage=338;static RULE_actionUsageDeclaration=339;static RULE_performActionUsage=340;static RULE_performActionUsageDeclaration=341;static RULE_actionNode=342;static RULE_actionNodeUsageDeclaration=343;static RULE_actionNodePrefix=344;static RULE_controlNode=345;static RULE_controlNodePrefix=346;static RULE_mergeNode=347;static RULE_decisionNode=348;static RULE_joinNode=349;static RULE_forkNode=350;static RULE_acceptNode=351;static RULE_acceptNodeDeclaration=352;static RULE_acceptParameterPart=353;static RULE_payloadParameterMember=354;static RULE_payloadParameter=355;static RULE_triggerValuePart=356;static RULE_triggerFeatureValue=357;static RULE_triggerExpression=358;static RULE_sendNode=359;static RULE_sendNodeDeclaration=360;static RULE_senderReceiverPart=361;static RULE_nodeParameterMember=362;static RULE_nodeParameter=363;static RULE_featureBinding=364;static RULE_emptyParameterMember=365;static RULE_assignmentNode=366;static RULE_assignmentNodeDeclaration=367;static RULE_assignmentTargetMember=368;static RULE_assignmentTargetParameter=369;static RULE_assignmentTargetBinding=370;static RULE_terminateNode=371;static RULE_ifNode=372;static RULE_expressionParameterMember=373;static RULE_actionBodyParameterMember=374;static RULE_actionBodyParameter=375;static RULE_ifNodeParameterMember=376;static RULE_whileLoopNode=377;static RULE_forLoopNode=378;static RULE_forVariableDeclarationMember=379;static RULE_forVariableDeclaration=380;static RULE_actionTargetSuccession=381;static RULE_targetSuccession=382;static RULE_guardedTargetSuccession=383;static RULE_defaultTargetSuccession=384;static RULE_guardedSuccession=385;static RULE_stateDefinition=386;static RULE_stateDefBody=387;static RULE_stateBodyItem=388;static RULE_entryActionMember=389;static RULE_doActionMember=390;static RULE_exitActionMember=391;static RULE_entryTransitionMember=392;static RULE_stateActionUsage=393;static RULE_statePerformActionUsage=394;static RULE_stateAcceptActionUsage=395;static RULE_stateSendActionUsage=396;static RULE_stateAssignmentActionUsage=397;static RULE_transitionUsageMember=398;static RULE_targetTransitionUsageMember=399;static RULE_stateUsage=400;static RULE_stateUsageBody=401;static RULE_exhibitStateUsage=402;static RULE_transitionUsage=403;static RULE_targetTransitionUsage=404;static RULE_triggerActionMember=405;static RULE_triggerAction=406;static RULE_guardExpressionMember=407;static RULE_effectBehaviorMember=408;static RULE_effectBehaviorUsage=409;static RULE_transitionPerformActionUsage=410;static RULE_transitionAcceptActionUsage=411;static RULE_transitionSendActionUsage=412;static RULE_transitionAssignmentActionUsage=413;static RULE_transitionSuccessionMember=414;static RULE_transitionSuccession=415;static RULE_emptyEndMember=416;static RULE_calculationDefinition=417;static RULE_calculationUsage=418;static RULE_calculationBody=419;static RULE_calculationBodyPart=420;static RULE_calculationBodyItem=421;static RULE_returnParameterMember=422;static RULE_constraintDefinition=423;static RULE_constraintUsage=424;static RULE_assertConstraintUsage=425;static RULE_constraintUsageDeclaration=426;static RULE_requirementDefinition=427;static RULE_requirementBody=428;static RULE_requirementBodyItem=429;static RULE_subjectMember=430;static RULE_subjectUsage=431;static RULE_requirementConstraintMember=432;static RULE_requirementKind=433;static RULE_requirementConstraintUsage=434;static RULE_framedConcernMember=435;static RULE_framedConcernUsage=436;static RULE_actorMember=437;static RULE_actorUsage=438;static RULE_stakeholderMember=439;static RULE_stakeholderUsage=440;static RULE_requirementUsage=441;static RULE_satisfyRequirementUsage=442;static RULE_satisfactionSubjectMember=443;static RULE_satisfactionParameter=444;static RULE_satisfactionFeatureValue=445;static RULE_satisfactionReferenceExpression=446;static RULE_concernDefinition=447;static RULE_concernUsage=448;static RULE_caseDefinition=449;static RULE_caseUsage=450;static RULE_caseBody=451;static RULE_caseBodyItem=452;static RULE_objectiveMember=453;static RULE_objectiveRequirementUsage=454;static RULE_analysisCaseDefinition=455;static RULE_analysisCaseUsage=456;static RULE_verificationCaseDefinition=457;static RULE_verificationCaseUsage=458;static RULE_requirementVerificationMember=459;static RULE_requirementVerificationUsage=460;static RULE_useCaseDefinition=461;static RULE_useCaseUsage=462;static RULE_includeUseCaseUsage=463;static RULE_viewDefinition=464;static RULE_viewDefinitionBody=465;static RULE_viewDefinitionBodyItem=466;static RULE_viewRenderingMember=467;static RULE_viewRenderingUsage=468;static RULE_viewUsage=469;static RULE_viewBody=470;static RULE_viewBodyItem=471;static RULE_expose=472;static RULE_membershipExpose=473;static RULE_namespaceExpose=474;static RULE_viewpointDefinition=475;static RULE_viewpointUsage=476;static RULE_renderingDefinition=477;static RULE_renderingUsage=478;static RULE_metadataDefinition=479;static RULE_prefixMetadataUsage=480;static RULE_metadataUsage=481;static RULE_metadataUsageDeclaration=482;static RULE_metadataBodyUsageMember=483;static RULE_metadataBodyUsage=484;static RULE_extendedDefinition=485;static RULE_extendedUsage=486;static RULE_filterPackageImportDeclaration=487;static RULE_namespaceImportDirect=488;static RULE_calculationUsageDeclaration=489;static RULE_emptyActionUsage_=490;static RULE_emptyFeature_=491;static RULE_emptyMultiplicity_=492;static RULE_emptyUsage_=493;static RULE_filterPackageImport=494;static RULE_nonFeatureChainPrimaryExpression=495;static RULE_portConjugation=496;static literalNames=[null,"'about'","'abstract'","'accept'","'action'","'actor'","'after'","'alias'","'all'","'allocate'","'allocation'","'analysis'","'and'","'as'","'assert'","'assign'","'assoc'","'assume'","'at'","'attribute'","'behavior'","'bind'","'binding'","'bool'","'by'","'calc'","'case'","'chains'","'class'","'classifier'","'comment'","'composite'","'concern'","'conjugate'","'conjugates'","'conjugation'","'connect'","'connection'","'connector'","'const'","'constant'","'constraint'","'crosses'","'datatype'","'decide'","'def'","'default'","'defined'","'dependency'","'derived'","'differences'","'disjoining'","'disjoint'","'do'","'doc'","'else'","'end'","'entry'","'enum'","'event'","'exhibit'","'exit'","'expose'","'expr'","'false'","'feature'","'featured'","'featuring'","'filter'","'first'","'flow'","'for'","'fork'","'frame'","'from'","'function'","'hastype'","'if'","'implies'","'import'","'in'","'include'","'individual'","'inout'","'interaction'","'interface'","'intersects'","'inv'","'inverse'","'inverting'","'istype'","'item'","'join'","'language'","'library'","'locale'","'loop'","'member'","'merge'","'message'","'meta'","'metaclass'","'metadata'","'multiplicity'","'namespace'","'new'","'nonunique'","'not'","'null'","'objective'","'occurrence'","'of'","'or'","'ordered'","'out'","'package'","'parallel'","'part'","'perform'","'port'","'portion'","'predicate'","'private'","'protected'","'public'","'redefines'","'redefinition'","'ref'","'references'","'render'","'rendering'","'rep'","'require'","'requirement'","'return'","'satisfy'","'send'","'snapshot'","'specialization'","'specializes'","'stakeholder'","'standard'","'state'","'step'","'struct'","'subclassifier'","'subject'","'subset'","'subsets'","'subtype'","'succession'","'terminate'","'then'","'timeslice'","'to'","'transition'","'true'","'type'","'typed'","'typing'","'unions'","'until'","'use'","'var'","'variant'","'variation'","'verification'","'verify'","'via'","'view'","'viewpoint'","'when'","'while'","'xor'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,"'//'"];static symbolicNames=[null,"ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","BARE_LINE_COMMENT","WS"];static ruleNames=["ownedExpression","typeReference","sequenceExpressionList","baseExpression","nullExpression","featureReferenceExpression","metadataAccessExpression","invocationExpression","constructorExpression","bodyExpression","argumentList","positionalArgumentList","namedArgumentList","namedArgument","literalExpression","literalBoolean","literalString","literalInteger","literalReal","literalInfinity","argumentMember","argumentExpressionMember","name","unreservedKeyword","identification","relationshipBody","relationshipOwnedElement","ownedRelatedElement","dependency","annotation","ownedAnnotation","annotatingElement","comment","documentation","textualRepresentation","rootNamespace","namespace","namespaceDeclaration","namespaceBody","namespaceBodyElement","memberPrefix","visibilityIndicator","namespaceMember","nonFeatureMember","namespaceFeatureMember","aliasMember","qualifiedName","importRule","importDeclaration","membershipImport","namespaceImport","filterPackage","filterPackageMember","memberElement","nonFeatureElement","featureElement","type","typePrefix","typeDeclaration","specializationPart","conjugationPart","typeRelationshipPart","disjoiningPart","unioningPart","intersectingPart","differencingPart","typeBody","typeBodyElement","specialization","ownedSpecialization","specificType","generalType","conjugation","ownedConjugation","disjoining","ownedDisjoining","unioning","intersecting","differencing","featureMember","typeFeatureMember","ownedFeatureMember","classifier","classifierDeclaration","superclassingPart","subclassification","ownedSubclassification","feature","endFeaturePrefix","basicFeaturePrefix","featurePrefix","ownedCrossFeatureMember","ownedCrossFeature","featureDirection","featureDeclaration","featureIdentification","featureRelationshipPart","chainingPart","invertingPart","typeFeaturingPart","featureSpecializationPart","multiplicityPart","featureSpecialization","typings","typedBy","subsettings","subsets","references","crosses","redefinitions","redefines","featureTyping","ownedFeatureTyping","subsetting","ownedSubsetting","ownedReferenceSubsetting","ownedCrossSubsetting","redefinition","ownedRedefinition","ownedFeatureChain","featureChain","ownedFeatureChaining","featureInverting","ownedFeatureInverting","typeFeaturing","ownedTypeFeaturing","dataType","class","structure","association","associationStructure","connector","connectorDeclaration","binaryConnectorDeclaration","naryConnectorDeclaration","connectorEndMember","connectorEnd","ownedCrossMultiplicityMember","ownedCrossMultiplicity","bindingConnector","bindingConnectorDeclaration","succession","successionDeclaration","behavior","step","function","functionBody","functionBodyPart","returnFeatureMember","resultExpressionMember","expression","predicate","booleanExpression","invariant","ownedExpressionMember","metadataReference","typeReferenceMember","typeResultMember","referenceTyping","emptyResultMember","sequenceOperatorExpression","sequenceExpressionListMember","bodyArgumentMember","bodyArgument","bodyArgumentValue","functionReferenceArgumentMember","functionReferenceArgument","functionReferenceArgumentValue","functionReferenceExpression","functionReferenceMember","functionReference","featureChainMember","ownedFeatureChainMember","featureReferenceMember","featureReference","elementReferenceMember","constructorResultMember","constructorResult","instantiatedTypeMember","instantiatedTypeReference","namedArgumentMember","parameterRedefinition","expressionBodyMember","expressionBody","booleanValue","realValue","interaction","flow","successionFlow","flowDeclaration","payloadFeatureMember","payloadFeature","payloadFeatureSpecializationPart","flowEndMember","flowEnd","flowFeatureMember","flowFeature","flowFeatureRedefinition","valuePart","featureValue","multiplicity","multiplicitySubset","multiplicityRange","ownedMultiplicity","ownedMultiplicityRange","multiplicityBounds","multiplicityExpressionMember","metaclass","prefixMetadataAnnotation","prefixMetadataMember","prefixMetadataFeature","metadataFeature","metadataFeatureDeclaration","metadataBody","metadataBodyElement","metadataBodyFeatureMember","metadataBodyFeature","package","libraryPackage","packageDeclaration","packageBody","elementFilterMember","dependencyDeclaration","annotatingMember","packageBodyElement","packageMember","definitionElement","usageElement","basicDefinitionPrefix","definitionExtensionKeyword","definitionPrefix","definition","definitionDeclaration","definitionBody","definitionBodyItem","definitionBodyItemContent","definitionMember","variantUsageMember","nonOccurrenceUsageMember","occurrenceUsageMember","structureUsageMember","behaviorUsageMember","refPrefix","basicUsagePrefix","endUsagePrefix","usageExtensionKeyword","unextendedUsagePrefix","usagePrefix","usage","usageDeclaration","usageCompletion","usageBody","defaultReferenceUsage","referenceUsage","endFeatureUsage","variantReference","nonOccurrenceUsageElement","endOccurrenceUsageElement","occurrenceUsageElement","structureUsageElement","behaviorUsageElement","variantUsageElement","subclassificationPart","attributeDefinition","attributeUsage","enumerationDefinition","enumerationBody","enumerationUsageMember","enumeratedValue","enumerationUsage","occurrenceDefinitionPrefix","occurrenceDefinition","individualDefinition","emptyMultiplicityMember","occurrenceUsagePrefix","occurrenceUsage","individualUsage","portionUsage","portionKind","eventOccurrenceUsage","sourceSuccessionMember","sourceSuccession","sourceEndMember","sourceEnd","itemDefinition","itemUsage","partDefinition","partUsage","portDefinition","conjugatedPortDefinitionMember","conjugatedPortDefinition","portUsage","conjugatedPortTyping","connectionDefinition","connectionUsage","connectorPart","binaryConnectorPart","naryConnectorPart","bindingConnectorAsUsage","successionAsUsage","interfaceDefinition","interfaceBody","interfaceBodyItem","interfaceNonOccurrenceUsageMember","interfaceNonOccurrenceUsageElement","interfaceOccurrenceUsageMember","interfaceOccurrenceUsageElement","defaultInterfaceEnd","interfaceUsage","interfaceUsageDeclaration","interfacePart","binaryInterfacePart","naryInterfacePart","interfaceEndMember","interfaceEnd","allocationDefinition","allocationUsage","allocationUsageDeclaration","flowDefinition","message","messageDeclaration","messageEventMember","messageEvent","flowUsage","successionFlowUsage","flowPayloadFeatureMember","flowPayloadFeature","flowEndSubsetting","featureChainPrefix","actionDefinition","actionBody","actionBodyItem","nonBehaviorBodyItem","actionBehaviorMember","initialNodeMember","actionNodeMember","actionTargetSuccessionMember","guardedSuccessionMember","actionUsage","actionUsageDeclaration","performActionUsage","performActionUsageDeclaration","actionNode","actionNodeUsageDeclaration","actionNodePrefix","controlNode","controlNodePrefix","mergeNode","decisionNode","joinNode","forkNode","acceptNode","acceptNodeDeclaration","acceptParameterPart","payloadParameterMember","payloadParameter","triggerValuePart","triggerFeatureValue","triggerExpression","sendNode","sendNodeDeclaration","senderReceiverPart","nodeParameterMember","nodeParameter","featureBinding","emptyParameterMember","assignmentNode","assignmentNodeDeclaration","assignmentTargetMember","assignmentTargetParameter","assignmentTargetBinding","terminateNode","ifNode","expressionParameterMember","actionBodyParameterMember","actionBodyParameter","ifNodeParameterMember","whileLoopNode","forLoopNode","forVariableDeclarationMember","forVariableDeclaration","actionTargetSuccession","targetSuccession","guardedTargetSuccession","defaultTargetSuccession","guardedSuccession","stateDefinition","stateDefBody","stateBodyItem","entryActionMember","doActionMember","exitActionMember","entryTransitionMember","stateActionUsage","statePerformActionUsage","stateAcceptActionUsage","stateSendActionUsage","stateAssignmentActionUsage","transitionUsageMember","targetTransitionUsageMember","stateUsage","stateUsageBody","exhibitStateUsage","transitionUsage","targetTransitionUsage","triggerActionMember","triggerAction","guardExpressionMember","effectBehaviorMember","effectBehaviorUsage","transitionPerformActionUsage","transitionAcceptActionUsage","transitionSendActionUsage","transitionAssignmentActionUsage","transitionSuccessionMember","transitionSuccession","emptyEndMember","calculationDefinition","calculationUsage","calculationBody","calculationBodyPart","calculationBodyItem","returnParameterMember","constraintDefinition","constraintUsage","assertConstraintUsage","constraintUsageDeclaration","requirementDefinition","requirementBody","requirementBodyItem","subjectMember","subjectUsage","requirementConstraintMember","requirementKind","requirementConstraintUsage","framedConcernMember","framedConcernUsage","actorMember","actorUsage","stakeholderMember","stakeholderUsage","requirementUsage","satisfyRequirementUsage","satisfactionSubjectMember","satisfactionParameter","satisfactionFeatureValue","satisfactionReferenceExpression","concernDefinition","concernUsage","caseDefinition","caseUsage","caseBody","caseBodyItem","objectiveMember","objectiveRequirementUsage","analysisCaseDefinition","analysisCaseUsage","verificationCaseDefinition","verificationCaseUsage","requirementVerificationMember","requirementVerificationUsage","useCaseDefinition","useCaseUsage","includeUseCaseUsage","viewDefinition","viewDefinitionBody","viewDefinitionBodyItem","viewRenderingMember","viewRenderingUsage","viewUsage","viewBody","viewBodyItem","expose","membershipExpose","namespaceExpose","viewpointDefinition","viewpointUsage","renderingDefinition","renderingUsage","metadataDefinition","prefixMetadataUsage","metadataUsage","metadataUsageDeclaration","metadataBodyUsageMember","metadataBodyUsage","extendedDefinition","extendedUsage","filterPackageImportDeclaration","namespaceImportDirect","calculationUsageDeclaration","emptyActionUsage_","emptyFeature_","emptyMultiplicity_","emptyUsage_","filterPackageImport","nonFeatureChainPrimaryExpression","portConjugation"];get grammarFileName(){return"SysMLv2Parser.g4"}get literalNames(){return _SysMLv2Parser.literalNames}get symbolicNames(){return _SysMLv2Parser.symbolicNames}get ruleNames(){return _SysMLv2Parser.ruleNames}get serializedATN(){return _SysMLv2Parser._serializedATN}createFailedPredicateException(predicate,message){return new FailedPredicateException(this,predicate,message)}constructor(input){super(input),this.interpreter=new ParserATNSimulator(this,_SysMLv2Parser._ATN,_SysMLv2Parser.decisionsToDFA,new PredictionContextCache)}ownedExpression(_p){_p===void 0&&(_p=0);let parentContext=this.context,parentState=this.state,localContext=new OwnedExpressionContext(this.context,parentState),previousContext=localContext,_startState=0;this.enterRecursionRule(localContext,0,_SysMLv2Parser.RULE_ownedExpression,_p);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{switch(this.state=1009,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.IF:this.state=995,this.match(_SysMLv2Parser.IF),this.state=996,this.ownedExpression(0),this.state=997,this.match(_SysMLv2Parser.QUESTION),this.state=998,this.ownedExpression(0),this.state=999,this.match(_SysMLv2Parser.ELSE),this.state=1e3,this.ownedExpression(28);break;case _SysMLv2Parser.NOT:case _SysMLv2Parser.PLUS:case _SysMLv2Parser.MINUS:case _SysMLv2Parser.TILDE:this.state=1002,_la=this.tokenStream.LA(1),_la===107||(_la-199&-32)===0&&(1<<_la-199&262149)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1003,this.ownedExpression(14);break;case _SysMLv2Parser.AT_AT:case _SysMLv2Parser.AT_SIGN:this.state=1004,_la=this.tokenStream.LA(1),_la===191||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1005,this.typeReference();break;case _SysMLv2Parser.ALL:this.state=1006,this.match(_SysMLv2Parser.ALL),this.state=1007,this.typeReference();break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FALSE:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.NEW:case _SysMLv2Parser.NULL:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TRUE:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.LPAREN:case _SysMLv2Parser.STAR:case _SysMLv2Parser.LBRACE:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:case _SysMLv2Parser.DOUBLE_STRING:case _SysMLv2Parser.INTEGER:case _SysMLv2Parser.REAL:case _SysMLv2Parser.REGULAR_COMMENT:this.state=1008,this.baseExpression();break;default:throw new NoViableAltException(this)}for(this.context.stop=this.tokenStream.LT(-1),this.state=1092,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,5,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;){if(alternative===1)switch(this.parseListeners!=null&&this.triggerExitRuleEvent(),previousContext=localContext,this.state=1090,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,4,this.context)){case 1:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1011,!this.precpred(this.context,27))throw this.createFailedPredicateException("this.precpred(this.context, 27)");this.state=1012,this.match(_SysMLv2Parser.QUESTION_QUESTION),this.state=1013,this.ownedExpression(28)}break;case 2:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1014,!this.precpred(this.context,26))throw this.createFailedPredicateException("this.precpred(this.context, 26)");this.state=1015,this.match(_SysMLv2Parser.IMPLIES),this.state=1016,this.ownedExpression(27)}break;case 3:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1017,!this.precpred(this.context,25))throw this.createFailedPredicateException("this.precpred(this.context, 25)");this.state=1018,this.match(_SysMLv2Parser.OR),this.state=1019,this.ownedExpression(26)}break;case 4:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1020,!this.precpred(this.context,24))throw this.createFailedPredicateException("this.precpred(this.context, 24)");this.state=1021,this.match(_SysMLv2Parser.AND),this.state=1022,this.ownedExpression(25)}break;case 5:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1023,!this.precpred(this.context,23))throw this.createFailedPredicateException("this.precpred(this.context, 23)");this.state=1024,this.match(_SysMLv2Parser.XOR),this.state=1025,this.ownedExpression(24)}break;case 6:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1026,!this.precpred(this.context,22))throw this.createFailedPredicateException("this.precpred(this.context, 22)");this.state=1027,this.match(_SysMLv2Parser.PIPE),this.state=1028,this.ownedExpression(23)}break;case 7:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1029,!this.precpred(this.context,21))throw this.createFailedPredicateException("this.precpred(this.context, 21)");this.state=1030,this.match(_SysMLv2Parser.AMP),this.state=1031,this.ownedExpression(22)}break;case 8:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1032,!this.precpred(this.context,20))throw this.createFailedPredicateException("this.precpred(this.context, 20)");this.state=1033,_la=this.tokenStream.LA(1),(_la-174&-32)===0&&(1<<_la-174&8217)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1034,this.ownedExpression(21)}break;case 9:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1035,!this.precpred(this.context,19))throw this.createFailedPredicateException("this.precpred(this.context, 19)");this.state=1036,_la=this.tokenStream.LA(1),(_la-186&-32)===0&&(1<<_la-186&5242889)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1037,this.ownedExpression(20)}break;case 10:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1038,!this.precpred(this.context,18))throw this.createFailedPredicateException("this.precpred(this.context, 18)");this.state=1039,this.match(_SysMLv2Parser.DOT_DOT),this.state=1040,this.ownedExpression(19)}break;case 11:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1041,!this.precpred(this.context,17))throw this.createFailedPredicateException("this.precpred(this.context, 17)");this.state=1042,_la=this.tokenStream.LA(1),_la===199||_la===201?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1043,this.ownedExpression(18)}break;case 12:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1044,!this.precpred(this.context,16))throw this.createFailedPredicateException("this.precpred(this.context, 16)");this.state=1045,_la=this.tokenStream.LA(1),(_la-194&-32)===0&&(1<<_la-194&529)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1046,this.ownedExpression(17)}break;case 13:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1047,!this.precpred(this.context,15))throw this.createFailedPredicateException("this.precpred(this.context, 15)");this.state=1048,_la=this.tokenStream.LA(1),_la===179||_la===213?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1049,this.ownedExpression(15)}break;case 14:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1050,!this.precpred(this.context,12))throw this.createFailedPredicateException("this.precpred(this.context, 12)");this.state=1051,_la=this.tokenStream.LA(1),_la===76||_la===90||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1052,this.typeReference()}break;case 15:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1053,!this.precpred(this.context,11))throw this.createFailedPredicateException("this.precpred(this.context, 11)");this.state=1054,this.match(_SysMLv2Parser.AS),this.state=1055,this.typeReference()}break;case 16:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1056,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");this.state=1057,this.match(_SysMLv2Parser.AT_AT),this.state=1058,this.typeReference()}break;case 17:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1059,!this.precpred(this.context,9))throw this.createFailedPredicateException("this.precpred(this.context, 9)");this.state=1060,this.match(_SysMLv2Parser.META),this.state=1061,this.typeReference()}break;case 18:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1062,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=1063,this.match(_SysMLv2Parser.LBRACK),this.state=1065,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&16387)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=1064,this.sequenceExpressionList()),this.state=1067,this.match(_SysMLv2Parser.RBRACK)}break;case 19:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1068,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");this.state=1069,this.match(_SysMLv2Parser.HASH),this.state=1070,this.match(_SysMLv2Parser.LPAREN),this.state=1072,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&16387)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=1071,this.sequenceExpressionList()),this.state=1074,this.match(_SysMLv2Parser.RPAREN)}break;case 20:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1075,!this.precpred(this.context,6))throw this.createFailedPredicateException("this.precpred(this.context, 6)");this.state=1076,this.argumentList()}break;case 21:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1077,!this.precpred(this.context,5))throw this.createFailedPredicateException("this.precpred(this.context, 5)");this.state=1078,this.match(_SysMLv2Parser.DOT),this.state=1079,this.qualifiedName()}break;case 22:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1080,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=1081,this.match(_SysMLv2Parser.DOT_QUESTION),this.state=1082,this.bodyExpression()}break;case 23:{if(localContext=new OwnedExpressionContext(parentContext,parentState),this.pushNewRecursionContext(localContext,_startState,_SysMLv2Parser.RULE_ownedExpression),this.state=1083,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");switch(this.state=1084,this.match(_SysMLv2Parser.ARROW),this.state=1085,this.qualifiedName(),this.state=1088,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.LBRACE:this.state=1086,this.bodyExpression();break;case _SysMLv2Parser.LPAREN:this.state=1087,this.argumentList();break;default:throw new NoViableAltException(this)}}break}this.state=1094,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,5,this.context)}}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.unrollRecursionContexts(parentContext)}return localContext}typeReference(){let localContext=new TypeReferenceContext(this.context,this.state);this.enterRule(localContext,2,_SysMLv2Parser.RULE_typeReference);try{this.enterOuterAlt(localContext,1),this.state=1095,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sequenceExpressionList(){let localContext=new SequenceExpressionListContext(this.context,this.state);this.enterRule(localContext,4,_SysMLv2Parser.RULE_sequenceExpressionList);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1097,this.ownedExpression(0),this.state=1102,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1098,this.match(_SysMLv2Parser.COMMA),this.state=1099,this.ownedExpression(0),this.state=1104,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}baseExpression(){let localContext=new BaseExpressionContext(this.context,this.state);this.enterRule(localContext,6,_SysMLv2Parser.RULE_baseExpression);let _la;try{switch(this.state=1121,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,9,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1105,this.nullExpression();break;case 2:this.enterOuterAlt(localContext,2),this.state=1106,this.match(_SysMLv2Parser.REGULAR_COMMENT);break;case 3:this.enterOuterAlt(localContext,3),this.state=1107,this.literalExpression();break;case 4:switch(this.enterOuterAlt(localContext,4),this.state=1108,this.qualifiedName(),this.state=1112,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,7,this.context)){case 1:this.state=1109,this.argumentList();break;case 2:this.state=1110,this.match(_SysMLv2Parser.DOT),this.state=1111,this.match(_SysMLv2Parser.METADATA);break}break;case 5:this.enterOuterAlt(localContext,5),this.state=1114,this.constructorExpression();break;case 6:this.enterOuterAlt(localContext,6),this.state=1115,this.bodyExpression();break;case 7:this.enterOuterAlt(localContext,7),this.state=1116,this.match(_SysMLv2Parser.LPAREN),this.state=1118,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&16387)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=1117,this.sequenceExpressionList()),this.state=1120,this.match(_SysMLv2Parser.RPAREN);break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nullExpression(){let localContext=new NullExpressionContext(this.context,this.state);this.enterRule(localContext,8,_SysMLv2Parser.RULE_nullExpression);try{switch(this.state=1126,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.NULL:this.enterOuterAlt(localContext,1),this.state=1123,this.match(_SysMLv2Parser.NULL);break;case _SysMLv2Parser.LPAREN:this.enterOuterAlt(localContext,2),this.state=1124,this.match(_SysMLv2Parser.LPAREN),this.state=1125,this.match(_SysMLv2Parser.RPAREN);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureReferenceExpression(){let localContext=new FeatureReferenceExpressionContext(this.context,this.state);this.enterRule(localContext,10,_SysMLv2Parser.RULE_featureReferenceExpression);try{this.enterOuterAlt(localContext,1),this.state=1128,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataAccessExpression(){let localContext=new MetadataAccessExpressionContext(this.context,this.state);this.enterRule(localContext,12,_SysMLv2Parser.RULE_metadataAccessExpression);try{this.enterOuterAlt(localContext,1),this.state=1130,this.qualifiedName(),this.state=1131,this.match(_SysMLv2Parser.DOT),this.state=1132,this.match(_SysMLv2Parser.METADATA)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}invocationExpression(){let localContext=new InvocationExpressionContext(this.context,this.state);this.enterRule(localContext,14,_SysMLv2Parser.RULE_invocationExpression);try{this.enterOuterAlt(localContext,1),this.state=1134,this.qualifiedName(),this.state=1135,this.argumentList()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constructorExpression(){let localContext=new ConstructorExpressionContext(this.context,this.state);this.enterRule(localContext,16,_SysMLv2Parser.RULE_constructorExpression);try{this.enterOuterAlt(localContext,1),this.state=1137,this.match(_SysMLv2Parser.NEW),this.state=1138,this.qualifiedName(),this.state=1139,this.argumentList()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bodyExpression(){let localContext=new BodyExpressionContext(this.context,this.state);this.enterRule(localContext,18,_SysMLv2Parser.RULE_bodyExpression);try{this.enterOuterAlt(localContext,1),this.state=1141,this.match(_SysMLv2Parser.LBRACE),this.state=1142,this.functionBodyPart(),this.state=1143,this.match(_SysMLv2Parser.RBRACE)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}argumentList(){let localContext=new ArgumentListContext(this.context,this.state);this.enterRule(localContext,20,_SysMLv2Parser.RULE_argumentList);try{this.enterOuterAlt(localContext,1);{switch(this.state=1145,this.match(_SysMLv2Parser.LPAREN),this.state=1148,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,11,this.context)){case 1:this.state=1146,this.positionalArgumentList();break;case 2:this.state=1147,this.namedArgumentList();break}this.state=1150,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}positionalArgumentList(){let localContext=new PositionalArgumentListContext(this.context,this.state);this.enterRule(localContext,22,_SysMLv2Parser.RULE_positionalArgumentList);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1152,this.ownedExpression(0),this.state=1157,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1153,this.match(_SysMLv2Parser.COMMA),this.state=1154,this.ownedExpression(0),this.state=1159,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namedArgumentList(){let localContext=new NamedArgumentListContext(this.context,this.state);this.enterRule(localContext,24,_SysMLv2Parser.RULE_namedArgumentList);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1160,this.namedArgument(),this.state=1165,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1161,this.match(_SysMLv2Parser.COMMA),this.state=1162,this.namedArgument(),this.state=1167,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namedArgument(){let localContext=new NamedArgumentContext(this.context,this.state);this.enterRule(localContext,26,_SysMLv2Parser.RULE_namedArgument);try{this.enterOuterAlt(localContext,1),this.state=1168,this.qualifiedName(),this.state=1169,this.match(_SysMLv2Parser.EQ),this.state=1170,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalExpression(){let localContext=new LiteralExpressionContext(this.context,this.state);this.enterRule(localContext,28,_SysMLv2Parser.RULE_literalExpression);try{switch(this.state=1177,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.FALSE:case _SysMLv2Parser.TRUE:this.enterOuterAlt(localContext,1),this.state=1172,this.literalBoolean();break;case _SysMLv2Parser.DOUBLE_STRING:this.enterOuterAlt(localContext,2),this.state=1173,this.literalString();break;case _SysMLv2Parser.INTEGER:this.enterOuterAlt(localContext,3),this.state=1174,this.literalInteger();break;case _SysMLv2Parser.REAL:this.enterOuterAlt(localContext,4),this.state=1175,this.literalReal();break;case _SysMLv2Parser.STAR:this.enterOuterAlt(localContext,5),this.state=1176,this.literalInfinity();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalBoolean(){let localContext=new LiteralBooleanContext(this.context,this.state);this.enterRule(localContext,30,_SysMLv2Parser.RULE_literalBoolean);let _la;try{this.enterOuterAlt(localContext,1),this.state=1179,_la=this.tokenStream.LA(1),_la===64||_la===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalString(){let localContext=new LiteralStringContext(this.context,this.state);this.enterRule(localContext,32,_SysMLv2Parser.RULE_literalString);try{this.enterOuterAlt(localContext,1),this.state=1181,this.match(_SysMLv2Parser.DOUBLE_STRING)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalInteger(){let localContext=new LiteralIntegerContext(this.context,this.state);this.enterRule(localContext,34,_SysMLv2Parser.RULE_literalInteger);try{this.enterOuterAlt(localContext,1),this.state=1183,this.match(_SysMLv2Parser.INTEGER)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalReal(){let localContext=new LiteralRealContext(this.context,this.state);this.enterRule(localContext,36,_SysMLv2Parser.RULE_literalReal);try{this.enterOuterAlt(localContext,1),this.state=1185,this.match(_SysMLv2Parser.REAL)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}literalInfinity(){let localContext=new LiteralInfinityContext(this.context,this.state);this.enterRule(localContext,38,_SysMLv2Parser.RULE_literalInfinity);try{this.enterOuterAlt(localContext,1),this.state=1187,this.match(_SysMLv2Parser.STAR)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}argumentMember(){let localContext=new ArgumentMemberContext(this.context,this.state);this.enterRule(localContext,40,_SysMLv2Parser.RULE_argumentMember);try{this.enterOuterAlt(localContext,1),this.state=1189,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}argumentExpressionMember(){let localContext=new ArgumentExpressionMemberContext(this.context,this.state);this.enterRule(localContext,42,_SysMLv2Parser.RULE_argumentExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=1191,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}name(){let localContext=new NameContext(this.context,this.state);this.enterRule(localContext,44,_SysMLv2Parser.RULE_name);try{switch(this.state=1196,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.IDENTIFIER:this.enterOuterAlt(localContext,1),this.state=1193,this.match(_SysMLv2Parser.IDENTIFIER);break;case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,2),this.state=1194,this.match(_SysMLv2Parser.STRING);break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:this.enterOuterAlt(localContext,3),this.state=1195,this.unreservedKeyword();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unreservedKeyword(){let localContext=new UnreservedKeywordContext(this.context,this.state);this.enterRule(localContext,46,_SysMLv2Parser.RULE_unreservedKeyword);let _la;try{this.enterOuterAlt(localContext,1),this.state=1198,_la=this.tokenStream.LA(1),_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}identification(){let localContext=new IdentificationContext(this.context,this.state);this.enterRule(localContext,48,_SysMLv2Parser.RULE_identification);try{switch(this.state=1210,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,16,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1200,this.match(_SysMLv2Parser.LT),this.state=1201,this.name(),this.state=1202,this.match(_SysMLv2Parser.GT),this.state=1203,this.name();break;case 2:this.enterOuterAlt(localContext,2),this.state=1205,this.match(_SysMLv2Parser.LT),this.state=1206,this.name(),this.state=1207,this.match(_SysMLv2Parser.GT);break;case 3:this.enterOuterAlt(localContext,3),this.state=1209,this.name();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}relationshipBody(){let localContext=new RelationshipBodyContext(this.context,this.state);this.enterRule(localContext,50,_SysMLv2Parser.RULE_relationshipBody);let _la;try{switch(this.state=1229,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,19,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1212,this.match(_SysMLv2Parser.SEMI);break;case 2:this.enterOuterAlt(localContext,2);{for(this.state=1213,this.match(_SysMLv2Parser.LBRACE),this.state=1217,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&4040229124)!==0||(_la-33&-32)===0&&(1<<_la-33&1085130343)!==0||(_la-65&-32)===0&&(1<<_la-65&1909228581)!==0||(_la-97&-32)===0&&(1<<_la-97&4052157169)!==0||(_la-131&-32)===0&&(1<<_la-131&470774913)!==0||(_la-163&-32)===0&&(1<<_la-163&1648373761)!==0||(_la-204&-32)===0&&(1<<_la-204&581829)!==0;)this.state=1214,this.relationshipOwnedElement(),this.state=1219,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1220,this.match(_SysMLv2Parser.RBRACE)}break;case 3:this.enterOuterAlt(localContext,3);{for(this.state=1221,this.match(_SysMLv2Parser.LBRACE),this.state=1225,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===30||_la===54||(_la-93&-32)===0&&(1<<_la-93&517)!==0||_la===131||(_la-192&-32)===0&&(1<<_la-192&2147745793)!==0;)this.state=1222,this.ownedAnnotation(),this.state=1227,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1228,this.match(_SysMLv2Parser.RBRACE)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}relationshipOwnedElement(){let localContext=new RelationshipOwnedElementContext(this.context,this.state);this.enterRule(localContext,52,_SysMLv2Parser.RULE_relationshipOwnedElement);try{switch(this.state=1233,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,20,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1231,this.ownedRelatedElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=1232,this.ownedAnnotation();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedRelatedElement(){let localContext=new OwnedRelatedElementContext(this.context,this.state);this.enterRule(localContext,54,_SysMLv2Parser.RULE_ownedRelatedElement);try{switch(this.state=1237,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,21,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1235,this.nonFeatureElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=1236,this.featureElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}dependency(){let localContext=new DependencyContext(this.context,this.state);this.enterRule(localContext,56,_SysMLv2Parser.RULE_dependency);let _la;try{switch(this.state=1281,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,28,this.context)){case 1:this.enterOuterAlt(localContext,1);{for(this.state=1242,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1239,this.prefixMetadataAnnotation(),this.state=1244,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1245,this.match(_SysMLv2Parser.DEPENDENCY),this.state=1250,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,24,this.context)===1&&(this.state=1247,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1246,this.identification()),this.state=1249,this.match(_SysMLv2Parser.FROM)),this.state=1252,this.qualifiedName(),this.state=1257,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1253,this.match(_SysMLv2Parser.COMMA),this.state=1254,this.qualifiedName(),this.state=1259,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1260,this.match(_SysMLv2Parser.TO),this.state=1261,this.qualifiedName(),this.state=1266,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1262,this.match(_SysMLv2Parser.COMMA),this.state=1263,this.qualifiedName(),this.state=1268,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1269,this.relationshipBody()}break;case 2:this.enterOuterAlt(localContext,2);{for(this.state=1274,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1271,this.prefixMetadataAnnotation(),this.state=1276,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1277,this.match(_SysMLv2Parser.DEPENDENCY),this.state=1278,this.dependencyDeclaration(),this.state=1279,this.relationshipBody()}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}annotation(){let localContext=new AnnotationContext(this.context,this.state);this.enterRule(localContext,58,_SysMLv2Parser.RULE_annotation);try{this.enterOuterAlt(localContext,1),this.state=1283,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedAnnotation(){let localContext=new OwnedAnnotationContext(this.context,this.state);this.enterRule(localContext,60,_SysMLv2Parser.RULE_ownedAnnotation);try{this.enterOuterAlt(localContext,1),this.state=1285,this.annotatingElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}annotatingElement(){let localContext=new AnnotatingElementContext(this.context,this.state);this.enterRule(localContext,62,_SysMLv2Parser.RULE_annotatingElement);try{switch(this.state=1291,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COMMENT:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.REGULAR_COMMENT:this.enterOuterAlt(localContext,1),this.state=1287,this.comment();break;case _SysMLv2Parser.DOC:this.enterOuterAlt(localContext,2),this.state=1288,this.documentation();break;case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.REP:this.enterOuterAlt(localContext,3),this.state=1289,this.textualRepresentation();break;case _SysMLv2Parser.METADATA:case _SysMLv2Parser.HASH:case _SysMLv2Parser.AT_SIGN:this.enterOuterAlt(localContext,4),this.state=1290,this.metadataFeature();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}comment(){let localContext=new CommentContext(this.context,this.state);this.enterRule(localContext,64,_SysMLv2Parser.RULE_comment);let _la;try{this.enterOuterAlt(localContext,1);{if(this.state=1308,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===30&&(this.state=1293,this.match(_SysMLv2Parser.COMMENT),this.state=1295,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,30,this.context)===1&&(this.state=1294,this.identification()),this.state=1306,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===1))for(this.state=1297,this.match(_SysMLv2Parser.ABOUT),this.state=1298,this.annotation(),this.state=1303,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1299,this.match(_SysMLv2Parser.COMMA),this.state=1300,this.annotation(),this.state=1305,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1312,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===95&&(this.state=1310,this.match(_SysMLv2Parser.LOCALE),this.state=1311,this.match(_SysMLv2Parser.DOUBLE_STRING)),this.state=1314,this.match(_SysMLv2Parser.REGULAR_COMMENT)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}documentation(){let localContext=new DocumentationContext(this.context,this.state);this.enterRule(localContext,66,_SysMLv2Parser.RULE_documentation);let _la;try{this.enterOuterAlt(localContext,1),this.state=1316,this.match(_SysMLv2Parser.DOC),this.state=1318,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,35,this.context)===1&&(this.state=1317,this.identification()),this.state=1322,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===95&&(this.state=1320,this.match(_SysMLv2Parser.LOCALE),this.state=1321,this.match(_SysMLv2Parser.DOUBLE_STRING)),this.state=1324,this.match(_SysMLv2Parser.REGULAR_COMMENT)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}textualRepresentation(){let localContext=new TextualRepresentationContext(this.context,this.state);this.enterRule(localContext,68,_SysMLv2Parser.RULE_textualRepresentation);let _la;try{this.enterOuterAlt(localContext,1),this.state=1330,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===131&&(this.state=1326,this.match(_SysMLv2Parser.REP),this.state=1328,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,37,this.context)===1&&(this.state=1327,this.identification())),this.state=1332,this.match(_SysMLv2Parser.LANGUAGE),this.state=1333,this.match(_SysMLv2Parser.DOUBLE_STRING),this.state=1334,this.match(_SysMLv2Parser.REGULAR_COMMENT)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}rootNamespace(){let localContext=new RootNamespaceContext(this.context,this.state);this.enterRule(localContext,70,_SysMLv2Parser.RULE_rootNamespace);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1339,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&412367019)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458587)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=1336,this.packageBodyElement(),this.state=1341,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1342,this.match(_SysMLv2Parser.EOF)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespace(){let localContext=new NamespaceContext(this.context,this.state);this.enterRule(localContext,72,_SysMLv2Parser.RULE_namespace);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1347,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1344,this.prefixMetadataMember(),this.state=1349,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1350,this.namespaceDeclaration(),this.state=1351,this.namespaceBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceDeclaration(){let localContext=new NamespaceDeclarationContext(this.context,this.state);this.enterRule(localContext,74,_SysMLv2Parser.RULE_namespaceDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=1353,this.match(_SysMLv2Parser.NAMESPACE),this.state=1355,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1354,this.identification())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceBody(){let localContext=new NamespaceBodyContext(this.context,this.state);this.enterRule(localContext,76,_SysMLv2Parser.RULE_namespaceBody);let _la;try{switch(this.state=1366,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=1357,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=1358,this.match(_SysMLv2Parser.LBRACE),this.state=1362,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&4040229252)!==0||(_la-33&-32)===0&&(1<<_la-33&1085130343)!==0||(_la-65&-32)===0&&(1<<_la-65&1909244965)!==0||(_la-97&-32)===0&&(1<<_la-97&4287038193)!==0||(_la-131&-32)===0&&(1<<_la-131&470774913)!==0||(_la-163&-32)===0&&(1<<_la-163&1648373761)!==0||(_la-204&-32)===0&&(1<<_la-204&581829)!==0;)this.state=1359,this.namespaceBodyElement(),this.state=1364,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1365,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceBodyElement(){let localContext=new NamespaceBodyElementContext(this.context,this.state);this.enterRule(localContext,78,_SysMLv2Parser.RULE_namespaceBodyElement);try{switch(this.state=1371,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,44,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1368,this.namespaceMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1369,this.aliasMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=1370,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}memberPrefix(){let localContext=new MemberPrefixContext(this.context,this.state);this.enterRule(localContext,80,_SysMLv2Parser.RULE_memberPrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=1374,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la-122&-32)===0&&(1<<_la-122&7)!==0&&(this.state=1373,this.visibilityIndicator())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}visibilityIndicator(){let localContext=new VisibilityIndicatorContext(this.context,this.state);this.enterRule(localContext,82,_SysMLv2Parser.RULE_visibilityIndicator);let _la;try{this.enterOuterAlt(localContext,1),this.state=1376,_la=this.tokenStream.LA(1),(_la-122&-32)===0&&(1<<_la-122&7)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceMember(){let localContext=new NamespaceMemberContext(this.context,this.state);this.enterRule(localContext,84,_SysMLv2Parser.RULE_namespaceMember);try{switch(this.state=1380,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,46,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1378,this.nonFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1379,this.namespaceFeatureMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonFeatureMember(){let localContext=new NonFeatureMemberContext(this.context,this.state);this.enterRule(localContext,86,_SysMLv2Parser.RULE_nonFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1382,this.memberPrefix(),this.state=1383,this.memberElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceFeatureMember(){let localContext=new NamespaceFeatureMemberContext(this.context,this.state);this.enterRule(localContext,88,_SysMLv2Parser.RULE_namespaceFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1385,this.memberPrefix(),this.state=1386,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}aliasMember(){let localContext=new AliasMemberContext(this.context,this.state);this.enterRule(localContext,90,_SysMLv2Parser.RULE_aliasMember);let _la;try{this.enterOuterAlt(localContext,1),this.state=1388,this.memberPrefix(),this.state=1389,this.match(_SysMLv2Parser.ALIAS),this.state=1394,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===206&&(this.state=1390,this.match(_SysMLv2Parser.LT),this.state=1391,this.name(),this.state=1392,this.match(_SysMLv2Parser.GT)),this.state=1397,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||_la===218||_la===219)&&(this.state=1396,this.name()),this.state=1399,this.match(_SysMLv2Parser.FOR),this.state=1400,this.qualifiedName(),this.state=1401,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}qualifiedName(){let localContext=new QualifiedNameContext(this.context,this.state);this.enterRule(localContext,92,_SysMLv2Parser.RULE_qualifiedName);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{for(this.state=1405,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===193&&(this.state=1403,this.match(_SysMLv2Parser.DOLLAR),this.state=1404,this.match(_SysMLv2Parser.COLON_COLON)),this.state=1412,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,50,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1407,this.name(),this.state=1408,this.match(_SysMLv2Parser.COLON_COLON)),this.state=1414,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,50,this.context);this.state=1415,this.name()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}importRule(){let localContext=new ImportRuleContext(this.context,this.state);this.enterRule(localContext,94,_SysMLv2Parser.RULE_importRule);let _la;try{this.enterOuterAlt(localContext,1),this.state=1418,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la-122&-32)===0&&(1<<_la-122&7)!==0&&(this.state=1417,this.visibilityIndicator()),this.state=1420,this.match(_SysMLv2Parser.IMPORT),this.state=1422,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1421,this.match(_SysMLv2Parser.ALL)),this.state=1424,this.importDeclaration(),this.state=1425,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}importDeclaration(){let localContext=new ImportDeclarationContext(this.context,this.state);this.enterRule(localContext,96,_SysMLv2Parser.RULE_importDeclaration);try{switch(this.state=1429,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,53,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1427,this.membershipImport();break;case 2:this.enterOuterAlt(localContext,2),this.state=1428,this.namespaceImport();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}membershipImport(){let localContext=new MembershipImportContext(this.context,this.state);this.enterRule(localContext,98,_SysMLv2Parser.RULE_membershipImport);let _la;try{this.enterOuterAlt(localContext,1),this.state=1431,this.qualifiedName(),this.state=1434,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===183&&(this.state=1432,this.match(_SysMLv2Parser.COLON_COLON),this.state=1433,this.match(_SysMLv2Parser.STAR_STAR))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceImport(){let localContext=new NamespaceImportContext(this.context,this.state);this.enterRule(localContext,100,_SysMLv2Parser.RULE_namespaceImport);let _la;try{switch(this.state=1444,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,56,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1436,this.qualifiedName(),this.state=1437,this.match(_SysMLv2Parser.COLON_COLON),this.state=1438,this.match(_SysMLv2Parser.STAR),this.state=1441,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===183&&(this.state=1439,this.match(_SysMLv2Parser.COLON_COLON),this.state=1440,this.match(_SysMLv2Parser.STAR_STAR));break;case 2:this.enterOuterAlt(localContext,2),this.state=1443,this.filterPackage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackage(){let localContext=new FilterPackageContext(this.context,this.state);this.enterRule(localContext,102,_SysMLv2Parser.RULE_filterPackage);let _la;try{switch(this.state=1458,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,59,this.context)){case 1:this.enterOuterAlt(localContext,1);{this.state=1446,this.filterPackageImportDeclaration(),this.state=1448,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=1447,this.filterPackageMember(),this.state=1450,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===211)}break;case 2:this.enterOuterAlt(localContext,2);{this.state=1452,this.filterPackageImport(),this.state=1454,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=1453,this.filterPackageMember(),this.state=1456,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===211)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackageMember(){let localContext=new FilterPackageMemberContext(this.context,this.state);this.enterRule(localContext,104,_SysMLv2Parser.RULE_filterPackageMember);try{this.enterOuterAlt(localContext,1),this.state=1460,this.match(_SysMLv2Parser.LBRACK),this.state=1461,this.ownedExpression(0),this.state=1462,this.match(_SysMLv2Parser.RBRACK)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}memberElement(){let localContext=new MemberElementContext(this.context,this.state);this.enterRule(localContext,106,_SysMLv2Parser.RULE_memberElement);try{switch(this.state=1466,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,60,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1464,this.annotatingElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=1465,this.nonFeatureElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonFeatureElement(){let localContext=new NonFeatureElementContext(this.context,this.state);this.enterRule(localContext,108,_SysMLv2Parser.RULE_nonFeatureElement);try{switch(this.state=1494,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,61,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1468,this.dependency();break;case 2:this.enterOuterAlt(localContext,2),this.state=1469,this.namespace();break;case 3:this.enterOuterAlt(localContext,3),this.state=1470,this.type_();break;case 4:this.enterOuterAlt(localContext,4),this.state=1471,this.classifier();break;case 5:this.enterOuterAlt(localContext,5),this.state=1472,this.dataType();break;case 6:this.enterOuterAlt(localContext,6),this.state=1473,this.class_();break;case 7:this.enterOuterAlt(localContext,7),this.state=1474,this.structure();break;case 8:this.enterOuterAlt(localContext,8),this.state=1475,this.metaclass();break;case 9:this.enterOuterAlt(localContext,9),this.state=1476,this.association();break;case 10:this.enterOuterAlt(localContext,10),this.state=1477,this.associationStructure();break;case 11:this.enterOuterAlt(localContext,11),this.state=1478,this.interaction();break;case 12:this.enterOuterAlt(localContext,12),this.state=1479,this.behavior();break;case 13:this.enterOuterAlt(localContext,13),this.state=1480,this.function_();break;case 14:this.enterOuterAlt(localContext,14),this.state=1481,this.predicate();break;case 15:this.enterOuterAlt(localContext,15),this.state=1482,this.multiplicity();break;case 16:this.enterOuterAlt(localContext,16),this.state=1483,this.package_();break;case 17:this.enterOuterAlt(localContext,17),this.state=1484,this.libraryPackage();break;case 18:this.enterOuterAlt(localContext,18),this.state=1485,this.specialization();break;case 19:this.enterOuterAlt(localContext,19),this.state=1486,this.conjugation();break;case 20:this.enterOuterAlt(localContext,20),this.state=1487,this.subclassification();break;case 21:this.enterOuterAlt(localContext,21),this.state=1488,this.disjoining();break;case 22:this.enterOuterAlt(localContext,22),this.state=1489,this.featureInverting();break;case 23:this.enterOuterAlt(localContext,23),this.state=1490,this.featureTyping();break;case 24:this.enterOuterAlt(localContext,24),this.state=1491,this.subsetting();break;case 25:this.enterOuterAlt(localContext,25),this.state=1492,this.redefinition();break;case 26:this.enterOuterAlt(localContext,26),this.state=1493,this.typeFeaturing();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureElement(){let localContext=new FeatureElementContext(this.context,this.state);this.enterRule(localContext,110,_SysMLv2Parser.RULE_featureElement);try{switch(this.state=1506,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,62,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1496,this.feature();break;case 2:this.enterOuterAlt(localContext,2),this.state=1497,this.step();break;case 3:this.enterOuterAlt(localContext,3),this.state=1498,this.expression();break;case 4:this.enterOuterAlt(localContext,4),this.state=1499,this.booleanExpression();break;case 5:this.enterOuterAlt(localContext,5),this.state=1500,this.invariant();break;case 6:this.enterOuterAlt(localContext,6),this.state=1501,this.connector();break;case 7:this.enterOuterAlt(localContext,7),this.state=1502,this.bindingConnector();break;case 8:this.enterOuterAlt(localContext,8),this.state=1503,this.succession();break;case 9:this.enterOuterAlt(localContext,9),this.state=1504,this.flow();break;case 10:this.enterOuterAlt(localContext,10),this.state=1505,this.successionFlow();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}type_(){let localContext=new TypeContext(this.context,this.state);this.enterRule(localContext,112,_SysMLv2Parser.RULE_type);try{this.enterOuterAlt(localContext,1),this.state=1508,this.typePrefix(),this.state=1509,this.match(_SysMLv2Parser.TYPE),this.state=1510,this.typeDeclaration(),this.state=1511,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typePrefix(){let localContext=new TypePrefixContext(this.context,this.state);this.enterRule(localContext,114,_SysMLv2Parser.RULE_typePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1514,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===2&&(this.state=1513,this.match(_SysMLv2Parser.ABSTRACT)),this.state=1519,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=1516,this.prefixMetadataMember(),this.state=1521,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeDeclaration(){let localContext=new TypeDeclarationContext(this.context,this.state);this.enterRule(localContext,116,_SysMLv2Parser.RULE_typeDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{this.state=1523,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1522,this.match(_SysMLv2Parser.ALL)),this.state=1526,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1525,this.identification()),this.state=1529,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=1528,this.ownedMultiplicity()),this.state=1533,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do{switch(this.state=1533,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SPECIALIZES:case _SysMLv2Parser.COLON_GT:this.state=1531,this.specializationPart();break;case _SysMLv2Parser.CONJUGATES:case _SysMLv2Parser.TILDE:this.state=1532,this.conjugationPart();break;default:throw new NoViableAltException(this)}this.state=1535,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}while(_la===34||_la===139||_la===185||_la===217);for(this.state=1540,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===50||_la===52||_la===86||_la===160;)this.state=1537,this.typeRelationshipPart(),this.state=1542,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}specializationPart(){let localContext=new SpecializationPartContext(this.context,this.state);this.enterRule(localContext,118,_SysMLv2Parser.RULE_specializationPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1543,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1544,this.ownedSpecialization(),this.state=1549,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1545,this.match(_SysMLv2Parser.COMMA),this.state=1546,this.ownedSpecialization(),this.state=1551,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugationPart(){let localContext=new ConjugationPartContext(this.context,this.state);this.enterRule(localContext,120,_SysMLv2Parser.RULE_conjugationPart);let _la;try{this.enterOuterAlt(localContext,1),this.state=1552,_la=this.tokenStream.LA(1),_la===34||_la===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1553,this.ownedConjugation()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeRelationshipPart(){let localContext=new TypeRelationshipPartContext(this.context,this.state);this.enterRule(localContext,122,_SysMLv2Parser.RULE_typeRelationshipPart);try{switch(this.state=1559,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DISJOINT:this.enterOuterAlt(localContext,1),this.state=1555,this.disjoiningPart();break;case _SysMLv2Parser.UNIONS:this.enterOuterAlt(localContext,2),this.state=1556,this.unioningPart();break;case _SysMLv2Parser.INTERSECTS:this.enterOuterAlt(localContext,3),this.state=1557,this.intersectingPart();break;case _SysMLv2Parser.DIFFERENCES:this.enterOuterAlt(localContext,4),this.state=1558,this.differencingPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}disjoiningPart(){let localContext=new DisjoiningPartContext(this.context,this.state);this.enterRule(localContext,124,_SysMLv2Parser.RULE_disjoiningPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1561,this.match(_SysMLv2Parser.DISJOINT),this.state=1562,this.match(_SysMLv2Parser.FROM),this.state=1563,this.ownedDisjoining(),this.state=1568,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1564,this.match(_SysMLv2Parser.COMMA),this.state=1565,this.ownedDisjoining(),this.state=1570,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unioningPart(){let localContext=new UnioningPartContext(this.context,this.state);this.enterRule(localContext,126,_SysMLv2Parser.RULE_unioningPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1571,this.match(_SysMLv2Parser.UNIONS),this.state=1572,this.unioning(),this.state=1577,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1573,this.match(_SysMLv2Parser.COMMA),this.state=1574,this.unioning(),this.state=1579,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}intersectingPart(){let localContext=new IntersectingPartContext(this.context,this.state);this.enterRule(localContext,128,_SysMLv2Parser.RULE_intersectingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1580,this.match(_SysMLv2Parser.INTERSECTS),this.state=1581,this.intersecting(),this.state=1586,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1582,this.match(_SysMLv2Parser.COMMA),this.state=1583,this.intersecting(),this.state=1588,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}differencingPart(){let localContext=new DifferencingPartContext(this.context,this.state);this.enterRule(localContext,130,_SysMLv2Parser.RULE_differencingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1589,this.match(_SysMLv2Parser.DIFFERENCES),this.state=1590,this.differencing(),this.state=1595,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1591,this.match(_SysMLv2Parser.COMMA),this.state=1592,this.differencing(),this.state=1597,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeBody(){let localContext=new TypeBodyContext(this.context,this.state);this.enterRule(localContext,132,_SysMLv2Parser.RULE_typeBody);let _la;try{switch(this.state=1607,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=1598,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=1599,this.match(_SysMLv2Parser.LBRACE),this.state=1603,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&4040229252)!==0||(_la-33&-32)===0&&(1<<_la-33&1085130343)!==0||(_la-65&-32)===0&&(1<<_la-65&1909244965)!==0||(_la-97&-32)===0&&(1<<_la-97&4287038193)!==0||(_la-131&-32)===0&&(1<<_la-131&470774913)!==0||(_la-163&-32)===0&&(1<<_la-163&1648373761)!==0||(_la-204&-32)===0&&(1<<_la-204&581829)!==0;)this.state=1600,this.typeBodyElement(),this.state=1605,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1606,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeBodyElement(){let localContext=new TypeBodyElementContext(this.context,this.state);this.enterRule(localContext,134,_SysMLv2Parser.RULE_typeBodyElement);try{switch(this.state=1613,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,79,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1609,this.nonFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1610,this.featureMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=1611,this.aliasMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=1612,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}specialization(){let localContext=new SpecializationContext(this.context,this.state);this.enterRule(localContext,136,_SysMLv2Parser.RULE_specialization);let _la;try{this.enterOuterAlt(localContext,1),this.state=1619,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1615,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1617,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1616,this.identification())),this.state=1621,this.match(_SysMLv2Parser.SUBTYPE),this.state=1622,this.specificType(),this.state=1623,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1624,this.generalType(),this.state=1625,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedSpecialization(){let localContext=new OwnedSpecializationContext(this.context,this.state);this.enterRule(localContext,138,_SysMLv2Parser.RULE_ownedSpecialization);try{this.enterOuterAlt(localContext,1),this.state=1627,this.generalType()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}specificType(){let localContext=new SpecificTypeContext(this.context,this.state);this.enterRule(localContext,140,_SysMLv2Parser.RULE_specificType);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1629,this.qualifiedName(),this.state=1634,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1630,this.match(_SysMLv2Parser.DOT),this.state=1631,this.qualifiedName(),this.state=1636,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}generalType(){let localContext=new GeneralTypeContext(this.context,this.state);this.enterRule(localContext,142,_SysMLv2Parser.RULE_generalType);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1637,this.qualifiedName(),this.state=1642,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1638,this.match(_SysMLv2Parser.DOT),this.state=1639,this.qualifiedName(),this.state=1644,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugation(){let localContext=new ConjugationContext(this.context,this.state);this.enterRule(localContext,144,_SysMLv2Parser.RULE_conjugation);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1649,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===35&&(this.state=1645,this.match(_SysMLv2Parser.CONJUGATION),this.state=1647,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1646,this.identification())),this.state=1651,this.match(_SysMLv2Parser.CONJUGATE),this.state=1652,this.qualifiedName(),this.state=1657,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1653,this.match(_SysMLv2Parser.DOT),this.state=1654,this.qualifiedName(),this.state=1659,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1660,_la=this.tokenStream.LA(1),_la===34||_la===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1661,this.qualifiedName(),this.state=1666,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1662,this.match(_SysMLv2Parser.DOT),this.state=1663,this.qualifiedName(),this.state=1668,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1669,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedConjugation(){let localContext=new OwnedConjugationContext(this.context,this.state);this.enterRule(localContext,146,_SysMLv2Parser.RULE_ownedConjugation);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1671,this.qualifiedName(),this.state=1676,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1672,this.match(_SysMLv2Parser.DOT),this.state=1673,this.qualifiedName(),this.state=1678,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}disjoining(){let localContext=new DisjoiningContext(this.context,this.state);this.enterRule(localContext,148,_SysMLv2Parser.RULE_disjoining);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=1683,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===51&&(this.state=1679,this.match(_SysMLv2Parser.DISJOINING),this.state=1681,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1680,this.identification())),this.state=1685,this.match(_SysMLv2Parser.DISJOINT),this.state=1686,this.qualifiedName(),this.state=1691,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1687,this.match(_SysMLv2Parser.DOT),this.state=1688,this.qualifiedName(),this.state=1693,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=1694,this.match(_SysMLv2Parser.FROM),this.state=1695,this.qualifiedName(),this.state=1700,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1696,this.match(_SysMLv2Parser.DOT),this.state=1697,this.qualifiedName(),this.state=1702,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=1703,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedDisjoining(){let localContext=new OwnedDisjoiningContext(this.context,this.state);this.enterRule(localContext,150,_SysMLv2Parser.RULE_ownedDisjoining);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1705,this.qualifiedName(),this.state=1710,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1706,this.match(_SysMLv2Parser.DOT),this.state=1707,this.qualifiedName(),this.state=1712,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unioning(){let localContext=new UnioningContext(this.context,this.state);this.enterRule(localContext,152,_SysMLv2Parser.RULE_unioning);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1713,this.qualifiedName(),this.state=1718,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1714,this.match(_SysMLv2Parser.DOT),this.state=1715,this.qualifiedName(),this.state=1720,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}intersecting(){let localContext=new IntersectingContext(this.context,this.state);this.enterRule(localContext,154,_SysMLv2Parser.RULE_intersecting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1721,this.qualifiedName(),this.state=1726,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1722,this.match(_SysMLv2Parser.DOT),this.state=1723,this.qualifiedName(),this.state=1728,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}differencing(){let localContext=new DifferencingContext(this.context,this.state);this.enterRule(localContext,156,_SysMLv2Parser.RULE_differencing);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1729,this.qualifiedName(),this.state=1734,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1730,this.match(_SysMLv2Parser.DOT),this.state=1731,this.qualifiedName(),this.state=1736,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureMember(){let localContext=new FeatureMemberContext(this.context,this.state);this.enterRule(localContext,158,_SysMLv2Parser.RULE_featureMember);try{switch(this.state=1739,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,97,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1737,this.typeFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=1738,this.ownedFeatureMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeFeatureMember(){let localContext=new TypeFeatureMemberContext(this.context,this.state);this.enterRule(localContext,160,_SysMLv2Parser.RULE_typeFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1741,this.memberPrefix(),this.state=1742,this.match(_SysMLv2Parser.MEMBER),this.state=1743,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureMember(){let localContext=new OwnedFeatureMemberContext(this.context,this.state);this.enterRule(localContext,162,_SysMLv2Parser.RULE_ownedFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1745,this.memberPrefix(),this.state=1746,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}classifier(){let localContext=new ClassifierContext(this.context,this.state);this.enterRule(localContext,164,_SysMLv2Parser.RULE_classifier);try{this.enterOuterAlt(localContext,1),this.state=1748,this.typePrefix(),this.state=1749,this.match(_SysMLv2Parser.CLASSIFIER),this.state=1750,this.classifierDeclaration(),this.state=1751,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}classifierDeclaration(){let localContext=new ClassifierDeclarationContext(this.context,this.state);this.enterRule(localContext,166,_SysMLv2Parser.RULE_classifierDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=1754,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1753,this.match(_SysMLv2Parser.ALL)),this.state=1757,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1756,this.identification()),this.state=1760,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=1759,this.ownedMultiplicity()),this.state=1764,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SPECIALIZES:case _SysMLv2Parser.COLON_GT:this.state=1762,this.superclassingPart();break;case _SysMLv2Parser.CONJUGATES:case _SysMLv2Parser.TILDE:this.state=1763,this.conjugationPart();break;case _SysMLv2Parser.DIFFERENCES:case _SysMLv2Parser.DISJOINT:case _SysMLv2Parser.INTERSECTS:case _SysMLv2Parser.UNIONS:case _SysMLv2Parser.SEMI:case _SysMLv2Parser.LBRACE:break;default:break}for(this.state=1769,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===50||_la===52||_la===86||_la===160;)this.state=1766,this.typeRelationshipPart(),this.state=1771,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}superclassingPart(){let localContext=new SuperclassingPartContext(this.context,this.state);this.enterRule(localContext,168,_SysMLv2Parser.RULE_superclassingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1772,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1773,this.ownedSubclassification(),this.state=1778,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1774,this.match(_SysMLv2Parser.COMMA),this.state=1775,this.ownedSubclassification(),this.state=1780,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subclassification(){let localContext=new SubclassificationContext(this.context,this.state);this.enterRule(localContext,170,_SysMLv2Parser.RULE_subclassification);let _la;try{this.enterOuterAlt(localContext,1),this.state=1785,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=1781,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=1783,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=1782,this.identification())),this.state=1787,this.match(_SysMLv2Parser.SUBCLASSIFIER),this.state=1788,this.qualifiedName(),this.state=1789,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1790,this.qualifiedName(),this.state=1791,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedSubclassification(){let localContext=new OwnedSubclassificationContext(this.context,this.state);this.enterRule(localContext,172,_SysMLv2Parser.RULE_ownedSubclassification);try{this.enterOuterAlt(localContext,1),this.state=1793,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}feature(){let localContext=new FeatureContext(this.context,this.state);this.enterRule(localContext,174,_SysMLv2Parser.RULE_feature);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=1812,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,110,this.context)){case 1:{switch(this.state=1795,this.featurePrefix(),this.state=1798,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.FEATURE:this.state=1796,this.match(_SysMLv2Parser.FEATURE);break;case _SysMLv2Parser.HASH:this.state=1797,this.prefixMetadataMember();break;default:throw new NoViableAltException(this)}this.state=1801,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=1800,this.featureDeclaration())}break;case 2:{switch(this.state=1805,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,108,this.context)){case 1:this.state=1803,this.endFeaturePrefix();break;case 2:this.state=1804,this.basicFeaturePrefix();break}this.state=1808,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===127&&(this.state=1807,this.match(_SysMLv2Parser.REF)),this.state=1810,this.featureDeclaration()}break}this.state=1815,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=1814,this.valuePart()),this.state=1817,this.typeBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endFeaturePrefix(){let localContext=new EndFeaturePrefixContext(this.context,this.state);this.enterRule(localContext,176,_SysMLv2Parser.RULE_endFeaturePrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=1820,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===39&&(this.state=1819,this.match(_SysMLv2Parser.CONST)),this.state=1822,this.match(_SysMLv2Parser.END)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}basicFeaturePrefix(){let localContext=new BasicFeaturePrefixContext(this.context,this.state);this.enterRule(localContext,178,_SysMLv2Parser.RULE_basicFeaturePrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=1825,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===80||_la===83||_la===114)&&(this.state=1824,this.featureDirection()),this.state=1828,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===49&&(this.state=1827,this.match(_SysMLv2Parser.DERIVED)),this.state=1831,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===2&&(this.state=1830,this.match(_SysMLv2Parser.ABSTRACT)),this.state=1834,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===31||_la===120)&&(this.state=1833,_la=this.tokenStream.LA(1),_la===31||_la===120?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1837,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,117,this.context)===1&&(this.state=1836,_la=this.tokenStream.LA(1),_la===39||_la===163?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featurePrefix(){let localContext=new FeaturePrefixContext(this.context,this.state);this.enterRule(localContext,180,_SysMLv2Parser.RULE_featurePrefix);try{let alternative;this.enterOuterAlt(localContext,1);{switch(this.state=1843,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,118,this.context)){case 1:this.state=1839,this.endFeaturePrefix(),this.state=1840,this.ownedCrossFeatureMember();break;case 2:this.state=1842,this.basicFeaturePrefix();break}for(this.state=1848,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,119,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1845,this.prefixMetadataMember()),this.state=1850,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,119,this.context)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossFeatureMember(){let localContext=new OwnedCrossFeatureMemberContext(this.context,this.state);this.enterRule(localContext,182,_SysMLv2Parser.RULE_ownedCrossFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=1851,this.ownedCrossFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossFeature(){let localContext=new OwnedCrossFeatureContext(this.context,this.state);this.enterRule(localContext,184,_SysMLv2Parser.RULE_ownedCrossFeature);try{switch(this.state=1860,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,121,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=1853,this.basicFeaturePrefix(),this.state=1854,this.featureDeclaration();break;case 2:this.enterOuterAlt(localContext,2),this.state=1856,this.basicUsagePrefix(),this.state=1858,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,120,this.context)===1&&(this.state=1857,this.usageDeclaration());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureDirection(){let localContext=new FeatureDirectionContext(this.context,this.state);this.enterRule(localContext,186,_SysMLv2Parser.RULE_featureDirection);let _la;try{this.enterOuterAlt(localContext,1),this.state=1862,_la=this.tokenStream.LA(1),_la===80||_la===83||_la===114?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureDeclaration(){let localContext=new FeatureDeclarationContext(this.context,this.state);this.enterRule(localContext,188,_SysMLv2Parser.RULE_featureDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=1865,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=1864,this.match(_SysMLv2Parser.ALL)),this.state=1874,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,124,this.context)){case 1:switch(this.state=1867,this.featureIdentification(),this.state=1870,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,123,this.context)){case 1:this.state=1868,this.featureSpecializationPart();break;case 2:this.state=1869,this.conjugationPart();break}break;case 2:this.state=1872,this.featureSpecializationPart();break;case 3:this.state=1873,this.conjugationPart();break}for(this.state=1879,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la-27&-32)===0&&(1<<_la-27&41943041)!==0||(_la-66&-32)===0&&(1<<_la-66&5242881)!==0||_la===160;)this.state=1876,this.featureRelationshipPart(),this.state=1881,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureIdentification(){let localContext=new FeatureIdentificationContext(this.context,this.state);this.enterRule(localContext,190,_SysMLv2Parser.RULE_featureIdentification);try{switch(this.state=1889,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.LT:this.enterOuterAlt(localContext,1),this.state=1882,this.match(_SysMLv2Parser.LT),this.state=1883,this.name(),this.state=1884,this.match(_SysMLv2Parser.GT),this.state=1886,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,126,this.context)===1&&(this.state=1885,this.name());break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,2),this.state=1888,this.name();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureRelationshipPart(){let localContext=new FeatureRelationshipPartContext(this.context,this.state);this.enterRule(localContext,192,_SysMLv2Parser.RULE_featureRelationshipPart);try{switch(this.state=1895,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DIFFERENCES:case _SysMLv2Parser.DISJOINT:case _SysMLv2Parser.INTERSECTS:case _SysMLv2Parser.UNIONS:this.enterOuterAlt(localContext,1),this.state=1891,this.typeRelationshipPart();break;case _SysMLv2Parser.CHAINS:this.enterOuterAlt(localContext,2),this.state=1892,this.chainingPart();break;case _SysMLv2Parser.INVERSE:this.enterOuterAlt(localContext,3),this.state=1893,this.invertingPart();break;case _SysMLv2Parser.FEATURED:this.enterOuterAlt(localContext,4),this.state=1894,this.typeFeaturingPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}chainingPart(){let localContext=new ChainingPartContext(this.context,this.state);this.enterRule(localContext,194,_SysMLv2Parser.RULE_chainingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1897,this.match(_SysMLv2Parser.CHAINS),this.state=1898,this.qualifiedName(),this.state=1903,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=1899,this.match(_SysMLv2Parser.DOT),this.state=1900,this.qualifiedName(),this.state=1905,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}invertingPart(){let localContext=new InvertingPartContext(this.context,this.state);this.enterRule(localContext,196,_SysMLv2Parser.RULE_invertingPart);try{this.enterOuterAlt(localContext,1),this.state=1906,this.match(_SysMLv2Parser.INVERSE),this.state=1907,this.match(_SysMLv2Parser.OF),this.state=1908,this.ownedFeatureInverting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeFeaturingPart(){let localContext=new TypeFeaturingPartContext(this.context,this.state);this.enterRule(localContext,198,_SysMLv2Parser.RULE_typeFeaturingPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1910,this.match(_SysMLv2Parser.FEATURED),this.state=1911,this.match(_SysMLv2Parser.BY),this.state=1912,this.ownedTypeFeaturing(),this.state=1917,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1913,this.match(_SysMLv2Parser.COMMA),this.state=1914,this.ownedTypeFeaturing(),this.state=1919,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureSpecializationPart(){let localContext=new FeatureSpecializationPartContext(this.context,this.state);this.enterRule(localContext,200,_SysMLv2Parser.RULE_featureSpecializationPart);try{let alternative;switch(this.state=1941,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.COLON_COLON_GT:case _SysMLv2Parser.COLON_GT_GT:case _SysMLv2Parser.COLON_GT:case _SysMLv2Parser.FAT_ARROW:case _SysMLv2Parser.COLON:this.enterOuterAlt(localContext,1);{this.state=1921,this.errorHandler.sync(this),alternative=1;do{if(alternative===1)this.state=1920,this.featureSpecialization();else throw new NoViableAltException(this);this.state=1923,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,131,this.context)}while(alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER);for(this.state=1926,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,132,this.context)===1&&(this.state=1925,this.multiplicityPart()),this.state=1931,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,133,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1928,this.featureSpecialization()),this.state=1933,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,133,this.context)}break;case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:case _SysMLv2Parser.LBRACK:for(this.enterOuterAlt(localContext,2),this.state=1934,this.multiplicityPart(),this.state=1938,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,134,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=1935,this.featureSpecialization()),this.state=1940,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,134,this.context);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityPart(){let localContext=new MultiplicityPartContext(this.context,this.state);this.enterRule(localContext,202,_SysMLv2Parser.RULE_multiplicityPart);try{switch(this.state=1964,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.LBRACK:switch(this.enterOuterAlt(localContext,1),this.state=1943,this.ownedMultiplicity(),this.state=1952,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,138,this.context)){case 1:this.state=1944,this.match(_SysMLv2Parser.ORDERED),this.state=1946,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,136,this.context)===1&&(this.state=1945,this.match(_SysMLv2Parser.NONUNIQUE));break;case 2:this.state=1948,this.match(_SysMLv2Parser.NONUNIQUE),this.state=1950,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,137,this.context)===1&&(this.state=1949,this.match(_SysMLv2Parser.ORDERED));break}break;case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:switch(this.enterOuterAlt(localContext,2),this.state=1962,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ORDERED:this.state=1954,this.match(_SysMLv2Parser.ORDERED),this.state=1956,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,139,this.context)===1&&(this.state=1955,this.match(_SysMLv2Parser.NONUNIQUE));break;case _SysMLv2Parser.NONUNIQUE:this.state=1958,this.match(_SysMLv2Parser.NONUNIQUE),this.state=1960,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,140,this.context)===1&&(this.state=1959,this.match(_SysMLv2Parser.ORDERED));break;default:throw new NoViableAltException(this)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureSpecialization(){let localContext=new FeatureSpecializationContext(this.context,this.state);this.enterRule(localContext,204,_SysMLv2Parser.RULE_featureSpecialization);try{switch(this.state=1971,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.COLON:this.enterOuterAlt(localContext,1),this.state=1966,this.typings();break;case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.COLON_GT:this.enterOuterAlt(localContext,2),this.state=1967,this.subsettings();break;case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.COLON_COLON_GT:this.enterOuterAlt(localContext,3),this.state=1968,this.references();break;case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FAT_ARROW:this.enterOuterAlt(localContext,4),this.state=1969,this.crosses();break;case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.COLON_GT_GT:this.enterOuterAlt(localContext,5),this.state=1970,this.redefinitions();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typings(){let localContext=new TypingsContext(this.context,this.state);this.enterRule(localContext,206,_SysMLv2Parser.RULE_typings);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1973,this.typedBy(),this.state=1978,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1974,this.match(_SysMLv2Parser.COMMA),this.state=1975,this.featureTyping(),this.state=1980,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typedBy(){let localContext=new TypedByContext(this.context,this.state);this.enterRule(localContext,208,_SysMLv2Parser.RULE_typedBy);try{this.enterOuterAlt(localContext,1);{switch(this.state=1986,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=1981,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=1982,this.match(_SysMLv2Parser.TYPED),this.state=1983,this.match(_SysMLv2Parser.BY);break;case _SysMLv2Parser.DEFINED:this.state=1984,this.match(_SysMLv2Parser.DEFINED),this.state=1985,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}this.state=1988,this.featureTyping()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subsettings(){let localContext=new SubsettingsContext(this.context,this.state);this.enterRule(localContext,210,_SysMLv2Parser.RULE_subsettings);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=1990,this.subsets(),this.state=1995,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=1991,this.match(_SysMLv2Parser.COMMA),this.state=1992,this.ownedSubsetting(),this.state=1997,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subsets(){let localContext=new SubsetsContext(this.context,this.state);this.enterRule(localContext,212,_SysMLv2Parser.RULE_subsets);let _la;try{this.enterOuterAlt(localContext,1),this.state=1998,_la=this.tokenStream.LA(1),_la===148||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1999,this.ownedSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}references(){let localContext=new ReferencesContext(this.context,this.state);this.enterRule(localContext,214,_SysMLv2Parser.RULE_references);let _la;try{this.enterOuterAlt(localContext,1),this.state=2001,_la=this.tokenStream.LA(1),_la===128||_la===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2002,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}crosses(){let localContext=new CrossesContext(this.context,this.state);this.enterRule(localContext,216,_SysMLv2Parser.RULE_crosses);let _la;try{this.enterOuterAlt(localContext,1),this.state=2004,_la=this.tokenStream.LA(1),_la===42||_la===188?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2005,this.ownedCrossSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}redefinitions(){let localContext=new RedefinitionsContext(this.context,this.state);this.enterRule(localContext,218,_SysMLv2Parser.RULE_redefinitions);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2007,this.redefines(),this.state=2012,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2008,this.match(_SysMLv2Parser.COMMA),this.state=2009,this.ownedRedefinition(),this.state=2014,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}redefines(){let localContext=new RedefinesContext(this.context,this.state);this.enterRule(localContext,220,_SysMLv2Parser.RULE_redefines);let _la;try{this.enterOuterAlt(localContext,1),this.state=2015,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2016,this.ownedRedefinition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureTyping(){let localContext=new FeatureTypingContext(this.context,this.state);this.enterRule(localContext,222,_SysMLv2Parser.RULE_featureTyping);let _la;try{switch(this.state=2036,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SPECIALIZATION:case _SysMLv2Parser.TYPING:this.enterOuterAlt(localContext,1);{switch(this.state=2022,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=2018,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=2020,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2019,this.identification())),this.state=2024,this.match(_SysMLv2Parser.TYPING),this.state=2025,this.qualifiedName(),this.state=2029,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=2026,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=2027,this.match(_SysMLv2Parser.TYPED),this.state=2028,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}this.state=2031,this.generalType(),this.state=2032,this.relationshipBody()}break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,2),this.state=2034,this.ownedFeatureTyping();break;case _SysMLv2Parser.TILDE:this.enterOuterAlt(localContext,3),this.state=2035,this.conjugatedPortTyping();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureTyping(){let localContext=new OwnedFeatureTypingContext(this.context,this.state);this.enterRule(localContext,224,_SysMLv2Parser.RULE_ownedFeatureTyping);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2038,this.qualifiedName(),this.state=2043,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2039,this.match(_SysMLv2Parser.DOT),this.state=2040,this.qualifiedName(),this.state=2045,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subsetting(){let localContext=new SubsettingContext(this.context,this.state);this.enterRule(localContext,226,_SysMLv2Parser.RULE_subsetting);let _la;try{this.enterOuterAlt(localContext,1),this.state=2050,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=2046,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=2048,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2047,this.identification())),this.state=2052,this.match(_SysMLv2Parser.SUBSET),this.state=2053,this.specificType(),this.state=2054,_la=this.tokenStream.LA(1),_la===148||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2055,this.generalType(),this.state=2056,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedSubsetting(){let localContext=new OwnedSubsettingContext(this.context,this.state);this.enterRule(localContext,228,_SysMLv2Parser.RULE_ownedSubsetting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2058,this.qualifiedName(),this.state=2063,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2059,this.match(_SysMLv2Parser.DOT),this.state=2060,this.qualifiedName(),this.state=2065,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedReferenceSubsetting(){let localContext=new OwnedReferenceSubsettingContext(this.context,this.state);this.enterRule(localContext,230,_SysMLv2Parser.RULE_ownedReferenceSubsetting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2066,this.qualifiedName(),this.state=2071,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2067,this.match(_SysMLv2Parser.DOT),this.state=2068,this.qualifiedName(),this.state=2073,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossSubsetting(){let localContext=new OwnedCrossSubsettingContext(this.context,this.state);this.enterRule(localContext,232,_SysMLv2Parser.RULE_ownedCrossSubsetting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2074,this.qualifiedName(),this.state=2079,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2075,this.match(_SysMLv2Parser.DOT),this.state=2076,this.qualifiedName(),this.state=2081,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}redefinition(){let localContext=new RedefinitionContext(this.context,this.state);this.enterRule(localContext,234,_SysMLv2Parser.RULE_redefinition);let _la;try{this.enterOuterAlt(localContext,1),this.state=2086,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===138&&(this.state=2082,this.match(_SysMLv2Parser.SPECIALIZATION),this.state=2084,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2083,this.identification())),this.state=2088,this.match(_SysMLv2Parser.REDEFINITION),this.state=2089,this.specificType(),this.state=2090,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2091,this.generalType(),this.state=2092,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedRedefinition(){let localContext=new OwnedRedefinitionContext(this.context,this.state);this.enterRule(localContext,236,_SysMLv2Parser.RULE_ownedRedefinition);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2094,this.qualifiedName(),this.state=2099,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2095,this.match(_SysMLv2Parser.DOT),this.state=2096,this.qualifiedName(),this.state=2101,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureChain(){let localContext=new OwnedFeatureChainContext(this.context,this.state);this.enterRule(localContext,238,_SysMLv2Parser.RULE_ownedFeatureChain);let _la;try{switch(this.state=2110,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,162,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2102,this.featureChain();break;case 2:this.enterOuterAlt(localContext,2);{this.state=2103,this.ownedFeatureChaining(),this.state=2106,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=2104,this.match(_SysMLv2Parser.DOT),this.state=2105,this.ownedFeatureChaining(),this.state=2108,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===202)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureChain(){let localContext=new FeatureChainContext(this.context,this.state);this.enterRule(localContext,240,_SysMLv2Parser.RULE_featureChain);let _la;try{this.enterOuterAlt(localContext,1);{this.state=2112,this.ownedFeatureChaining(),this.state=2115,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=2113,this.match(_SysMLv2Parser.DOT),this.state=2114,this.ownedFeatureChaining(),this.state=2117,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===202)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureChaining(){let localContext=new OwnedFeatureChainingContext(this.context,this.state);this.enterRule(localContext,242,_SysMLv2Parser.RULE_ownedFeatureChaining);try{this.enterOuterAlt(localContext,1),this.state=2119,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureInverting(){let localContext=new FeatureInvertingContext(this.context,this.state);this.enterRule(localContext,244,_SysMLv2Parser.RULE_featureInverting);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2125,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===89&&(this.state=2121,this.match(_SysMLv2Parser.INVERTING),this.state=2123,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2122,this.identification())),this.state=2127,this.match(_SysMLv2Parser.INVERSE),this.state=2128,this.qualifiedName(),this.state=2133,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2129,this.match(_SysMLv2Parser.DOT),this.state=2130,this.qualifiedName(),this.state=2135,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=2136,this.match(_SysMLv2Parser.OF),this.state=2137,this.qualifiedName(),this.state=2142,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2138,this.match(_SysMLv2Parser.DOT),this.state=2139,this.qualifiedName(),this.state=2144,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2145,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureInverting(){let localContext=new OwnedFeatureInvertingContext(this.context,this.state);this.enterRule(localContext,246,_SysMLv2Parser.RULE_ownedFeatureInverting);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2147,this.qualifiedName(),this.state=2152,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2148,this.match(_SysMLv2Parser.DOT),this.state=2149,this.qualifiedName(),this.state=2154,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeFeaturing(){let localContext=new TypeFeaturingContext(this.context,this.state);this.enterRule(localContext,248,_SysMLv2Parser.RULE_typeFeaturing);let _la;try{this.enterOuterAlt(localContext,1),this.state=2155,this.match(_SysMLv2Parser.FEATURING),this.state=2160,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,170,this.context)===1&&(this.state=2157,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2156,this.identification()),this.state=2159,this.match(_SysMLv2Parser.OF)),this.state=2162,this.qualifiedName(),this.state=2163,this.match(_SysMLv2Parser.BY),this.state=2164,this.qualifiedName(),this.state=2165,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedTypeFeaturing(){let localContext=new OwnedTypeFeaturingContext(this.context,this.state);this.enterRule(localContext,250,_SysMLv2Parser.RULE_ownedTypeFeaturing);try{this.enterOuterAlt(localContext,1),this.state=2167,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}dataType(){let localContext=new DataTypeContext(this.context,this.state);this.enterRule(localContext,252,_SysMLv2Parser.RULE_dataType);try{this.enterOuterAlt(localContext,1),this.state=2169,this.typePrefix(),this.state=2170,this.match(_SysMLv2Parser.DATATYPE),this.state=2171,this.classifierDeclaration(),this.state=2172,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}class_(){let localContext=new ClassContext(this.context,this.state);this.enterRule(localContext,254,_SysMLv2Parser.RULE_class);try{this.enterOuterAlt(localContext,1),this.state=2174,this.typePrefix(),this.state=2175,this.match(_SysMLv2Parser.CLASS),this.state=2176,this.classifierDeclaration(),this.state=2177,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}structure(){let localContext=new StructureContext(this.context,this.state);this.enterRule(localContext,256,_SysMLv2Parser.RULE_structure);try{this.enterOuterAlt(localContext,1),this.state=2179,this.typePrefix(),this.state=2180,this.match(_SysMLv2Parser.STRUCT),this.state=2181,this.classifierDeclaration(),this.state=2182,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}association(){let localContext=new AssociationContext(this.context,this.state);this.enterRule(localContext,258,_SysMLv2Parser.RULE_association);try{this.enterOuterAlt(localContext,1),this.state=2184,this.typePrefix(),this.state=2185,this.match(_SysMLv2Parser.ASSOC),this.state=2186,this.classifierDeclaration(),this.state=2187,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}associationStructure(){let localContext=new AssociationStructureContext(this.context,this.state);this.enterRule(localContext,260,_SysMLv2Parser.RULE_associationStructure);try{this.enterOuterAlt(localContext,1),this.state=2189,this.typePrefix(),this.state=2190,this.match(_SysMLv2Parser.ASSOC),this.state=2191,this.match(_SysMLv2Parser.STRUCT),this.state=2192,this.classifierDeclaration(),this.state=2193,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connector(){let localContext=new ConnectorContext(this.context,this.state);this.enterRule(localContext,262,_SysMLv2Parser.RULE_connector);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2195,this.featurePrefix(),this.state=2196,this.match(_SysMLv2Parser.CONNECTOR),this.state=2204,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,173,this.context)){case 1:this.state=2198,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=2197,this.featureDeclaration()),this.state=2201,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2200,this.valuePart());break;case 2:this.state=2203,this.connectorDeclaration();break}this.state=2206,this.typeBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorDeclaration(){let localContext=new ConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,264,_SysMLv2Parser.RULE_connectorDeclaration);try{switch(this.state=2210,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,174,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2208,this.binaryConnectorDeclaration();break;case 2:this.enterOuterAlt(localContext,2),this.state=2209,this.naryConnectorDeclaration();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}binaryConnectorDeclaration(){let localContext=new BinaryConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,266,_SysMLv2Parser.RULE_binaryConnectorDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2220,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,177,this.context)){case 1:this.state=2213,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=2212,this.featureDeclaration()),this.state=2215,this.match(_SysMLv2Parser.FROM);break;case 2:this.state=2216,this.match(_SysMLv2Parser.ALL),this.state=2218,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=2217,this.match(_SysMLv2Parser.FROM));break}this.state=2222,this.connectorEndMember(),this.state=2223,this.match(_SysMLv2Parser.TO),this.state=2224,this.connectorEndMember()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}naryConnectorDeclaration(){let localContext=new NaryConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,268,_SysMLv2Parser.RULE_naryConnectorDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2227,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-34&-32)===0&&(1<<_la-34&2147492097)!==0||(_la-75&-32)===0&&(1<<_la-75&2488533505)!==0||(_la-113&-32)===0&&(1<<_la-113&1073778945)!==0||(_la-148&-32)===0&&(1<<_la-148&402687489)!==0||(_la-185&-32)===0&&(1<<_la-185&69730313)!==0||(_la-217&-32)===0&&(1<<_la-217&7)!==0)&&(this.state=2226,this.featureDeclaration()),this.state=2229,this.match(_SysMLv2Parser.LPAREN),this.state=2230,this.connectorEndMember(),this.state=2231,this.match(_SysMLv2Parser.COMMA),this.state=2232,this.connectorEndMember(),this.state=2237,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2233,this.match(_SysMLv2Parser.COMMA),this.state=2234,this.connectorEndMember(),this.state=2239,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2240,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorEndMember(){let localContext=new ConnectorEndMemberContext(this.context,this.state);this.enterRule(localContext,270,_SysMLv2Parser.RULE_connectorEndMember);try{this.enterOuterAlt(localContext,1),this.state=2242,this.connectorEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorEnd(){let localContext=new ConnectorEndContext(this.context,this.state);this.enterRule(localContext,272,_SysMLv2Parser.RULE_connectorEnd);let _la;try{this.enterOuterAlt(localContext,1),this.state=2245,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=2244,this.ownedCrossMultiplicityMember()),this.state=2250,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,181,this.context)===1&&(this.state=2247,this.name(),this.state=2248,_la=this.tokenStream.LA(1),_la===128||_la===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2252,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossMultiplicityMember(){let localContext=new OwnedCrossMultiplicityMemberContext(this.context,this.state);this.enterRule(localContext,274,_SysMLv2Parser.RULE_ownedCrossMultiplicityMember);try{this.enterOuterAlt(localContext,1),this.state=2254,this.ownedCrossMultiplicity()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedCrossMultiplicity(){let localContext=new OwnedCrossMultiplicityContext(this.context,this.state);this.enterRule(localContext,276,_SysMLv2Parser.RULE_ownedCrossMultiplicity);try{this.enterOuterAlt(localContext,1),this.state=2256,this.ownedMultiplicity()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bindingConnector(){let localContext=new BindingConnectorContext(this.context,this.state);this.enterRule(localContext,278,_SysMLv2Parser.RULE_bindingConnector);try{this.enterOuterAlt(localContext,1),this.state=2258,this.featurePrefix(),this.state=2259,this.match(_SysMLv2Parser.BINDING),this.state=2260,this.bindingConnectorDeclaration(),this.state=2261,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bindingConnectorDeclaration(){let localContext=new BindingConnectorDeclarationContext(this.context,this.state);this.enterRule(localContext,280,_SysMLv2Parser.RULE_bindingConnectorDeclaration);let _la;try{switch(this.state=2283,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,186,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2263,this.featureDeclaration(),this.state=2269,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2264,this.match(_SysMLv2Parser.OF),this.state=2265,this.connectorEndMember(),this.state=2266,this.match(_SysMLv2Parser.EQ),this.state=2267,this.connectorEndMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=2272,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=2271,this.match(_SysMLv2Parser.ALL)),this.state=2281,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16793681)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-193&-32)===0&&(1<<_la-193&100925441)!==0)&&(this.state=2275,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2274,this.match(_SysMLv2Parser.OF)),this.state=2277,this.connectorEndMember(),this.state=2278,this.match(_SysMLv2Parser.EQ),this.state=2279,this.connectorEndMember());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}succession(){let localContext=new SuccessionContext(this.context,this.state);this.enterRule(localContext,282,_SysMLv2Parser.RULE_succession);try{this.enterOuterAlt(localContext,1),this.state=2285,this.featurePrefix(),this.state=2286,this.match(_SysMLv2Parser.SUCCESSION),this.state=2287,this.successionDeclaration(),this.state=2288,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionDeclaration(){let localContext=new SuccessionDeclarationContext(this.context,this.state);this.enterRule(localContext,284,_SysMLv2Parser.RULE_successionDeclaration);let _la;try{switch(this.state=2310,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,191,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2290,this.featureDeclaration(),this.state=2296,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===69&&(this.state=2291,this.match(_SysMLv2Parser.FIRST),this.state=2292,this.connectorEndMember(),this.state=2293,this.match(_SysMLv2Parser.THEN),this.state=2294,this.connectorEndMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=2299,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=2298,this.match(_SysMLv2Parser.ALL)),this.state=2308,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702609)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-193&-32)===0&&(1<<_la-193&100925441)!==0)&&(this.state=2302,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===69&&(this.state=2301,this.match(_SysMLv2Parser.FIRST)),this.state=2304,this.connectorEndMember(),this.state=2305,this.match(_SysMLv2Parser.THEN),this.state=2306,this.connectorEndMember());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}behavior(){let localContext=new BehaviorContext(this.context,this.state);this.enterRule(localContext,286,_SysMLv2Parser.RULE_behavior);try{this.enterOuterAlt(localContext,1),this.state=2312,this.typePrefix(),this.state=2313,this.match(_SysMLv2Parser.BEHAVIOR),this.state=2314,this.classifierDeclaration(),this.state=2315,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}step(){let localContext=new StepContext(this.context,this.state);this.enterRule(localContext,288,_SysMLv2Parser.RULE_step);let _la;try{this.enterOuterAlt(localContext,1),this.state=2317,this.featurePrefix(),this.state=2318,this.match(_SysMLv2Parser.STEP),this.state=2319,this.featureDeclaration(),this.state=2321,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2320,this.valuePart()),this.state=2323,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}function_(){let localContext=new FunctionContext(this.context,this.state);this.enterRule(localContext,290,_SysMLv2Parser.RULE_function);try{this.enterOuterAlt(localContext,1),this.state=2325,this.typePrefix(),this.state=2326,this.match(_SysMLv2Parser.FUNCTION),this.state=2327,this.classifierDeclaration(),this.state=2328,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionBody(){let localContext=new FunctionBodyContext(this.context,this.state);this.enterRule(localContext,292,_SysMLv2Parser.RULE_functionBody);try{switch(this.state=2335,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2330,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2),this.state=2331,this.match(_SysMLv2Parser.LBRACE),this.state=2332,this.functionBodyPart(),this.state=2333,this.match(_SysMLv2Parser.RBRACE);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionBodyPart(){let localContext=new FunctionBodyPartContext(this.context,this.state);this.enterRule(localContext,294,_SysMLv2Parser.RULE_functionBodyPart);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{for(this.state=2342,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,195,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;){if(alternative===1)switch(this.state=2340,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,194,this.context)){case 1:this.state=2337,this.definitionBodyItem();break;case 2:this.state=2338,this.typeBodyElement();break;case 3:this.state=2339,this.returnFeatureMember();break}this.state=2344,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,195,this.context)}this.state=2346,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&245763)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=2345,this.resultExpressionMember())}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}returnFeatureMember(){let localContext=new ReturnFeatureMemberContext(this.context,this.state);this.enterRule(localContext,296,_SysMLv2Parser.RULE_returnFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2348,this.memberPrefix(),this.state=2349,this.match(_SysMLv2Parser.RETURN),this.state=2350,this.featureElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}resultExpressionMember(){let localContext=new ResultExpressionMemberContext(this.context,this.state);this.enterRule(localContext,298,_SysMLv2Parser.RULE_resultExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=2352,this.memberPrefix(),this.state=2353,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expression(){let localContext=new ExpressionContext(this.context,this.state);this.enterRule(localContext,300,_SysMLv2Parser.RULE_expression);let _la;try{this.enterOuterAlt(localContext,1),this.state=2355,this.featurePrefix(),this.state=2356,this.match(_SysMLv2Parser.EXPR),this.state=2357,this.featureDeclaration(),this.state=2359,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2358,this.valuePart()),this.state=2361,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}predicate(){let localContext=new PredicateContext(this.context,this.state);this.enterRule(localContext,302,_SysMLv2Parser.RULE_predicate);try{this.enterOuterAlt(localContext,1),this.state=2363,this.typePrefix(),this.state=2364,this.match(_SysMLv2Parser.PREDICATE),this.state=2365,this.classifierDeclaration(),this.state=2366,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}booleanExpression(){let localContext=new BooleanExpressionContext(this.context,this.state);this.enterRule(localContext,304,_SysMLv2Parser.RULE_booleanExpression);let _la;try{this.enterOuterAlt(localContext,1),this.state=2368,this.featurePrefix(),this.state=2369,this.match(_SysMLv2Parser.BOOL),this.state=2370,this.featureDeclaration(),this.state=2372,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2371,this.valuePart()),this.state=2374,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}invariant(){let localContext=new InvariantContext(this.context,this.state);this.enterRule(localContext,306,_SysMLv2Parser.RULE_invariant);let _la;try{this.enterOuterAlt(localContext,1),this.state=2376,this.featurePrefix(),this.state=2377,this.match(_SysMLv2Parser.INV),this.state=2379,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===64||_la===156)&&(this.state=2378,_la=this.tokenStream.LA(1),_la===64||_la===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2381,this.featureDeclaration(),this.state=2383,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2382,this.valuePart()),this.state=2385,this.functionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedExpressionMember(){let localContext=new OwnedExpressionMemberContext(this.context,this.state);this.enterRule(localContext,308,_SysMLv2Parser.RULE_ownedExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=2387,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataReference(){let localContext=new MetadataReferenceContext(this.context,this.state);this.enterRule(localContext,310,_SysMLv2Parser.RULE_metadataReference);try{this.enterOuterAlt(localContext,1),this.state=2389,this.elementReferenceMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeReferenceMember(){let localContext=new TypeReferenceMemberContext(this.context,this.state);this.enterRule(localContext,312,_SysMLv2Parser.RULE_typeReferenceMember);try{this.enterOuterAlt(localContext,1),this.state=2391,this.typeReference()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}typeResultMember(){let localContext=new TypeResultMemberContext(this.context,this.state);this.enterRule(localContext,314,_SysMLv2Parser.RULE_typeResultMember);try{this.enterOuterAlt(localContext,1),this.state=2393,this.typeReference()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}referenceTyping(){let localContext=new ReferenceTypingContext(this.context,this.state);this.enterRule(localContext,316,_SysMLv2Parser.RULE_referenceTyping);try{this.enterOuterAlt(localContext,1),this.state=2395,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyResultMember(){let localContext=new EmptyResultMemberContext(this.context,this.state);this.enterRule(localContext,318,_SysMLv2Parser.RULE_emptyResultMember);try{this.enterOuterAlt(localContext,1),this.state=2397,this.emptyFeature_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sequenceOperatorExpression(){let localContext=new SequenceOperatorExpressionContext(this.context,this.state);this.enterRule(localContext,320,_SysMLv2Parser.RULE_sequenceOperatorExpression);try{this.enterOuterAlt(localContext,1),this.state=2399,this.ownedExpressionMember(),this.state=2400,this.match(_SysMLv2Parser.COMMA),this.state=2401,this.sequenceExpressionListMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sequenceExpressionListMember(){let localContext=new SequenceExpressionListMemberContext(this.context,this.state);this.enterRule(localContext,322,_SysMLv2Parser.RULE_sequenceExpressionListMember);try{this.enterOuterAlt(localContext,1),this.state=2403,this.sequenceExpressionList()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bodyArgumentMember(){let localContext=new BodyArgumentMemberContext(this.context,this.state);this.enterRule(localContext,324,_SysMLv2Parser.RULE_bodyArgumentMember);try{this.enterOuterAlt(localContext,1),this.state=2405,this.bodyArgument()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bodyArgument(){let localContext=new BodyArgumentContext(this.context,this.state);this.enterRule(localContext,326,_SysMLv2Parser.RULE_bodyArgument);try{this.enterOuterAlt(localContext,1),this.state=2407,this.bodyArgumentValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bodyArgumentValue(){let localContext=new BodyArgumentValueContext(this.context,this.state);this.enterRule(localContext,328,_SysMLv2Parser.RULE_bodyArgumentValue);try{this.enterOuterAlt(localContext,1),this.state=2409,this.bodyExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionReferenceArgumentMember(){let localContext=new FunctionReferenceArgumentMemberContext(this.context,this.state);this.enterRule(localContext,330,_SysMLv2Parser.RULE_functionReferenceArgumentMember);try{this.enterOuterAlt(localContext,1),this.state=2411,this.functionReferenceArgument()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionReferenceArgument(){let localContext=new FunctionReferenceArgumentContext(this.context,this.state);this.enterRule(localContext,332,_SysMLv2Parser.RULE_functionReferenceArgument);try{this.enterOuterAlt(localContext,1),this.state=2413,this.functionReferenceArgumentValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionReferenceArgumentValue(){let localContext=new FunctionReferenceArgumentValueContext(this.context,this.state);this.enterRule(localContext,334,_SysMLv2Parser.RULE_functionReferenceArgumentValue);try{this.enterOuterAlt(localContext,1),this.state=2415,this.functionReferenceExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionReferenceExpression(){let localContext=new FunctionReferenceExpressionContext(this.context,this.state);this.enterRule(localContext,336,_SysMLv2Parser.RULE_functionReferenceExpression);try{this.enterOuterAlt(localContext,1),this.state=2417,this.functionReferenceMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionReferenceMember(){let localContext=new FunctionReferenceMemberContext(this.context,this.state);this.enterRule(localContext,338,_SysMLv2Parser.RULE_functionReferenceMember);try{this.enterOuterAlt(localContext,1),this.state=2419,this.functionReference()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}functionReference(){let localContext=new FunctionReferenceContext(this.context,this.state);this.enterRule(localContext,340,_SysMLv2Parser.RULE_functionReference);try{this.enterOuterAlt(localContext,1),this.state=2421,this.referenceTyping()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureChainMember(){let localContext=new FeatureChainMemberContext(this.context,this.state);this.enterRule(localContext,342,_SysMLv2Parser.RULE_featureChainMember);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2423,this.qualifiedName(),this.state=2428,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2424,this.match(_SysMLv2Parser.DOT),this.state=2425,this.qualifiedName(),this.state=2430,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedFeatureChainMember(){let localContext=new OwnedFeatureChainMemberContext(this.context,this.state);this.enterRule(localContext,344,_SysMLv2Parser.RULE_ownedFeatureChainMember);try{switch(this.state=2433,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,202,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2431,this.featureChain();break;case 2:this.enterOuterAlt(localContext,2),this.state=2432,this.ownedFeatureChain();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureReferenceMember(){let localContext=new FeatureReferenceMemberContext(this.context,this.state);this.enterRule(localContext,346,_SysMLv2Parser.RULE_featureReferenceMember);try{this.enterOuterAlt(localContext,1),this.state=2435,this.featureReference()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureReference(){let localContext=new FeatureReferenceContext(this.context,this.state);this.enterRule(localContext,348,_SysMLv2Parser.RULE_featureReference);try{this.enterOuterAlt(localContext,1),this.state=2437,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}elementReferenceMember(){let localContext=new ElementReferenceMemberContext(this.context,this.state);this.enterRule(localContext,350,_SysMLv2Parser.RULE_elementReferenceMember);try{this.enterOuterAlt(localContext,1),this.state=2439,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constructorResultMember(){let localContext=new ConstructorResultMemberContext(this.context,this.state);this.enterRule(localContext,352,_SysMLv2Parser.RULE_constructorResultMember);try{this.enterOuterAlt(localContext,1),this.state=2441,this.constructorResult()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constructorResult(){let localContext=new ConstructorResultContext(this.context,this.state);this.enterRule(localContext,354,_SysMLv2Parser.RULE_constructorResult);try{this.enterOuterAlt(localContext,1),this.state=2443,this.argumentList()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}instantiatedTypeMember(){let localContext=new InstantiatedTypeMemberContext(this.context,this.state);this.enterRule(localContext,356,_SysMLv2Parser.RULE_instantiatedTypeMember);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2445,this.qualifiedName(),this.state=2450,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2446,this.match(_SysMLv2Parser.DOT),this.state=2447,this.qualifiedName(),this.state=2452,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}instantiatedTypeReference(){let localContext=new InstantiatedTypeReferenceContext(this.context,this.state);this.enterRule(localContext,358,_SysMLv2Parser.RULE_instantiatedTypeReference);try{this.enterOuterAlt(localContext,1),this.state=2453,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namedArgumentMember(){let localContext=new NamedArgumentMemberContext(this.context,this.state);this.enterRule(localContext,360,_SysMLv2Parser.RULE_namedArgumentMember);try{this.enterOuterAlt(localContext,1),this.state=2455,this.namedArgument()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}parameterRedefinition(){let localContext=new ParameterRedefinitionContext(this.context,this.state);this.enterRule(localContext,362,_SysMLv2Parser.RULE_parameterRedefinition);try{this.enterOuterAlt(localContext,1),this.state=2457,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expressionBodyMember(){let localContext=new ExpressionBodyMemberContext(this.context,this.state);this.enterRule(localContext,364,_SysMLv2Parser.RULE_expressionBodyMember);try{this.enterOuterAlt(localContext,1),this.state=2459,this.expressionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expressionBody(){let localContext=new ExpressionBodyContext(this.context,this.state);this.enterRule(localContext,366,_SysMLv2Parser.RULE_expressionBody);try{this.enterOuterAlt(localContext,1),this.state=2461,this.match(_SysMLv2Parser.LBRACE),this.state=2462,this.functionBodyPart(),this.state=2463,this.match(_SysMLv2Parser.RBRACE)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}booleanValue(){let localContext=new BooleanValueContext(this.context,this.state);this.enterRule(localContext,368,_SysMLv2Parser.RULE_booleanValue);let _la;try{this.enterOuterAlt(localContext,1),this.state=2465,_la=this.tokenStream.LA(1),_la===64||_la===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}realValue(){let localContext=new RealValueContext(this.context,this.state);this.enterRule(localContext,370,_SysMLv2Parser.RULE_realValue);let _la;try{switch(this.state=2473,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.DOT:case _SysMLv2Parser.INTEGER:this.enterOuterAlt(localContext,1),this.state=2468,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===221&&(this.state=2467,this.match(_SysMLv2Parser.INTEGER)),this.state=2470,this.match(_SysMLv2Parser.DOT),this.state=2471,_la=this.tokenStream.LA(1),_la===221||_la===222?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case _SysMLv2Parser.REAL:this.enterOuterAlt(localContext,2),this.state=2472,this.match(_SysMLv2Parser.REAL);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interaction(){let localContext=new InteractionContext(this.context,this.state);this.enterRule(localContext,372,_SysMLv2Parser.RULE_interaction);try{this.enterOuterAlt(localContext,1),this.state=2475,this.typePrefix(),this.state=2476,this.match(_SysMLv2Parser.INTERACTION),this.state=2477,this.classifierDeclaration(),this.state=2478,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flow(){let localContext=new FlowContext(this.context,this.state);this.enterRule(localContext,374,_SysMLv2Parser.RULE_flow);try{this.enterOuterAlt(localContext,1),this.state=2480,this.featurePrefix(),this.state=2481,this.match(_SysMLv2Parser.FLOW),this.state=2482,this.flowDeclaration(),this.state=2483,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionFlow(){let localContext=new SuccessionFlowContext(this.context,this.state);this.enterRule(localContext,376,_SysMLv2Parser.RULE_successionFlow);try{this.enterOuterAlt(localContext,1),this.state=2485,this.featurePrefix(),this.state=2486,this.match(_SysMLv2Parser.SUCCESSION),this.state=2487,this.match(_SysMLv2Parser.FLOW),this.state=2488,this.flowDeclaration(),this.state=2489,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowDeclaration(){let localContext=new FlowDeclarationContext(this.context,this.state);this.enterRule(localContext,378,_SysMLv2Parser.RULE_flowDeclaration);let _la;try{switch(this.state=2530,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,214,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2491,this.featureDeclaration(),this.state=2493,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2492,this.valuePart()),this.state=2497,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2495,this.match(_SysMLv2Parser.OF),this.state=2496,this.payloadFeatureMember()),this.state=2504,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=2499,this.match(_SysMLv2Parser.FROM),this.state=2500,this.flowEndMember(),this.state=2501,this.match(_SysMLv2Parser.TO),this.state=2502,this.flowEndMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=2507,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===8&&(this.state=2506,this.match(_SysMLv2Parser.ALL)),this.state=2509,this.flowEndMember(),this.state=2510,this.match(_SysMLv2Parser.TO),this.state=2511,this.flowEndMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=2514,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=2513,this.usageDeclaration()),this.state=2517,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2516,this.valuePart()),this.state=2521,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=2519,this.match(_SysMLv2Parser.OF),this.state=2520,this.flowPayloadFeatureMember()),this.state=2528,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=2523,this.match(_SysMLv2Parser.FROM),this.state=2524,this.flowEndMember(),this.state=2525,this.match(_SysMLv2Parser.TO),this.state=2526,this.flowEndMember());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadFeatureMember(){let localContext=new PayloadFeatureMemberContext(this.context,this.state);this.enterRule(localContext,380,_SysMLv2Parser.RULE_payloadFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2532,this.payloadFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadFeature(){let localContext=new PayloadFeatureContext(this.context,this.state);this.enterRule(localContext,382,_SysMLv2Parser.RULE_payloadFeature);let _la;try{switch(this.state=2553,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,220,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2535,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2534,this.identification()),this.state=2537,this.valuePart();break;case 2:this.enterOuterAlt(localContext,2),this.state=2539,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,216,this.context)===1&&(this.state=2538,this.identification()),this.state=2541,this.payloadFeatureSpecializationPart(),this.state=2543,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2542,this.valuePart());break;case 3:this.enterOuterAlt(localContext,3),this.state=2545,this.ownedFeatureTyping(),this.state=2547,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=2546,this.ownedMultiplicity());break;case 4:this.enterOuterAlt(localContext,4),this.state=2549,this.ownedMultiplicity(),this.state=2551,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-193&-32)===0&&(1<<_la-193&100663297)!==0)&&(this.state=2550,this.ownedFeatureTyping());break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadFeatureSpecializationPart(){let localContext=new PayloadFeatureSpecializationPartContext(this.context,this.state);this.enterRule(localContext,384,_SysMLv2Parser.RULE_payloadFeatureSpecializationPart);let _la;try{let alternative;switch(this.state=2575,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.COLON_COLON_GT:case _SysMLv2Parser.COLON_GT_GT:case _SysMLv2Parser.COLON_GT:case _SysMLv2Parser.FAT_ARROW:case _SysMLv2Parser.COLON:this.enterOuterAlt(localContext,1);{this.state=2556,this.errorHandler.sync(this),alternative=1;do{if(alternative===1)this.state=2555,this.featureSpecialization();else throw new NoViableAltException(this);this.state=2558,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,221,this.context)}while(alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER);for(this.state=2561,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===106||_la===113||_la===211)&&(this.state=2560,this.multiplicityPart()),this.state=2566,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204;)this.state=2563,this.featureSpecialization(),this.state=2568,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}break;case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:case _SysMLv2Parser.LBRACK:this.enterOuterAlt(localContext,2);{this.state=2569,this.multiplicityPart(),this.state=2571,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=2570,this.featureSpecialization(),this.state=2573,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowEndMember(){let localContext=new FlowEndMemberContext(this.context,this.state);this.enterRule(localContext,386,_SysMLv2Parser.RULE_flowEndMember);try{this.enterOuterAlt(localContext,1),this.state=2577,this.flowEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowEnd(){let localContext=new FlowEndContext(this.context,this.state);this.enterRule(localContext,388,_SysMLv2Parser.RULE_flowEnd);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2579,this.qualifiedName(),this.state=2584,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===202;)this.state=2580,this.match(_SysMLv2Parser.DOT),this.state=2581,this.qualifiedName(),this.state=2586,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowFeatureMember(){let localContext=new FlowFeatureMemberContext(this.context,this.state);this.enterRule(localContext,390,_SysMLv2Parser.RULE_flowFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2587,this.flowFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowFeature(){let localContext=new FlowFeatureContext(this.context,this.state);this.enterRule(localContext,392,_SysMLv2Parser.RULE_flowFeature);try{this.enterOuterAlt(localContext,1),this.state=2589,this.flowFeatureRedefinition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowFeatureRedefinition(){let localContext=new FlowFeatureRedefinitionContext(this.context,this.state);this.enterRule(localContext,394,_SysMLv2Parser.RULE_flowFeatureRedefinition);try{this.enterOuterAlt(localContext,1),this.state=2591,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}valuePart(){let localContext=new ValuePartContext(this.context,this.state);this.enterRule(localContext,396,_SysMLv2Parser.RULE_valuePart);try{this.enterOuterAlt(localContext,1),this.state=2593,this.featureValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureValue(){let localContext=new FeatureValueContext(this.context,this.state);this.enterRule(localContext,398,_SysMLv2Parser.RULE_featureValue);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2601,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.EQ:this.state=2595,this.match(_SysMLv2Parser.EQ);break;case _SysMLv2Parser.COLON_EQ:this.state=2596,this.match(_SysMLv2Parser.COLON_EQ);break;case _SysMLv2Parser.DEFAULT:this.state=2597,this.match(_SysMLv2Parser.DEFAULT),this.state=2599,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===184||_la===207)&&(this.state=2598,_la=this.tokenStream.LA(1),_la===184||_la===207?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;default:throw new NoViableAltException(this)}this.state=2603,this.ownedExpression(0)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicity(){let localContext=new MultiplicityContext(this.context,this.state);this.enterRule(localContext,400,_SysMLv2Parser.RULE_multiplicity);try{switch(this.state=2607,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,229,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2605,this.multiplicitySubset();break;case 2:this.enterOuterAlt(localContext,2),this.state=2606,this.multiplicityRange();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicitySubset(){let localContext=new MultiplicitySubsetContext(this.context,this.state);this.enterRule(localContext,402,_SysMLv2Parser.RULE_multiplicitySubset);let _la;try{this.enterOuterAlt(localContext,1),this.state=2609,this.match(_SysMLv2Parser.MULTIPLICITY),this.state=2611,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2610,this.identification()),this.state=2613,this.subsets(),this.state=2614,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityRange(){let localContext=new MultiplicityRangeContext(this.context,this.state);this.enterRule(localContext,404,_SysMLv2Parser.RULE_multiplicityRange);let _la;try{this.enterOuterAlt(localContext,1),this.state=2616,this.match(_SysMLv2Parser.MULTIPLICITY),this.state=2618,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2617,this.identification()),this.state=2620,this.multiplicityBounds(),this.state=2621,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedMultiplicity(){let localContext=new OwnedMultiplicityContext(this.context,this.state);this.enterRule(localContext,406,_SysMLv2Parser.RULE_ownedMultiplicity);try{this.enterOuterAlt(localContext,1),this.state=2623,this.ownedMultiplicityRange()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ownedMultiplicityRange(){let localContext=new OwnedMultiplicityRangeContext(this.context,this.state);this.enterRule(localContext,408,_SysMLv2Parser.RULE_ownedMultiplicityRange);try{this.enterOuterAlt(localContext,1),this.state=2625,this.multiplicityBounds()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityBounds(){let localContext=new MultiplicityBoundsContext(this.context,this.state);this.enterRule(localContext,410,_SysMLv2Parser.RULE_multiplicityBounds);try{this.enterOuterAlt(localContext,1),this.state=2627,this.match(_SysMLv2Parser.LBRACK),this.state=2631,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,232,this.context)===1&&(this.state=2628,this.multiplicityExpressionMember(),this.state=2629,this.match(_SysMLv2Parser.DOT_DOT)),this.state=2633,this.multiplicityExpressionMember(),this.state=2634,this.match(_SysMLv2Parser.RBRACK)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}multiplicityExpressionMember(){let localContext=new MultiplicityExpressionMemberContext(this.context,this.state);this.enterRule(localContext,412,_SysMLv2Parser.RULE_multiplicityExpressionMember);try{switch(this.enterOuterAlt(localContext,1),this.state=2638,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.FALSE:case _SysMLv2Parser.TRUE:case _SysMLv2Parser.STAR:case _SysMLv2Parser.DOUBLE_STRING:case _SysMLv2Parser.INTEGER:case _SysMLv2Parser.REAL:this.state=2636,this.literalExpression();break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=2637,this.featureReferenceExpression();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metaclass(){let localContext=new MetaclassContext(this.context,this.state);this.enterRule(localContext,414,_SysMLv2Parser.RULE_metaclass);try{this.enterOuterAlt(localContext,1),this.state=2640,this.typePrefix(),this.state=2641,this.match(_SysMLv2Parser.METACLASS),this.state=2642,this.classifierDeclaration(),this.state=2643,this.typeBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataAnnotation(){let localContext=new PrefixMetadataAnnotationContext(this.context,this.state);this.enterRule(localContext,416,_SysMLv2Parser.RULE_prefixMetadataAnnotation);try{switch(this.state=2649,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,234,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2645,this.match(_SysMLv2Parser.HASH),this.state=2646,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(localContext,2),this.state=2647,this.match(_SysMLv2Parser.HASH),this.state=2648,this.prefixMetadataUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataMember(){let localContext=new PrefixMetadataMemberContext(this.context,this.state);this.enterRule(localContext,418,_SysMLv2Parser.RULE_prefixMetadataMember);try{switch(this.state=2655,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,235,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2651,this.match(_SysMLv2Parser.HASH),this.state=2652,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(localContext,2),this.state=2653,this.match(_SysMLv2Parser.HASH),this.state=2654,this.prefixMetadataUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataFeature(){let localContext=new PrefixMetadataFeatureContext(this.context,this.state);this.enterRule(localContext,420,_SysMLv2Parser.RULE_prefixMetadataFeature);try{this.enterOuterAlt(localContext,1),this.state=2657,this.ownedFeatureTyping()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataFeature(){let localContext=new MetadataFeatureContext(this.context,this.state);this.enterRule(localContext,422,_SysMLv2Parser.RULE_metadataFeature);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2662,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2659,this.prefixMetadataMember(),this.state=2664,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);if(this.state=2665,_la=this.tokenStream.LA(1),_la===102||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2666,this.metadataFeatureDeclaration(),this.state=2676,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===1)for(this.state=2667,this.match(_SysMLv2Parser.ABOUT),this.state=2668,this.annotation(),this.state=2673,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2669,this.match(_SysMLv2Parser.COMMA),this.state=2670,this.annotation(),this.state=2675,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2678,this.metadataBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataFeatureDeclaration(){let localContext=new MetadataFeatureDeclarationContext(this.context,this.state);this.enterRule(localContext,424,_SysMLv2Parser.RULE_metadataFeatureDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=2688,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,241,this.context)){case 1:switch(this.state=2681,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2680,this.identification()),this.state=2686,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=2683,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=2684,this.match(_SysMLv2Parser.TYPED),this.state=2685,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}break}this.state=2690,this.ownedFeatureTyping()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBody(){let localContext=new MetadataBodyContext(this.context,this.state);this.enterRule(localContext,426,_SysMLv2Parser.RULE_metadataBody);let _la;try{switch(this.state=2712,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,245,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2692,this.match(_SysMLv2Parser.SEMI);break;case 2:this.enterOuterAlt(localContext,2);{for(this.state=2693,this.match(_SysMLv2Parser.LBRACE),this.state=2697,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1880162436)!==0||(_la-33&-32)===0&&(1<<_la-33&2917893)!==0||(_la-65&-32)===0&&(1<<_la-65&1904755717)!==0||(_la-97&-32)===0&&(1<<_la-97&1057226993)!==0||(_la-131&-32)===0&&(1<<_la-131&335901825)!==0||(_la-163&-32)===0&&(1<<_la-163&1610620929)!==0||(_la-210&-32)===0&&(1<<_la-210&9089)!==0;)this.state=2694,this.metadataBodyElement(),this.state=2699,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2700,this.match(_SysMLv2Parser.RBRACE)}break;case 3:this.enterOuterAlt(localContext,3);{for(this.state=2701,this.match(_SysMLv2Parser.LBRACE),this.state=2708,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1175981204)!==0||(_la-32&-32)===0&&(1<<_la-32&71370273)!==0||(_la-65&-32)===0&&(1<<_la-65&1947878433)!==0||(_la-97&-32)===0&&(1<<_la-97&1599348849)!==0||(_la-130&-32)===0&&(1<<_la-130&134232075)!==0||(_la-162&-32)===0&&(1<<_la-162&3221242267)!==0||(_la-210&-32)===0&&(1<<_la-210&8961)!==0;){switch(this.state=2706,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,243,this.context)){case 1:this.state=2702,this.definitionMember();break;case 2:this.state=2703,this.metadataBodyUsageMember();break;case 3:this.state=2704,this.aliasMember();break;case 4:this.state=2705,this.importRule();break}this.state=2710,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}this.state=2711,this.match(_SysMLv2Parser.RBRACE)}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyElement(){let localContext=new MetadataBodyElementContext(this.context,this.state);this.enterRule(localContext,428,_SysMLv2Parser.RULE_metadataBodyElement);try{switch(this.state=2718,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,246,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2714,this.nonFeatureMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=2715,this.metadataBodyFeatureMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=2716,this.aliasMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=2717,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyFeatureMember(){let localContext=new MetadataBodyFeatureMemberContext(this.context,this.state);this.enterRule(localContext,430,_SysMLv2Parser.RULE_metadataBodyFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=2720,this.metadataBodyFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyFeature(){let localContext=new MetadataBodyFeatureContext(this.context,this.state);this.enterRule(localContext,432,_SysMLv2Parser.RULE_metadataBodyFeature);let _la;try{this.enterOuterAlt(localContext,1),this.state=2723,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,247,this.context)===1&&(this.state=2722,this.match(_SysMLv2Parser.FEATURE)),this.state=2726,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===125||_la===176)&&(this.state=2725,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2728,this.ownedRedefinition(),this.state=2730,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=2729,this.featureSpecializationPart()),this.state=2733,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2732,this.valuePart()),this.state=2735,this.metadataBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}package_(){let localContext=new PackageContext(this.context,this.state);this.enterRule(localContext,434,_SysMLv2Parser.RULE_package);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2740,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2737,this.prefixMetadataMember(),this.state=2742,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2743,this.packageDeclaration(),this.state=2744,this.packageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}libraryPackage(){let localContext=new LibraryPackageContext(this.context,this.state);this.enterRule(localContext,436,_SysMLv2Parser.RULE_libraryPackage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2747,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===141&&(this.state=2746,this.match(_SysMLv2Parser.STANDARD)),this.state=2749,this.match(_SysMLv2Parser.LIBRARY),this.state=2753,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2750,this.prefixMetadataMember(),this.state=2755,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2756,this.packageDeclaration(),this.state=2757,this.packageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageDeclaration(){let localContext=new PackageDeclarationContext(this.context,this.state);this.enterRule(localContext,438,_SysMLv2Parser.RULE_packageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=2759,this.match(_SysMLv2Parser.PACKAGE),this.state=2761,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2760,this.identification())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageBody(){let localContext=new PackageBodyContext(this.context,this.state);this.enterRule(localContext,440,_SysMLv2Parser.RULE_packageBody);let _la;try{switch(this.state=2772,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2763,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=2764,this.match(_SysMLv2Parser.LBRACE),this.state=2768,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&412367019)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458587)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=2765,this.packageBodyElement(),this.state=2770,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2771,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}elementFilterMember(){let localContext=new ElementFilterMemberContext(this.context,this.state);this.enterRule(localContext,442,_SysMLv2Parser.RULE_elementFilterMember);try{this.enterOuterAlt(localContext,1),this.state=2774,this.memberPrefix(),this.state=2775,this.match(_SysMLv2Parser.FILTER),this.state=2776,this.ownedExpression(0),this.state=2777,this.match(_SysMLv2Parser.SEMI)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}dependencyDeclaration(){let localContext=new DependencyDeclarationContext(this.context,this.state);this.enterRule(localContext,444,_SysMLv2Parser.RULE_dependencyDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=2783,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,258,this.context)===1&&(this.state=2780,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2779,this.identification()),this.state=2782,this.match(_SysMLv2Parser.FROM)),this.state=2785,this.qualifiedName(),this.state=2790,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2786,this.match(_SysMLv2Parser.COMMA),this.state=2787,this.qualifiedName(),this.state=2792,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);for(this.state=2793,this.match(_SysMLv2Parser.TO),this.state=2794,this.qualifiedName(),this.state=2799,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=2795,this.match(_SysMLv2Parser.COMMA),this.state=2796,this.qualifiedName(),this.state=2801,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}annotatingMember(){let localContext=new AnnotatingMemberContext(this.context,this.state);this.enterRule(localContext,446,_SysMLv2Parser.RULE_annotatingMember);try{this.enterOuterAlt(localContext,1),this.state=2802,this.annotatingElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageBodyElement(){let localContext=new PackageBodyElementContext(this.context,this.state);this.enterRule(localContext,448,_SysMLv2Parser.RULE_packageBodyElement);try{switch(this.state=2808,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,261,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2804,this.packageMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=2805,this.elementFilterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=2806,this.aliasMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=2807,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}packageMember(){let localContext=new PackageMemberContext(this.context,this.state);this.enterRule(localContext,450,_SysMLv2Parser.RULE_packageMember);try{switch(this.enterOuterAlt(localContext,1),this.state=2810,this.memberPrefix(),this.state=2813,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,262,this.context)){case 1:this.state=2811,this.definitionElement();break;case 2:this.state=2812,this.usageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionElement(){let localContext=new DefinitionElementContext(this.context,this.state);this.enterRule(localContext,452,_SysMLv2Parser.RULE_definitionElement);try{switch(this.state=2845,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,263,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2815,this.package_();break;case 2:this.enterOuterAlt(localContext,2),this.state=2816,this.libraryPackage();break;case 3:this.enterOuterAlt(localContext,3),this.state=2817,this.annotatingElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=2818,this.dependency();break;case 5:this.enterOuterAlt(localContext,5),this.state=2819,this.attributeDefinition();break;case 6:this.enterOuterAlt(localContext,6),this.state=2820,this.enumerationDefinition();break;case 7:this.enterOuterAlt(localContext,7),this.state=2821,this.occurrenceDefinition();break;case 8:this.enterOuterAlt(localContext,8),this.state=2822,this.individualDefinition();break;case 9:this.enterOuterAlt(localContext,9),this.state=2823,this.itemDefinition();break;case 10:this.enterOuterAlt(localContext,10),this.state=2824,this.partDefinition();break;case 11:this.enterOuterAlt(localContext,11),this.state=2825,this.connectionDefinition();break;case 12:this.enterOuterAlt(localContext,12),this.state=2826,this.flowDefinition();break;case 13:this.enterOuterAlt(localContext,13),this.state=2827,this.interfaceDefinition();break;case 14:this.enterOuterAlt(localContext,14),this.state=2828,this.portDefinition();break;case 15:this.enterOuterAlt(localContext,15),this.state=2829,this.actionDefinition();break;case 16:this.enterOuterAlt(localContext,16),this.state=2830,this.calculationDefinition();break;case 17:this.enterOuterAlt(localContext,17),this.state=2831,this.stateDefinition();break;case 18:this.enterOuterAlt(localContext,18),this.state=2832,this.constraintDefinition();break;case 19:this.enterOuterAlt(localContext,19),this.state=2833,this.requirementDefinition();break;case 20:this.enterOuterAlt(localContext,20),this.state=2834,this.concernDefinition();break;case 21:this.enterOuterAlt(localContext,21),this.state=2835,this.caseDefinition();break;case 22:this.enterOuterAlt(localContext,22),this.state=2836,this.analysisCaseDefinition();break;case 23:this.enterOuterAlt(localContext,23),this.state=2837,this.verificationCaseDefinition();break;case 24:this.enterOuterAlt(localContext,24),this.state=2838,this.useCaseDefinition();break;case 25:this.enterOuterAlt(localContext,25),this.state=2839,this.viewDefinition();break;case 26:this.enterOuterAlt(localContext,26),this.state=2840,this.viewpointDefinition();break;case 27:this.enterOuterAlt(localContext,27),this.state=2841,this.renderingDefinition();break;case 28:this.enterOuterAlt(localContext,28),this.state=2842,this.metadataDefinition();break;case 29:this.enterOuterAlt(localContext,29),this.state=2843,this.allocationDefinition();break;case 30:this.enterOuterAlt(localContext,30),this.state=2844,this.extendedDefinition();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageElement(){let localContext=new UsageElementContext(this.context,this.state);this.enterRule(localContext,454,_SysMLv2Parser.RULE_usageElement);try{switch(this.state=2849,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,264,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2847,this.nonOccurrenceUsageElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=2848,this.occurrenceUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}basicDefinitionPrefix(){let localContext=new BasicDefinitionPrefixContext(this.context,this.state);this.enterRule(localContext,456,_SysMLv2Parser.RULE_basicDefinitionPrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=2851,_la=this.tokenStream.LA(1),_la===2||_la===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionExtensionKeyword(){let localContext=new DefinitionExtensionKeywordContext(this.context,this.state);this.enterRule(localContext,458,_SysMLv2Parser.RULE_definitionExtensionKeyword);try{this.enterOuterAlt(localContext,1),this.state=2853,this.prefixMetadataMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionPrefix(){let localContext=new DefinitionPrefixContext(this.context,this.state);this.enterRule(localContext,460,_SysMLv2Parser.RULE_definitionPrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2856,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=2855,this.basicDefinitionPrefix()),this.state=2861,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2858,this.definitionExtensionKeyword(),this.state=2863,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definition(){let localContext=new DefinitionContext(this.context,this.state);this.enterRule(localContext,462,_SysMLv2Parser.RULE_definition);try{this.enterOuterAlt(localContext,1),this.state=2864,this.definitionDeclaration(),this.state=2865,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionDeclaration(){let localContext=new DefinitionDeclarationContext(this.context,this.state);this.enterRule(localContext,464,_SysMLv2Parser.RULE_definitionDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=2868,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=2867,this.identification()),this.state=2871,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===139||_la===185)&&(this.state=2870,this.subclassificationPart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionBody(){let localContext=new DefinitionBodyContext(this.context,this.state);this.enterRule(localContext,466,_SysMLv2Parser.RULE_definitionBody);let _la;try{switch(this.state=2882,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=2873,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=2874,this.match(_SysMLv2Parser.LBRACE),this.state=2878,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238897)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&416561323)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=2875,this.definitionBodyItem(),this.state=2880,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=2881,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionBodyItem(){let localContext=new DefinitionBodyItemContext(this.context,this.state);this.enterRule(localContext,468,_SysMLv2Parser.RULE_definitionBodyItem);let _la;try{switch(this.state=2900,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,273,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2884,this.importRule();break;case 2:this.enterOuterAlt(localContext,2),this.state=2885,this.memberPrefix(),this.state=2886,this.definitionBodyItemContent();break;case 3:this.enterOuterAlt(localContext,3),this.state=2889,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=2888,this.sourceSuccessionMember()),this.state=2891,this.memberPrefix(),this.state=2892,this.endOccurrenceUsageElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=2895,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=2894,this.sourceSuccessionMember()),this.state=2897,this.memberPrefix(),this.state=2898,this.occurrenceUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionBodyItemContent(){let localContext=new DefinitionBodyItemContentContext(this.context,this.state);this.enterRule(localContext,470,_SysMLv2Parser.RULE_definitionBodyItemContent);let _la;try{switch(this.state=2920,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,276,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2902,this.match(_SysMLv2Parser.ALIAS),this.state=2907,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===206&&(this.state=2903,this.match(_SysMLv2Parser.LT),this.state=2904,this.name(),this.state=2905,this.match(_SysMLv2Parser.GT)),this.state=2910,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||_la===218||_la===219)&&(this.state=2909,this.name()),this.state=2912,this.match(_SysMLv2Parser.FOR),this.state=2913,this.qualifiedName(),this.state=2914,this.relationshipBody();break;case 2:this.enterOuterAlt(localContext,2),this.state=2916,this.match(_SysMLv2Parser.VARIANT),this.state=2917,this.variantUsageElement();break;case 3:this.enterOuterAlt(localContext,3),this.state=2918,this.definitionElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=2919,this.nonOccurrenceUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}definitionMember(){let localContext=new DefinitionMemberContext(this.context,this.state);this.enterRule(localContext,472,_SysMLv2Parser.RULE_definitionMember);try{this.enterOuterAlt(localContext,1),this.state=2922,this.memberPrefix(),this.state=2923,this.definitionElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}variantUsageMember(){let localContext=new VariantUsageMemberContext(this.context,this.state);this.enterRule(localContext,474,_SysMLv2Parser.RULE_variantUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2925,this.memberPrefix(),this.state=2926,this.match(_SysMLv2Parser.VARIANT),this.state=2927,this.variantUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonOccurrenceUsageMember(){let localContext=new NonOccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,476,_SysMLv2Parser.RULE_nonOccurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2929,this.memberPrefix(),this.state=2930,this.nonOccurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsageMember(){let localContext=new OccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,478,_SysMLv2Parser.RULE_occurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2932,this.memberPrefix(),this.state=2933,this.occurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}structureUsageMember(){let localContext=new StructureUsageMemberContext(this.context,this.state);this.enterRule(localContext,480,_SysMLv2Parser.RULE_structureUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2935,this.memberPrefix(),this.state=2936,this.structureUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}behaviorUsageMember(){let localContext=new BehaviorUsageMemberContext(this.context,this.state);this.enterRule(localContext,482,_SysMLv2Parser.RULE_behaviorUsageMember);try{this.enterOuterAlt(localContext,1),this.state=2938,this.memberPrefix(),this.state=2939,this.behaviorUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}refPrefix(){let localContext=new RefPrefixContext(this.context,this.state);this.enterRule(localContext,484,_SysMLv2Parser.RULE_refPrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=2942,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===80||_la===83||_la===114)&&(this.state=2941,this.featureDirection()),this.state=2945,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===49&&(this.state=2944,this.match(_SysMLv2Parser.DERIVED)),this.state=2948,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=2947,_la=this.tokenStream.LA(1),_la===2||_la===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2951,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===40&&(this.state=2950,this.match(_SysMLv2Parser.CONSTANT))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}basicUsagePrefix(){let localContext=new BasicUsagePrefixContext(this.context,this.state);this.enterRule(localContext,486,_SysMLv2Parser.RULE_basicUsagePrefix);try{this.enterOuterAlt(localContext,1),this.state=2953,this.refPrefix(),this.state=2955,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,281,this.context)===1&&(this.state=2954,this.match(_SysMLv2Parser.REF))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endUsagePrefix(){let localContext=new EndUsagePrefixContext(this.context,this.state);this.enterRule(localContext,488,_SysMLv2Parser.RULE_endUsagePrefix);try{this.enterOuterAlt(localContext,1),this.state=2957,this.match(_SysMLv2Parser.END),this.state=2958,this.ownedCrossFeatureMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageExtensionKeyword(){let localContext=new UsageExtensionKeywordContext(this.context,this.state);this.enterRule(localContext,490,_SysMLv2Parser.RULE_usageExtensionKeyword);try{this.enterOuterAlt(localContext,1),this.state=2960,this.prefixMetadataMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}unextendedUsagePrefix(){let localContext=new UnextendedUsagePrefixContext(this.context,this.state);this.enterRule(localContext,492,_SysMLv2Parser.RULE_unextendedUsagePrefix);try{switch(this.state=2964,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.END:this.enterOuterAlt(localContext,1),this.state=2962,this.endUsagePrefix();break;case _SysMLv2Parser.ABSTRACT:case _SysMLv2Parser.ATTRIBUTE:case _SysMLv2Parser.BIND:case _SysMLv2Parser.BINDING:case _SysMLv2Parser.CONSTANT:case _SysMLv2Parser.DERIVED:case _SysMLv2Parser.ENUM:case _SysMLv2Parser.FIRST:case _SysMLv2Parser.IN:case _SysMLv2Parser.INOUT:case _SysMLv2Parser.OUT:case _SysMLv2Parser.REF:case _SysMLv2Parser.SUCCESSION:case _SysMLv2Parser.VARIATION:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2),this.state=2963,this.basicUsagePrefix();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usagePrefix(){let localContext=new UsagePrefixContext(this.context,this.state);this.enterRule(localContext,494,_SysMLv2Parser.RULE_usagePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=2966,this.unextendedUsagePrefix(),this.state=2970,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=2967,this.usageExtensionKeyword(),this.state=2972,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usage(){let localContext=new UsageContext(this.context,this.state);this.enterRule(localContext,496,_SysMLv2Parser.RULE_usage);let _la;try{this.enterOuterAlt(localContext,1),this.state=2974,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=2973,this.usageDeclaration()),this.state=2976,this.usageCompletion()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageDeclaration(){let localContext=new UsageDeclarationContext(this.context,this.state);this.enterRule(localContext,498,_SysMLv2Parser.RULE_usageDeclaration);try{switch(this.state=2983,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,286,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=2978,this.identification(),this.state=2980,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,285,this.context)===1&&(this.state=2979,this.featureSpecializationPart());break;case 2:this.enterOuterAlt(localContext,2),this.state=2982,this.featureSpecializationPart();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageCompletion(){let localContext=new UsageCompletionContext(this.context,this.state);this.enterRule(localContext,500,_SysMLv2Parser.RULE_usageCompletion);let _la;try{this.enterOuterAlt(localContext,1),this.state=2986,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=2985,this.valuePart()),this.state=2988,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}usageBody(){let localContext=new UsageBodyContext(this.context,this.state);this.enterRule(localContext,502,_SysMLv2Parser.RULE_usageBody);try{this.enterOuterAlt(localContext,1),this.state=2990,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}defaultReferenceUsage(){let localContext=new DefaultReferenceUsageContext(this.context,this.state);this.enterRule(localContext,504,_SysMLv2Parser.RULE_defaultReferenceUsage);try{this.enterOuterAlt(localContext,1),this.state=2992,this.refPrefix(),this.state=2993,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}referenceUsage(){let localContext=new ReferenceUsageContext(this.context,this.state);this.enterRule(localContext,506,_SysMLv2Parser.RULE_referenceUsage);try{this.enterOuterAlt(localContext,1);{switch(this.state=2997,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.END:this.state=2995,this.endUsagePrefix();break;case _SysMLv2Parser.ABSTRACT:case _SysMLv2Parser.CONSTANT:case _SysMLv2Parser.DERIVED:case _SysMLv2Parser.IN:case _SysMLv2Parser.INOUT:case _SysMLv2Parser.OUT:case _SysMLv2Parser.REF:case _SysMLv2Parser.VARIATION:this.state=2996,this.refPrefix();break;default:throw new NoViableAltException(this)}this.state=2999,this.match(_SysMLv2Parser.REF),this.state=3e3,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endFeatureUsage(){let localContext=new EndFeatureUsageContext(this.context,this.state);this.enterRule(localContext,508,_SysMLv2Parser.RULE_endFeatureUsage);try{this.enterOuterAlt(localContext,1),this.state=3002,this.endUsagePrefix(),this.state=3003,this.featureDeclaration(),this.state=3004,this.usageCompletion()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}variantReference(){let localContext=new VariantReferenceContext(this.context,this.state);this.enterRule(localContext,510,_SysMLv2Parser.RULE_variantReference);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3006,this.ownedReferenceSubsetting(),this.state=3010,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204;)this.state=3007,this.featureSpecialization(),this.state=3012,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3013,this.usageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonOccurrenceUsageElement(){let localContext=new NonOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,512,_SysMLv2Parser.RULE_nonOccurrenceUsageElement);try{switch(this.state=3023,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,290,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3015,this.referenceUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=3016,this.endFeatureUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3017,this.attributeUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3018,this.enumerationUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3019,this.bindingConnectorAsUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=3020,this.successionAsUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=3021,this.extendedUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=3022,this.defaultReferenceUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}endOccurrenceUsageElement(){let localContext=new EndOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,514,_SysMLv2Parser.RULE_endOccurrenceUsageElement);let _la;try{this.enterOuterAlt(localContext,1),this.state=3025,this.match(_SysMLv2Parser.END),this.state=3027,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||_la===218||_la===219)&&(this.state=3026,this.name()),this.state=3030,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=3029,this.ownedCrossMultiplicityMember()),this.state=3033,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===106&&(this.state=3032,this.match(_SysMLv2Parser.NONUNIQUE)),this.state=3035,this.occurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsageElement(){let localContext=new OccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,516,_SysMLv2Parser.RULE_occurrenceUsageElement);try{switch(this.state=3039,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,294,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3037,this.structureUsageElement();break;case 2:this.enterOuterAlt(localContext,2),this.state=3038,this.behaviorUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}structureUsageElement(){let localContext=new StructureUsageElementContext(this.context,this.state);this.enterRule(localContext,518,_SysMLv2Parser.RULE_structureUsageElement);try{switch(this.state=3056,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,295,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3041,this.occurrenceUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=3042,this.individualUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3043,this.portionUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3044,this.eventOccurrenceUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3045,this.itemUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=3046,this.partUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=3047,this.viewUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=3048,this.renderingUsage();break;case 9:this.enterOuterAlt(localContext,9),this.state=3049,this.portUsage();break;case 10:this.enterOuterAlt(localContext,10),this.state=3050,this.connectionUsage();break;case 11:this.enterOuterAlt(localContext,11),this.state=3051,this.interfaceUsage();break;case 12:this.enterOuterAlt(localContext,12),this.state=3052,this.allocationUsage();break;case 13:this.enterOuterAlt(localContext,13),this.state=3053,this.message();break;case 14:this.enterOuterAlt(localContext,14),this.state=3054,this.flowUsage();break;case 15:this.enterOuterAlt(localContext,15),this.state=3055,this.successionFlowUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}behaviorUsageElement(){let localContext=new BehaviorUsageElementContext(this.context,this.state);this.enterRule(localContext,520,_SysMLv2Parser.RULE_behaviorUsageElement);try{switch(this.state=3074,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,296,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3058,this.actionUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=3059,this.calculationUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3060,this.stateUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3061,this.constraintUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3062,this.requirementUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=3063,this.concernUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=3064,this.caseUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=3065,this.analysisCaseUsage();break;case 9:this.enterOuterAlt(localContext,9),this.state=3066,this.verificationCaseUsage();break;case 10:this.enterOuterAlt(localContext,10),this.state=3067,this.useCaseUsage();break;case 11:this.enterOuterAlt(localContext,11),this.state=3068,this.viewpointUsage();break;case 12:this.enterOuterAlt(localContext,12),this.state=3069,this.performActionUsage();break;case 13:this.enterOuterAlt(localContext,13),this.state=3070,this.exhibitStateUsage();break;case 14:this.enterOuterAlt(localContext,14),this.state=3071,this.includeUseCaseUsage();break;case 15:this.enterOuterAlt(localContext,15),this.state=3072,this.assertConstraintUsage();break;case 16:this.enterOuterAlt(localContext,16),this.state=3073,this.satisfyRequirementUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}variantUsageElement(){let localContext=new VariantUsageElementContext(this.context,this.state);this.enterRule(localContext,522,_SysMLv2Parser.RULE_variantUsageElement);try{switch(this.state=3097,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,297,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3076,this.variantReference();break;case 2:this.enterOuterAlt(localContext,2),this.state=3077,this.referenceUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3078,this.attributeUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3079,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3080,this.successionAsUsage();break;case 6:this.enterOuterAlt(localContext,6),this.state=3081,this.occurrenceUsage();break;case 7:this.enterOuterAlt(localContext,7),this.state=3082,this.individualUsage();break;case 8:this.enterOuterAlt(localContext,8),this.state=3083,this.portionUsage();break;case 9:this.enterOuterAlt(localContext,9),this.state=3084,this.eventOccurrenceUsage();break;case 10:this.enterOuterAlt(localContext,10),this.state=3085,this.itemUsage();break;case 11:this.enterOuterAlt(localContext,11),this.state=3086,this.partUsage();break;case 12:this.enterOuterAlt(localContext,12),this.state=3087,this.viewUsage();break;case 13:this.enterOuterAlt(localContext,13),this.state=3088,this.renderingUsage();break;case 14:this.enterOuterAlt(localContext,14),this.state=3089,this.portUsage();break;case 15:this.enterOuterAlt(localContext,15),this.state=3090,this.connectionUsage();break;case 16:this.enterOuterAlt(localContext,16),this.state=3091,this.interfaceUsage();break;case 17:this.enterOuterAlt(localContext,17),this.state=3092,this.allocationUsage();break;case 18:this.enterOuterAlt(localContext,18),this.state=3093,this.message();break;case 19:this.enterOuterAlt(localContext,19),this.state=3094,this.flowUsage();break;case 20:this.enterOuterAlt(localContext,20),this.state=3095,this.successionFlowUsage();break;case 21:this.enterOuterAlt(localContext,21),this.state=3096,this.behaviorUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subclassificationPart(){let localContext=new SubclassificationPartContext(this.context,this.state);this.enterRule(localContext,524,_SysMLv2Parser.RULE_subclassificationPart);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=3099,_la=this.tokenStream.LA(1),_la===139||_la===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3100,this.ownedSubclassification(),this.state=3105,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=3101,this.match(_SysMLv2Parser.COMMA),this.state=3102,this.ownedSubclassification(),this.state=3107,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}attributeDefinition(){let localContext=new AttributeDefinitionContext(this.context,this.state);this.enterRule(localContext,526,_SysMLv2Parser.RULE_attributeDefinition);try{this.enterOuterAlt(localContext,1),this.state=3108,this.definitionPrefix(),this.state=3109,this.match(_SysMLv2Parser.ATTRIBUTE),this.state=3110,this.match(_SysMLv2Parser.DEF),this.state=3111,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}attributeUsage(){let localContext=new AttributeUsageContext(this.context,this.state);this.enterRule(localContext,528,_SysMLv2Parser.RULE_attributeUsage);try{this.enterOuterAlt(localContext,1),this.state=3113,this.usagePrefix(),this.state=3114,this.match(_SysMLv2Parser.ATTRIBUTE),this.state=3115,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationDefinition(){let localContext=new EnumerationDefinitionContext(this.context,this.state);this.enterRule(localContext,530,_SysMLv2Parser.RULE_enumerationDefinition);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3120,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3117,this.definitionExtensionKeyword(),this.state=3122,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3123,this.match(_SysMLv2Parser.ENUM),this.state=3124,this.match(_SysMLv2Parser.DEF),this.state=3125,this.definitionDeclaration(),this.state=3126,this.enumerationBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationBody(){let localContext=new EnumerationBodyContext(this.context,this.state);this.enterRule(localContext,532,_SysMLv2Parser.RULE_enumerationBody);let _la;try{switch(this.state=3138,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3128,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3129,this.match(_SysMLv2Parser.LBRACE),this.state=3134,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la-20&-32)===0&&(1<<_la-20&205521921)!==0||(_la-54&-32)===0&&(1<<_la-54&1075841041)!==0||(_la-93&-32)===0&&(1<<_la-93&4027590421)!==0||(_la-125&-32)===0&&(1<<_la-125&8650825)!==0||(_la-157&-32)===0&&(1<<_la-157&2550923331)!==0||(_la-192&-32)===0&&(1<<_la-192&2353852417)!==0;){switch(this.state=3132,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,300,this.context)){case 1:this.state=3130,this.annotatingMember();break;case 2:this.state=3131,this.enumerationUsageMember();break}this.state=3136,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}this.state=3137,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationUsageMember(){let localContext=new EnumerationUsageMemberContext(this.context,this.state);this.enterRule(localContext,534,_SysMLv2Parser.RULE_enumerationUsageMember);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3143,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3140,this.prefixMetadataMember(),this.state=3145,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3146,this.memberPrefix(),this.state=3147,this.enumeratedValue()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumeratedValue(){let localContext=new EnumeratedValueContext(this.context,this.state);this.enterRule(localContext,536,_SysMLv2Parser.RULE_enumeratedValue);let _la;try{this.enterOuterAlt(localContext,1),this.state=3150,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===58&&(this.state=3149,this.match(_SysMLv2Parser.ENUM)),this.state=3152,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}enumerationUsage(){let localContext=new EnumerationUsageContext(this.context,this.state);this.enterRule(localContext,538,_SysMLv2Parser.RULE_enumerationUsage);try{this.enterOuterAlt(localContext,1),this.state=3154,this.usagePrefix(),this.state=3155,this.match(_SysMLv2Parser.ENUM),this.state=3156,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceDefinitionPrefix(){let localContext=new OccurrenceDefinitionPrefixContext(this.context,this.state);this.enterRule(localContext,540,_SysMLv2Parser.RULE_occurrenceDefinitionPrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=3159,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=3158,this.basicDefinitionPrefix()),this.state=3163,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=3161,this.match(_SysMLv2Parser.INDIVIDUAL),this.state=3162,this.emptyMultiplicityMember()),this.state=3168,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3165,this.definitionExtensionKeyword(),this.state=3170,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceDefinition(){let localContext=new OccurrenceDefinitionContext(this.context,this.state);this.enterRule(localContext,542,_SysMLv2Parser.RULE_occurrenceDefinition);try{this.enterOuterAlt(localContext,1),this.state=3171,this.occurrenceDefinitionPrefix(),this.state=3172,this.match(_SysMLv2Parser.OCCURRENCE),this.state=3173,this.match(_SysMLv2Parser.DEF),this.state=3174,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}individualDefinition(){let localContext=new IndividualDefinitionContext(this.context,this.state);this.enterRule(localContext,544,_SysMLv2Parser.RULE_individualDefinition);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3177,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=3176,this.basicDefinitionPrefix()),this.state=3179,this.match(_SysMLv2Parser.INDIVIDUAL),this.state=3183,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3180,this.definitionExtensionKeyword(),this.state=3185,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3186,this.match(_SysMLv2Parser.DEF),this.state=3187,this.definition(),this.state=3188,this.emptyMultiplicityMember()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyMultiplicityMember(){let localContext=new EmptyMultiplicityMemberContext(this.context,this.state);this.enterRule(localContext,546,_SysMLv2Parser.RULE_emptyMultiplicityMember);try{this.enterOuterAlt(localContext,1),this.state=3190,this.emptyMultiplicity_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsagePrefix(){let localContext=new OccurrenceUsagePrefixContext(this.context,this.state);this.enterRule(localContext,548,_SysMLv2Parser.RULE_occurrenceUsagePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=3192,this.basicUsagePrefix(),this.state=3194,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=3193,this.match(_SysMLv2Parser.INDIVIDUAL)),this.state=3197,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===137||_la===153)&&(this.state=3196,this.portionKind()),this.state=3202,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3199,this.usageExtensionKeyword(),this.state=3204,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}occurrenceUsage(){let localContext=new OccurrenceUsageContext(this.context,this.state);this.enterRule(localContext,550,_SysMLv2Parser.RULE_occurrenceUsage);try{this.enterOuterAlt(localContext,1),this.state=3205,this.occurrenceUsagePrefix(),this.state=3206,this.match(_SysMLv2Parser.OCCURRENCE),this.state=3207,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}individualUsage(){let localContext=new IndividualUsageContext(this.context,this.state);this.enterRule(localContext,552,_SysMLv2Parser.RULE_individualUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3209,this.basicUsagePrefix(),this.state=3210,this.match(_SysMLv2Parser.INDIVIDUAL),this.state=3214,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3211,this.usageExtensionKeyword(),this.state=3216,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3217,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portionUsage(){let localContext=new PortionUsageContext(this.context,this.state);this.enterRule(localContext,554,_SysMLv2Parser.RULE_portionUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3219,this.basicUsagePrefix(),this.state=3221,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=3220,this.match(_SysMLv2Parser.INDIVIDUAL)),this.state=3223,this.portionKind(),this.state=3227,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3224,this.usageExtensionKeyword(),this.state=3229,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3230,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portionKind(){let localContext=new PortionKindContext(this.context,this.state);this.enterRule(localContext,556,_SysMLv2Parser.RULE_portionKind);let _la;try{this.enterOuterAlt(localContext,1),this.state=3232,_la=this.tokenStream.LA(1),_la===137||_la===153?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}eventOccurrenceUsage(){let localContext=new EventOccurrenceUsageContext(this.context,this.state);this.enterRule(localContext,558,_SysMLv2Parser.RULE_eventOccurrenceUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3234,this.occurrenceUsagePrefix(),this.state=3235,this.match(_SysMLv2Parser.EVENT),this.state=3244,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3236,this.ownedReferenceSubsetting(),this.state=3238,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3237,this.featureSpecializationPart());break;case _SysMLv2Parser.OCCURRENCE:this.state=3240,this.match(_SysMLv2Parser.OCCURRENCE),this.state=3242,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3241,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=3246,this.usageCompletion()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceSuccessionMember(){let localContext=new SourceSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,560,_SysMLv2Parser.RULE_sourceSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3248,this.match(_SysMLv2Parser.THEN),this.state=3249,this.sourceSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceSuccession(){let localContext=new SourceSuccessionContext(this.context,this.state);this.enterRule(localContext,562,_SysMLv2Parser.RULE_sourceSuccession);try{this.enterOuterAlt(localContext,1),this.state=3251,this.sourceEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceEndMember(){let localContext=new SourceEndMemberContext(this.context,this.state);this.enterRule(localContext,564,_SysMLv2Parser.RULE_sourceEndMember);try{this.enterOuterAlt(localContext,1),this.state=3253,this.sourceEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sourceEnd(){let localContext=new SourceEndContext(this.context,this.state);this.enterRule(localContext,566,_SysMLv2Parser.RULE_sourceEnd);try{this.enterOuterAlt(localContext,1),this.state=3256,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,319,this.context)===1&&(this.state=3255,this.ownedMultiplicity())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}itemDefinition(){let localContext=new ItemDefinitionContext(this.context,this.state);this.enterRule(localContext,568,_SysMLv2Parser.RULE_itemDefinition);try{this.enterOuterAlt(localContext,1),this.state=3258,this.occurrenceDefinitionPrefix(),this.state=3259,this.match(_SysMLv2Parser.ITEM),this.state=3260,this.match(_SysMLv2Parser.DEF),this.state=3261,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}itemUsage(){let localContext=new ItemUsageContext(this.context,this.state);this.enterRule(localContext,570,_SysMLv2Parser.RULE_itemUsage);try{this.enterOuterAlt(localContext,1),this.state=3263,this.occurrenceUsagePrefix(),this.state=3264,this.match(_SysMLv2Parser.ITEM),this.state=3265,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}partDefinition(){let localContext=new PartDefinitionContext(this.context,this.state);this.enterRule(localContext,572,_SysMLv2Parser.RULE_partDefinition);try{this.enterOuterAlt(localContext,1),this.state=3267,this.occurrenceDefinitionPrefix(),this.state=3268,this.match(_SysMLv2Parser.PART),this.state=3269,this.match(_SysMLv2Parser.DEF),this.state=3270,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}partUsage(){let localContext=new PartUsageContext(this.context,this.state);this.enterRule(localContext,574,_SysMLv2Parser.RULE_partUsage);try{this.enterOuterAlt(localContext,1),this.state=3272,this.occurrenceUsagePrefix(),this.state=3273,this.match(_SysMLv2Parser.PART),this.state=3274,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portDefinition(){let localContext=new PortDefinitionContext(this.context,this.state);this.enterRule(localContext,576,_SysMLv2Parser.RULE_portDefinition);try{this.enterOuterAlt(localContext,1),this.state=3276,this.definitionPrefix(),this.state=3277,this.match(_SysMLv2Parser.PORT),this.state=3278,this.match(_SysMLv2Parser.DEF),this.state=3279,this.definition(),this.state=3280,this.conjugatedPortDefinitionMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugatedPortDefinitionMember(){let localContext=new ConjugatedPortDefinitionMemberContext(this.context,this.state);this.enterRule(localContext,578,_SysMLv2Parser.RULE_conjugatedPortDefinitionMember);try{this.enterOuterAlt(localContext,1),this.state=3282,this.conjugatedPortDefinition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugatedPortDefinition(){let localContext=new ConjugatedPortDefinitionContext(this.context,this.state);this.enterRule(localContext,580,_SysMLv2Parser.RULE_conjugatedPortDefinition);try{this.enterOuterAlt(localContext,1),this.state=3284,this.portConjugation()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portUsage(){let localContext=new PortUsageContext(this.context,this.state);this.enterRule(localContext,582,_SysMLv2Parser.RULE_portUsage);try{this.enterOuterAlt(localContext,1),this.state=3286,this.occurrenceUsagePrefix(),this.state=3287,this.match(_SysMLv2Parser.PORT),this.state=3288,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}conjugatedPortTyping(){let localContext=new ConjugatedPortTypingContext(this.context,this.state);this.enterRule(localContext,584,_SysMLv2Parser.RULE_conjugatedPortTyping);try{this.enterOuterAlt(localContext,1),this.state=3290,this.match(_SysMLv2Parser.TILDE),this.state=3291,this.qualifiedName()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectionDefinition(){let localContext=new ConnectionDefinitionContext(this.context,this.state);this.enterRule(localContext,586,_SysMLv2Parser.RULE_connectionDefinition);try{this.enterOuterAlt(localContext,1),this.state=3293,this.occurrenceDefinitionPrefix(),this.state=3294,this.match(_SysMLv2Parser.CONNECTION),this.state=3295,this.match(_SysMLv2Parser.DEF),this.state=3296,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectionUsage(){let localContext=new ConnectionUsageContext(this.context,this.state);this.enterRule(localContext,588,_SysMLv2Parser.RULE_connectionUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3298,this.occurrenceUsagePrefix(),this.state=3312,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.CONNECTION:this.state=3299,this.match(_SysMLv2Parser.CONNECTION),this.state=3301,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3300,this.usageDeclaration()),this.state=3304,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3303,this.valuePart()),this.state=3308,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===36&&(this.state=3306,this.match(_SysMLv2Parser.CONNECT),this.state=3307,this.connectorPart());break;case _SysMLv2Parser.CONNECT:this.state=3310,this.match(_SysMLv2Parser.CONNECT),this.state=3311,this.connectorPart();break;default:throw new NoViableAltException(this)}this.state=3314,this.usageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}connectorPart(){let localContext=new ConnectorPartContext(this.context,this.state);this.enterRule(localContext,590,_SysMLv2Parser.RULE_connectorPart);try{switch(this.state=3318,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.LBRACK:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=3316,this.binaryConnectorPart();break;case _SysMLv2Parser.LPAREN:this.enterOuterAlt(localContext,2),this.state=3317,this.naryConnectorPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}binaryConnectorPart(){let localContext=new BinaryConnectorPartContext(this.context,this.state);this.enterRule(localContext,592,_SysMLv2Parser.RULE_binaryConnectorPart);try{this.enterOuterAlt(localContext,1),this.state=3320,this.connectorEndMember(),this.state=3321,this.match(_SysMLv2Parser.TO),this.state=3322,this.connectorEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}naryConnectorPart(){let localContext=new NaryConnectorPartContext(this.context,this.state);this.enterRule(localContext,594,_SysMLv2Parser.RULE_naryConnectorPart);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3324,this.match(_SysMLv2Parser.LPAREN),this.state=3325,this.connectorEndMember(),this.state=3326,this.match(_SysMLv2Parser.COMMA),this.state=3327,this.connectorEndMember(),this.state=3332,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=3328,this.match(_SysMLv2Parser.COMMA),this.state=3329,this.connectorEndMember(),this.state=3334,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3335,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}bindingConnectorAsUsage(){let localContext=new BindingConnectorAsUsageContext(this.context,this.state);this.enterRule(localContext,596,_SysMLv2Parser.RULE_bindingConnectorAsUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=3337,this.usagePrefix(),this.state=3342,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===22&&(this.state=3338,this.match(_SysMLv2Parser.BINDING),this.state=3340,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3339,this.usageDeclaration())),this.state=3344,this.match(_SysMLv2Parser.BIND),this.state=3345,this.connectorEndMember(),this.state=3346,this.match(_SysMLv2Parser.EQ),this.state=3347,this.connectorEndMember(),this.state=3348,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionAsUsage(){let localContext=new SuccessionAsUsageContext(this.context,this.state);this.enterRule(localContext,598,_SysMLv2Parser.RULE_successionAsUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=3350,this.usagePrefix(),this.state=3355,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===150&&(this.state=3351,this.match(_SysMLv2Parser.SUCCESSION),this.state=3353,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3352,this.usageDeclaration())),this.state=3357,this.match(_SysMLv2Parser.FIRST),this.state=3358,this.connectorEndMember(),this.state=3359,this.match(_SysMLv2Parser.THEN),this.state=3360,this.connectorEndMember(),this.state=3361,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceDefinition(){let localContext=new InterfaceDefinitionContext(this.context,this.state);this.enterRule(localContext,600,_SysMLv2Parser.RULE_interfaceDefinition);try{this.enterOuterAlt(localContext,1),this.state=3363,this.occurrenceDefinitionPrefix(),this.state=3364,this.match(_SysMLv2Parser.INTERFACE),this.state=3365,this.match(_SysMLv2Parser.DEF),this.state=3366,this.definitionDeclaration(),this.state=3367,this.interfaceBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceBody(){let localContext=new InterfaceBodyContext(this.context,this.state);this.enterRule(localContext,602,_SysMLv2Parser.RULE_interfaceBody);let _la;try{switch(this.state=3378,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3369,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3370,this.match(_SysMLv2Parser.LBRACE),this.state=3374,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1181240980)!==0||(_la-32&-32)===0&&(1<<_la-32&490930993)!==0||(_la-69&-32)===0&&(1<<_la-69&1195473923)!==0||(_la-102&-32)===0&&(1<<_la-102&2993926433)!==0||(_la-135&-32)===0&&(1<<_la-135&3892740293)!==0||(_la-169&-32)===0&&(1<<_la-169&8388611)!==0||_la===210||_la===223;)this.state=3371,this.interfaceBodyItem(),this.state=3376,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3377,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceBodyItem(){let localContext=new InterfaceBodyItemContext(this.context,this.state);this.enterRule(localContext,604,_SysMLv2Parser.RULE_interfaceBodyItem);let _la;try{switch(this.state=3389,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,333,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3380,this.definitionMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=3381,this.variantUsageMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=3382,this.interfaceNonOccurrenceUsageMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=3384,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3383,this.sourceSuccessionMember()),this.state=3386,this.interfaceOccurrenceUsageMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=3387,this.aliasMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=3388,this.importRule();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceNonOccurrenceUsageMember(){let localContext=new InterfaceNonOccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,606,_SysMLv2Parser.RULE_interfaceNonOccurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=3391,this.memberPrefix(),this.state=3392,this.interfaceNonOccurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceNonOccurrenceUsageElement(){let localContext=new InterfaceNonOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,608,_SysMLv2Parser.RULE_interfaceNonOccurrenceUsageElement);try{switch(this.state=3399,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,334,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3394,this.referenceUsage();break;case 2:this.enterOuterAlt(localContext,2),this.state=3395,this.attributeUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3396,this.enumerationUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3397,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3398,this.successionAsUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceOccurrenceUsageMember(){let localContext=new InterfaceOccurrenceUsageMemberContext(this.context,this.state);this.enterRule(localContext,610,_SysMLv2Parser.RULE_interfaceOccurrenceUsageMember);try{this.enterOuterAlt(localContext,1),this.state=3401,this.memberPrefix(),this.state=3402,this.interfaceOccurrenceUsageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceOccurrenceUsageElement(){let localContext=new InterfaceOccurrenceUsageElementContext(this.context,this.state);this.enterRule(localContext,612,_SysMLv2Parser.RULE_interfaceOccurrenceUsageElement);try{switch(this.state=3408,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,335,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3404,this.defaultInterfaceEnd();break;case 2:this.enterOuterAlt(localContext,2),this.state=3405,this.endOccurrenceUsageElement();break;case 3:this.enterOuterAlt(localContext,3),this.state=3406,this.structureUsageElement();break;case 4:this.enterOuterAlt(localContext,4),this.state=3407,this.behaviorUsageElement();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}defaultInterfaceEnd(){let localContext=new DefaultInterfaceEndContext(this.context,this.state);this.enterRule(localContext,614,_SysMLv2Parser.RULE_defaultInterfaceEnd);try{this.enterOuterAlt(localContext,1),this.state=3410,this.match(_SysMLv2Parser.END),this.state=3411,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceUsage(){let localContext=new InterfaceUsageContext(this.context,this.state);this.enterRule(localContext,616,_SysMLv2Parser.RULE_interfaceUsage);try{this.enterOuterAlt(localContext,1),this.state=3413,this.occurrenceUsagePrefix(),this.state=3414,this.match(_SysMLv2Parser.INTERFACE),this.state=3415,this.interfaceUsageDeclaration(),this.state=3416,this.interfaceBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceUsageDeclaration(){let localContext=new InterfaceUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,618,_SysMLv2Parser.RULE_interfaceUsageDeclaration);let _la;try{switch(this.state=3429,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,339,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3419,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3418,this.usageDeclaration()),this.state=3422,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3421,this.valuePart()),this.state=3426,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===36&&(this.state=3424,this.match(_SysMLv2Parser.CONNECT),this.state=3425,this.interfacePart());break;case 2:this.enterOuterAlt(localContext,2),this.state=3428,this.interfacePart();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfacePart(){let localContext=new InterfacePartContext(this.context,this.state);this.enterRule(localContext,620,_SysMLv2Parser.RULE_interfacePart);try{switch(this.state=3433,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.LBRACK:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=3431,this.binaryInterfacePart();break;case _SysMLv2Parser.LPAREN:this.enterOuterAlt(localContext,2),this.state=3432,this.naryInterfacePart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}binaryInterfacePart(){let localContext=new BinaryInterfacePartContext(this.context,this.state);this.enterRule(localContext,622,_SysMLv2Parser.RULE_binaryInterfacePart);try{this.enterOuterAlt(localContext,1),this.state=3435,this.interfaceEndMember(),this.state=3436,this.match(_SysMLv2Parser.TO),this.state=3437,this.interfaceEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}naryInterfacePart(){let localContext=new NaryInterfacePartContext(this.context,this.state);this.enterRule(localContext,624,_SysMLv2Parser.RULE_naryInterfacePart);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3439,this.match(_SysMLv2Parser.LPAREN),this.state=3440,this.interfaceEndMember(),this.state=3441,this.match(_SysMLv2Parser.COMMA),this.state=3442,this.interfaceEndMember(),this.state=3447,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=3443,this.match(_SysMLv2Parser.COMMA),this.state=3444,this.interfaceEndMember(),this.state=3449,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3450,this.match(_SysMLv2Parser.RPAREN)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceEndMember(){let localContext=new InterfaceEndMemberContext(this.context,this.state);this.enterRule(localContext,626,_SysMLv2Parser.RULE_interfaceEndMember);try{this.enterOuterAlt(localContext,1),this.state=3452,this.interfaceEnd()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}interfaceEnd(){let localContext=new InterfaceEndContext(this.context,this.state);this.enterRule(localContext,628,_SysMLv2Parser.RULE_interfaceEnd);let _la;try{this.enterOuterAlt(localContext,1),this.state=3455,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===211&&(this.state=3454,this.ownedCrossMultiplicityMember()),this.state=3460,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,343,this.context)===1&&(this.state=3457,this.name(),this.state=3458,_la=this.tokenStream.LA(1),_la===128||_la===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=3462,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}allocationDefinition(){let localContext=new AllocationDefinitionContext(this.context,this.state);this.enterRule(localContext,630,_SysMLv2Parser.RULE_allocationDefinition);try{this.enterOuterAlt(localContext,1),this.state=3464,this.occurrenceDefinitionPrefix(),this.state=3465,this.match(_SysMLv2Parser.ALLOCATION),this.state=3466,this.match(_SysMLv2Parser.DEF),this.state=3467,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}allocationUsage(){let localContext=new AllocationUsageContext(this.context,this.state);this.enterRule(localContext,632,_SysMLv2Parser.RULE_allocationUsage);try{this.enterOuterAlt(localContext,1),this.state=3469,this.occurrenceUsagePrefix(),this.state=3470,this.allocationUsageDeclaration(),this.state=3471,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}allocationUsageDeclaration(){let localContext=new AllocationUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,634,_SysMLv2Parser.RULE_allocationUsageDeclaration);let _la;try{switch(this.state=3483,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ALLOCATION:this.enterOuterAlt(localContext,1),this.state=3473,this.match(_SysMLv2Parser.ALLOCATION),this.state=3475,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3474,this.usageDeclaration()),this.state=3479,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===9&&(this.state=3477,this.match(_SysMLv2Parser.ALLOCATE),this.state=3478,this.connectorPart());break;case _SysMLv2Parser.ALLOCATE:this.enterOuterAlt(localContext,2),this.state=3481,this.match(_SysMLv2Parser.ALLOCATE),this.state=3482,this.connectorPart();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowDefinition(){let localContext=new FlowDefinitionContext(this.context,this.state);this.enterRule(localContext,636,_SysMLv2Parser.RULE_flowDefinition);try{this.enterOuterAlt(localContext,1),this.state=3485,this.occurrenceDefinitionPrefix(),this.state=3486,this.match(_SysMLv2Parser.FLOW),this.state=3487,this.match(_SysMLv2Parser.DEF),this.state=3488,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}message(){let localContext=new MessageContext(this.context,this.state);this.enterRule(localContext,638,_SysMLv2Parser.RULE_message);try{this.enterOuterAlt(localContext,1),this.state=3490,this.occurrenceUsagePrefix(),this.state=3491,this.match(_SysMLv2Parser.MESSAGE),this.state=3492,this.messageDeclaration(),this.state=3493,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}messageDeclaration(){let localContext=new MessageDeclarationContext(this.context,this.state);this.enterRule(localContext,640,_SysMLv2Parser.RULE_messageDeclaration);let _la;try{switch(this.state=3516,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,351,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3496,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3495,this.usageDeclaration()),this.state=3499,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3498,this.valuePart()),this.state=3503,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===111&&(this.state=3501,this.match(_SysMLv2Parser.OF),this.state=3502,this.flowPayloadFeatureMember()),this.state=3510,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===74&&(this.state=3505,this.match(_SysMLv2Parser.FROM),this.state=3506,this.messageEventMember(),this.state=3507,this.match(_SysMLv2Parser.TO),this.state=3508,this.messageEventMember());break;case 2:this.enterOuterAlt(localContext,2),this.state=3512,this.messageEventMember(),this.state=3513,this.match(_SysMLv2Parser.TO),this.state=3514,this.messageEventMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}messageEventMember(){let localContext=new MessageEventMemberContext(this.context,this.state);this.enterRule(localContext,642,_SysMLv2Parser.RULE_messageEventMember);try{this.enterOuterAlt(localContext,1),this.state=3518,this.messageEvent()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}messageEvent(){let localContext=new MessageEventContext(this.context,this.state);this.enterRule(localContext,644,_SysMLv2Parser.RULE_messageEvent);try{this.enterOuterAlt(localContext,1),this.state=3520,this.ownedReferenceSubsetting()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowUsage(){let localContext=new FlowUsageContext(this.context,this.state);this.enterRule(localContext,646,_SysMLv2Parser.RULE_flowUsage);try{this.enterOuterAlt(localContext,1),this.state=3522,this.occurrenceUsagePrefix(),this.state=3523,this.match(_SysMLv2Parser.FLOW),this.state=3524,this.flowDeclaration(),this.state=3525,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}successionFlowUsage(){let localContext=new SuccessionFlowUsageContext(this.context,this.state);this.enterRule(localContext,648,_SysMLv2Parser.RULE_successionFlowUsage);try{this.enterOuterAlt(localContext,1),this.state=3527,this.occurrenceUsagePrefix(),this.state=3528,this.match(_SysMLv2Parser.SUCCESSION),this.state=3529,this.match(_SysMLv2Parser.FLOW),this.state=3530,this.flowDeclaration(),this.state=3531,this.definitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowPayloadFeatureMember(){let localContext=new FlowPayloadFeatureMemberContext(this.context,this.state);this.enterRule(localContext,650,_SysMLv2Parser.RULE_flowPayloadFeatureMember);try{this.enterOuterAlt(localContext,1),this.state=3533,this.flowPayloadFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowPayloadFeature(){let localContext=new FlowPayloadFeatureContext(this.context,this.state);this.enterRule(localContext,652,_SysMLv2Parser.RULE_flowPayloadFeature);try{this.enterOuterAlt(localContext,1),this.state=3535,this.payloadFeature()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}flowEndSubsetting(){let localContext=new FlowEndSubsettingContext(this.context,this.state);this.enterRule(localContext,654,_SysMLv2Parser.RULE_flowEndSubsetting);try{switch(this.state=3539,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,352,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3537,this.qualifiedName();break;case 2:this.enterOuterAlt(localContext,2),this.state=3538,this.featureChainPrefix();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureChainPrefix(){let localContext=new FeatureChainPrefixContext(this.context,this.state);this.enterRule(localContext,656,_SysMLv2Parser.RULE_featureChainPrefix);try{let alternative;this.enterOuterAlt(localContext,1);{this.state=3544,this.errorHandler.sync(this),alternative=1;do{if(alternative===1)this.state=3541,this.ownedFeatureChaining(),this.state=3542,this.match(_SysMLv2Parser.DOT);else throw new NoViableAltException(this);this.state=3546,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,353,this.context)}while(alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER);this.state=3548,this.ownedFeatureChaining(),this.state=3549,this.match(_SysMLv2Parser.DOT)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionDefinition(){let localContext=new ActionDefinitionContext(this.context,this.state);this.enterRule(localContext,658,_SysMLv2Parser.RULE_actionDefinition);try{this.enterOuterAlt(localContext,1),this.state=3551,this.occurrenceDefinitionPrefix(),this.state=3552,this.match(_SysMLv2Parser.ACTION),this.state=3553,this.match(_SysMLv2Parser.DEF),this.state=3554,this.definitionDeclaration(),this.state=3555,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBody(){let localContext=new ActionBodyContext(this.context,this.state);this.enterRule(localContext,660,_SysMLv2Parser.RULE_actionBody);let _la;try{switch(this.state=3566,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3557,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3558,this.match(_SysMLv2Parser.LBRACE),this.state=3562,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3559,this.actionBodyItem(),this.state=3564,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3565,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBodyItem(){let localContext=new ActionBodyItemContext(this.context,this.state);this.enterRule(localContext,662,_SysMLv2Parser.RULE_actionBodyItem);let _la;try{let alternative;switch(this.state=3587,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,359,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3568,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(localContext,2),this.state=3569,this.initialNodeMember(),this.state=3573,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,356,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3570,this.actionTargetSuccessionMember()),this.state=3575,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,356,this.context);break;case 3:for(this.enterOuterAlt(localContext,3),this.state=3577,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3576,this.sourceSuccessionMember()),this.state=3579,this.actionBehaviorMember(),this.state=3583,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,358,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3580,this.actionTargetSuccessionMember()),this.state=3585,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,358,this.context);break;case 4:this.enterOuterAlt(localContext,4),this.state=3586,this.guardedSuccessionMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonBehaviorBodyItem(){let localContext=new NonBehaviorBodyItemContext(this.context,this.state);this.enterRule(localContext,664,_SysMLv2Parser.RULE_nonBehaviorBodyItem);let _la;try{switch(this.state=3598,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,361,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3589,this.importRule();break;case 2:this.enterOuterAlt(localContext,2),this.state=3590,this.aliasMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=3591,this.definitionMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=3592,this.variantUsageMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=3593,this.nonOccurrenceUsageMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=3595,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3594,this.sourceSuccessionMember()),this.state=3597,this.structureUsageMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBehaviorMember(){let localContext=new ActionBehaviorMemberContext(this.context,this.state);this.enterRule(localContext,666,_SysMLv2Parser.RULE_actionBehaviorMember);try{switch(this.state=3602,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,362,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3600,this.actionNodeMember();break;case 2:this.enterOuterAlt(localContext,2),this.state=3601,this.behaviorUsageMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}initialNodeMember(){let localContext=new InitialNodeMemberContext(this.context,this.state);this.enterRule(localContext,668,_SysMLv2Parser.RULE_initialNodeMember);try{this.enterOuterAlt(localContext,1),this.state=3604,this.memberPrefix(),this.state=3605,this.match(_SysMLv2Parser.FIRST),this.state=3606,this.qualifiedName(),this.state=3607,this.relationshipBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNodeMember(){let localContext=new ActionNodeMemberContext(this.context,this.state);this.enterRule(localContext,670,_SysMLv2Parser.RULE_actionNodeMember);try{this.enterOuterAlt(localContext,1),this.state=3609,this.memberPrefix(),this.state=3610,this.actionNode()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionTargetSuccessionMember(){let localContext=new ActionTargetSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,672,_SysMLv2Parser.RULE_actionTargetSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3612,this.memberPrefix(),this.state=3613,this.actionTargetSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardedSuccessionMember(){let localContext=new GuardedSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,674,_SysMLv2Parser.RULE_guardedSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=3615,this.memberPrefix(),this.state=3616,this.guardedSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionUsage(){let localContext=new ActionUsageContext(this.context,this.state);this.enterRule(localContext,676,_SysMLv2Parser.RULE_actionUsage);try{this.enterOuterAlt(localContext,1),this.state=3618,this.occurrenceUsagePrefix(),this.state=3619,this.match(_SysMLv2Parser.ACTION),this.state=3620,this.actionUsageDeclaration(),this.state=3621,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionUsageDeclaration(){let localContext=new ActionUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,678,_SysMLv2Parser.RULE_actionUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3624,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3623,this.usageDeclaration()),this.state=3627,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3626,this.valuePart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}performActionUsage(){let localContext=new PerformActionUsageContext(this.context,this.state);this.enterRule(localContext,680,_SysMLv2Parser.RULE_performActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3629,this.occurrenceUsagePrefix(),this.state=3630,this.match(_SysMLv2Parser.PERFORM),this.state=3631,this.performActionUsageDeclaration(),this.state=3632,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}performActionUsageDeclaration(){let localContext=new PerformActionUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,682,_SysMLv2Parser.RULE_performActionUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3642,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3634,this.ownedReferenceSubsetting(),this.state=3636,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3635,this.featureSpecializationPart());break;case _SysMLv2Parser.ACTION:this.state=3638,this.match(_SysMLv2Parser.ACTION),this.state=3640,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3639,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=3645,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=3644,this.valuePart())}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNode(){let localContext=new ActionNodeContext(this.context,this.state);this.enterRule(localContext,684,_SysMLv2Parser.RULE_actionNode);try{switch(this.state=3655,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,369,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3647,this.controlNode();break;case 2:this.enterOuterAlt(localContext,2),this.state=3648,this.sendNode();break;case 3:this.enterOuterAlt(localContext,3),this.state=3649,this.acceptNode();break;case 4:this.enterOuterAlt(localContext,4),this.state=3650,this.assignmentNode();break;case 5:this.enterOuterAlt(localContext,5),this.state=3651,this.terminateNode();break;case 6:this.enterOuterAlt(localContext,6),this.state=3652,this.ifNode();break;case 7:this.enterOuterAlt(localContext,7),this.state=3653,this.whileLoopNode();break;case 8:this.enterOuterAlt(localContext,8),this.state=3654,this.forLoopNode();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNodeUsageDeclaration(){let localContext=new ActionNodeUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,686,_SysMLv2Parser.RULE_actionNodeUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3657,this.match(_SysMLv2Parser.ACTION),this.state=3659,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3658,this.usageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionNodePrefix(){let localContext=new ActionNodePrefixContext(this.context,this.state);this.enterRule(localContext,688,_SysMLv2Parser.RULE_actionNodePrefix);let _la;try{this.enterOuterAlt(localContext,1),this.state=3661,this.occurrenceUsagePrefix(),this.state=3663,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3662,this.actionNodeUsageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}controlNode(){let localContext=new ControlNodeContext(this.context,this.state);this.enterRule(localContext,690,_SysMLv2Parser.RULE_controlNode);try{switch(this.state=3669,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,372,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3665,this.mergeNode();break;case 2:this.enterOuterAlt(localContext,2),this.state=3666,this.decisionNode();break;case 3:this.enterOuterAlt(localContext,3),this.state=3667,this.joinNode();break;case 4:this.enterOuterAlt(localContext,4),this.state=3668,this.forkNode();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}controlNodePrefix(){let localContext=new ControlNodePrefixContext(this.context,this.state);this.enterRule(localContext,692,_SysMLv2Parser.RULE_controlNodePrefix);let _la;try{for(this.enterOuterAlt(localContext,1),this.state=3671,this.refPrefix(),this.state=3673,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===82&&(this.state=3672,this.match(_SysMLv2Parser.INDIVIDUAL)),this.state=3676,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===137||_la===153)&&(this.state=3675,this.portionKind()),this.state=3681,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=3678,this.usageExtensionKeyword(),this.state=3683,this.errorHandler.sync(this),_la=this.tokenStream.LA(1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}mergeNode(){let localContext=new MergeNodeContext(this.context,this.state);this.enterRule(localContext,694,_SysMLv2Parser.RULE_mergeNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3684,this.controlNodePrefix(),this.state=3685,this.match(_SysMLv2Parser.MERGE),this.state=3687,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3686,this.usageDeclaration()),this.state=3689,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}decisionNode(){let localContext=new DecisionNodeContext(this.context,this.state);this.enterRule(localContext,696,_SysMLv2Parser.RULE_decisionNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3691,this.controlNodePrefix(),this.state=3692,this.match(_SysMLv2Parser.DECIDE),this.state=3694,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3693,this.usageDeclaration()),this.state=3696,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}joinNode(){let localContext=new JoinNodeContext(this.context,this.state);this.enterRule(localContext,698,_SysMLv2Parser.RULE_joinNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3698,this.controlNodePrefix(),this.state=3699,this.match(_SysMLv2Parser.JOIN),this.state=3701,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3700,this.usageDeclaration()),this.state=3703,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forkNode(){let localContext=new ForkNodeContext(this.context,this.state);this.enterRule(localContext,700,_SysMLv2Parser.RULE_forkNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3705,this.controlNodePrefix(),this.state=3706,this.match(_SysMLv2Parser.FORK),this.state=3708,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3707,this.usageDeclaration()),this.state=3710,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}acceptNode(){let localContext=new AcceptNodeContext(this.context,this.state);this.enterRule(localContext,702,_SysMLv2Parser.RULE_acceptNode);try{this.enterOuterAlt(localContext,1),this.state=3712,this.occurrenceUsagePrefix(),this.state=3713,this.acceptNodeDeclaration(),this.state=3714,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}acceptNodeDeclaration(){let localContext=new AcceptNodeDeclarationContext(this.context,this.state);this.enterRule(localContext,704,_SysMLv2Parser.RULE_acceptNodeDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3717,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3716,this.actionNodeUsageDeclaration()),this.state=3719,this.match(_SysMLv2Parser.ACCEPT),this.state=3720,this.acceptParameterPart()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}acceptParameterPart(){let localContext=new AcceptParameterPartContext(this.context,this.state);this.enterRule(localContext,706,_SysMLv2Parser.RULE_acceptParameterPart);let _la;try{this.enterOuterAlt(localContext,1),this.state=3722,this.payloadParameterMember(),this.state=3725,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===168&&(this.state=3723,this.match(_SysMLv2Parser.VIA),this.state=3724,this.nodeParameterMember())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadParameterMember(){let localContext=new PayloadParameterMemberContext(this.context,this.state);this.enterRule(localContext,708,_SysMLv2Parser.RULE_payloadParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3727,this.payloadParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}payloadParameter(){let localContext=new PayloadParameterContext(this.context,this.state);this.enterRule(localContext,710,_SysMLv2Parser.RULE_payloadParameter);let _la;try{switch(this.state=3737,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,384,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3729,this.payloadFeature();break;case 2:this.enterOuterAlt(localContext,2),this.state=3731,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,382,this.context)===1&&(this.state=3730,this.identification()),this.state=3734,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=3733,this.payloadFeatureSpecializationPart()),this.state=3736,this.triggerValuePart();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerValuePart(){let localContext=new TriggerValuePartContext(this.context,this.state);this.enterRule(localContext,712,_SysMLv2Parser.RULE_triggerValuePart);try{this.enterOuterAlt(localContext,1),this.state=3739,this.triggerFeatureValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerFeatureValue(){let localContext=new TriggerFeatureValueContext(this.context,this.state);this.enterRule(localContext,714,_SysMLv2Parser.RULE_triggerFeatureValue);try{this.enterOuterAlt(localContext,1),this.state=3741,this.triggerExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerExpression(){let localContext=new TriggerExpressionContext(this.context,this.state);this.enterRule(localContext,716,_SysMLv2Parser.RULE_triggerExpression);let _la;try{switch(this.state=3747,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.AFTER:case _SysMLv2Parser.AT:this.enterOuterAlt(localContext,1),this.state=3743,_la=this.tokenStream.LA(1),_la===6||_la===18?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3744,this.argumentMember();break;case _SysMLv2Parser.WHEN:this.enterOuterAlt(localContext,2),this.state=3745,this.match(_SysMLv2Parser.WHEN),this.state=3746,this.argumentExpressionMember();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sendNode(){let localContext=new SendNodeContext(this.context,this.state);this.enterRule(localContext,718,_SysMLv2Parser.RULE_sendNode);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3749,this.occurrenceUsagePrefix(),this.state=3752,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ACTION:this.state=3750,this.actionNodeUsageDeclaration();break;case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.DEFAULT:case _SysMLv2Parser.DEFINED:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.NONUNIQUE:case _SysMLv2Parser.ORDERED:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.REDEFINES:case _SysMLv2Parser.REFERENCES:case _SysMLv2Parser.SEND:case _SysMLv2Parser.STEP:case _SysMLv2Parser.SUBSETS:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.TYPED:case _SysMLv2Parser.VAR:case _SysMLv2Parser.COLON_COLON_GT:case _SysMLv2Parser.COLON_GT_GT:case _SysMLv2Parser.COLON_EQ:case _SysMLv2Parser.COLON_GT:case _SysMLv2Parser.FAT_ARROW:case _SysMLv2Parser.COLON:case _SysMLv2Parser.LT:case _SysMLv2Parser.EQ:case _SysMLv2Parser.LBRACK:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=3751,this.actionUsageDeclaration();break;default:throw new NoViableAltException(this)}switch(this.state=3754,this.match(_SysMLv2Parser.SEND),this.state=3763,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,389,this.context)){case 1:this.state=3755,this.nodeParameterMember(),this.state=3757,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===154||_la===168)&&(this.state=3756,this.senderReceiverPart());break;case 2:this.state=3759,this.emptyParameterMember(),this.state=3761,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===154||_la===168)&&(this.state=3760,this.senderReceiverPart());break}this.state=3765,this.actionBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sendNodeDeclaration(){let localContext=new SendNodeDeclarationContext(this.context,this.state);this.enterRule(localContext,720,_SysMLv2Parser.RULE_sendNodeDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3768,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3767,this.actionNodeUsageDeclaration()),this.state=3770,this.match(_SysMLv2Parser.SEND),this.state=3771,this.nodeParameterMember(),this.state=3773,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===154||_la===168)&&(this.state=3772,this.senderReceiverPart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}senderReceiverPart(){let localContext=new SenderReceiverPartContext(this.context,this.state);this.enterRule(localContext,722,_SysMLv2Parser.RULE_senderReceiverPart);let _la;try{switch(this.state=3785,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.VIA:this.enterOuterAlt(localContext,1),this.state=3775,this.match(_SysMLv2Parser.VIA),this.state=3776,this.nodeParameterMember(),this.state=3779,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===154&&(this.state=3777,this.match(_SysMLv2Parser.TO),this.state=3778,this.nodeParameterMember());break;case _SysMLv2Parser.TO:this.enterOuterAlt(localContext,2),this.state=3781,this.emptyParameterMember(),this.state=3782,this.match(_SysMLv2Parser.TO),this.state=3783,this.nodeParameterMember();break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nodeParameterMember(){let localContext=new NodeParameterMemberContext(this.context,this.state);this.enterRule(localContext,724,_SysMLv2Parser.RULE_nodeParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3787,this.nodeParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nodeParameter(){let localContext=new NodeParameterContext(this.context,this.state);this.enterRule(localContext,726,_SysMLv2Parser.RULE_nodeParameter);try{this.enterOuterAlt(localContext,1),this.state=3789,this.featureBinding()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}featureBinding(){let localContext=new FeatureBindingContext(this.context,this.state);this.enterRule(localContext,728,_SysMLv2Parser.RULE_featureBinding);try{this.enterOuterAlt(localContext,1),this.state=3791,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyParameterMember(){let localContext=new EmptyParameterMemberContext(this.context,this.state);this.enterRule(localContext,730,_SysMLv2Parser.RULE_emptyParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3793,this.emptyUsage_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentNode(){let localContext=new AssignmentNodeContext(this.context,this.state);this.enterRule(localContext,732,_SysMLv2Parser.RULE_assignmentNode);try{this.enterOuterAlt(localContext,1),this.state=3795,this.occurrenceUsagePrefix(),this.state=3796,this.assignmentNodeDeclaration(),this.state=3797,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentNodeDeclaration(){let localContext=new AssignmentNodeDeclarationContext(this.context,this.state);this.enterRule(localContext,734,_SysMLv2Parser.RULE_assignmentNodeDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3800,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3799,this.actionNodeUsageDeclaration()),this.state=3802,this.match(_SysMLv2Parser.ASSIGN),this.state=3803,this.assignmentTargetMember(),this.state=3804,this.featureChainMember(),this.state=3805,this.match(_SysMLv2Parser.COLON_EQ),this.state=3806,this.nodeParameterMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentTargetMember(){let localContext=new AssignmentTargetMemberContext(this.context,this.state);this.enterRule(localContext,736,_SysMLv2Parser.RULE_assignmentTargetMember);try{this.enterOuterAlt(localContext,1),this.state=3808,this.assignmentTargetParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentTargetParameter(){let localContext=new AssignmentTargetParameterContext(this.context,this.state);this.enterRule(localContext,738,_SysMLv2Parser.RULE_assignmentTargetParameter);try{this.enterOuterAlt(localContext,1),this.state=3813,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,395,this.context)===1&&(this.state=3810,this.assignmentTargetBinding(),this.state=3811,this.match(_SysMLv2Parser.DOT))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assignmentTargetBinding(){let localContext=new AssignmentTargetBindingContext(this.context,this.state);this.enterRule(localContext,740,_SysMLv2Parser.RULE_assignmentTargetBinding);try{this.enterOuterAlt(localContext,1),this.state=3815,this.nonFeatureChainPrimaryExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}terminateNode(){let localContext=new TerminateNodeContext(this.context,this.state);this.enterRule(localContext,742,_SysMLv2Parser.RULE_terminateNode);let _la;try{this.enterOuterAlt(localContext,1),this.state=3817,this.occurrenceUsagePrefix(),this.state=3819,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3818,this.actionNodeUsageDeclaration()),this.state=3821,this.match(_SysMLv2Parser.TERMINATE),this.state=3823,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,397,this.context)===1&&(this.state=3822,this.nodeParameterMember()),this.state=3825,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ifNode(){let localContext=new IfNodeContext(this.context,this.state);this.enterRule(localContext,744,_SysMLv2Parser.RULE_ifNode);try{switch(this.enterOuterAlt(localContext,1),this.state=3827,this.actionNodePrefix(),this.state=3828,this.match(_SysMLv2Parser.IF),this.state=3829,this.expressionParameterMember(),this.state=3830,this.actionBodyParameterMember(),this.state=3836,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,399,this.context)){case 1:switch(this.state=3831,this.match(_SysMLv2Parser.ELSE),this.state=3834,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,398,this.context)){case 1:this.state=3832,this.actionBodyParameterMember();break;case 2:this.state=3833,this.ifNodeParameterMember();break}break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expressionParameterMember(){let localContext=new ExpressionParameterMemberContext(this.context,this.state);this.enterRule(localContext,746,_SysMLv2Parser.RULE_expressionParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3838,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBodyParameterMember(){let localContext=new ActionBodyParameterMemberContext(this.context,this.state);this.enterRule(localContext,748,_SysMLv2Parser.RULE_actionBodyParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3840,this.actionBodyParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionBodyParameter(){let localContext=new ActionBodyParameterContext(this.context,this.state);this.enterRule(localContext,750,_SysMLv2Parser.RULE_actionBodyParameter);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=3846,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===4&&(this.state=3842,this.match(_SysMLv2Parser.ACTION),this.state=3844,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3843,this.usageDeclaration())),this.state=3848,this.match(_SysMLv2Parser.LBRACE),this.state=3852,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3849,this.actionBodyItem(),this.state=3854,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3855,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}ifNodeParameterMember(){let localContext=new IfNodeParameterMemberContext(this.context,this.state);this.enterRule(localContext,752,_SysMLv2Parser.RULE_ifNodeParameterMember);try{this.enterOuterAlt(localContext,1),this.state=3857,this.ifNode()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}whileLoopNode(){let localContext=new WhileLoopNodeContext(this.context,this.state);this.enterRule(localContext,754,_SysMLv2Parser.RULE_whileLoopNode);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=3859,this.actionNodePrefix(),this.state=3864,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.WHILE:this.state=3860,this.match(_SysMLv2Parser.WHILE),this.state=3861,this.expressionParameterMember();break;case _SysMLv2Parser.LOOP:this.state=3862,this.match(_SysMLv2Parser.LOOP),this.state=3863,this.emptyParameterMember();break;default:throw new NoViableAltException(this)}this.state=3866,this.actionBodyParameterMember(),this.state=3871,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===161&&(this.state=3867,this.match(_SysMLv2Parser.UNTIL),this.state=3868,this.expressionParameterMember(),this.state=3869,this.match(_SysMLv2Parser.SEMI))}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forLoopNode(){let localContext=new ForLoopNodeContext(this.context,this.state);this.enterRule(localContext,756,_SysMLv2Parser.RULE_forLoopNode);try{this.enterOuterAlt(localContext,1),this.state=3873,this.actionNodePrefix(),this.state=3874,this.match(_SysMLv2Parser.FOR),this.state=3875,this.forVariableDeclarationMember(),this.state=3876,this.match(_SysMLv2Parser.IN),this.state=3877,this.nodeParameterMember(),this.state=3878,this.actionBodyParameterMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forVariableDeclarationMember(){let localContext=new ForVariableDeclarationMemberContext(this.context,this.state);this.enterRule(localContext,758,_SysMLv2Parser.RULE_forVariableDeclarationMember);let _la;try{this.enterOuterAlt(localContext,1),this.state=3881,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3880,this.usageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}forVariableDeclaration(){let localContext=new ForVariableDeclarationContext(this.context,this.state);this.enterRule(localContext,760,_SysMLv2Parser.RULE_forVariableDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=3884,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3883,this.usageDeclaration())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actionTargetSuccession(){let localContext=new ActionTargetSuccessionContext(this.context,this.state);this.enterRule(localContext,762,_SysMLv2Parser.RULE_actionTargetSuccession);try{this.enterOuterAlt(localContext,1);{switch(this.state=3889,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.THEN:case _SysMLv2Parser.LBRACK:this.state=3886,this.targetSuccession();break;case _SysMLv2Parser.IF:this.state=3887,this.guardedTargetSuccession();break;case _SysMLv2Parser.ELSE:this.state=3888,this.defaultTargetSuccession();break;default:throw new NoViableAltException(this)}this.state=3891,this.usageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}targetSuccession(){let localContext=new TargetSuccessionContext(this.context,this.state);this.enterRule(localContext,764,_SysMLv2Parser.RULE_targetSuccession);try{this.enterOuterAlt(localContext,1),this.state=3893,this.sourceEndMember(),this.state=3894,this.match(_SysMLv2Parser.THEN),this.state=3895,this.connectorEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardedTargetSuccession(){let localContext=new GuardedTargetSuccessionContext(this.context,this.state);this.enterRule(localContext,766,_SysMLv2Parser.RULE_guardedTargetSuccession);try{this.enterOuterAlt(localContext,1),this.state=3897,this.guardExpressionMember(),this.state=3898,this.match(_SysMLv2Parser.THEN),this.state=3899,this.transitionSuccessionMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}defaultTargetSuccession(){let localContext=new DefaultTargetSuccessionContext(this.context,this.state);this.enterRule(localContext,768,_SysMLv2Parser.RULE_defaultTargetSuccession);try{this.enterOuterAlt(localContext,1),this.state=3901,this.match(_SysMLv2Parser.ELSE),this.state=3902,this.transitionSuccessionMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardedSuccession(){let localContext=new GuardedSuccessionContext(this.context,this.state);this.enterRule(localContext,770,_SysMLv2Parser.RULE_guardedSuccession);let _la;try{this.enterOuterAlt(localContext,1),this.state=3908,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===150&&(this.state=3904,this.match(_SysMLv2Parser.SUCCESSION),this.state=3906,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=3905,this.usageDeclaration())),this.state=3910,this.match(_SysMLv2Parser.FIRST),this.state=3911,this.featureChainMember(),this.state=3912,this.guardExpressionMember(),this.state=3913,this.match(_SysMLv2Parser.THEN),this.state=3914,this.transitionSuccessionMember(),this.state=3915,this.usageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateDefinition(){let localContext=new StateDefinitionContext(this.context,this.state);this.enterRule(localContext,772,_SysMLv2Parser.RULE_stateDefinition);try{this.enterOuterAlt(localContext,1),this.state=3917,this.occurrenceDefinitionPrefix(),this.state=3918,this.match(_SysMLv2Parser.STATE),this.state=3919,this.match(_SysMLv2Parser.DEF),this.state=3920,this.definitionDeclaration(),this.state=3921,this.stateDefBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateDefBody(){let localContext=new StateDefBodyContext(this.context,this.state);this.enterRule(localContext,774,_SysMLv2Parser.RULE_stateDefBody);let _la;try{switch(this.state=3935,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=3923,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.PARALLEL:case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=3925,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===116&&(this.state=3924,this.match(_SysMLv2Parser.PARALLEL)),this.state=3927,this.match(_SysMLv2Parser.LBRACE),this.state=3931,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&1063503665)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238897)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&450115755)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=3928,this.stateBodyItem(),this.state=3933,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=3934,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateBodyItem(){let localContext=new StateBodyItemContext(this.context,this.state);this.enterRule(localContext,776,_SysMLv2Parser.RULE_stateBodyItem);let _la;try{let alternative;switch(this.state=3958,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,416,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3937,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(localContext,2),this.state=3939,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===152&&(this.state=3938,this.sourceSuccessionMember()),this.state=3941,this.behaviorUsageMember(),this.state=3945,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,414,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3942,this.targetTransitionUsageMember()),this.state=3947,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,414,this.context);break;case 3:this.enterOuterAlt(localContext,3),this.state=3948,this.transitionUsageMember();break;case 4:for(this.enterOuterAlt(localContext,4),this.state=3949,this.entryActionMember(),this.state=3953,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,415,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=3950,this.entryTransitionMember()),this.state=3955,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,415,this.context);break;case 5:this.enterOuterAlt(localContext,5),this.state=3956,this.doActionMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=3957,this.exitActionMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}entryActionMember(){let localContext=new EntryActionMemberContext(this.context,this.state);this.enterRule(localContext,778,_SysMLv2Parser.RULE_entryActionMember);try{this.enterOuterAlt(localContext,1),this.state=3960,this.memberPrefix(),this.state=3961,this.match(_SysMLv2Parser.ENTRY),this.state=3962,this.stateActionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}doActionMember(){let localContext=new DoActionMemberContext(this.context,this.state);this.enterRule(localContext,780,_SysMLv2Parser.RULE_doActionMember);try{this.enterOuterAlt(localContext,1),this.state=3964,this.memberPrefix(),this.state=3965,this.match(_SysMLv2Parser.DO),this.state=3966,this.stateActionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}exitActionMember(){let localContext=new ExitActionMemberContext(this.context,this.state);this.enterRule(localContext,782,_SysMLv2Parser.RULE_exitActionMember);try{this.enterOuterAlt(localContext,1),this.state=3968,this.memberPrefix(),this.state=3969,this.match(_SysMLv2Parser.EXIT),this.state=3970,this.stateActionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}entryTransitionMember(){let localContext=new EntryTransitionMemberContext(this.context,this.state);this.enterRule(localContext,784,_SysMLv2Parser.RULE_entryTransitionMember);try{this.enterOuterAlt(localContext,1);{switch(this.state=3972,this.memberPrefix(),this.state=3976,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.IF:this.state=3973,this.guardedTargetSuccession();break;case _SysMLv2Parser.THEN:this.state=3974,this.match(_SysMLv2Parser.THEN),this.state=3975,this.transitionSuccessionMember();break;default:throw new NoViableAltException(this)}this.state=3978,this.match(_SysMLv2Parser.SEMI)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateActionUsage(){let localContext=new StateActionUsageContext(this.context,this.state);this.enterRule(localContext,786,_SysMLv2Parser.RULE_stateActionUsage);try{switch(this.state=3987,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,418,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=3980,this.emptyActionUsage_(),this.state=3981,this.match(_SysMLv2Parser.SEMI);break;case 2:this.enterOuterAlt(localContext,2),this.state=3983,this.statePerformActionUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=3984,this.stateAcceptActionUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=3985,this.stateSendActionUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=3986,this.stateAssignmentActionUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}statePerformActionUsage(){let localContext=new StatePerformActionUsageContext(this.context,this.state);this.enterRule(localContext,788,_SysMLv2Parser.RULE_statePerformActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3989,this.performActionUsageDeclaration(),this.state=3990,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateAcceptActionUsage(){let localContext=new StateAcceptActionUsageContext(this.context,this.state);this.enterRule(localContext,790,_SysMLv2Parser.RULE_stateAcceptActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3992,this.acceptNodeDeclaration(),this.state=3993,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateSendActionUsage(){let localContext=new StateSendActionUsageContext(this.context,this.state);this.enterRule(localContext,792,_SysMLv2Parser.RULE_stateSendActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3995,this.sendNodeDeclaration(),this.state=3996,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateAssignmentActionUsage(){let localContext=new StateAssignmentActionUsageContext(this.context,this.state);this.enterRule(localContext,794,_SysMLv2Parser.RULE_stateAssignmentActionUsage);try{this.enterOuterAlt(localContext,1),this.state=3998,this.assignmentNodeDeclaration(),this.state=3999,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionUsageMember(){let localContext=new TransitionUsageMemberContext(this.context,this.state);this.enterRule(localContext,796,_SysMLv2Parser.RULE_transitionUsageMember);try{this.enterOuterAlt(localContext,1),this.state=4001,this.memberPrefix(),this.state=4002,this.transitionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}targetTransitionUsageMember(){let localContext=new TargetTransitionUsageMemberContext(this.context,this.state);this.enterRule(localContext,798,_SysMLv2Parser.RULE_targetTransitionUsageMember);try{this.enterOuterAlt(localContext,1),this.state=4004,this.memberPrefix(),this.state=4005,this.targetTransitionUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateUsage(){let localContext=new StateUsageContext(this.context,this.state);this.enterRule(localContext,800,_SysMLv2Parser.RULE_stateUsage);try{this.enterOuterAlt(localContext,1),this.state=4007,this.occurrenceUsagePrefix(),this.state=4008,this.match(_SysMLv2Parser.STATE),this.state=4009,this.actionUsageDeclaration(),this.state=4010,this.stateUsageBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stateUsageBody(){let localContext=new StateUsageBodyContext(this.context,this.state);this.enterRule(localContext,802,_SysMLv2Parser.RULE_stateUsageBody);let _la;try{switch(this.state=4024,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4012,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.PARALLEL:case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4014,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===116&&(this.state=4013,this.match(_SysMLv2Parser.PARALLEL)),this.state=4016,this.match(_SysMLv2Parser.LBRACE),this.state=4020,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&1063503665)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238897)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&450115755)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4017,this.stateBodyItem(),this.state=4022,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4023,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}exhibitStateUsage(){let localContext=new ExhibitStateUsageContext(this.context,this.state);this.enterRule(localContext,804,_SysMLv2Parser.RULE_exhibitStateUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4026,this.occurrenceUsagePrefix(),this.state=4027,this.match(_SysMLv2Parser.EXHIBIT),this.state=4036,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4028,this.ownedReferenceSubsetting(),this.state=4030,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4029,this.featureSpecializationPart());break;case _SysMLv2Parser.STATE:this.state=4032,this.match(_SysMLv2Parser.STATE),this.state=4034,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4033,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=4039,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4038,this.valuePart()),this.state=4041,this.stateUsageBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionUsage(){let localContext=new TransitionUsageContext(this.context,this.state);this.enterRule(localContext,806,_SysMLv2Parser.RULE_transitionUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=4043,this.match(_SysMLv2Parser.TRANSITION),this.state=4048,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,427,this.context)===1&&(this.state=4045,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4044,this.usageDeclaration()),this.state=4047,this.match(_SysMLv2Parser.FIRST)),this.state=4050,this.featureChainMember(),this.state=4051,this.emptyParameterMember(),this.state=4055,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===3&&(this.state=4052,this.emptyParameterMember(),this.state=4053,this.triggerActionMember()),this.state=4058,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===77&&(this.state=4057,this.guardExpressionMember()),this.state=4061,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=4060,this.effectBehaviorMember()),this.state=4063,this.match(_SysMLv2Parser.THEN),this.state=4064,this.transitionSuccessionMember(),this.state=4065,this.actionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}targetTransitionUsage(){let localContext=new TargetTransitionUsageContext(this.context,this.state);this.enterRule(localContext,808,_SysMLv2Parser.RULE_targetTransitionUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4067,this.emptyParameterMember(),this.state=4092,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.TRANSITION:this.state=4068,this.match(_SysMLv2Parser.TRANSITION),this.state=4072,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===3&&(this.state=4069,this.emptyParameterMember(),this.state=4070,this.triggerActionMember()),this.state=4075,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===77&&(this.state=4074,this.guardExpressionMember()),this.state=4078,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=4077,this.effectBehaviorMember());break;case _SysMLv2Parser.ACCEPT:this.state=4080,this.emptyParameterMember(),this.state=4081,this.triggerActionMember(),this.state=4083,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===77&&(this.state=4082,this.guardExpressionMember()),this.state=4086,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=4085,this.effectBehaviorMember());break;case _SysMLv2Parser.IF:this.state=4088,this.guardExpressionMember(),this.state=4090,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===53&&(this.state=4089,this.effectBehaviorMember());break;case _SysMLv2Parser.THEN:break;default:break}this.state=4094,this.match(_SysMLv2Parser.THEN),this.state=4095,this.transitionSuccessionMember(),this.state=4096,this.actionBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerActionMember(){let localContext=new TriggerActionMemberContext(this.context,this.state);this.enterRule(localContext,810,_SysMLv2Parser.RULE_triggerActionMember);try{this.enterOuterAlt(localContext,1),this.state=4098,this.match(_SysMLv2Parser.ACCEPT),this.state=4099,this.triggerAction()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}triggerAction(){let localContext=new TriggerActionContext(this.context,this.state);this.enterRule(localContext,812,_SysMLv2Parser.RULE_triggerAction);try{this.enterOuterAlt(localContext,1),this.state=4101,this.acceptParameterPart()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}guardExpressionMember(){let localContext=new GuardExpressionMemberContext(this.context,this.state);this.enterRule(localContext,814,_SysMLv2Parser.RULE_guardExpressionMember);try{this.enterOuterAlt(localContext,1),this.state=4103,this.match(_SysMLv2Parser.IF),this.state=4104,this.ownedExpression(0)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}effectBehaviorMember(){let localContext=new EffectBehaviorMemberContext(this.context,this.state);this.enterRule(localContext,816,_SysMLv2Parser.RULE_effectBehaviorMember);try{this.enterOuterAlt(localContext,1),this.state=4106,this.match(_SysMLv2Parser.DO),this.state=4107,this.effectBehaviorUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}effectBehaviorUsage(){let localContext=new EffectBehaviorUsageContext(this.context,this.state);this.enterRule(localContext,818,_SysMLv2Parser.RULE_effectBehaviorUsage);try{switch(this.state=4114,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,438,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4109,this.emptyActionUsage_();break;case 2:this.enterOuterAlt(localContext,2),this.state=4110,this.transitionPerformActionUsage();break;case 3:this.enterOuterAlt(localContext,3),this.state=4111,this.transitionAcceptActionUsage();break;case 4:this.enterOuterAlt(localContext,4),this.state=4112,this.transitionSendActionUsage();break;case 5:this.enterOuterAlt(localContext,5),this.state=4113,this.transitionAssignmentActionUsage();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionPerformActionUsage(){let localContext=new TransitionPerformActionUsageContext(this.context,this.state);this.enterRule(localContext,820,_SysMLv2Parser.RULE_transitionPerformActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=4116,this.performActionUsageDeclaration(),this.state=4125,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=4117,this.match(_SysMLv2Parser.LBRACE),this.state=4121,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4118,this.actionBodyItem(),this.state=4123,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4124,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionAcceptActionUsage(){let localContext=new TransitionAcceptActionUsageContext(this.context,this.state);this.enterRule(localContext,822,_SysMLv2Parser.RULE_transitionAcceptActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=4127,this.acceptNodeDeclaration(),this.state=4136,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=4128,this.match(_SysMLv2Parser.LBRACE),this.state=4132,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4129,this.actionBodyItem(),this.state=4134,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4135,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionSendActionUsage(){let localContext=new TransitionSendActionUsageContext(this.context,this.state);this.enterRule(localContext,824,_SysMLv2Parser.RULE_transitionSendActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=4138,this.sendNodeDeclaration(),this.state=4147,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=4139,this.match(_SysMLv2Parser.LBRACE),this.state=4143,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4140,this.actionBodyItem(),this.state=4145,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4146,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionAssignmentActionUsage(){let localContext=new TransitionAssignmentActionUsageContext(this.context,this.state);this.enterRule(localContext,826,_SysMLv2Parser.RULE_transitionAssignmentActionUsage);let _la;try{if(this.enterOuterAlt(localContext,1),this.state=4149,this.assignmentNodeDeclaration(),this.state=4158,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===214){for(this.state=4150,this.match(_SysMLv2Parser.LBRACE),this.state=4154,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182322332)!==0||(_la-32&-32)===0&&(1<<_la-32&490985265)!==0||(_la-65&-32)===0&&(1<<_la-65&4229944561)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127799)!==0||(_la-130&-32)===0&&(1<<_la-130&418658539)!==0||(_la-162&-32)===0&&(1<<_la-162&1153459615)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4151,this.actionBodyItem(),this.state=4156,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4157,this.match(_SysMLv2Parser.RBRACE)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionSuccessionMember(){let localContext=new TransitionSuccessionMemberContext(this.context,this.state);this.enterRule(localContext,828,_SysMLv2Parser.RULE_transitionSuccessionMember);try{this.enterOuterAlt(localContext,1),this.state=4160,this.transitionSuccession()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}transitionSuccession(){let localContext=new TransitionSuccessionContext(this.context,this.state);this.enterRule(localContext,830,_SysMLv2Parser.RULE_transitionSuccession);try{this.enterOuterAlt(localContext,1),this.state=4162,this.emptyEndMember(),this.state=4163,this.connectorEndMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyEndMember(){let localContext=new EmptyEndMemberContext(this.context,this.state);this.enterRule(localContext,832,_SysMLv2Parser.RULE_emptyEndMember);try{this.enterOuterAlt(localContext,1),this.state=4165,this.emptyFeature_()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationDefinition(){let localContext=new CalculationDefinitionContext(this.context,this.state);this.enterRule(localContext,834,_SysMLv2Parser.RULE_calculationDefinition);try{this.enterOuterAlt(localContext,1),this.state=4167,this.occurrenceDefinitionPrefix(),this.state=4168,this.match(_SysMLv2Parser.CALC),this.state=4169,this.match(_SysMLv2Parser.DEF),this.state=4170,this.definitionDeclaration(),this.state=4171,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationUsage(){let localContext=new CalculationUsageContext(this.context,this.state);this.enterRule(localContext,836,_SysMLv2Parser.RULE_calculationUsage);try{this.enterOuterAlt(localContext,1),this.state=4173,this.occurrenceUsagePrefix(),this.state=4174,this.match(_SysMLv2Parser.CALC),this.state=4175,this.actionUsageDeclaration(),this.state=4176,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationBody(){let localContext=new CalculationBodyContext(this.context,this.state);this.enterRule(localContext,838,_SysMLv2Parser.RULE_calculationBody);try{switch(this.state=4183,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4178,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2),this.state=4179,this.match(_SysMLv2Parser.LBRACE),this.state=4180,this.calculationBodyPart(),this.state=4181,this.match(_SysMLv2Parser.RBRACE);break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationBodyPart(){let localContext=new CalculationBodyPartContext(this.context,this.state);this.enterRule(localContext,840,_SysMLv2Parser.RULE_calculationBodyPart);let _la;try{let alternative;this.enterOuterAlt(localContext,1);{for(this.state=4188,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,448,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=4185,this.calculationBodyItem()),this.state=4190,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,448,this.context);this.state=4192,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&245763)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=4191,this.resultExpressionMember())}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationBodyItem(){let localContext=new CalculationBodyItemContext(this.context,this.state);this.enterRule(localContext,842,_SysMLv2Parser.RULE_calculationBodyItem);try{switch(this.state=4196,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,450,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4194,this.actionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4195,this.returnParameterMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}returnParameterMember(){let localContext=new ReturnParameterMemberContext(this.context,this.state);this.enterRule(localContext,844,_SysMLv2Parser.RULE_returnParameterMember);try{this.enterOuterAlt(localContext,1),this.state=4198,this.memberPrefix(),this.state=4199,this.match(_SysMLv2Parser.RETURN),this.state=4200,this.usageElement()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constraintDefinition(){let localContext=new ConstraintDefinitionContext(this.context,this.state);this.enterRule(localContext,846,_SysMLv2Parser.RULE_constraintDefinition);try{this.enterOuterAlt(localContext,1),this.state=4202,this.occurrenceDefinitionPrefix(),this.state=4203,this.match(_SysMLv2Parser.CONSTRAINT),this.state=4204,this.match(_SysMLv2Parser.DEF),this.state=4205,this.definitionDeclaration(),this.state=4206,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constraintUsage(){let localContext=new ConstraintUsageContext(this.context,this.state);this.enterRule(localContext,848,_SysMLv2Parser.RULE_constraintUsage);try{this.enterOuterAlt(localContext,1),this.state=4208,this.occurrenceUsagePrefix(),this.state=4209,this.match(_SysMLv2Parser.CONSTRAINT),this.state=4210,this.constraintUsageDeclaration(),this.state=4211,this.calculationBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}assertConstraintUsage(){let localContext=new AssertConstraintUsageContext(this.context,this.state);this.enterRule(localContext,850,_SysMLv2Parser.RULE_assertConstraintUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4213,this.occurrenceUsagePrefix(),this.state=4214,this.match(_SysMLv2Parser.ASSERT),this.state=4216,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===107&&(this.state=4215,this.match(_SysMLv2Parser.NOT)),this.state=4224,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4218,this.ownedReferenceSubsetting(),this.state=4220,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4219,this.featureSpecializationPart());break;case _SysMLv2Parser.CONSTRAINT:this.state=4222,this.match(_SysMLv2Parser.CONSTRAINT),this.state=4223,this.constraintUsageDeclaration();break;default:throw new NoViableAltException(this)}this.state=4226,this.calculationBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}constraintUsageDeclaration(){let localContext=new ConstraintUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,852,_SysMLv2Parser.RULE_constraintUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=4229,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4228,this.usageDeclaration()),this.state=4232,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4231,this.valuePart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementDefinition(){let localContext=new RequirementDefinitionContext(this.context,this.state);this.enterRule(localContext,854,_SysMLv2Parser.RULE_requirementDefinition);try{this.enterOuterAlt(localContext,1),this.state=4234,this.occurrenceDefinitionPrefix(),this.state=4235,this.match(_SysMLv2Parser.REQUIREMENT),this.state=4236,this.match(_SysMLv2Parser.DEF),this.state=4237,this.definitionDeclaration(),this.state=4238,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementBody(){let localContext=new RequirementBodyContext(this.context,this.state);this.enterRule(localContext,856,_SysMLv2Parser.RULE_requirementBody);let _la;try{switch(this.state=4249,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4240,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4241,this.match(_SysMLv2Parser.LBRACE),this.state=4245,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182420660)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948239153)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-130&-32)===0&&(1<<_la-130&416627887)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458623)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4242,this.requirementBodyItem(),this.state=4247,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4248,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementBodyItem(){let localContext=new RequirementBodyItemContext(this.context,this.state);this.enterRule(localContext,858,_SysMLv2Parser.RULE_requirementBodyItem);try{switch(this.state=4258,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,458,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4251,this.definitionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4252,this.subjectMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4253,this.requirementConstraintMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=4254,this.framedConcernMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=4255,this.requirementVerificationMember();break;case 6:this.enterOuterAlt(localContext,6),this.state=4256,this.actorMember();break;case 7:this.enterOuterAlt(localContext,7),this.state=4257,this.stakeholderMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subjectMember(){let localContext=new SubjectMemberContext(this.context,this.state);this.enterRule(localContext,860,_SysMLv2Parser.RULE_subjectMember);try{this.enterOuterAlt(localContext,1),this.state=4260,this.memberPrefix(),this.state=4261,this.subjectUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}subjectUsage(){let localContext=new SubjectUsageContext(this.context,this.state);this.enterRule(localContext,862,_SysMLv2Parser.RULE_subjectUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4263,this.match(_SysMLv2Parser.SUBJECT),this.state=4267,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4264,this.usageExtensionKeyword(),this.state=4269,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4270,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementConstraintMember(){let localContext=new RequirementConstraintMemberContext(this.context,this.state);this.enterRule(localContext,864,_SysMLv2Parser.RULE_requirementConstraintMember);try{this.enterOuterAlt(localContext,1),this.state=4272,this.memberPrefix(),this.state=4273,this.requirementKind(),this.state=4274,this.requirementConstraintUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementKind(){let localContext=new RequirementKindContext(this.context,this.state);this.enterRule(localContext,866,_SysMLv2Parser.RULE_requirementKind);let _la;try{this.enterOuterAlt(localContext,1),this.state=4276,_la=this.tokenStream.LA(1),_la===17||_la===132?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementConstraintUsage(){let localContext=new RequirementConstraintUsageContext(this.context,this.state);this.enterRule(localContext,868,_SysMLv2Parser.RULE_requirementConstraintUsage);let _la;try{switch(this.state=4301,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=4278,this.ownedReferenceSubsetting(),this.state=4280,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4279,this.featureSpecializationPart()),this.state=4282,this.requirementBody();break;case _SysMLv2Parser.CONSTRAINT:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4296,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,463,this.context)){case 1:{for(this.state=4287,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4284,this.usageExtensionKeyword(),this.state=4289,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4290,this.match(_SysMLv2Parser.CONSTRAINT)}break;case 2:{this.state=4292,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4291,this.usageExtensionKeyword(),this.state=4294,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4298,this.constraintUsageDeclaration(),this.state=4299,this.calculationBody()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}framedConcernMember(){let localContext=new FramedConcernMemberContext(this.context,this.state);this.enterRule(localContext,870,_SysMLv2Parser.RULE_framedConcernMember);try{this.enterOuterAlt(localContext,1),this.state=4303,this.memberPrefix(),this.state=4304,this.match(_SysMLv2Parser.FRAME),this.state=4305,this.framedConcernUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}framedConcernUsage(){let localContext=new FramedConcernUsageContext(this.context,this.state);this.enterRule(localContext,872,_SysMLv2Parser.RULE_framedConcernUsage);let _la;try{switch(this.state=4330,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=4307,this.ownedReferenceSubsetting(),this.state=4309,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4308,this.featureSpecializationPart()),this.state=4311,this.calculationBody();break;case _SysMLv2Parser.CONCERN:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4325,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,468,this.context)){case 1:{for(this.state=4316,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4313,this.usageExtensionKeyword(),this.state=4318,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4319,this.match(_SysMLv2Parser.CONCERN)}break;case 2:{this.state=4321,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4320,this.usageExtensionKeyword(),this.state=4323,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4327,this.calculationUsageDeclaration(),this.state=4328,this.calculationBody()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actorMember(){let localContext=new ActorMemberContext(this.context,this.state);this.enterRule(localContext,874,_SysMLv2Parser.RULE_actorMember);try{this.enterOuterAlt(localContext,1),this.state=4332,this.memberPrefix(),this.state=4333,this.actorUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}actorUsage(){let localContext=new ActorUsageContext(this.context,this.state);this.enterRule(localContext,876,_SysMLv2Parser.RULE_actorUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4335,this.match(_SysMLv2Parser.ACTOR),this.state=4339,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4336,this.usageExtensionKeyword(),this.state=4341,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4342,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stakeholderMember(){let localContext=new StakeholderMemberContext(this.context,this.state);this.enterRule(localContext,878,_SysMLv2Parser.RULE_stakeholderMember);try{this.enterOuterAlt(localContext,1),this.state=4344,this.memberPrefix(),this.state=4345,this.stakeholderUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}stakeholderUsage(){let localContext=new StakeholderUsageContext(this.context,this.state);this.enterRule(localContext,880,_SysMLv2Parser.RULE_stakeholderUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4347,this.match(_SysMLv2Parser.STAKEHOLDER),this.state=4351,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4348,this.usageExtensionKeyword(),this.state=4353,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4354,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementUsage(){let localContext=new RequirementUsageContext(this.context,this.state);this.enterRule(localContext,882,_SysMLv2Parser.RULE_requirementUsage);try{this.enterOuterAlt(localContext,1),this.state=4356,this.occurrenceUsagePrefix(),this.state=4357,this.match(_SysMLv2Parser.REQUIREMENT),this.state=4358,this.constraintUsageDeclaration(),this.state=4359,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfyRequirementUsage(){let localContext=new SatisfyRequirementUsageContext(this.context,this.state);this.enterRule(localContext,884,_SysMLv2Parser.RULE_satisfyRequirementUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4361,this.occurrenceUsagePrefix(),this.state=4367,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.ASSERT:this.state=4362,this.match(_SysMLv2Parser.ASSERT),this.state=4364,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===107&&(this.state=4363,this.match(_SysMLv2Parser.NOT));break;case _SysMLv2Parser.NOT:this.state=4366,this.match(_SysMLv2Parser.NOT);break;case _SysMLv2Parser.SATISFY:break;default:break}switch(this.state=4369,this.match(_SysMLv2Parser.SATISFY),this.state=4378,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4370,this.ownedReferenceSubsetting(),this.state=4372,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4371,this.featureSpecializationPart());break;case _SysMLv2Parser.REQUIREMENT:this.state=4374,this.match(_SysMLv2Parser.REQUIREMENT),this.state=4376,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4375,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=4381,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4380,this.valuePart()),this.state=4385,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===24&&(this.state=4383,this.match(_SysMLv2Parser.BY),this.state=4384,this.satisfactionSubjectMember()),this.state=4387,this.requirementBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionSubjectMember(){let localContext=new SatisfactionSubjectMemberContext(this.context,this.state);this.enterRule(localContext,886,_SysMLv2Parser.RULE_satisfactionSubjectMember);try{this.enterOuterAlt(localContext,1),this.state=4389,this.satisfactionParameter()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionParameter(){let localContext=new SatisfactionParameterContext(this.context,this.state);this.enterRule(localContext,888,_SysMLv2Parser.RULE_satisfactionParameter);try{this.enterOuterAlt(localContext,1),this.state=4391,this.satisfactionFeatureValue()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionFeatureValue(){let localContext=new SatisfactionFeatureValueContext(this.context,this.state);this.enterRule(localContext,890,_SysMLv2Parser.RULE_satisfactionFeatureValue);try{this.enterOuterAlt(localContext,1),this.state=4393,this.satisfactionReferenceExpression()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}satisfactionReferenceExpression(){let localContext=new SatisfactionReferenceExpressionContext(this.context,this.state);this.enterRule(localContext,892,_SysMLv2Parser.RULE_satisfactionReferenceExpression);try{this.enterOuterAlt(localContext,1),this.state=4395,this.featureChainMember()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}concernDefinition(){let localContext=new ConcernDefinitionContext(this.context,this.state);this.enterRule(localContext,894,_SysMLv2Parser.RULE_concernDefinition);try{this.enterOuterAlt(localContext,1),this.state=4397,this.occurrenceDefinitionPrefix(),this.state=4398,this.match(_SysMLv2Parser.CONCERN),this.state=4399,this.match(_SysMLv2Parser.DEF),this.state=4400,this.definitionDeclaration(),this.state=4401,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}concernUsage(){let localContext=new ConcernUsageContext(this.context,this.state);this.enterRule(localContext,896,_SysMLv2Parser.RULE_concernUsage);try{this.enterOuterAlt(localContext,1),this.state=4403,this.occurrenceUsagePrefix(),this.state=4404,this.match(_SysMLv2Parser.CONCERN),this.state=4405,this.constraintUsageDeclaration(),this.state=4406,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseDefinition(){let localContext=new CaseDefinitionContext(this.context,this.state);this.enterRule(localContext,898,_SysMLv2Parser.RULE_caseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4408,this.occurrenceDefinitionPrefix(),this.state=4409,this.match(_SysMLv2Parser.CASE),this.state=4410,this.match(_SysMLv2Parser.DEF),this.state=4411,this.definitionDeclaration(),this.state=4412,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseUsage(){let localContext=new CaseUsageContext(this.context,this.state);this.enterRule(localContext,900,_SysMLv2Parser.RULE_caseUsage);try{this.enterOuterAlt(localContext,1),this.state=4414,this.occurrenceUsagePrefix(),this.state=4415,this.match(_SysMLv2Parser.CASE),this.state=4416,this.constraintUsageDeclaration(),this.state=4417,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseBody(){let localContext=new CaseBodyContext(this.context,this.state);this.enterRule(localContext,902,_SysMLv2Parser.RULE_caseBody);let _la;try{let alternative;switch(this.state=4431,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4419,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4420,this.match(_SysMLv2Parser.LBRACE),this.state=4424,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,479,this.context);alternative!==2&&alternative!==ATN.INVALID_ALT_NUMBER;)alternative===1&&(this.state=4421,this.caseBodyItem()),this.state=4426,this.errorHandler.sync(this),alternative=this.interpreter.adaptivePredict(this.tokenStream,479,this.context);this.state=4428,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===8||_la===20||(_la-42&-32)===0&&(1<<_la-42&12582913)!==0||(_la-75&-32)===0&&(1<<_la-75&1414791685)!==0||(_la-107&-32)===0&&(1<<_la-107&245763)!==0||(_la-143&-32)===0&&(1<<_la-143&1073153)!==0||(_la-191&-32)===0&&(1<<_la-191&4236772773)!==0||_la===223)&&(this.state=4427,this.resultExpressionMember()),this.state=4430,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}caseBodyItem(){let localContext=new CaseBodyItemContext(this.context,this.state);this.enterRule(localContext,904,_SysMLv2Parser.RULE_caseBodyItem);try{switch(this.state=4438,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,482,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4433,this.actionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4434,this.returnParameterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4435,this.subjectMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=4436,this.actorMember();break;case 5:this.enterOuterAlt(localContext,5),this.state=4437,this.objectiveMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}objectiveMember(){let localContext=new ObjectiveMemberContext(this.context,this.state);this.enterRule(localContext,906,_SysMLv2Parser.RULE_objectiveMember);try{this.enterOuterAlt(localContext,1),this.state=4440,this.memberPrefix(),this.state=4441,this.match(_SysMLv2Parser.OBJECTIVE),this.state=4442,this.objectiveRequirementUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}objectiveRequirementUsage(){let localContext=new ObjectiveRequirementUsageContext(this.context,this.state);this.enterRule(localContext,908,_SysMLv2Parser.RULE_objectiveRequirementUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4447,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4444,this.usageExtensionKeyword(),this.state=4449,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4450,this.constraintUsageDeclaration(),this.state=4451,this.requirementBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}analysisCaseDefinition(){let localContext=new AnalysisCaseDefinitionContext(this.context,this.state);this.enterRule(localContext,910,_SysMLv2Parser.RULE_analysisCaseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4453,this.occurrenceDefinitionPrefix(),this.state=4454,this.match(_SysMLv2Parser.ANALYSIS),this.state=4455,this.match(_SysMLv2Parser.DEF),this.state=4456,this.definitionDeclaration(),this.state=4457,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}analysisCaseUsage(){let localContext=new AnalysisCaseUsageContext(this.context,this.state);this.enterRule(localContext,912,_SysMLv2Parser.RULE_analysisCaseUsage);try{this.enterOuterAlt(localContext,1),this.state=4459,this.occurrenceUsagePrefix(),this.state=4460,this.match(_SysMLv2Parser.ANALYSIS),this.state=4461,this.constraintUsageDeclaration(),this.state=4462,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}verificationCaseDefinition(){let localContext=new VerificationCaseDefinitionContext(this.context,this.state);this.enterRule(localContext,914,_SysMLv2Parser.RULE_verificationCaseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4464,this.occurrenceDefinitionPrefix(),this.state=4465,this.match(_SysMLv2Parser.VERIFICATION),this.state=4466,this.match(_SysMLv2Parser.DEF),this.state=4467,this.definitionDeclaration(),this.state=4468,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}verificationCaseUsage(){let localContext=new VerificationCaseUsageContext(this.context,this.state);this.enterRule(localContext,916,_SysMLv2Parser.RULE_verificationCaseUsage);try{this.enterOuterAlt(localContext,1),this.state=4470,this.occurrenceUsagePrefix(),this.state=4471,this.match(_SysMLv2Parser.VERIFICATION),this.state=4472,this.constraintUsageDeclaration(),this.state=4473,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementVerificationMember(){let localContext=new RequirementVerificationMemberContext(this.context,this.state);this.enterRule(localContext,918,_SysMLv2Parser.RULE_requirementVerificationMember);try{this.enterOuterAlt(localContext,1),this.state=4475,this.memberPrefix(),this.state=4476,this.match(_SysMLv2Parser.VERIFY),this.state=4477,this.requirementVerificationUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}requirementVerificationUsage(){let localContext=new RequirementVerificationUsageContext(this.context,this.state);this.enterRule(localContext,920,_SysMLv2Parser.RULE_requirementVerificationUsage);let _la;try{switch(this.state=4505,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1);{for(this.state=4479,this.ownedReferenceSubsetting(),this.state=4483,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===42||_la===47||(_la-125&-32)===0&&(1<<_la-125&8388617)!==0||(_la-158&-32)===0&&(1<<_la-158&1208352769)!==0||_la===204;)this.state=4480,this.featureSpecialization(),this.state=4485,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4486,this.requirementBody()}break;case _SysMLv2Parser.REQUIREMENT:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4500,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,487,this.context)){case 1:{for(this.state=4491,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4488,this.usageExtensionKeyword(),this.state=4493,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4494,this.match(_SysMLv2Parser.REQUIREMENT)}break;case 2:{this.state=4496,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4495,this.usageExtensionKeyword(),this.state=4498,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4502,this.constraintUsageDeclaration(),this.state=4503,this.requirementBody()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}useCaseDefinition(){let localContext=new UseCaseDefinitionContext(this.context,this.state);this.enterRule(localContext,922,_SysMLv2Parser.RULE_useCaseDefinition);try{this.enterOuterAlt(localContext,1),this.state=4507,this.occurrenceDefinitionPrefix(),this.state=4508,this.match(_SysMLv2Parser.USE),this.state=4509,this.match(_SysMLv2Parser.CASE),this.state=4510,this.match(_SysMLv2Parser.DEF),this.state=4511,this.definitionDeclaration(),this.state=4512,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}useCaseUsage(){let localContext=new UseCaseUsageContext(this.context,this.state);this.enterRule(localContext,924,_SysMLv2Parser.RULE_useCaseUsage);try{this.enterOuterAlt(localContext,1),this.state=4514,this.occurrenceUsagePrefix(),this.state=4515,this.match(_SysMLv2Parser.USE),this.state=4516,this.match(_SysMLv2Parser.CASE),this.state=4517,this.constraintUsageDeclaration(),this.state=4518,this.caseBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}includeUseCaseUsage(){let localContext=new IncludeUseCaseUsageContext(this.context,this.state);this.enterRule(localContext,926,_SysMLv2Parser.RULE_includeUseCaseUsage);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4520,this.occurrenceUsagePrefix(),this.state=4521,this.match(_SysMLv2Parser.INCLUDE),this.state=4531,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.state=4522,this.ownedReferenceSubsetting(),this.state=4524,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4523,this.featureSpecializationPart());break;case _SysMLv2Parser.USE:this.state=4526,this.match(_SysMLv2Parser.USE),this.state=4527,this.match(_SysMLv2Parser.CASE),this.state=4529,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4528,this.usageDeclaration());break;default:throw new NoViableAltException(this)}this.state=4534,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4533,this.valuePart()),this.state=4536,this.caseBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewDefinition(){let localContext=new ViewDefinitionContext(this.context,this.state);this.enterRule(localContext,928,_SysMLv2Parser.RULE_viewDefinition);try{this.enterOuterAlt(localContext,1),this.state=4538,this.occurrenceDefinitionPrefix(),this.state=4539,this.match(_SysMLv2Parser.VIEW),this.state=4540,this.match(_SysMLv2Parser.DEF),this.state=4541,this.definitionDeclaration(),this.state=4542,this.viewDefinitionBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewDefinitionBody(){let localContext=new ViewDefinitionBodyContext(this.context,this.state);this.enterRule(localContext,930,_SysMLv2Parser.RULE_viewDefinitionBody);let _la;try{switch(this.state=4553,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4544,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4545,this.match(_SysMLv2Parser.LBRACE),this.state=4549,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&490981169)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-129&-32)===0&&(1<<_la-129&833122647)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4546,this.viewDefinitionBodyItem(),this.state=4551,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4552,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewDefinitionBodyItem(){let localContext=new ViewDefinitionBodyItemContext(this.context,this.state);this.enterRule(localContext,932,_SysMLv2Parser.RULE_viewDefinitionBodyItem);try{switch(this.state=4558,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,495,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4555,this.definitionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4556,this.elementFilterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4557,this.viewRenderingMember();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewRenderingMember(){let localContext=new ViewRenderingMemberContext(this.context,this.state);this.enterRule(localContext,934,_SysMLv2Parser.RULE_viewRenderingMember);try{this.enterOuterAlt(localContext,1),this.state=4560,this.memberPrefix(),this.state=4561,this.match(_SysMLv2Parser.RENDER),this.state=4562,this.viewRenderingUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewRenderingUsage(){let localContext=new ViewRenderingUsageContext(this.context,this.state);this.enterRule(localContext,936,_SysMLv2Parser.RULE_viewRenderingUsage);let _la;try{switch(this.state=4585,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.BEHAVIOR:case _SysMLv2Parser.CROSSES:case _SysMLv2Parser.FEATURE:case _SysMLv2Parser.FUNCTION:case _SysMLv2Parser.INTERACTION:case _SysMLv2Parser.LANGUAGE:case _SysMLv2Parser.LOCALE:case _SysMLv2Parser.MEMBER:case _SysMLv2Parser.METACLASS:case _SysMLv2Parser.MULTIPLICITY:case _SysMLv2Parser.PREDICATE:case _SysMLv2Parser.STEP:case _SysMLv2Parser.TYPE:case _SysMLv2Parser.VAR:case _SysMLv2Parser.DOLLAR:case _SysMLv2Parser.IDENTIFIER:case _SysMLv2Parser.STRING:this.enterOuterAlt(localContext,1),this.state=4564,this.ownedReferenceSubsetting(),this.state=4566,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4565,this.featureSpecializationPart()),this.state=4568,this.usageBody();break;case _SysMLv2Parser.RENDERING:case _SysMLv2Parser.HASH:this.enterOuterAlt(localContext,2);{switch(this.state=4582,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,499,this.context)){case 1:{for(this.state=4573,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4570,this.usageExtensionKeyword(),this.state=4575,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4576,this.match(_SysMLv2Parser.RENDERING)}break;case 2:{this.state=4578,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4577,this.usageExtensionKeyword(),this.state=4580,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192)}break}this.state=4584,this.usage()}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewUsage(){let localContext=new ViewUsageContext(this.context,this.state);this.enterRule(localContext,938,_SysMLv2Parser.RULE_viewUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=4587,this.occurrenceUsagePrefix(),this.state=4588,this.match(_SysMLv2Parser.VIEW),this.state=4590,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4589,this.usageDeclaration()),this.state=4593,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4592,this.valuePart()),this.state=4595,this.viewBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewBody(){let localContext=new ViewBodyContext(this.context,this.state);this.enterRule(localContext,940,_SysMLv2Parser.RULE_viewBody);let _la;try{switch(this.state=4606,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.SEMI:this.enterOuterAlt(localContext,1),this.state=4597,this.match(_SysMLv2Parser.SEMI);break;case _SysMLv2Parser.LBRACE:this.enterOuterAlt(localContext,2);{for(this.state=4598,this.match(_SysMLv2Parser.LBRACE),this.state=4602,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);(_la&-32)===0&&(1<<_la&1182289556)!==0||(_la-32&-32)===0&&(1<<_la-32&1564722993)!==0||(_la-65&-32)===0&&(1<<_la-65&1948238905)!==0||(_la-97&-32)===0&&(1<<_la-97&3749127797)!==0||(_la-129&-32)===0&&(1<<_la-129&833122647)!==0||(_la-162&-32)===0&&(1<<_la-162&1153458591)!==0||(_la-204&-32)===0&&(1<<_la-204&574671)!==0;)this.state=4599,this.viewBodyItem(),this.state=4604,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4605,this.match(_SysMLv2Parser.RBRACE)}break;default:throw new NoViableAltException(this)}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewBodyItem(){let localContext=new ViewBodyItemContext(this.context,this.state);this.enterRule(localContext,942,_SysMLv2Parser.RULE_viewBodyItem);try{switch(this.state=4612,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,505,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4608,this.definitionBodyItem();break;case 2:this.enterOuterAlt(localContext,2),this.state=4609,this.elementFilterMember();break;case 3:this.enterOuterAlt(localContext,3),this.state=4610,this.viewRenderingMember();break;case 4:this.enterOuterAlt(localContext,4),this.state=4611,this.expose();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}expose(){let localContext=new ExposeContext(this.context,this.state);this.enterRule(localContext,944,_SysMLv2Parser.RULE_expose);try{this.enterOuterAlt(localContext,1);{switch(this.state=4614,this.match(_SysMLv2Parser.EXPOSE),this.state=4617,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,506,this.context)){case 1:this.state=4615,this.membershipExpose();break;case 2:this.state=4616,this.namespaceExpose();break}this.state=4619,this.relationshipBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}membershipExpose(){let localContext=new MembershipExposeContext(this.context,this.state);this.enterRule(localContext,946,_SysMLv2Parser.RULE_membershipExpose);try{this.enterOuterAlt(localContext,1),this.state=4621,this.membershipImport()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceExpose(){let localContext=new NamespaceExposeContext(this.context,this.state);this.enterRule(localContext,948,_SysMLv2Parser.RULE_namespaceExpose);try{this.enterOuterAlt(localContext,1),this.state=4623,this.namespaceImport()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewpointDefinition(){let localContext=new ViewpointDefinitionContext(this.context,this.state);this.enterRule(localContext,950,_SysMLv2Parser.RULE_viewpointDefinition);try{this.enterOuterAlt(localContext,1),this.state=4625,this.occurrenceDefinitionPrefix(),this.state=4626,this.match(_SysMLv2Parser.VIEWPOINT),this.state=4627,this.match(_SysMLv2Parser.DEF),this.state=4628,this.definitionDeclaration(),this.state=4629,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}viewpointUsage(){let localContext=new ViewpointUsageContext(this.context,this.state);this.enterRule(localContext,952,_SysMLv2Parser.RULE_viewpointUsage);try{this.enterOuterAlt(localContext,1),this.state=4631,this.occurrenceUsagePrefix(),this.state=4632,this.match(_SysMLv2Parser.VIEWPOINT),this.state=4633,this.constraintUsageDeclaration(),this.state=4634,this.requirementBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}renderingDefinition(){let localContext=new RenderingDefinitionContext(this.context,this.state);this.enterRule(localContext,954,_SysMLv2Parser.RULE_renderingDefinition);try{this.enterOuterAlt(localContext,1),this.state=4636,this.occurrenceDefinitionPrefix(),this.state=4637,this.match(_SysMLv2Parser.RENDERING),this.state=4638,this.match(_SysMLv2Parser.DEF),this.state=4639,this.definition()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}renderingUsage(){let localContext=new RenderingUsageContext(this.context,this.state);this.enterRule(localContext,956,_SysMLv2Parser.RULE_renderingUsage);try{this.enterOuterAlt(localContext,1),this.state=4641,this.occurrenceUsagePrefix(),this.state=4642,this.match(_SysMLv2Parser.RENDERING),this.state=4643,this.usage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataDefinition(){let localContext=new MetadataDefinitionContext(this.context,this.state);this.enterRule(localContext,958,_SysMLv2Parser.RULE_metadataDefinition);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4646,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===2&&(this.state=4645,this.match(_SysMLv2Parser.ABSTRACT)),this.state=4651,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4648,this.definitionExtensionKeyword(),this.state=4653,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4654,this.match(_SysMLv2Parser.METADATA),this.state=4655,this.match(_SysMLv2Parser.DEF),this.state=4656,this.definition()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}prefixMetadataUsage(){let localContext=new PrefixMetadataUsageContext(this.context,this.state);this.enterRule(localContext,960,_SysMLv2Parser.RULE_prefixMetadataUsage);try{this.enterOuterAlt(localContext,1),this.state=4658,this.ownedFeatureTyping()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataUsage(){let localContext=new MetadataUsageContext(this.context,this.state);this.enterRule(localContext,962,_SysMLv2Parser.RULE_metadataUsage);let _la;try{this.enterOuterAlt(localContext,1);{for(this.state=4663,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===192;)this.state=4660,this.usageExtensionKeyword(),this.state=4665,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);if(this.state=4666,_la=this.tokenStream.LA(1),_la===102||_la===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=4667,this.metadataUsageDeclaration(),this.state=4677,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===1)for(this.state=4668,this.match(_SysMLv2Parser.ABOUT),this.state=4669,this.annotation(),this.state=4674,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);_la===200;)this.state=4670,this.match(_SysMLv2Parser.COMMA),this.state=4671,this.annotation(),this.state=4676,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);this.state=4679,this.metadataBody()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataUsageDeclaration(){let localContext=new MetadataUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,964,_SysMLv2Parser.RULE_metadataUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1);{switch(this.state=4689,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,514,this.context)){case 1:switch(this.state=4682,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===20||_la===42||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&16777297)!==0||(_la-143&-32)===0&&(1<<_la-143&1064961)!==0||(_la-206&-32)===0&&(1<<_la-206&12289)!==0)&&(this.state=4681,this.identification()),this.state=4687,this.errorHandler.sync(this),this.tokenStream.LA(1)){case _SysMLv2Parser.COLON:this.state=4684,this.match(_SysMLv2Parser.COLON);break;case _SysMLv2Parser.TYPED:this.state=4685,this.match(_SysMLv2Parser.TYPED),this.state=4686,this.match(_SysMLv2Parser.BY);break;default:throw new NoViableAltException(this)}break}this.state=4691,this.ownedFeatureTyping()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyUsageMember(){let localContext=new MetadataBodyUsageMemberContext(this.context,this.state);this.enterRule(localContext,966,_SysMLv2Parser.RULE_metadataBodyUsageMember);try{this.enterOuterAlt(localContext,1),this.state=4693,this.metadataBodyUsage()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}metadataBodyUsage(){let localContext=new MetadataBodyUsageContext(this.context,this.state);this.enterRule(localContext,968,_SysMLv2Parser.RULE_metadataBodyUsage);let _la;try{this.enterOuterAlt(localContext,1),this.state=4696,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===127&&(this.state=4695,this.match(_SysMLv2Parser.REF)),this.state=4699,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===125||_la===176)&&(this.state=4698,_la=this.tokenStream.LA(1),_la===125||_la===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=4701,this.ownedRedefinition(),this.state=4703,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===42||_la===47||(_la-106&-32)===0&&(1<<_la-106&4718721)!==0||(_la-148&-32)===0&&(1<<_la-148&402654209)!==0||(_la-185&-32)===0&&(1<<_la-185&67633161)!==0)&&(this.state=4702,this.featureSpecializationPart()),this.state=4706,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4705,this.valuePart()),this.state=4708,this.metadataBody()}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}extendedDefinition(){let localContext=new ExtendedDefinitionContext(this.context,this.state);this.enterRule(localContext,970,_SysMLv2Parser.RULE_extendedDefinition);let _la;try{this.enterOuterAlt(localContext,1);{this.state=4711,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===2||_la===165)&&(this.state=4710,this.basicDefinitionPrefix()),this.state=4714,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4713,this.definitionExtensionKeyword(),this.state=4716,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192);this.state=4718,this.match(_SysMLv2Parser.DEF),this.state=4719,this.definition()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}extendedUsage(){let localContext=new ExtendedUsageContext(this.context,this.state);this.enterRule(localContext,972,_SysMLv2Parser.RULE_extendedUsage);let _la;try{this.enterOuterAlt(localContext,1);{this.state=4721,this.unextendedUsagePrefix(),this.state=4723,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);do this.state=4722,this.usageExtensionKeyword(),this.state=4725,this.errorHandler.sync(this),_la=this.tokenStream.LA(1);while(_la===192);this.state=4727,this.usage()}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackageImportDeclaration(){let localContext=new FilterPackageImportDeclarationContext(this.context,this.state);this.enterRule(localContext,974,_SysMLv2Parser.RULE_filterPackageImportDeclaration);try{switch(this.state=4731,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,522,this.context)){case 1:this.enterOuterAlt(localContext,1),this.state=4729,this.membershipImport();break;case 2:this.enterOuterAlt(localContext,2),this.state=4730,this.namespaceImportDirect();break}}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}namespaceImportDirect(){let localContext=new NamespaceImportDirectContext(this.context,this.state);this.enterRule(localContext,976,_SysMLv2Parser.RULE_namespaceImportDirect);let _la;try{this.enterOuterAlt(localContext,1),this.state=4733,this.qualifiedName(),this.state=4734,this.match(_SysMLv2Parser.COLON_COLON),this.state=4735,this.match(_SysMLv2Parser.STAR),this.state=4738,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),_la===183&&(this.state=4736,this.match(_SysMLv2Parser.COLON_COLON),this.state=4737,this.match(_SysMLv2Parser.STAR_STAR))}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}calculationUsageDeclaration(){let localContext=new CalculationUsageDeclarationContext(this.context,this.state);this.enterRule(localContext,978,_SysMLv2Parser.RULE_calculationUsageDeclaration);let _la;try{this.enterOuterAlt(localContext,1),this.state=4741,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),((_la-20&-32)===0&&(1<<_la-20&138412033)!==0||(_la-65&-32)===0&&(1<<_la-65&1342702593)!==0||(_la-97&-32)===0&&(1<<_la-97&2432762449)!==0||(_la-143&-32)===0&&(1<<_la-143&1097761)!==0||(_la-175&-32)===0&&(1<<_la-175&2684363779)!==0||(_la-211&-32)===0&&(1<<_la-211&385)!==0)&&(this.state=4740,this.usageDeclaration()),this.state=4744,this.errorHandler.sync(this),_la=this.tokenStream.LA(1),(_la===46||_la===184||_la===207)&&(this.state=4743,this.valuePart())}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyActionUsage_(){let localContext=new EmptyActionUsage_Context(this.context,this.state);this.enterRule(localContext,980,_SysMLv2Parser.RULE_emptyActionUsage_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyFeature_(){let localContext=new EmptyFeature_Context(this.context,this.state);this.enterRule(localContext,982,_SysMLv2Parser.RULE_emptyFeature_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyMultiplicity_(){let localContext=new EmptyMultiplicity_Context(this.context,this.state);this.enterRule(localContext,984,_SysMLv2Parser.RULE_emptyMultiplicity_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}emptyUsage_(){let localContext=new EmptyUsage_Context(this.context,this.state);this.enterRule(localContext,986,_SysMLv2Parser.RULE_emptyUsage_);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}filterPackageImport(){let localContext=new FilterPackageImportContext(this.context,this.state);this.enterRule(localContext,988,_SysMLv2Parser.RULE_filterPackageImport);try{this.enterOuterAlt(localContext,1),this.state=4754,this.match(_SysMLv2Parser.IDENTIFIER)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}nonFeatureChainPrimaryExpression(){let localContext=new NonFeatureChainPrimaryExpressionContext(this.context,this.state);this.enterRule(localContext,990,_SysMLv2Parser.RULE_nonFeatureChainPrimaryExpression);try{this.enterOuterAlt(localContext,1),this.state=4756,this.match(_SysMLv2Parser.IDENTIFIER)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}portConjugation(){let localContext=new PortConjugationContext(this.context,this.state);this.enterRule(localContext,992,_SysMLv2Parser.RULE_portConjugation);try{this.enterOuterAlt(localContext,1)}catch(re){if(re instanceof RecognitionException)this.errorHandler.reportError(this,re),this.errorHandler.recover(this,re);else throw re}finally{this.exitRule()}return localContext}sempred(localContext,ruleIndex,predIndex){return ruleIndex===0?this.ownedExpression_sempred(localContext,predIndex):!0}ownedExpression_sempred(localContext,predIndex){switch(predIndex){case 0:return this.precpred(this.context,27);case 1:return this.precpred(this.context,26);case 2:return this.precpred(this.context,25);case 3:return this.precpred(this.context,24);case 4:return this.precpred(this.context,23);case 5:return this.precpred(this.context,22);case 6:return this.precpred(this.context,21);case 7:return this.precpred(this.context,20);case 8:return this.precpred(this.context,19);case 9:return this.precpred(this.context,18);case 10:return this.precpred(this.context,17);case 11:return this.precpred(this.context,16);case 12:return this.precpred(this.context,15);case 13:return this.precpred(this.context,12);case 14:return this.precpred(this.context,11);case 15:return this.precpred(this.context,10);case 16:return this.precpred(this.context,9);case 17:return this.precpred(this.context,8);case 18:return this.precpred(this.context,7);case 19:return this.precpred(this.context,6);case 20:return this.precpred(this.context,5);case 21:return this.precpred(this.context,4);case 22:return this.precpred(this.context,3)}return!0}static _serializedATN=[4,1,226,4761,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,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,2,495,7,495,2,496,7,496,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1010,8,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1066,8,0,1,0,1,0,1,0,1,0,1,0,3,0,1073,8,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1089,8,0,5,0,1091,8,0,10,0,12,0,1094,9,0,1,1,1,1,1,2,1,2,1,2,5,2,1101,8,2,10,2,12,2,1104,9,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,1113,8,3,1,3,1,3,1,3,1,3,3,3,1119,8,3,1,3,3,3,1122,8,3,1,4,1,4,1,4,3,4,1127,8,4,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,3,10,1149,8,10,1,10,1,10,1,11,1,11,1,11,5,11,1156,8,11,10,11,12,11,1159,9,11,1,12,1,12,1,12,5,12,1164,8,12,10,12,12,12,1167,9,12,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,3,14,1178,8,14,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,19,1,19,1,20,1,20,1,21,1,21,1,22,1,22,1,22,3,22,1197,8,22,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,3,24,1211,8,24,1,25,1,25,1,25,5,25,1216,8,25,10,25,12,25,1219,9,25,1,25,1,25,1,25,5,25,1224,8,25,10,25,12,25,1227,9,25,1,25,3,25,1230,8,25,1,26,1,26,3,26,1234,8,26,1,27,1,27,3,27,1238,8,27,1,28,5,28,1241,8,28,10,28,12,28,1244,9,28,1,28,1,28,3,28,1248,8,28,1,28,3,28,1251,8,28,1,28,1,28,1,28,5,28,1256,8,28,10,28,12,28,1259,9,28,1,28,1,28,1,28,1,28,5,28,1265,8,28,10,28,12,28,1268,9,28,1,28,1,28,1,28,5,28,1273,8,28,10,28,12,28,1276,9,28,1,28,1,28,1,28,1,28,3,28,1282,8,28,1,29,1,29,1,30,1,30,1,31,1,31,1,31,1,31,3,31,1292,8,31,1,32,1,32,3,32,1296,8,32,1,32,1,32,1,32,1,32,5,32,1302,8,32,10,32,12,32,1305,9,32,3,32,1307,8,32,3,32,1309,8,32,1,32,1,32,3,32,1313,8,32,1,32,1,32,1,33,1,33,3,33,1319,8,33,1,33,1,33,3,33,1323,8,33,1,33,1,33,1,34,1,34,3,34,1329,8,34,3,34,1331,8,34,1,34,1,34,1,34,1,34,1,35,5,35,1338,8,35,10,35,12,35,1341,9,35,1,35,1,35,1,36,5,36,1346,8,36,10,36,12,36,1349,9,36,1,36,1,36,1,36,1,37,1,37,3,37,1356,8,37,1,38,1,38,1,38,5,38,1361,8,38,10,38,12,38,1364,9,38,1,38,3,38,1367,8,38,1,39,1,39,1,39,3,39,1372,8,39,1,40,3,40,1375,8,40,1,41,1,41,1,42,1,42,3,42,1381,8,42,1,43,1,43,1,43,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,3,45,1395,8,45,1,45,3,45,1398,8,45,1,45,1,45,1,45,1,45,1,46,1,46,3,46,1406,8,46,1,46,1,46,1,46,5,46,1411,8,46,10,46,12,46,1414,9,46,1,46,1,46,1,47,3,47,1419,8,47,1,47,1,47,3,47,1423,8,47,1,47,1,47,1,47,1,48,1,48,3,48,1430,8,48,1,49,1,49,1,49,3,49,1435,8,49,1,50,1,50,1,50,1,50,1,50,3,50,1442,8,50,1,50,3,50,1445,8,50,1,51,1,51,4,51,1449,8,51,11,51,12,51,1450,1,51,1,51,4,51,1455,8,51,11,51,12,51,1456,3,51,1459,8,51,1,52,1,52,1,52,1,52,1,53,1,53,3,53,1467,8,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,3,54,1495,8,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,3,55,1507,8,55,1,56,1,56,1,56,1,56,1,56,1,57,3,57,1515,8,57,1,57,5,57,1518,8,57,10,57,12,57,1521,9,57,1,58,3,58,1524,8,58,1,58,3,58,1527,8,58,1,58,3,58,1530,8,58,1,58,1,58,4,58,1534,8,58,11,58,12,58,1535,1,58,5,58,1539,8,58,10,58,12,58,1542,9,58,1,59,1,59,1,59,1,59,5,59,1548,8,59,10,59,12,59,1551,9,59,1,60,1,60,1,60,1,61,1,61,1,61,1,61,3,61,1560,8,61,1,62,1,62,1,62,1,62,1,62,5,62,1567,8,62,10,62,12,62,1570,9,62,1,63,1,63,1,63,1,63,5,63,1576,8,63,10,63,12,63,1579,9,63,1,64,1,64,1,64,1,64,5,64,1585,8,64,10,64,12,64,1588,9,64,1,65,1,65,1,65,1,65,5,65,1594,8,65,10,65,12,65,1597,9,65,1,66,1,66,1,66,5,66,1602,8,66,10,66,12,66,1605,9,66,1,66,3,66,1608,8,66,1,67,1,67,1,67,1,67,3,67,1614,8,67,1,68,1,68,3,68,1618,8,68,3,68,1620,8,68,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,70,1,70,1,70,5,70,1633,8,70,10,70,12,70,1636,9,70,1,71,1,71,1,71,5,71,1641,8,71,10,71,12,71,1644,9,71,1,72,1,72,3,72,1648,8,72,3,72,1650,8,72,1,72,1,72,1,72,1,72,5,72,1656,8,72,10,72,12,72,1659,9,72,1,72,1,72,1,72,1,72,5,72,1665,8,72,10,72,12,72,1668,9,72,1,72,1,72,1,73,1,73,1,73,5,73,1675,8,73,10,73,12,73,1678,9,73,1,74,1,74,3,74,1682,8,74,3,74,1684,8,74,1,74,1,74,1,74,1,74,5,74,1690,8,74,10,74,12,74,1693,9,74,1,74,1,74,1,74,1,74,5,74,1699,8,74,10,74,12,74,1702,9,74,1,74,1,74,1,75,1,75,1,75,5,75,1709,8,75,10,75,12,75,1712,9,75,1,76,1,76,1,76,5,76,1717,8,76,10,76,12,76,1720,9,76,1,77,1,77,1,77,5,77,1725,8,77,10,77,12,77,1728,9,77,1,78,1,78,1,78,5,78,1733,8,78,10,78,12,78,1736,9,78,1,79,1,79,3,79,1740,8,79,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,83,3,83,1755,8,83,1,83,3,83,1758,8,83,1,83,3,83,1761,8,83,1,83,1,83,3,83,1765,8,83,1,83,5,83,1768,8,83,10,83,12,83,1771,9,83,1,84,1,84,1,84,1,84,5,84,1777,8,84,10,84,12,84,1780,9,84,1,85,1,85,3,85,1784,8,85,3,85,1786,8,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,87,1,87,1,87,3,87,1799,8,87,1,87,3,87,1802,8,87,1,87,1,87,3,87,1806,8,87,1,87,3,87,1809,8,87,1,87,1,87,3,87,1813,8,87,1,87,3,87,1816,8,87,1,87,1,87,1,88,3,88,1821,8,88,1,88,1,88,1,89,3,89,1826,8,89,1,89,3,89,1829,8,89,1,89,3,89,1832,8,89,1,89,3,89,1835,8,89,1,89,3,89,1838,8,89,1,90,1,90,1,90,1,90,3,90,1844,8,90,1,90,5,90,1847,8,90,10,90,12,90,1850,9,90,1,91,1,91,1,92,1,92,1,92,1,92,1,92,3,92,1859,8,92,3,92,1861,8,92,1,93,1,93,1,94,3,94,1866,8,94,1,94,1,94,1,94,3,94,1871,8,94,1,94,1,94,3,94,1875,8,94,1,94,5,94,1878,8,94,10,94,12,94,1881,9,94,1,95,1,95,1,95,1,95,3,95,1887,8,95,1,95,3,95,1890,8,95,1,96,1,96,1,96,1,96,3,96,1896,8,96,1,97,1,97,1,97,1,97,5,97,1902,8,97,10,97,12,97,1905,9,97,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,5,99,1916,8,99,10,99,12,99,1919,9,99,1,100,4,100,1922,8,100,11,100,12,100,1923,1,100,3,100,1927,8,100,1,100,5,100,1930,8,100,10,100,12,100,1933,9,100,1,100,1,100,5,100,1937,8,100,10,100,12,100,1940,9,100,3,100,1942,8,100,1,101,1,101,1,101,3,101,1947,8,101,1,101,1,101,3,101,1951,8,101,3,101,1953,8,101,1,101,1,101,3,101,1957,8,101,1,101,1,101,3,101,1961,8,101,3,101,1963,8,101,3,101,1965,8,101,1,102,1,102,1,102,1,102,1,102,3,102,1972,8,102,1,103,1,103,1,103,5,103,1977,8,103,10,103,12,103,1980,9,103,1,104,1,104,1,104,1,104,1,104,3,104,1987,8,104,1,104,1,104,1,105,1,105,1,105,5,105,1994,8,105,10,105,12,105,1997,9,105,1,106,1,106,1,106,1,107,1,107,1,107,1,108,1,108,1,108,1,109,1,109,1,109,5,109,2011,8,109,10,109,12,109,2014,9,109,1,110,1,110,1,110,1,111,1,111,3,111,2021,8,111,3,111,2023,8,111,1,111,1,111,1,111,1,111,1,111,3,111,2030,8,111,1,111,1,111,1,111,1,111,1,111,3,111,2037,8,111,1,112,1,112,1,112,5,112,2042,8,112,10,112,12,112,2045,9,112,1,113,1,113,3,113,2049,8,113,3,113,2051,8,113,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,5,114,2062,8,114,10,114,12,114,2065,9,114,1,115,1,115,1,115,5,115,2070,8,115,10,115,12,115,2073,9,115,1,116,1,116,1,116,5,116,2078,8,116,10,116,12,116,2081,9,116,1,117,1,117,3,117,2085,8,117,3,117,2087,8,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,5,118,2098,8,118,10,118,12,118,2101,9,118,1,119,1,119,1,119,1,119,4,119,2107,8,119,11,119,12,119,2108,3,119,2111,8,119,1,120,1,120,1,120,4,120,2116,8,120,11,120,12,120,2117,1,121,1,121,1,122,1,122,3,122,2124,8,122,3,122,2126,8,122,1,122,1,122,1,122,1,122,5,122,2132,8,122,10,122,12,122,2135,9,122,1,122,1,122,1,122,1,122,5,122,2141,8,122,10,122,12,122,2144,9,122,1,122,1,122,1,123,1,123,1,123,5,123,2151,8,123,10,123,12,123,2154,9,123,1,124,1,124,3,124,2158,8,124,1,124,3,124,2161,8,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,3,131,2199,8,131,1,131,3,131,2202,8,131,1,131,3,131,2205,8,131,1,131,1,131,1,132,1,132,3,132,2211,8,132,1,133,3,133,2214,8,133,1,133,1,133,1,133,3,133,2219,8,133,3,133,2221,8,133,1,133,1,133,1,133,1,133,1,134,3,134,2228,8,134,1,134,1,134,1,134,1,134,1,134,1,134,5,134,2236,8,134,10,134,12,134,2239,9,134,1,134,1,134,1,135,1,135,1,136,3,136,2246,8,136,1,136,1,136,1,136,3,136,2251,8,136,1,136,1,136,1,137,1,137,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,3,140,2270,8,140,1,140,3,140,2273,8,140,1,140,3,140,2276,8,140,1,140,1,140,1,140,1,140,3,140,2282,8,140,3,140,2284,8,140,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,3,142,2297,8,142,1,142,3,142,2300,8,142,1,142,3,142,2303,8,142,1,142,1,142,1,142,1,142,3,142,2309,8,142,3,142,2311,8,142,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,3,144,2322,8,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,3,146,2336,8,146,1,147,1,147,1,147,5,147,2341,8,147,10,147,12,147,2344,9,147,1,147,3,147,2347,8,147,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,150,1,150,1,150,1,150,3,150,2360,8,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,3,152,2373,8,152,1,152,1,152,1,153,1,153,1,153,3,153,2380,8,153,1,153,1,153,3,153,2384,8,153,1,153,1,153,1,154,1,154,1,155,1,155,1,156,1,156,1,157,1,157,1,158,1,158,1,159,1,159,1,160,1,160,1,160,1,160,1,161,1,161,1,162,1,162,1,163,1,163,1,164,1,164,1,165,1,165,1,166,1,166,1,167,1,167,1,168,1,168,1,169,1,169,1,170,1,170,1,171,1,171,1,171,5,171,2427,8,171,10,171,12,171,2430,9,171,1,172,1,172,3,172,2434,8,172,1,173,1,173,1,174,1,174,1,175,1,175,1,176,1,176,1,177,1,177,1,178,1,178,1,178,5,178,2449,8,178,10,178,12,178,2452,9,178,1,179,1,179,1,180,1,180,1,181,1,181,1,182,1,182,1,183,1,183,1,183,1,183,1,184,1,184,1,185,3,185,2469,8,185,1,185,1,185,1,185,3,185,2474,8,185,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,189,1,189,3,189,2494,8,189,1,189,1,189,3,189,2498,8,189,1,189,1,189,1,189,1,189,1,189,3,189,2505,8,189,1,189,3,189,2508,8,189,1,189,1,189,1,189,1,189,1,189,3,189,2515,8,189,1,189,3,189,2518,8,189,1,189,1,189,3,189,2522,8,189,1,189,1,189,1,189,1,189,1,189,3,189,2529,8,189,3,189,2531,8,189,1,190,1,190,1,191,3,191,2536,8,191,1,191,1,191,3,191,2540,8,191,1,191,1,191,3,191,2544,8,191,1,191,1,191,3,191,2548,8,191,1,191,1,191,3,191,2552,8,191,3,191,2554,8,191,1,192,4,192,2557,8,192,11,192,12,192,2558,1,192,3,192,2562,8,192,1,192,5,192,2565,8,192,10,192,12,192,2568,9,192,1,192,1,192,4,192,2572,8,192,11,192,12,192,2573,3,192,2576,8,192,1,193,1,193,1,194,1,194,1,194,5,194,2583,8,194,10,194,12,194,2586,9,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,199,1,199,1,199,1,199,3,199,2600,8,199,3,199,2602,8,199,1,199,1,199,1,200,1,200,3,200,2608,8,200,1,201,1,201,3,201,2612,8,201,1,201,1,201,1,201,1,202,1,202,3,202,2619,8,202,1,202,1,202,1,202,1,203,1,203,1,204,1,204,1,205,1,205,1,205,1,205,3,205,2632,8,205,1,205,1,205,1,205,1,206,1,206,3,206,2639,8,206,1,207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,3,208,2650,8,208,1,209,1,209,1,209,1,209,3,209,2656,8,209,1,210,1,210,1,211,5,211,2661,8,211,10,211,12,211,2664,9,211,1,211,1,211,1,211,1,211,1,211,1,211,5,211,2672,8,211,10,211,12,211,2675,9,211,3,211,2677,8,211,1,211,1,211,1,212,3,212,2682,8,212,1,212,1,212,1,212,3,212,2687,8,212,3,212,2689,8,212,1,212,1,212,1,213,1,213,1,213,5,213,2696,8,213,10,213,12,213,2699,9,213,1,213,1,213,1,213,1,213,1,213,1,213,5,213,2707,8,213,10,213,12,213,2710,9,213,1,213,3,213,2713,8,213,1,214,1,214,1,214,1,214,3,214,2719,8,214,1,215,1,215,1,216,3,216,2724,8,216,1,216,3,216,2727,8,216,1,216,1,216,3,216,2731,8,216,1,216,3,216,2734,8,216,1,216,1,216,1,217,5,217,2739,8,217,10,217,12,217,2742,9,217,1,217,1,217,1,217,1,218,3,218,2748,8,218,1,218,1,218,5,218,2752,8,218,10,218,12,218,2755,9,218,1,218,1,218,1,218,1,219,1,219,3,219,2762,8,219,1,220,1,220,1,220,5,220,2767,8,220,10,220,12,220,2770,9,220,1,220,3,220,2773,8,220,1,221,1,221,1,221,1,221,1,221,1,222,3,222,2781,8,222,1,222,3,222,2784,8,222,1,222,1,222,1,222,5,222,2789,8,222,10,222,12,222,2792,9,222,1,222,1,222,1,222,1,222,5,222,2798,8,222,10,222,12,222,2801,9,222,1,223,1,223,1,224,1,224,1,224,1,224,3,224,2809,8,224,1,225,1,225,1,225,3,225,2814,8,225,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,3,226,2846,8,226,1,227,1,227,3,227,2850,8,227,1,228,1,228,1,229,1,229,1,230,3,230,2857,8,230,1,230,5,230,2860,8,230,10,230,12,230,2863,9,230,1,231,1,231,1,231,1,232,3,232,2869,8,232,1,232,3,232,2872,8,232,1,233,1,233,1,233,5,233,2877,8,233,10,233,12,233,2880,9,233,1,233,3,233,2883,8,233,1,234,1,234,1,234,1,234,1,234,3,234,2890,8,234,1,234,1,234,1,234,1,234,3,234,2896,8,234,1,234,1,234,1,234,3,234,2901,8,234,1,235,1,235,1,235,1,235,1,235,3,235,2908,8,235,1,235,3,235,2911,8,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,3,235,2921,8,235,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,239,1,239,1,239,1,240,1,240,1,240,1,241,1,241,1,241,1,242,3,242,2943,8,242,1,242,3,242,2946,8,242,1,242,3,242,2949,8,242,1,242,3,242,2952,8,242,1,243,1,243,3,243,2956,8,243,1,244,1,244,1,244,1,245,1,245,1,246,1,246,3,246,2965,8,246,1,247,1,247,5,247,2969,8,247,10,247,12,247,2972,9,247,1,248,3,248,2975,8,248,1,248,1,248,1,249,1,249,3,249,2981,8,249,1,249,3,249,2984,8,249,1,250,3,250,2987,8,250,1,250,1,250,1,251,1,251,1,252,1,252,1,252,1,253,1,253,3,253,2998,8,253,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,255,1,255,5,255,3009,8,255,10,255,12,255,3012,9,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,3,256,3024,8,256,1,257,1,257,3,257,3028,8,257,1,257,3,257,3031,8,257,1,257,3,257,3034,8,257,1,257,1,257,1,258,1,258,3,258,3040,8,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,3,259,3057,8,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,260,1,260,1,260,3,260,3075,8,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,261,1,261,1,261,1,261,1,261,3,261,3098,8,261,1,262,1,262,1,262,1,262,5,262,3104,8,262,10,262,12,262,3107,9,262,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,265,5,265,3119,8,265,10,265,12,265,3122,9,265,1,265,1,265,1,265,1,265,1,265,1,266,1,266,1,266,1,266,5,266,3133,8,266,10,266,12,266,3136,9,266,1,266,3,266,3139,8,266,1,267,5,267,3142,8,267,10,267,12,267,3145,9,267,1,267,1,267,1,267,1,268,3,268,3151,8,268,1,268,1,268,1,269,1,269,1,269,1,269,1,270,3,270,3160,8,270,1,270,1,270,3,270,3164,8,270,1,270,5,270,3167,8,270,10,270,12,270,3170,9,270,1,271,1,271,1,271,1,271,1,271,1,272,3,272,3178,8,272,1,272,1,272,5,272,3182,8,272,10,272,12,272,3185,9,272,1,272,1,272,1,272,1,272,1,273,1,273,1,274,1,274,3,274,3195,8,274,1,274,3,274,3198,8,274,1,274,5,274,3201,8,274,10,274,12,274,3204,9,274,1,275,1,275,1,275,1,275,1,276,1,276,1,276,5,276,3213,8,276,10,276,12,276,3216,9,276,1,276,1,276,1,277,1,277,3,277,3222,8,277,1,277,1,277,5,277,3226,8,277,10,277,12,277,3229,9,277,1,277,1,277,1,278,1,278,1,279,1,279,1,279,1,279,3,279,3239,8,279,1,279,1,279,3,279,3243,8,279,3,279,3245,8,279,1,279,1,279,1,280,1,280,1,280,1,281,1,281,1,282,1,282,1,283,3,283,3257,8,283,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,287,1,287,1,288,1,288,1,288,1,288,1,288,1,288,1,289,1,289,1,290,1,290,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,294,1,294,1,294,3,294,3302,8,294,1,294,3,294,3305,8,294,1,294,1,294,3,294,3309,8,294,1,294,1,294,3,294,3313,8,294,1,294,1,294,1,295,1,295,3,295,3319,8,295,1,296,1,296,1,296,1,296,1,297,1,297,1,297,1,297,1,297,1,297,5,297,3331,8,297,10,297,12,297,3334,9,297,1,297,1,297,1,298,1,298,1,298,3,298,3341,8,298,3,298,3343,8,298,1,298,1,298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,3,299,3354,8,299,3,299,3356,8,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,301,1,301,1,301,5,301,3373,8,301,10,301,12,301,3376,9,301,1,301,3,301,3379,8,301,1,302,1,302,1,302,1,302,3,302,3385,8,302,1,302,1,302,1,302,3,302,3390,8,302,1,303,1,303,1,303,1,304,1,304,1,304,1,304,1,304,3,304,3400,8,304,1,305,1,305,1,305,1,306,1,306,1,306,1,306,3,306,3409,8,306,1,307,1,307,1,307,1,308,1,308,1,308,1,308,1,308,1,309,3,309,3420,8,309,1,309,3,309,3423,8,309,1,309,1,309,3,309,3427,8,309,1,309,3,309,3430,8,309,1,310,1,310,3,310,3434,8,310,1,311,1,311,1,311,1,311,1,312,1,312,1,312,1,312,1,312,1,312,5,312,3446,8,312,10,312,12,312,3449,9,312,1,312,1,312,1,313,1,313,1,314,3,314,3456,8,314,1,314,1,314,1,314,3,314,3461,8,314,1,314,1,314,1,315,1,315,1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,317,1,317,3,317,3476,8,317,1,317,1,317,3,317,3480,8,317,1,317,1,317,3,317,3484,8,317,1,318,1,318,1,318,1,318,1,318,1,319,1,319,1,319,1,319,1,319,1,320,3,320,3497,8,320,1,320,3,320,3500,8,320,1,320,1,320,3,320,3504,8,320,1,320,1,320,1,320,1,320,1,320,3,320,3511,8,320,1,320,1,320,1,320,1,320,3,320,3517,8,320,1,321,1,321,1,322,1,322,1,323,1,323,1,323,1,323,1,323,1,324,1,324,1,324,1,324,1,324,1,324,1,325,1,325,1,326,1,326,1,327,1,327,3,327,3540,8,327,1,328,1,328,1,328,4,328,3545,8,328,11,328,12,328,3546,1,328,1,328,1,328,1,329,1,329,1,329,1,329,1,329,1,329,1,330,1,330,1,330,5,330,3561,8,330,10,330,12,330,3564,9,330,1,330,3,330,3567,8,330,1,331,1,331,1,331,5,331,3572,8,331,10,331,12,331,3575,9,331,1,331,3,331,3578,8,331,1,331,1,331,5,331,3582,8,331,10,331,12,331,3585,9,331,1,331,3,331,3588,8,331,1,332,1,332,1,332,1,332,1,332,1,332,3,332,3596,8,332,1,332,3,332,3599,8,332,1,333,1,333,3,333,3603,8,333,1,334,1,334,1,334,1,334,1,334,1,335,1,335,1,335,1,336,1,336,1,336,1,337,1,337,1,337,1,338,1,338,1,338,1,338,1,338,1,339,3,339,3625,8,339,1,339,3,339,3628,8,339,1,340,1,340,1,340,1,340,1,340,1,341,1,341,3,341,3637,8,341,1,341,1,341,3,341,3641,8,341,3,341,3643,8,341,1,341,3,341,3646,8,341,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,3,342,3656,8,342,1,343,1,343,3,343,3660,8,343,1,344,1,344,3,344,3664,8,344,1,345,1,345,1,345,1,345,3,345,3670,8,345,1,346,1,346,3,346,3674,8,346,1,346,3,346,3677,8,346,1,346,5,346,3680,8,346,10,346,12,346,3683,9,346,1,347,1,347,1,347,3,347,3688,8,347,1,347,1,347,1,348,1,348,1,348,3,348,3695,8,348,1,348,1,348,1,349,1,349,1,349,3,349,3702,8,349,1,349,1,349,1,350,1,350,1,350,3,350,3709,8,350,1,350,1,350,1,351,1,351,1,351,1,351,1,352,3,352,3718,8,352,1,352,1,352,1,352,1,353,1,353,1,353,3,353,3726,8,353,1,354,1,354,1,355,1,355,3,355,3732,8,355,1,355,3,355,3735,8,355,1,355,3,355,3738,8,355,1,356,1,356,1,357,1,357,1,358,1,358,1,358,1,358,3,358,3748,8,358,1,359,1,359,1,359,3,359,3753,8,359,1,359,1,359,1,359,3,359,3758,8,359,1,359,1,359,3,359,3762,8,359,3,359,3764,8,359,1,359,1,359,1,360,3,360,3769,8,360,1,360,1,360,1,360,3,360,3774,8,360,1,361,1,361,1,361,1,361,3,361,3780,8,361,1,361,1,361,1,361,1,361,3,361,3786,8,361,1,362,1,362,1,363,1,363,1,364,1,364,1,365,1,365,1,366,1,366,1,366,1,366,1,367,3,367,3801,8,367,1,367,1,367,1,367,1,367,1,367,1,367,1,368,1,368,1,369,1,369,1,369,3,369,3814,8,369,1,370,1,370,1,371,1,371,3,371,3820,8,371,1,371,1,371,3,371,3824,8,371,1,371,1,371,1,372,1,372,1,372,1,372,1,372,1,372,1,372,3,372,3835,8,372,3,372,3837,8,372,1,373,1,373,1,374,1,374,1,375,1,375,3,375,3845,8,375,3,375,3847,8,375,1,375,1,375,5,375,3851,8,375,10,375,12,375,3854,9,375,1,375,1,375,1,376,1,376,1,377,1,377,1,377,1,377,1,377,3,377,3865,8,377,1,377,1,377,1,377,1,377,1,377,3,377,3872,8,377,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,379,3,379,3882,8,379,1,380,3,380,3885,8,380,1,381,1,381,1,381,3,381,3890,8,381,1,381,1,381,1,382,1,382,1,382,1,382,1,383,1,383,1,383,1,383,1,384,1,384,1,384,1,385,1,385,3,385,3907,8,385,3,385,3909,8,385,1,385,1,385,1,385,1,385,1,385,1,385,1,385,1,386,1,386,1,386,1,386,1,386,1,386,1,387,1,387,3,387,3926,8,387,1,387,1,387,5,387,3930,8,387,10,387,12,387,3933,9,387,1,387,3,387,3936,8,387,1,388,1,388,3,388,3940,8,388,1,388,1,388,5,388,3944,8,388,10,388,12,388,3947,9,388,1,388,1,388,1,388,5,388,3952,8,388,10,388,12,388,3955,9,388,1,388,1,388,3,388,3959,8,388,1,389,1,389,1,389,1,389,1,390,1,390,1,390,1,390,1,391,1,391,1,391,1,391,1,392,1,392,1,392,1,392,3,392,3977,8,392,1,392,1,392,1,393,1,393,1,393,1,393,1,393,1,393,1,393,3,393,3988,8,393,1,394,1,394,1,394,1,395,1,395,1,395,1,396,1,396,1,396,1,397,1,397,1,397,1,398,1,398,1,398,1,399,1,399,1,399,1,400,1,400,1,400,1,400,1,400,1,401,1,401,3,401,4015,8,401,1,401,1,401,5,401,4019,8,401,10,401,12,401,4022,9,401,1,401,3,401,4025,8,401,1,402,1,402,1,402,1,402,3,402,4031,8,402,1,402,1,402,3,402,4035,8,402,3,402,4037,8,402,1,402,3,402,4040,8,402,1,402,1,402,1,403,1,403,3,403,4046,8,403,1,403,3,403,4049,8,403,1,403,1,403,1,403,1,403,1,403,3,403,4056,8,403,1,403,3,403,4059,8,403,1,403,3,403,4062,8,403,1,403,1,403,1,403,1,403,1,404,1,404,1,404,1,404,1,404,3,404,4073,8,404,1,404,3,404,4076,8,404,1,404,3,404,4079,8,404,1,404,1,404,1,404,3,404,4084,8,404,1,404,3,404,4087,8,404,1,404,1,404,3,404,4091,8,404,3,404,4093,8,404,1,404,1,404,1,404,1,404,1,405,1,405,1,405,1,406,1,406,1,407,1,407,1,407,1,408,1,408,1,408,1,409,1,409,1,409,1,409,1,409,3,409,4115,8,409,1,410,1,410,1,410,5,410,4120,8,410,10,410,12,410,4123,9,410,1,410,3,410,4126,8,410,1,411,1,411,1,411,5,411,4131,8,411,10,411,12,411,4134,9,411,1,411,3,411,4137,8,411,1,412,1,412,1,412,5,412,4142,8,412,10,412,12,412,4145,9,412,1,412,3,412,4148,8,412,1,413,1,413,1,413,5,413,4153,8,413,10,413,12,413,4156,9,413,1,413,3,413,4159,8,413,1,414,1,414,1,415,1,415,1,415,1,416,1,416,1,417,1,417,1,417,1,417,1,417,1,417,1,418,1,418,1,418,1,418,1,418,1,419,1,419,1,419,1,419,1,419,3,419,4184,8,419,1,420,5,420,4187,8,420,10,420,12,420,4190,9,420,1,420,3,420,4193,8,420,1,421,1,421,3,421,4197,8,421,1,422,1,422,1,422,1,422,1,423,1,423,1,423,1,423,1,423,1,423,1,424,1,424,1,424,1,424,1,424,1,425,1,425,1,425,3,425,4217,8,425,1,425,1,425,3,425,4221,8,425,1,425,1,425,3,425,4225,8,425,1,425,1,425,1,426,3,426,4230,8,426,1,426,3,426,4233,8,426,1,427,1,427,1,427,1,427,1,427,1,427,1,428,1,428,1,428,5,428,4244,8,428,10,428,12,428,4247,9,428,1,428,3,428,4250,8,428,1,429,1,429,1,429,1,429,1,429,1,429,1,429,3,429,4259,8,429,1,430,1,430,1,430,1,431,1,431,5,431,4266,8,431,10,431,12,431,4269,9,431,1,431,1,431,1,432,1,432,1,432,1,432,1,433,1,433,1,434,1,434,3,434,4281,8,434,1,434,1,434,1,434,5,434,4286,8,434,10,434,12,434,4289,9,434,1,434,1,434,4,434,4293,8,434,11,434,12,434,4294,3,434,4297,8,434,1,434,1,434,1,434,3,434,4302,8,434,1,435,1,435,1,435,1,435,1,436,1,436,3,436,4310,8,436,1,436,1,436,1,436,5,436,4315,8,436,10,436,12,436,4318,9,436,1,436,1,436,4,436,4322,8,436,11,436,12,436,4323,3,436,4326,8,436,1,436,1,436,1,436,3,436,4331,8,436,1,437,1,437,1,437,1,438,1,438,5,438,4338,8,438,10,438,12,438,4341,9,438,1,438,1,438,1,439,1,439,1,439,1,440,1,440,5,440,4350,8,440,10,440,12,440,4353,9,440,1,440,1,440,1,441,1,441,1,441,1,441,1,441,1,442,1,442,1,442,3,442,4365,8,442,1,442,3,442,4368,8,442,1,442,1,442,1,442,3,442,4373,8,442,1,442,1,442,3,442,4377,8,442,3,442,4379,8,442,1,442,3,442,4382,8,442,1,442,1,442,3,442,4386,8,442,1,442,1,442,1,443,1,443,1,444,1,444,1,445,1,445,1,446,1,446,1,447,1,447,1,447,1,447,1,447,1,447,1,448,1,448,1,448,1,448,1,448,1,449,1,449,1,449,1,449,1,449,1,449,1,450,1,450,1,450,1,450,1,450,1,451,1,451,1,451,5,451,4423,8,451,10,451,12,451,4426,9,451,1,451,3,451,4429,8,451,1,451,3,451,4432,8,451,1,452,1,452,1,452,1,452,1,452,3,452,4439,8,452,1,453,1,453,1,453,1,453,1,454,5,454,4446,8,454,10,454,12,454,4449,9,454,1,454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,455,1,456,1,456,1,456,1,456,1,456,1,457,1,457,1,457,1,457,1,457,1,457,1,458,1,458,1,458,1,458,1,458,1,459,1,459,1,459,1,459,1,460,1,460,5,460,4482,8,460,10,460,12,460,4485,9,460,1,460,1,460,1,460,5,460,4490,8,460,10,460,12,460,4493,9,460,1,460,1,460,4,460,4497,8,460,11,460,12,460,4498,3,460,4501,8,460,1,460,1,460,1,460,3,460,4506,8,460,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,462,1,462,1,462,1,462,1,462,1,462,1,463,1,463,1,463,1,463,3,463,4525,8,463,1,463,1,463,1,463,3,463,4530,8,463,3,463,4532,8,463,1,463,3,463,4535,8,463,1,463,1,463,1,464,1,464,1,464,1,464,1,464,1,464,1,465,1,465,1,465,5,465,4548,8,465,10,465,12,465,4551,9,465,1,465,3,465,4554,8,465,1,466,1,466,1,466,3,466,4559,8,466,1,467,1,467,1,467,1,467,1,468,1,468,3,468,4567,8,468,1,468,1,468,1,468,5,468,4572,8,468,10,468,12,468,4575,9,468,1,468,1,468,4,468,4579,8,468,11,468,12,468,4580,3,468,4583,8,468,1,468,3,468,4586,8,468,1,469,1,469,1,469,3,469,4591,8,469,1,469,3,469,4594,8,469,1,469,1,469,1,470,1,470,1,470,5,470,4601,8,470,10,470,12,470,4604,9,470,1,470,3,470,4607,8,470,1,471,1,471,1,471,1,471,3,471,4613,8,471,1,472,1,472,1,472,3,472,4618,8,472,1,472,1,472,1,473,1,473,1,474,1,474,1,475,1,475,1,475,1,475,1,475,1,475,1,476,1,476,1,476,1,476,1,476,1,477,1,477,1,477,1,477,1,477,1,478,1,478,1,478,1,478,1,479,3,479,4647,8,479,1,479,5,479,4650,8,479,10,479,12,479,4653,9,479,1,479,1,479,1,479,1,479,1,480,1,480,1,481,5,481,4662,8,481,10,481,12,481,4665,9,481,1,481,1,481,1,481,1,481,1,481,1,481,5,481,4673,8,481,10,481,12,481,4676,9,481,3,481,4678,8,481,1,481,1,481,1,482,3,482,4683,8,482,1,482,1,482,1,482,3,482,4688,8,482,3,482,4690,8,482,1,482,1,482,1,483,1,483,1,484,3,484,4697,8,484,1,484,3,484,4700,8,484,1,484,1,484,3,484,4704,8,484,1,484,3,484,4707,8,484,1,484,1,484,1,485,3,485,4712,8,485,1,485,4,485,4715,8,485,11,485,12,485,4716,1,485,1,485,1,485,1,486,1,486,4,486,4724,8,486,11,486,12,486,4725,1,486,1,486,1,487,1,487,3,487,4732,8,487,1,488,1,488,1,488,1,488,1,488,3,488,4739,8,488,1,489,3,489,4742,8,489,1,489,3,489,4745,8,489,1,490,1,490,1,491,1,491,1,492,1,492,1,493,1,493,1,494,1,494,1,495,1,495,1,496,1,496,1,496,0,1,0,497,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,0,27,4,0,107,107,199,199,201,201,217,217,2,0,191,191,210,210,3,0,174,174,177,178,187,187,4,0,186,186,189,189,206,206,208,208,2,0,199,199,201,201,3,0,194,194,198,198,203,203,2,0,179,179,213,213,3,0,76,76,90,90,210,210,2,0,64,64,156,156,14,0,20,20,42,42,65,65,75,75,84,84,93,93,95,95,97,97,101,101,103,103,121,121,143,143,157,157,163,163,1,0,122,124,2,0,139,139,185,185,2,0,34,34,217,217,2,0,31,31,120,120,2,0,39,39,163,163,3,0,80,80,83,83,114,114,2,0,148,148,185,185,2,0,128,128,175,175,2,0,42,42,188,188,2,0,125,125,176,176,1,0,221,222,2,0,184,184,207,207,2,0,102,102,210,210,2,0,2,2,165,165,2,0,137,137,153,153,2,0,6,6,18,18,2,0,17,17,132,132,5021,0,1009,1,0,0,0,2,1095,1,0,0,0,4,1097,1,0,0,0,6,1121,1,0,0,0,8,1126,1,0,0,0,10,1128,1,0,0,0,12,1130,1,0,0,0,14,1134,1,0,0,0,16,1137,1,0,0,0,18,1141,1,0,0,0,20,1145,1,0,0,0,22,1152,1,0,0,0,24,1160,1,0,0,0,26,1168,1,0,0,0,28,1177,1,0,0,0,30,1179,1,0,0,0,32,1181,1,0,0,0,34,1183,1,0,0,0,36,1185,1,0,0,0,38,1187,1,0,0,0,40,1189,1,0,0,0,42,1191,1,0,0,0,44,1196,1,0,0,0,46,1198,1,0,0,0,48,1210,1,0,0,0,50,1229,1,0,0,0,52,1233,1,0,0,0,54,1237,1,0,0,0,56,1281,1,0,0,0,58,1283,1,0,0,0,60,1285,1,0,0,0,62,1291,1,0,0,0,64,1308,1,0,0,0,66,1316,1,0,0,0,68,1330,1,0,0,0,70,1339,1,0,0,0,72,1347,1,0,0,0,74,1353,1,0,0,0,76,1366,1,0,0,0,78,1371,1,0,0,0,80,1374,1,0,0,0,82,1376,1,0,0,0,84,1380,1,0,0,0,86,1382,1,0,0,0,88,1385,1,0,0,0,90,1388,1,0,0,0,92,1405,1,0,0,0,94,1418,1,0,0,0,96,1429,1,0,0,0,98,1431,1,0,0,0,100,1444,1,0,0,0,102,1458,1,0,0,0,104,1460,1,0,0,0,106,1466,1,0,0,0,108,1494,1,0,0,0,110,1506,1,0,0,0,112,1508,1,0,0,0,114,1514,1,0,0,0,116,1523,1,0,0,0,118,1543,1,0,0,0,120,1552,1,0,0,0,122,1559,1,0,0,0,124,1561,1,0,0,0,126,1571,1,0,0,0,128,1580,1,0,0,0,130,1589,1,0,0,0,132,1607,1,0,0,0,134,1613,1,0,0,0,136,1619,1,0,0,0,138,1627,1,0,0,0,140,1629,1,0,0,0,142,1637,1,0,0,0,144,1649,1,0,0,0,146,1671,1,0,0,0,148,1683,1,0,0,0,150,1705,1,0,0,0,152,1713,1,0,0,0,154,1721,1,0,0,0,156,1729,1,0,0,0,158,1739,1,0,0,0,160,1741,1,0,0,0,162,1745,1,0,0,0,164,1748,1,0,0,0,166,1754,1,0,0,0,168,1772,1,0,0,0,170,1785,1,0,0,0,172,1793,1,0,0,0,174,1812,1,0,0,0,176,1820,1,0,0,0,178,1825,1,0,0,0,180,1843,1,0,0,0,182,1851,1,0,0,0,184,1860,1,0,0,0,186,1862,1,0,0,0,188,1865,1,0,0,0,190,1889,1,0,0,0,192,1895,1,0,0,0,194,1897,1,0,0,0,196,1906,1,0,0,0,198,1910,1,0,0,0,200,1941,1,0,0,0,202,1964,1,0,0,0,204,1971,1,0,0,0,206,1973,1,0,0,0,208,1986,1,0,0,0,210,1990,1,0,0,0,212,1998,1,0,0,0,214,2001,1,0,0,0,216,2004,1,0,0,0,218,2007,1,0,0,0,220,2015,1,0,0,0,222,2036,1,0,0,0,224,2038,1,0,0,0,226,2050,1,0,0,0,228,2058,1,0,0,0,230,2066,1,0,0,0,232,2074,1,0,0,0,234,2086,1,0,0,0,236,2094,1,0,0,0,238,2110,1,0,0,0,240,2112,1,0,0,0,242,2119,1,0,0,0,244,2125,1,0,0,0,246,2147,1,0,0,0,248,2155,1,0,0,0,250,2167,1,0,0,0,252,2169,1,0,0,0,254,2174,1,0,0,0,256,2179,1,0,0,0,258,2184,1,0,0,0,260,2189,1,0,0,0,262,2195,1,0,0,0,264,2210,1,0,0,0,266,2220,1,0,0,0,268,2227,1,0,0,0,270,2242,1,0,0,0,272,2245,1,0,0,0,274,2254,1,0,0,0,276,2256,1,0,0,0,278,2258,1,0,0,0,280,2283,1,0,0,0,282,2285,1,0,0,0,284,2310,1,0,0,0,286,2312,1,0,0,0,288,2317,1,0,0,0,290,2325,1,0,0,0,292,2335,1,0,0,0,294,2342,1,0,0,0,296,2348,1,0,0,0,298,2352,1,0,0,0,300,2355,1,0,0,0,302,2363,1,0,0,0,304,2368,1,0,0,0,306,2376,1,0,0,0,308,2387,1,0,0,0,310,2389,1,0,0,0,312,2391,1,0,0,0,314,2393,1,0,0,0,316,2395,1,0,0,0,318,2397,1,0,0,0,320,2399,1,0,0,0,322,2403,1,0,0,0,324,2405,1,0,0,0,326,2407,1,0,0,0,328,2409,1,0,0,0,330,2411,1,0,0,0,332,2413,1,0,0,0,334,2415,1,0,0,0,336,2417,1,0,0,0,338,2419,1,0,0,0,340,2421,1,0,0,0,342,2423,1,0,0,0,344,2433,1,0,0,0,346,2435,1,0,0,0,348,2437,1,0,0,0,350,2439,1,0,0,0,352,2441,1,0,0,0,354,2443,1,0,0,0,356,2445,1,0,0,0,358,2453,1,0,0,0,360,2455,1,0,0,0,362,2457,1,0,0,0,364,2459,1,0,0,0,366,2461,1,0,0,0,368,2465,1,0,0,0,370,2473,1,0,0,0,372,2475,1,0,0,0,374,2480,1,0,0,0,376,2485,1,0,0,0,378,2530,1,0,0,0,380,2532,1,0,0,0,382,2553,1,0,0,0,384,2575,1,0,0,0,386,2577,1,0,0,0,388,2579,1,0,0,0,390,2587,1,0,0,0,392,2589,1,0,0,0,394,2591,1,0,0,0,396,2593,1,0,0,0,398,2601,1,0,0,0,400,2607,1,0,0,0,402,2609,1,0,0,0,404,2616,1,0,0,0,406,2623,1,0,0,0,408,2625,1,0,0,0,410,2627,1,0,0,0,412,2638,1,0,0,0,414,2640,1,0,0,0,416,2649,1,0,0,0,418,2655,1,0,0,0,420,2657,1,0,0,0,422,2662,1,0,0,0,424,2688,1,0,0,0,426,2712,1,0,0,0,428,2718,1,0,0,0,430,2720,1,0,0,0,432,2723,1,0,0,0,434,2740,1,0,0,0,436,2747,1,0,0,0,438,2759,1,0,0,0,440,2772,1,0,0,0,442,2774,1,0,0,0,444,2783,1,0,0,0,446,2802,1,0,0,0,448,2808,1,0,0,0,450,2810,1,0,0,0,452,2845,1,0,0,0,454,2849,1,0,0,0,456,2851,1,0,0,0,458,2853,1,0,0,0,460,2856,1,0,0,0,462,2864,1,0,0,0,464,2868,1,0,0,0,466,2882,1,0,0,0,468,2900,1,0,0,0,470,2920,1,0,0,0,472,2922,1,0,0,0,474,2925,1,0,0,0,476,2929,1,0,0,0,478,2932,1,0,0,0,480,2935,1,0,0,0,482,2938,1,0,0,0,484,2942,1,0,0,0,486,2953,1,0,0,0,488,2957,1,0,0,0,490,2960,1,0,0,0,492,2964,1,0,0,0,494,2966,1,0,0,0,496,2974,1,0,0,0,498,2983,1,0,0,0,500,2986,1,0,0,0,502,2990,1,0,0,0,504,2992,1,0,0,0,506,2997,1,0,0,0,508,3002,1,0,0,0,510,3006,1,0,0,0,512,3023,1,0,0,0,514,3025,1,0,0,0,516,3039,1,0,0,0,518,3056,1,0,0,0,520,3074,1,0,0,0,522,3097,1,0,0,0,524,3099,1,0,0,0,526,3108,1,0,0,0,528,3113,1,0,0,0,530,3120,1,0,0,0,532,3138,1,0,0,0,534,3143,1,0,0,0,536,3150,1,0,0,0,538,3154,1,0,0,0,540,3159,1,0,0,0,542,3171,1,0,0,0,544,3177,1,0,0,0,546,3190,1,0,0,0,548,3192,1,0,0,0,550,3205,1,0,0,0,552,3209,1,0,0,0,554,3219,1,0,0,0,556,3232,1,0,0,0,558,3234,1,0,0,0,560,3248,1,0,0,0,562,3251,1,0,0,0,564,3253,1,0,0,0,566,3256,1,0,0,0,568,3258,1,0,0,0,570,3263,1,0,0,0,572,3267,1,0,0,0,574,3272,1,0,0,0,576,3276,1,0,0,0,578,3282,1,0,0,0,580,3284,1,0,0,0,582,3286,1,0,0,0,584,3290,1,0,0,0,586,3293,1,0,0,0,588,3298,1,0,0,0,590,3318,1,0,0,0,592,3320,1,0,0,0,594,3324,1,0,0,0,596,3337,1,0,0,0,598,3350,1,0,0,0,600,3363,1,0,0,0,602,3378,1,0,0,0,604,3389,1,0,0,0,606,3391,1,0,0,0,608,3399,1,0,0,0,610,3401,1,0,0,0,612,3408,1,0,0,0,614,3410,1,0,0,0,616,3413,1,0,0,0,618,3429,1,0,0,0,620,3433,1,0,0,0,622,3435,1,0,0,0,624,3439,1,0,0,0,626,3452,1,0,0,0,628,3455,1,0,0,0,630,3464,1,0,0,0,632,3469,1,0,0,0,634,3483,1,0,0,0,636,3485,1,0,0,0,638,3490,1,0,0,0,640,3516,1,0,0,0,642,3518,1,0,0,0,644,3520,1,0,0,0,646,3522,1,0,0,0,648,3527,1,0,0,0,650,3533,1,0,0,0,652,3535,1,0,0,0,654,3539,1,0,0,0,656,3544,1,0,0,0,658,3551,1,0,0,0,660,3566,1,0,0,0,662,3587,1,0,0,0,664,3598,1,0,0,0,666,3602,1,0,0,0,668,3604,1,0,0,0,670,3609,1,0,0,0,672,3612,1,0,0,0,674,3615,1,0,0,0,676,3618,1,0,0,0,678,3624,1,0,0,0,680,3629,1,0,0,0,682,3642,1,0,0,0,684,3655,1,0,0,0,686,3657,1,0,0,0,688,3661,1,0,0,0,690,3669,1,0,0,0,692,3671,1,0,0,0,694,3684,1,0,0,0,696,3691,1,0,0,0,698,3698,1,0,0,0,700,3705,1,0,0,0,702,3712,1,0,0,0,704,3717,1,0,0,0,706,3722,1,0,0,0,708,3727,1,0,0,0,710,3737,1,0,0,0,712,3739,1,0,0,0,714,3741,1,0,0,0,716,3747,1,0,0,0,718,3749,1,0,0,0,720,3768,1,0,0,0,722,3785,1,0,0,0,724,3787,1,0,0,0,726,3789,1,0,0,0,728,3791,1,0,0,0,730,3793,1,0,0,0,732,3795,1,0,0,0,734,3800,1,0,0,0,736,3808,1,0,0,0,738,3813,1,0,0,0,740,3815,1,0,0,0,742,3817,1,0,0,0,744,3827,1,0,0,0,746,3838,1,0,0,0,748,3840,1,0,0,0,750,3846,1,0,0,0,752,3857,1,0,0,0,754,3859,1,0,0,0,756,3873,1,0,0,0,758,3881,1,0,0,0,760,3884,1,0,0,0,762,3889,1,0,0,0,764,3893,1,0,0,0,766,3897,1,0,0,0,768,3901,1,0,0,0,770,3908,1,0,0,0,772,3917,1,0,0,0,774,3935,1,0,0,0,776,3958,1,0,0,0,778,3960,1,0,0,0,780,3964,1,0,0,0,782,3968,1,0,0,0,784,3972,1,0,0,0,786,3987,1,0,0,0,788,3989,1,0,0,0,790,3992,1,0,0,0,792,3995,1,0,0,0,794,3998,1,0,0,0,796,4001,1,0,0,0,798,4004,1,0,0,0,800,4007,1,0,0,0,802,4024,1,0,0,0,804,4026,1,0,0,0,806,4043,1,0,0,0,808,4067,1,0,0,0,810,4098,1,0,0,0,812,4101,1,0,0,0,814,4103,1,0,0,0,816,4106,1,0,0,0,818,4114,1,0,0,0,820,4116,1,0,0,0,822,4127,1,0,0,0,824,4138,1,0,0,0,826,4149,1,0,0,0,828,4160,1,0,0,0,830,4162,1,0,0,0,832,4165,1,0,0,0,834,4167,1,0,0,0,836,4173,1,0,0,0,838,4183,1,0,0,0,840,4188,1,0,0,0,842,4196,1,0,0,0,844,4198,1,0,0,0,846,4202,1,0,0,0,848,4208,1,0,0,0,850,4213,1,0,0,0,852,4229,1,0,0,0,854,4234,1,0,0,0,856,4249,1,0,0,0,858,4258,1,0,0,0,860,4260,1,0,0,0,862,4263,1,0,0,0,864,4272,1,0,0,0,866,4276,1,0,0,0,868,4301,1,0,0,0,870,4303,1,0,0,0,872,4330,1,0,0,0,874,4332,1,0,0,0,876,4335,1,0,0,0,878,4344,1,0,0,0,880,4347,1,0,0,0,882,4356,1,0,0,0,884,4361,1,0,0,0,886,4389,1,0,0,0,888,4391,1,0,0,0,890,4393,1,0,0,0,892,4395,1,0,0,0,894,4397,1,0,0,0,896,4403,1,0,0,0,898,4408,1,0,0,0,900,4414,1,0,0,0,902,4431,1,0,0,0,904,4438,1,0,0,0,906,4440,1,0,0,0,908,4447,1,0,0,0,910,4453,1,0,0,0,912,4459,1,0,0,0,914,4464,1,0,0,0,916,4470,1,0,0,0,918,4475,1,0,0,0,920,4505,1,0,0,0,922,4507,1,0,0,0,924,4514,1,0,0,0,926,4520,1,0,0,0,928,4538,1,0,0,0,930,4553,1,0,0,0,932,4558,1,0,0,0,934,4560,1,0,0,0,936,4585,1,0,0,0,938,4587,1,0,0,0,940,4606,1,0,0,0,942,4612,1,0,0,0,944,4614,1,0,0,0,946,4621,1,0,0,0,948,4623,1,0,0,0,950,4625,1,0,0,0,952,4631,1,0,0,0,954,4636,1,0,0,0,956,4641,1,0,0,0,958,4646,1,0,0,0,960,4658,1,0,0,0,962,4663,1,0,0,0,964,4689,1,0,0,0,966,4693,1,0,0,0,968,4696,1,0,0,0,970,4711,1,0,0,0,972,4721,1,0,0,0,974,4731,1,0,0,0,976,4733,1,0,0,0,978,4741,1,0,0,0,980,4746,1,0,0,0,982,4748,1,0,0,0,984,4750,1,0,0,0,986,4752,1,0,0,0,988,4754,1,0,0,0,990,4756,1,0,0,0,992,4758,1,0,0,0,994,995,6,0,-1,0,995,996,5,77,0,0,996,997,3,0,0,0,997,998,5,209,0,0,998,999,3,0,0,0,999,1e3,5,55,0,0,1e3,1001,3,0,0,28,1001,1010,1,0,0,0,1002,1003,7,0,0,0,1003,1010,3,0,0,14,1004,1005,7,1,0,0,1005,1010,3,2,1,0,1006,1007,5,8,0,0,1007,1010,3,2,1,0,1008,1010,3,6,3,0,1009,994,1,0,0,0,1009,1002,1,0,0,0,1009,1004,1,0,0,0,1009,1006,1,0,0,0,1009,1008,1,0,0,0,1010,1092,1,0,0,0,1011,1012,10,27,0,0,1012,1013,5,190,0,0,1013,1091,3,0,0,28,1014,1015,10,26,0,0,1015,1016,5,78,0,0,1016,1091,3,0,0,27,1017,1018,10,25,0,0,1018,1019,5,112,0,0,1019,1091,3,0,0,26,1020,1021,10,24,0,0,1021,1022,5,12,0,0,1022,1091,3,0,0,25,1023,1024,10,23,0,0,1024,1025,5,173,0,0,1025,1091,3,0,0,24,1026,1027,10,22,0,0,1027,1028,5,215,0,0,1028,1091,3,0,0,23,1029,1030,10,21,0,0,1030,1031,5,195,0,0,1031,1091,3,0,0,22,1032,1033,10,20,0,0,1033,1034,7,2,0,0,1034,1091,3,0,0,21,1035,1036,10,19,0,0,1036,1037,7,3,0,0,1037,1091,3,0,0,20,1038,1039,10,18,0,0,1039,1040,5,181,0,0,1040,1091,3,0,0,19,1041,1042,10,17,0,0,1042,1043,7,4,0,0,1043,1091,3,0,0,18,1044,1045,10,16,0,0,1045,1046,7,5,0,0,1046,1091,3,0,0,17,1047,1048,10,15,0,0,1048,1049,7,6,0,0,1049,1091,3,0,0,15,1050,1051,10,12,0,0,1051,1052,7,7,0,0,1052,1091,3,2,1,0,1053,1054,10,11,0,0,1054,1055,5,13,0,0,1055,1091,3,2,1,0,1056,1057,10,10,0,0,1057,1058,5,191,0,0,1058,1091,3,2,1,0,1059,1060,10,9,0,0,1060,1061,5,100,0,0,1061,1091,3,2,1,0,1062,1063,10,8,0,0,1063,1065,5,211,0,0,1064,1066,3,4,2,0,1065,1064,1,0,0,0,1065,1066,1,0,0,0,1066,1067,1,0,0,0,1067,1091,5,212,0,0,1068,1069,10,7,0,0,1069,1070,5,192,0,0,1070,1072,5,196,0,0,1071,1073,3,4,2,0,1072,1071,1,0,0,0,1072,1073,1,0,0,0,1073,1074,1,0,0,0,1074,1091,5,197,0,0,1075,1076,10,6,0,0,1076,1091,3,20,10,0,1077,1078,10,5,0,0,1078,1079,5,202,0,0,1079,1091,3,92,46,0,1080,1081,10,4,0,0,1081,1082,5,182,0,0,1082,1091,3,18,9,0,1083,1084,10,3,0,0,1084,1085,5,180,0,0,1085,1088,3,92,46,0,1086,1089,3,18,9,0,1087,1089,3,20,10,0,1088,1086,1,0,0,0,1088,1087,1,0,0,0,1089,1091,1,0,0,0,1090,1011,1,0,0,0,1090,1014,1,0,0,0,1090,1017,1,0,0,0,1090,1020,1,0,0,0,1090,1023,1,0,0,0,1090,1026,1,0,0,0,1090,1029,1,0,0,0,1090,1032,1,0,0,0,1090,1035,1,0,0,0,1090,1038,1,0,0,0,1090,1041,1,0,0,0,1090,1044,1,0,0,0,1090,1047,1,0,0,0,1090,1050,1,0,0,0,1090,1053,1,0,0,0,1090,1056,1,0,0,0,1090,1059,1,0,0,0,1090,1062,1,0,0,0,1090,1068,1,0,0,0,1090,1075,1,0,0,0,1090,1077,1,0,0,0,1090,1080,1,0,0,0,1090,1083,1,0,0,0,1091,1094,1,0,0,0,1092,1090,1,0,0,0,1092,1093,1,0,0,0,1093,1,1,0,0,0,1094,1092,1,0,0,0,1095,1096,3,92,46,0,1096,3,1,0,0,0,1097,1102,3,0,0,0,1098,1099,5,200,0,0,1099,1101,3,0,0,0,1100,1098,1,0,0,0,1101,1104,1,0,0,0,1102,1100,1,0,0,0,1102,1103,1,0,0,0,1103,5,1,0,0,0,1104,1102,1,0,0,0,1105,1122,3,8,4,0,1106,1122,5,223,0,0,1107,1122,3,28,14,0,1108,1112,3,92,46,0,1109,1113,3,20,10,0,1110,1111,5,202,0,0,1111,1113,5,102,0,0,1112,1109,1,0,0,0,1112,1110,1,0,0,0,1112,1113,1,0,0,0,1113,1122,1,0,0,0,1114,1122,3,16,8,0,1115,1122,3,18,9,0,1116,1118,5,196,0,0,1117,1119,3,4,2,0,1118,1117,1,0,0,0,1118,1119,1,0,0,0,1119,1120,1,0,0,0,1120,1122,5,197,0,0,1121,1105,1,0,0,0,1121,1106,1,0,0,0,1121,1107,1,0,0,0,1121,1108,1,0,0,0,1121,1114,1,0,0,0,1121,1115,1,0,0,0,1121,1116,1,0,0,0,1122,7,1,0,0,0,1123,1127,5,108,0,0,1124,1125,5,196,0,0,1125,1127,5,197,0,0,1126,1123,1,0,0,0,1126,1124,1,0,0,0,1127,9,1,0,0,0,1128,1129,3,92,46,0,1129,11,1,0,0,0,1130,1131,3,92,46,0,1131,1132,5,202,0,0,1132,1133,5,102,0,0,1133,13,1,0,0,0,1134,1135,3,92,46,0,1135,1136,3,20,10,0,1136,15,1,0,0,0,1137,1138,5,105,0,0,1138,1139,3,92,46,0,1139,1140,3,20,10,0,1140,17,1,0,0,0,1141,1142,5,214,0,0,1142,1143,3,294,147,0,1143,1144,5,216,0,0,1144,19,1,0,0,0,1145,1148,5,196,0,0,1146,1149,3,22,11,0,1147,1149,3,24,12,0,1148,1146,1,0,0,0,1148,1147,1,0,0,0,1148,1149,1,0,0,0,1149,1150,1,0,0,0,1150,1151,5,197,0,0,1151,21,1,0,0,0,1152,1157,3,0,0,0,1153,1154,5,200,0,0,1154,1156,3,0,0,0,1155,1153,1,0,0,0,1156,1159,1,0,0,0,1157,1155,1,0,0,0,1157,1158,1,0,0,0,1158,23,1,0,0,0,1159,1157,1,0,0,0,1160,1165,3,26,13,0,1161,1162,5,200,0,0,1162,1164,3,26,13,0,1163,1161,1,0,0,0,1164,1167,1,0,0,0,1165,1163,1,0,0,0,1165,1166,1,0,0,0,1166,25,1,0,0,0,1167,1165,1,0,0,0,1168,1169,3,92,46,0,1169,1170,5,207,0,0,1170,1171,3,0,0,0,1171,27,1,0,0,0,1172,1178,3,30,15,0,1173,1178,3,32,16,0,1174,1178,3,34,17,0,1175,1178,3,36,18,0,1176,1178,3,38,19,0,1177,1172,1,0,0,0,1177,1173,1,0,0,0,1177,1174,1,0,0,0,1177,1175,1,0,0,0,1177,1176,1,0,0,0,1178,29,1,0,0,0,1179,1180,7,8,0,0,1180,31,1,0,0,0,1181,1182,5,220,0,0,1182,33,1,0,0,0,1183,1184,5,221,0,0,1184,35,1,0,0,0,1185,1186,5,222,0,0,1186,37,1,0,0,0,1187,1188,5,198,0,0,1188,39,1,0,0,0,1189,1190,3,0,0,0,1190,41,1,0,0,0,1191,1192,3,0,0,0,1192,43,1,0,0,0,1193,1197,5,218,0,0,1194,1197,5,219,0,0,1195,1197,3,46,23,0,1196,1193,1,0,0,0,1196,1194,1,0,0,0,1196,1195,1,0,0,0,1197,45,1,0,0,0,1198,1199,7,9,0,0,1199,47,1,0,0,0,1200,1201,5,206,0,0,1201,1202,3,44,22,0,1202,1203,5,208,0,0,1203,1204,3,44,22,0,1204,1211,1,0,0,0,1205,1206,5,206,0,0,1206,1207,3,44,22,0,1207,1208,5,208,0,0,1208,1211,1,0,0,0,1209,1211,3,44,22,0,1210,1200,1,0,0,0,1210,1205,1,0,0,0,1210,1209,1,0,0,0,1211,49,1,0,0,0,1212,1230,5,205,0,0,1213,1217,5,214,0,0,1214,1216,3,52,26,0,1215,1214,1,0,0,0,1216,1219,1,0,0,0,1217,1215,1,0,0,0,1217,1218,1,0,0,0,1218,1220,1,0,0,0,1219,1217,1,0,0,0,1220,1230,5,216,0,0,1221,1225,5,214,0,0,1222,1224,3,60,30,0,1223,1222,1,0,0,0,1224,1227,1,0,0,0,1225,1223,1,0,0,0,1225,1226,1,0,0,0,1226,1228,1,0,0,0,1227,1225,1,0,0,0,1228,1230,5,216,0,0,1229,1212,1,0,0,0,1229,1213,1,0,0,0,1229,1221,1,0,0,0,1230,51,1,0,0,0,1231,1234,3,54,27,0,1232,1234,3,60,30,0,1233,1231,1,0,0,0,1233,1232,1,0,0,0,1234,53,1,0,0,0,1235,1238,3,108,54,0,1236,1238,3,110,55,0,1237,1235,1,0,0,0,1237,1236,1,0,0,0,1238,55,1,0,0,0,1239,1241,3,416,208,0,1240,1239,1,0,0,0,1241,1244,1,0,0,0,1242,1240,1,0,0,0,1242,1243,1,0,0,0,1243,1245,1,0,0,0,1244,1242,1,0,0,0,1245,1250,5,48,0,0,1246,1248,3,48,24,0,1247,1246,1,0,0,0,1247,1248,1,0,0,0,1248,1249,1,0,0,0,1249,1251,5,74,0,0,1250,1247,1,0,0,0,1250,1251,1,0,0,0,1251,1252,1,0,0,0,1252,1257,3,92,46,0,1253,1254,5,200,0,0,1254,1256,3,92,46,0,1255,1253,1,0,0,0,1256,1259,1,0,0,0,1257,1255,1,0,0,0,1257,1258,1,0,0,0,1258,1260,1,0,0,0,1259,1257,1,0,0,0,1260,1261,5,154,0,0,1261,1266,3,92,46,0,1262,1263,5,200,0,0,1263,1265,3,92,46,0,1264,1262,1,0,0,0,1265,1268,1,0,0,0,1266,1264,1,0,0,0,1266,1267,1,0,0,0,1267,1269,1,0,0,0,1268,1266,1,0,0,0,1269,1270,3,50,25,0,1270,1282,1,0,0,0,1271,1273,3,416,208,0,1272,1271,1,0,0,0,1273,1276,1,0,0,0,1274,1272,1,0,0,0,1274,1275,1,0,0,0,1275,1277,1,0,0,0,1276,1274,1,0,0,0,1277,1278,5,48,0,0,1278,1279,3,444,222,0,1279,1280,3,50,25,0,1280,1282,1,0,0,0,1281,1242,1,0,0,0,1281,1274,1,0,0,0,1282,57,1,0,0,0,1283,1284,3,92,46,0,1284,59,1,0,0,0,1285,1286,3,62,31,0,1286,61,1,0,0,0,1287,1292,3,64,32,0,1288,1292,3,66,33,0,1289,1292,3,68,34,0,1290,1292,3,422,211,0,1291,1287,1,0,0,0,1291,1288,1,0,0,0,1291,1289,1,0,0,0,1291,1290,1,0,0,0,1292,63,1,0,0,0,1293,1295,5,30,0,0,1294,1296,3,48,24,0,1295,1294,1,0,0,0,1295,1296,1,0,0,0,1296,1306,1,0,0,0,1297,1298,5,1,0,0,1298,1303,3,58,29,0,1299,1300,5,200,0,0,1300,1302,3,58,29,0,1301,1299,1,0,0,0,1302,1305,1,0,0,0,1303,1301,1,0,0,0,1303,1304,1,0,0,0,1304,1307,1,0,0,0,1305,1303,1,0,0,0,1306,1297,1,0,0,0,1306,1307,1,0,0,0,1307,1309,1,0,0,0,1308,1293,1,0,0,0,1308,1309,1,0,0,0,1309,1312,1,0,0,0,1310,1311,5,95,0,0,1311,1313,5,220,0,0,1312,1310,1,0,0,0,1312,1313,1,0,0,0,1313,1314,1,0,0,0,1314,1315,5,223,0,0,1315,65,1,0,0,0,1316,1318,5,54,0,0,1317,1319,3,48,24,0,1318,1317,1,0,0,0,1318,1319,1,0,0,0,1319,1322,1,0,0,0,1320,1321,5,95,0,0,1321,1323,5,220,0,0,1322,1320,1,0,0,0,1322,1323,1,0,0,0,1323,1324,1,0,0,0,1324,1325,5,223,0,0,1325,67,1,0,0,0,1326,1328,5,131,0,0,1327,1329,3,48,24,0,1328,1327,1,0,0,0,1328,1329,1,0,0,0,1329,1331,1,0,0,0,1330,1326,1,0,0,0,1330,1331,1,0,0,0,1331,1332,1,0,0,0,1332,1333,5,93,0,0,1333,1334,5,220,0,0,1334,1335,5,223,0,0,1335,69,1,0,0,0,1336,1338,3,448,224,0,1337,1336,1,0,0,0,1338,1341,1,0,0,0,1339,1337,1,0,0,0,1339,1340,1,0,0,0,1340,1342,1,0,0,0,1341,1339,1,0,0,0,1342,1343,5,0,0,1,1343,71,1,0,0,0,1344,1346,3,418,209,0,1345,1344,1,0,0,0,1346,1349,1,0,0,0,1347,1345,1,0,0,0,1347,1348,1,0,0,0,1348,1350,1,0,0,0,1349,1347,1,0,0,0,1350,1351,3,74,37,0,1351,1352,3,76,38,0,1352,73,1,0,0,0,1353,1355,5,104,0,0,1354,1356,3,48,24,0,1355,1354,1,0,0,0,1355,1356,1,0,0,0,1356,75,1,0,0,0,1357,1367,5,205,0,0,1358,1362,5,214,0,0,1359,1361,3,78,39,0,1360,1359,1,0,0,0,1361,1364,1,0,0,0,1362,1360,1,0,0,0,1362,1363,1,0,0,0,1363,1365,1,0,0,0,1364,1362,1,0,0,0,1365,1367,5,216,0,0,1366,1357,1,0,0,0,1366,1358,1,0,0,0,1367,77,1,0,0,0,1368,1372,3,84,42,0,1369,1372,3,90,45,0,1370,1372,3,94,47,0,1371,1368,1,0,0,0,1371,1369,1,0,0,0,1371,1370,1,0,0,0,1372,79,1,0,0,0,1373,1375,3,82,41,0,1374,1373,1,0,0,0,1374,1375,1,0,0,0,1375,81,1,0,0,0,1376,1377,7,10,0,0,1377,83,1,0,0,0,1378,1381,3,86,43,0,1379,1381,3,88,44,0,1380,1378,1,0,0,0,1380,1379,1,0,0,0,1381,85,1,0,0,0,1382,1383,3,80,40,0,1383,1384,3,106,53,0,1384,87,1,0,0,0,1385,1386,3,80,40,0,1386,1387,3,110,55,0,1387,89,1,0,0,0,1388,1389,3,80,40,0,1389,1394,5,7,0,0,1390,1391,5,206,0,0,1391,1392,3,44,22,0,1392,1393,5,208,0,0,1393,1395,1,0,0,0,1394,1390,1,0,0,0,1394,1395,1,0,0,0,1395,1397,1,0,0,0,1396,1398,3,44,22,0,1397,1396,1,0,0,0,1397,1398,1,0,0,0,1398,1399,1,0,0,0,1399,1400,5,71,0,0,1400,1401,3,92,46,0,1401,1402,3,50,25,0,1402,91,1,0,0,0,1403,1404,5,193,0,0,1404,1406,5,183,0,0,1405,1403,1,0,0,0,1405,1406,1,0,0,0,1406,1412,1,0,0,0,1407,1408,3,44,22,0,1408,1409,5,183,0,0,1409,1411,1,0,0,0,1410,1407,1,0,0,0,1411,1414,1,0,0,0,1412,1410,1,0,0,0,1412,1413,1,0,0,0,1413,1415,1,0,0,0,1414,1412,1,0,0,0,1415,1416,3,44,22,0,1416,93,1,0,0,0,1417,1419,3,82,41,0,1418,1417,1,0,0,0,1418,1419,1,0,0,0,1419,1420,1,0,0,0,1420,1422,5,79,0,0,1421,1423,5,8,0,0,1422,1421,1,0,0,0,1422,1423,1,0,0,0,1423,1424,1,0,0,0,1424,1425,3,96,48,0,1425,1426,3,50,25,0,1426,95,1,0,0,0,1427,1430,3,98,49,0,1428,1430,3,100,50,0,1429,1427,1,0,0,0,1429,1428,1,0,0,0,1430,97,1,0,0,0,1431,1434,3,92,46,0,1432,1433,5,183,0,0,1433,1435,5,179,0,0,1434,1432,1,0,0,0,1434,1435,1,0,0,0,1435,99,1,0,0,0,1436,1437,3,92,46,0,1437,1438,5,183,0,0,1438,1441,5,198,0,0,1439,1440,5,183,0,0,1440,1442,5,179,0,0,1441,1439,1,0,0,0,1441,1442,1,0,0,0,1442,1445,1,0,0,0,1443,1445,3,102,51,0,1444,1436,1,0,0,0,1444,1443,1,0,0,0,1445,101,1,0,0,0,1446,1448,3,974,487,0,1447,1449,3,104,52,0,1448,1447,1,0,0,0,1449,1450,1,0,0,0,1450,1448,1,0,0,0,1450,1451,1,0,0,0,1451,1459,1,0,0,0,1452,1454,3,988,494,0,1453,1455,3,104,52,0,1454,1453,1,0,0,0,1455,1456,1,0,0,0,1456,1454,1,0,0,0,1456,1457,1,0,0,0,1457,1459,1,0,0,0,1458,1446,1,0,0,0,1458,1452,1,0,0,0,1459,103,1,0,0,0,1460,1461,5,211,0,0,1461,1462,3,0,0,0,1462,1463,5,212,0,0,1463,105,1,0,0,0,1464,1467,3,62,31,0,1465,1467,3,108,54,0,1466,1464,1,0,0,0,1466,1465,1,0,0,0,1467,107,1,0,0,0,1468,1495,3,56,28,0,1469,1495,3,72,36,0,1470,1495,3,112,56,0,1471,1495,3,164,82,0,1472,1495,3,252,126,0,1473,1495,3,254,127,0,1474,1495,3,256,128,0,1475,1495,3,414,207,0,1476,1495,3,258,129,0,1477,1495,3,260,130,0,1478,1495,3,372,186,0,1479,1495,3,286,143,0,1480,1495,3,290,145,0,1481,1495,3,302,151,0,1482,1495,3,400,200,0,1483,1495,3,434,217,0,1484,1495,3,436,218,0,1485,1495,3,136,68,0,1486,1495,3,144,72,0,1487,1495,3,170,85,0,1488,1495,3,148,74,0,1489,1495,3,244,122,0,1490,1495,3,222,111,0,1491,1495,3,226,113,0,1492,1495,3,234,117,0,1493,1495,3,248,124,0,1494,1468,1,0,0,0,1494,1469,1,0,0,0,1494,1470,1,0,0,0,1494,1471,1,0,0,0,1494,1472,1,0,0,0,1494,1473,1,0,0,0,1494,1474,1,0,0,0,1494,1475,1,0,0,0,1494,1476,1,0,0,0,1494,1477,1,0,0,0,1494,1478,1,0,0,0,1494,1479,1,0,0,0,1494,1480,1,0,0,0,1494,1481,1,0,0,0,1494,1482,1,0,0,0,1494,1483,1,0,0,0,1494,1484,1,0,0,0,1494,1485,1,0,0,0,1494,1486,1,0,0,0,1494,1487,1,0,0,0,1494,1488,1,0,0,0,1494,1489,1,0,0,0,1494,1490,1,0,0,0,1494,1491,1,0,0,0,1494,1492,1,0,0,0,1494,1493,1,0,0,0,1495,109,1,0,0,0,1496,1507,3,174,87,0,1497,1507,3,288,144,0,1498,1507,3,300,150,0,1499,1507,3,304,152,0,1500,1507,3,306,153,0,1501,1507,3,262,131,0,1502,1507,3,278,139,0,1503,1507,3,282,141,0,1504,1507,3,374,187,0,1505,1507,3,376,188,0,1506,1496,1,0,0,0,1506,1497,1,0,0,0,1506,1498,1,0,0,0,1506,1499,1,0,0,0,1506,1500,1,0,0,0,1506,1501,1,0,0,0,1506,1502,1,0,0,0,1506,1503,1,0,0,0,1506,1504,1,0,0,0,1506,1505,1,0,0,0,1507,111,1,0,0,0,1508,1509,3,114,57,0,1509,1510,5,157,0,0,1510,1511,3,116,58,0,1511,1512,3,132,66,0,1512,113,1,0,0,0,1513,1515,5,2,0,0,1514,1513,1,0,0,0,1514,1515,1,0,0,0,1515,1519,1,0,0,0,1516,1518,3,418,209,0,1517,1516,1,0,0,0,1518,1521,1,0,0,0,1519,1517,1,0,0,0,1519,1520,1,0,0,0,1520,115,1,0,0,0,1521,1519,1,0,0,0,1522,1524,5,8,0,0,1523,1522,1,0,0,0,1523,1524,1,0,0,0,1524,1526,1,0,0,0,1525,1527,3,48,24,0,1526,1525,1,0,0,0,1526,1527,1,0,0,0,1527,1529,1,0,0,0,1528,1530,3,406,203,0,1529,1528,1,0,0,0,1529,1530,1,0,0,0,1530,1533,1,0,0,0,1531,1534,3,118,59,0,1532,1534,3,120,60,0,1533,1531,1,0,0,0,1533,1532,1,0,0,0,1534,1535,1,0,0,0,1535,1533,1,0,0,0,1535,1536,1,0,0,0,1536,1540,1,0,0,0,1537,1539,3,122,61,0,1538,1537,1,0,0,0,1539,1542,1,0,0,0,1540,1538,1,0,0,0,1540,1541,1,0,0,0,1541,117,1,0,0,0,1542,1540,1,0,0,0,1543,1544,7,11,0,0,1544,1549,3,138,69,0,1545,1546,5,200,0,0,1546,1548,3,138,69,0,1547,1545,1,0,0,0,1548,1551,1,0,0,0,1549,1547,1,0,0,0,1549,1550,1,0,0,0,1550,119,1,0,0,0,1551,1549,1,0,0,0,1552,1553,7,12,0,0,1553,1554,3,146,73,0,1554,121,1,0,0,0,1555,1560,3,124,62,0,1556,1560,3,126,63,0,1557,1560,3,128,64,0,1558,1560,3,130,65,0,1559,1555,1,0,0,0,1559,1556,1,0,0,0,1559,1557,1,0,0,0,1559,1558,1,0,0,0,1560,123,1,0,0,0,1561,1562,5,52,0,0,1562,1563,5,74,0,0,1563,1568,3,150,75,0,1564,1565,5,200,0,0,1565,1567,3,150,75,0,1566,1564,1,0,0,0,1567,1570,1,0,0,0,1568,1566,1,0,0,0,1568,1569,1,0,0,0,1569,125,1,0,0,0,1570,1568,1,0,0,0,1571,1572,5,160,0,0,1572,1577,3,152,76,0,1573,1574,5,200,0,0,1574,1576,3,152,76,0,1575,1573,1,0,0,0,1576,1579,1,0,0,0,1577,1575,1,0,0,0,1577,1578,1,0,0,0,1578,127,1,0,0,0,1579,1577,1,0,0,0,1580,1581,5,86,0,0,1581,1586,3,154,77,0,1582,1583,5,200,0,0,1583,1585,3,154,77,0,1584,1582,1,0,0,0,1585,1588,1,0,0,0,1586,1584,1,0,0,0,1586,1587,1,0,0,0,1587,129,1,0,0,0,1588,1586,1,0,0,0,1589,1590,5,50,0,0,1590,1595,3,156,78,0,1591,1592,5,200,0,0,1592,1594,3,156,78,0,1593,1591,1,0,0,0,1594,1597,1,0,0,0,1595,1593,1,0,0,0,1595,1596,1,0,0,0,1596,131,1,0,0,0,1597,1595,1,0,0,0,1598,1608,5,205,0,0,1599,1603,5,214,0,0,1600,1602,3,134,67,0,1601,1600,1,0,0,0,1602,1605,1,0,0,0,1603,1601,1,0,0,0,1603,1604,1,0,0,0,1604,1606,1,0,0,0,1605,1603,1,0,0,0,1606,1608,5,216,0,0,1607,1598,1,0,0,0,1607,1599,1,0,0,0,1608,133,1,0,0,0,1609,1614,3,86,43,0,1610,1614,3,158,79,0,1611,1614,3,90,45,0,1612,1614,3,94,47,0,1613,1609,1,0,0,0,1613,1610,1,0,0,0,1613,1611,1,0,0,0,1613,1612,1,0,0,0,1614,135,1,0,0,0,1615,1617,5,138,0,0,1616,1618,3,48,24,0,1617,1616,1,0,0,0,1617,1618,1,0,0,0,1618,1620,1,0,0,0,1619,1615,1,0,0,0,1619,1620,1,0,0,0,1620,1621,1,0,0,0,1621,1622,5,149,0,0,1622,1623,3,140,70,0,1623,1624,7,11,0,0,1624,1625,3,142,71,0,1625,1626,3,50,25,0,1626,137,1,0,0,0,1627,1628,3,142,71,0,1628,139,1,0,0,0,1629,1634,3,92,46,0,1630,1631,5,202,0,0,1631,1633,3,92,46,0,1632,1630,1,0,0,0,1633,1636,1,0,0,0,1634,1632,1,0,0,0,1634,1635,1,0,0,0,1635,141,1,0,0,0,1636,1634,1,0,0,0,1637,1642,3,92,46,0,1638,1639,5,202,0,0,1639,1641,3,92,46,0,1640,1638,1,0,0,0,1641,1644,1,0,0,0,1642,1640,1,0,0,0,1642,1643,1,0,0,0,1643,143,1,0,0,0,1644,1642,1,0,0,0,1645,1647,5,35,0,0,1646,1648,3,48,24,0,1647,1646,1,0,0,0,1647,1648,1,0,0,0,1648,1650,1,0,0,0,1649,1645,1,0,0,0,1649,1650,1,0,0,0,1650,1651,1,0,0,0,1651,1652,5,33,0,0,1652,1657,3,92,46,0,1653,1654,5,202,0,0,1654,1656,3,92,46,0,1655,1653,1,0,0,0,1656,1659,1,0,0,0,1657,1655,1,0,0,0,1657,1658,1,0,0,0,1658,1660,1,0,0,0,1659,1657,1,0,0,0,1660,1661,7,12,0,0,1661,1666,3,92,46,0,1662,1663,5,202,0,0,1663,1665,3,92,46,0,1664,1662,1,0,0,0,1665,1668,1,0,0,0,1666,1664,1,0,0,0,1666,1667,1,0,0,0,1667,1669,1,0,0,0,1668,1666,1,0,0,0,1669,1670,3,50,25,0,1670,145,1,0,0,0,1671,1676,3,92,46,0,1672,1673,5,202,0,0,1673,1675,3,92,46,0,1674,1672,1,0,0,0,1675,1678,1,0,0,0,1676,1674,1,0,0,0,1676,1677,1,0,0,0,1677,147,1,0,0,0,1678,1676,1,0,0,0,1679,1681,5,51,0,0,1680,1682,3,48,24,0,1681,1680,1,0,0,0,1681,1682,1,0,0,0,1682,1684,1,0,0,0,1683,1679,1,0,0,0,1683,1684,1,0,0,0,1684,1685,1,0,0,0,1685,1686,5,52,0,0,1686,1691,3,92,46,0,1687,1688,5,202,0,0,1688,1690,3,92,46,0,1689,1687,1,0,0,0,1690,1693,1,0,0,0,1691,1689,1,0,0,0,1691,1692,1,0,0,0,1692,1694,1,0,0,0,1693,1691,1,0,0,0,1694,1695,5,74,0,0,1695,1700,3,92,46,0,1696,1697,5,202,0,0,1697,1699,3,92,46,0,1698,1696,1,0,0,0,1699,1702,1,0,0,0,1700,1698,1,0,0,0,1700,1701,1,0,0,0,1701,1703,1,0,0,0,1702,1700,1,0,0,0,1703,1704,3,50,25,0,1704,149,1,0,0,0,1705,1710,3,92,46,0,1706,1707,5,202,0,0,1707,1709,3,92,46,0,1708,1706,1,0,0,0,1709,1712,1,0,0,0,1710,1708,1,0,0,0,1710,1711,1,0,0,0,1711,151,1,0,0,0,1712,1710,1,0,0,0,1713,1718,3,92,46,0,1714,1715,5,202,0,0,1715,1717,3,92,46,0,1716,1714,1,0,0,0,1717,1720,1,0,0,0,1718,1716,1,0,0,0,1718,1719,1,0,0,0,1719,153,1,0,0,0,1720,1718,1,0,0,0,1721,1726,3,92,46,0,1722,1723,5,202,0,0,1723,1725,3,92,46,0,1724,1722,1,0,0,0,1725,1728,1,0,0,0,1726,1724,1,0,0,0,1726,1727,1,0,0,0,1727,155,1,0,0,0,1728,1726,1,0,0,0,1729,1734,3,92,46,0,1730,1731,5,202,0,0,1731,1733,3,92,46,0,1732,1730,1,0,0,0,1733,1736,1,0,0,0,1734,1732,1,0,0,0,1734,1735,1,0,0,0,1735,157,1,0,0,0,1736,1734,1,0,0,0,1737,1740,3,160,80,0,1738,1740,3,162,81,0,1739,1737,1,0,0,0,1739,1738,1,0,0,0,1740,159,1,0,0,0,1741,1742,3,80,40,0,1742,1743,5,97,0,0,1743,1744,3,110,55,0,1744,161,1,0,0,0,1745,1746,3,80,40,0,1746,1747,3,110,55,0,1747,163,1,0,0,0,1748,1749,3,114,57,0,1749,1750,5,29,0,0,1750,1751,3,166,83,0,1751,1752,3,132,66,0,1752,165,1,0,0,0,1753,1755,5,8,0,0,1754,1753,1,0,0,0,1754,1755,1,0,0,0,1755,1757,1,0,0,0,1756,1758,3,48,24,0,1757,1756,1,0,0,0,1757,1758,1,0,0,0,1758,1760,1,0,0,0,1759,1761,3,406,203,0,1760,1759,1,0,0,0,1760,1761,1,0,0,0,1761,1764,1,0,0,0,1762,1765,3,168,84,0,1763,1765,3,120,60,0,1764,1762,1,0,0,0,1764,1763,1,0,0,0,1764,1765,1,0,0,0,1765,1769,1,0,0,0,1766,1768,3,122,61,0,1767,1766,1,0,0,0,1768,1771,1,0,0,0,1769,1767,1,0,0,0,1769,1770,1,0,0,0,1770,167,1,0,0,0,1771,1769,1,0,0,0,1772,1773,7,11,0,0,1773,1778,3,172,86,0,1774,1775,5,200,0,0,1775,1777,3,172,86,0,1776,1774,1,0,0,0,1777,1780,1,0,0,0,1778,1776,1,0,0,0,1778,1779,1,0,0,0,1779,169,1,0,0,0,1780,1778,1,0,0,0,1781,1783,5,138,0,0,1782,1784,3,48,24,0,1783,1782,1,0,0,0,1783,1784,1,0,0,0,1784,1786,1,0,0,0,1785,1781,1,0,0,0,1785,1786,1,0,0,0,1786,1787,1,0,0,0,1787,1788,5,145,0,0,1788,1789,3,92,46,0,1789,1790,7,11,0,0,1790,1791,3,92,46,0,1791,1792,3,50,25,0,1792,171,1,0,0,0,1793,1794,3,92,46,0,1794,173,1,0,0,0,1795,1798,3,180,90,0,1796,1799,5,65,0,0,1797,1799,3,418,209,0,1798,1796,1,0,0,0,1798,1797,1,0,0,0,1799,1801,1,0,0,0,1800,1802,3,188,94,0,1801,1800,1,0,0,0,1801,1802,1,0,0,0,1802,1813,1,0,0,0,1803,1806,3,176,88,0,1804,1806,3,178,89,0,1805,1803,1,0,0,0,1805,1804,1,0,0,0,1806,1808,1,0,0,0,1807,1809,5,127,0,0,1808,1807,1,0,0,0,1808,1809,1,0,0,0,1809,1810,1,0,0,0,1810,1811,3,188,94,0,1811,1813,1,0,0,0,1812,1795,1,0,0,0,1812,1805,1,0,0,0,1813,1815,1,0,0,0,1814,1816,3,396,198,0,1815,1814,1,0,0,0,1815,1816,1,0,0,0,1816,1817,1,0,0,0,1817,1818,3,132,66,0,1818,175,1,0,0,0,1819,1821,5,39,0,0,1820,1819,1,0,0,0,1820,1821,1,0,0,0,1821,1822,1,0,0,0,1822,1823,5,56,0,0,1823,177,1,0,0,0,1824,1826,3,186,93,0,1825,1824,1,0,0,0,1825,1826,1,0,0,0,1826,1828,1,0,0,0,1827,1829,5,49,0,0,1828,1827,1,0,0,0,1828,1829,1,0,0,0,1829,1831,1,0,0,0,1830,1832,5,2,0,0,1831,1830,1,0,0,0,1831,1832,1,0,0,0,1832,1834,1,0,0,0,1833,1835,7,13,0,0,1834,1833,1,0,0,0,1834,1835,1,0,0,0,1835,1837,1,0,0,0,1836,1838,7,14,0,0,1837,1836,1,0,0,0,1837,1838,1,0,0,0,1838,179,1,0,0,0,1839,1840,3,176,88,0,1840,1841,3,182,91,0,1841,1844,1,0,0,0,1842,1844,3,178,89,0,1843,1839,1,0,0,0,1843,1842,1,0,0,0,1844,1848,1,0,0,0,1845,1847,3,418,209,0,1846,1845,1,0,0,0,1847,1850,1,0,0,0,1848,1846,1,0,0,0,1848,1849,1,0,0,0,1849,181,1,0,0,0,1850,1848,1,0,0,0,1851,1852,3,184,92,0,1852,183,1,0,0,0,1853,1854,3,178,89,0,1854,1855,3,188,94,0,1855,1861,1,0,0,0,1856,1858,3,486,243,0,1857,1859,3,498,249,0,1858,1857,1,0,0,0,1858,1859,1,0,0,0,1859,1861,1,0,0,0,1860,1853,1,0,0,0,1860,1856,1,0,0,0,1861,185,1,0,0,0,1862,1863,7,15,0,0,1863,187,1,0,0,0,1864,1866,5,8,0,0,1865,1864,1,0,0,0,1865,1866,1,0,0,0,1866,1874,1,0,0,0,1867,1870,3,190,95,0,1868,1871,3,200,100,0,1869,1871,3,120,60,0,1870,1868,1,0,0,0,1870,1869,1,0,0,0,1870,1871,1,0,0,0,1871,1875,1,0,0,0,1872,1875,3,200,100,0,1873,1875,3,120,60,0,1874,1867,1,0,0,0,1874,1872,1,0,0,0,1874,1873,1,0,0,0,1875,1879,1,0,0,0,1876,1878,3,192,96,0,1877,1876,1,0,0,0,1878,1881,1,0,0,0,1879,1877,1,0,0,0,1879,1880,1,0,0,0,1880,189,1,0,0,0,1881,1879,1,0,0,0,1882,1883,5,206,0,0,1883,1884,3,44,22,0,1884,1886,5,208,0,0,1885,1887,3,44,22,0,1886,1885,1,0,0,0,1886,1887,1,0,0,0,1887,1890,1,0,0,0,1888,1890,3,44,22,0,1889,1882,1,0,0,0,1889,1888,1,0,0,0,1890,191,1,0,0,0,1891,1896,3,122,61,0,1892,1896,3,194,97,0,1893,1896,3,196,98,0,1894,1896,3,198,99,0,1895,1891,1,0,0,0,1895,1892,1,0,0,0,1895,1893,1,0,0,0,1895,1894,1,0,0,0,1896,193,1,0,0,0,1897,1898,5,27,0,0,1898,1903,3,92,46,0,1899,1900,5,202,0,0,1900,1902,3,92,46,0,1901,1899,1,0,0,0,1902,1905,1,0,0,0,1903,1901,1,0,0,0,1903,1904,1,0,0,0,1904,195,1,0,0,0,1905,1903,1,0,0,0,1906,1907,5,88,0,0,1907,1908,5,111,0,0,1908,1909,3,246,123,0,1909,197,1,0,0,0,1910,1911,5,66,0,0,1911,1912,5,24,0,0,1912,1917,3,250,125,0,1913,1914,5,200,0,0,1914,1916,3,250,125,0,1915,1913,1,0,0,0,1916,1919,1,0,0,0,1917,1915,1,0,0,0,1917,1918,1,0,0,0,1918,199,1,0,0,0,1919,1917,1,0,0,0,1920,1922,3,204,102,0,1921,1920,1,0,0,0,1922,1923,1,0,0,0,1923,1921,1,0,0,0,1923,1924,1,0,0,0,1924,1926,1,0,0,0,1925,1927,3,202,101,0,1926,1925,1,0,0,0,1926,1927,1,0,0,0,1927,1931,1,0,0,0,1928,1930,3,204,102,0,1929,1928,1,0,0,0,1930,1933,1,0,0,0,1931,1929,1,0,0,0,1931,1932,1,0,0,0,1932,1942,1,0,0,0,1933,1931,1,0,0,0,1934,1938,3,202,101,0,1935,1937,3,204,102,0,1936,1935,1,0,0,0,1937,1940,1,0,0,0,1938,1936,1,0,0,0,1938,1939,1,0,0,0,1939,1942,1,0,0,0,1940,1938,1,0,0,0,1941,1921,1,0,0,0,1941,1934,1,0,0,0,1942,201,1,0,0,0,1943,1952,3,406,203,0,1944,1946,5,113,0,0,1945,1947,5,106,0,0,1946,1945,1,0,0,0,1946,1947,1,0,0,0,1947,1953,1,0,0,0,1948,1950,5,106,0,0,1949,1951,5,113,0,0,1950,1949,1,0,0,0,1950,1951,1,0,0,0,1951,1953,1,0,0,0,1952,1944,1,0,0,0,1952,1948,1,0,0,0,1952,1953,1,0,0,0,1953,1965,1,0,0,0,1954,1956,5,113,0,0,1955,1957,5,106,0,0,1956,1955,1,0,0,0,1956,1957,1,0,0,0,1957,1963,1,0,0,0,1958,1960,5,106,0,0,1959,1961,5,113,0,0,1960,1959,1,0,0,0,1960,1961,1,0,0,0,1961,1963,1,0,0,0,1962,1954,1,0,0,0,1962,1958,1,0,0,0,1963,1965,1,0,0,0,1964,1943,1,0,0,0,1964,1962,1,0,0,0,1965,203,1,0,0,0,1966,1972,3,206,103,0,1967,1972,3,210,105,0,1968,1972,3,214,107,0,1969,1972,3,216,108,0,1970,1972,3,218,109,0,1971,1966,1,0,0,0,1971,1967,1,0,0,0,1971,1968,1,0,0,0,1971,1969,1,0,0,0,1971,1970,1,0,0,0,1972,205,1,0,0,0,1973,1978,3,208,104,0,1974,1975,5,200,0,0,1975,1977,3,222,111,0,1976,1974,1,0,0,0,1977,1980,1,0,0,0,1978,1976,1,0,0,0,1978,1979,1,0,0,0,1979,207,1,0,0,0,1980,1978,1,0,0,0,1981,1987,5,204,0,0,1982,1983,5,158,0,0,1983,1987,5,24,0,0,1984,1985,5,47,0,0,1985,1987,5,24,0,0,1986,1981,1,0,0,0,1986,1982,1,0,0,0,1986,1984,1,0,0,0,1987,1988,1,0,0,0,1988,1989,3,222,111,0,1989,209,1,0,0,0,1990,1995,3,212,106,0,1991,1992,5,200,0,0,1992,1994,3,228,114,0,1993,1991,1,0,0,0,1994,1997,1,0,0,0,1995,1993,1,0,0,0,1995,1996,1,0,0,0,1996,211,1,0,0,0,1997,1995,1,0,0,0,1998,1999,7,16,0,0,1999,2e3,3,228,114,0,2e3,213,1,0,0,0,2001,2002,7,17,0,0,2002,2003,3,230,115,0,2003,215,1,0,0,0,2004,2005,7,18,0,0,2005,2006,3,232,116,0,2006,217,1,0,0,0,2007,2012,3,220,110,0,2008,2009,5,200,0,0,2009,2011,3,236,118,0,2010,2008,1,0,0,0,2011,2014,1,0,0,0,2012,2010,1,0,0,0,2012,2013,1,0,0,0,2013,219,1,0,0,0,2014,2012,1,0,0,0,2015,2016,7,19,0,0,2016,2017,3,236,118,0,2017,221,1,0,0,0,2018,2020,5,138,0,0,2019,2021,3,48,24,0,2020,2019,1,0,0,0,2020,2021,1,0,0,0,2021,2023,1,0,0,0,2022,2018,1,0,0,0,2022,2023,1,0,0,0,2023,2024,1,0,0,0,2024,2025,5,159,0,0,2025,2029,3,92,46,0,2026,2030,5,204,0,0,2027,2028,5,158,0,0,2028,2030,5,24,0,0,2029,2026,1,0,0,0,2029,2027,1,0,0,0,2030,2031,1,0,0,0,2031,2032,3,142,71,0,2032,2033,3,50,25,0,2033,2037,1,0,0,0,2034,2037,3,224,112,0,2035,2037,3,584,292,0,2036,2022,1,0,0,0,2036,2034,1,0,0,0,2036,2035,1,0,0,0,2037,223,1,0,0,0,2038,2043,3,92,46,0,2039,2040,5,202,0,0,2040,2042,3,92,46,0,2041,2039,1,0,0,0,2042,2045,1,0,0,0,2043,2041,1,0,0,0,2043,2044,1,0,0,0,2044,225,1,0,0,0,2045,2043,1,0,0,0,2046,2048,5,138,0,0,2047,2049,3,48,24,0,2048,2047,1,0,0,0,2048,2049,1,0,0,0,2049,2051,1,0,0,0,2050,2046,1,0,0,0,2050,2051,1,0,0,0,2051,2052,1,0,0,0,2052,2053,5,147,0,0,2053,2054,3,140,70,0,2054,2055,7,16,0,0,2055,2056,3,142,71,0,2056,2057,3,50,25,0,2057,227,1,0,0,0,2058,2063,3,92,46,0,2059,2060,5,202,0,0,2060,2062,3,92,46,0,2061,2059,1,0,0,0,2062,2065,1,0,0,0,2063,2061,1,0,0,0,2063,2064,1,0,0,0,2064,229,1,0,0,0,2065,2063,1,0,0,0,2066,2071,3,92,46,0,2067,2068,5,202,0,0,2068,2070,3,92,46,0,2069,2067,1,0,0,0,2070,2073,1,0,0,0,2071,2069,1,0,0,0,2071,2072,1,0,0,0,2072,231,1,0,0,0,2073,2071,1,0,0,0,2074,2079,3,92,46,0,2075,2076,5,202,0,0,2076,2078,3,92,46,0,2077,2075,1,0,0,0,2078,2081,1,0,0,0,2079,2077,1,0,0,0,2079,2080,1,0,0,0,2080,233,1,0,0,0,2081,2079,1,0,0,0,2082,2084,5,138,0,0,2083,2085,3,48,24,0,2084,2083,1,0,0,0,2084,2085,1,0,0,0,2085,2087,1,0,0,0,2086,2082,1,0,0,0,2086,2087,1,0,0,0,2087,2088,1,0,0,0,2088,2089,5,126,0,0,2089,2090,3,140,70,0,2090,2091,7,19,0,0,2091,2092,3,142,71,0,2092,2093,3,50,25,0,2093,235,1,0,0,0,2094,2099,3,92,46,0,2095,2096,5,202,0,0,2096,2098,3,92,46,0,2097,2095,1,0,0,0,2098,2101,1,0,0,0,2099,2097,1,0,0,0,2099,2100,1,0,0,0,2100,237,1,0,0,0,2101,2099,1,0,0,0,2102,2111,3,240,120,0,2103,2106,3,242,121,0,2104,2105,5,202,0,0,2105,2107,3,242,121,0,2106,2104,1,0,0,0,2107,2108,1,0,0,0,2108,2106,1,0,0,0,2108,2109,1,0,0,0,2109,2111,1,0,0,0,2110,2102,1,0,0,0,2110,2103,1,0,0,0,2111,239,1,0,0,0,2112,2115,3,242,121,0,2113,2114,5,202,0,0,2114,2116,3,242,121,0,2115,2113,1,0,0,0,2116,2117,1,0,0,0,2117,2115,1,0,0,0,2117,2118,1,0,0,0,2118,241,1,0,0,0,2119,2120,3,92,46,0,2120,243,1,0,0,0,2121,2123,5,89,0,0,2122,2124,3,48,24,0,2123,2122,1,0,0,0,2123,2124,1,0,0,0,2124,2126,1,0,0,0,2125,2121,1,0,0,0,2125,2126,1,0,0,0,2126,2127,1,0,0,0,2127,2128,5,88,0,0,2128,2133,3,92,46,0,2129,2130,5,202,0,0,2130,2132,3,92,46,0,2131,2129,1,0,0,0,2132,2135,1,0,0,0,2133,2131,1,0,0,0,2133,2134,1,0,0,0,2134,2136,1,0,0,0,2135,2133,1,0,0,0,2136,2137,5,111,0,0,2137,2142,3,92,46,0,2138,2139,5,202,0,0,2139,2141,3,92,46,0,2140,2138,1,0,0,0,2141,2144,1,0,0,0,2142,2140,1,0,0,0,2142,2143,1,0,0,0,2143,2145,1,0,0,0,2144,2142,1,0,0,0,2145,2146,3,50,25,0,2146,245,1,0,0,0,2147,2152,3,92,46,0,2148,2149,5,202,0,0,2149,2151,3,92,46,0,2150,2148,1,0,0,0,2151,2154,1,0,0,0,2152,2150,1,0,0,0,2152,2153,1,0,0,0,2153,247,1,0,0,0,2154,2152,1,0,0,0,2155,2160,5,67,0,0,2156,2158,3,48,24,0,2157,2156,1,0,0,0,2157,2158,1,0,0,0,2158,2159,1,0,0,0,2159,2161,5,111,0,0,2160,2157,1,0,0,0,2160,2161,1,0,0,0,2161,2162,1,0,0,0,2162,2163,3,92,46,0,2163,2164,5,24,0,0,2164,2165,3,92,46,0,2165,2166,3,50,25,0,2166,249,1,0,0,0,2167,2168,3,92,46,0,2168,251,1,0,0,0,2169,2170,3,114,57,0,2170,2171,5,43,0,0,2171,2172,3,166,83,0,2172,2173,3,132,66,0,2173,253,1,0,0,0,2174,2175,3,114,57,0,2175,2176,5,28,0,0,2176,2177,3,166,83,0,2177,2178,3,132,66,0,2178,255,1,0,0,0,2179,2180,3,114,57,0,2180,2181,5,144,0,0,2181,2182,3,166,83,0,2182,2183,3,132,66,0,2183,257,1,0,0,0,2184,2185,3,114,57,0,2185,2186,5,16,0,0,2186,2187,3,166,83,0,2187,2188,3,132,66,0,2188,259,1,0,0,0,2189,2190,3,114,57,0,2190,2191,5,16,0,0,2191,2192,5,144,0,0,2192,2193,3,166,83,0,2193,2194,3,132,66,0,2194,261,1,0,0,0,2195,2196,3,180,90,0,2196,2204,5,38,0,0,2197,2199,3,188,94,0,2198,2197,1,0,0,0,2198,2199,1,0,0,0,2199,2201,1,0,0,0,2200,2202,3,396,198,0,2201,2200,1,0,0,0,2201,2202,1,0,0,0,2202,2205,1,0,0,0,2203,2205,3,264,132,0,2204,2198,1,0,0,0,2204,2203,1,0,0,0,2205,2206,1,0,0,0,2206,2207,3,132,66,0,2207,263,1,0,0,0,2208,2211,3,266,133,0,2209,2211,3,268,134,0,2210,2208,1,0,0,0,2210,2209,1,0,0,0,2211,265,1,0,0,0,2212,2214,3,188,94,0,2213,2212,1,0,0,0,2213,2214,1,0,0,0,2214,2215,1,0,0,0,2215,2221,5,74,0,0,2216,2218,5,8,0,0,2217,2219,5,74,0,0,2218,2217,1,0,0,0,2218,2219,1,0,0,0,2219,2221,1,0,0,0,2220,2213,1,0,0,0,2220,2216,1,0,0,0,2220,2221,1,0,0,0,2221,2222,1,0,0,0,2222,2223,3,270,135,0,2223,2224,5,154,0,0,2224,2225,3,270,135,0,2225,267,1,0,0,0,2226,2228,3,188,94,0,2227,2226,1,0,0,0,2227,2228,1,0,0,0,2228,2229,1,0,0,0,2229,2230,5,196,0,0,2230,2231,3,270,135,0,2231,2232,5,200,0,0,2232,2237,3,270,135,0,2233,2234,5,200,0,0,2234,2236,3,270,135,0,2235,2233,1,0,0,0,2236,2239,1,0,0,0,2237,2235,1,0,0,0,2237,2238,1,0,0,0,2238,2240,1,0,0,0,2239,2237,1,0,0,0,2240,2241,5,197,0,0,2241,269,1,0,0,0,2242,2243,3,272,136,0,2243,271,1,0,0,0,2244,2246,3,274,137,0,2245,2244,1,0,0,0,2245,2246,1,0,0,0,2246,2250,1,0,0,0,2247,2248,3,44,22,0,2248,2249,7,17,0,0,2249,2251,1,0,0,0,2250,2247,1,0,0,0,2250,2251,1,0,0,0,2251,2252,1,0,0,0,2252,2253,3,230,115,0,2253,273,1,0,0,0,2254,2255,3,276,138,0,2255,275,1,0,0,0,2256,2257,3,406,203,0,2257,277,1,0,0,0,2258,2259,3,180,90,0,2259,2260,5,22,0,0,2260,2261,3,280,140,0,2261,2262,3,132,66,0,2262,279,1,0,0,0,2263,2269,3,188,94,0,2264,2265,5,111,0,0,2265,2266,3,270,135,0,2266,2267,5,207,0,0,2267,2268,3,270,135,0,2268,2270,1,0,0,0,2269,2264,1,0,0,0,2269,2270,1,0,0,0,2270,2284,1,0,0,0,2271,2273,5,8,0,0,2272,2271,1,0,0,0,2272,2273,1,0,0,0,2273,2281,1,0,0,0,2274,2276,5,111,0,0,2275,2274,1,0,0,0,2275,2276,1,0,0,0,2276,2277,1,0,0,0,2277,2278,3,270,135,0,2278,2279,5,207,0,0,2279,2280,3,270,135,0,2280,2282,1,0,0,0,2281,2275,1,0,0,0,2281,2282,1,0,0,0,2282,2284,1,0,0,0,2283,2263,1,0,0,0,2283,2272,1,0,0,0,2284,281,1,0,0,0,2285,2286,3,180,90,0,2286,2287,5,150,0,0,2287,2288,3,284,142,0,2288,2289,3,132,66,0,2289,283,1,0,0,0,2290,2296,3,188,94,0,2291,2292,5,69,0,0,2292,2293,3,270,135,0,2293,2294,5,152,0,0,2294,2295,3,270,135,0,2295,2297,1,0,0,0,2296,2291,1,0,0,0,2296,2297,1,0,0,0,2297,2311,1,0,0,0,2298,2300,5,8,0,0,2299,2298,1,0,0,0,2299,2300,1,0,0,0,2300,2308,1,0,0,0,2301,2303,5,69,0,0,2302,2301,1,0,0,0,2302,2303,1,0,0,0,2303,2304,1,0,0,0,2304,2305,3,270,135,0,2305,2306,5,152,0,0,2306,2307,3,270,135,0,2307,2309,1,0,0,0,2308,2302,1,0,0,0,2308,2309,1,0,0,0,2309,2311,1,0,0,0,2310,2290,1,0,0,0,2310,2299,1,0,0,0,2311,285,1,0,0,0,2312,2313,3,114,57,0,2313,2314,5,20,0,0,2314,2315,3,166,83,0,2315,2316,3,132,66,0,2316,287,1,0,0,0,2317,2318,3,180,90,0,2318,2319,5,143,0,0,2319,2321,3,188,94,0,2320,2322,3,396,198,0,2321,2320,1,0,0,0,2321,2322,1,0,0,0,2322,2323,1,0,0,0,2323,2324,3,132,66,0,2324,289,1,0,0,0,2325,2326,3,114,57,0,2326,2327,5,75,0,0,2327,2328,3,166,83,0,2328,2329,3,292,146,0,2329,291,1,0,0,0,2330,2336,5,205,0,0,2331,2332,5,214,0,0,2332,2333,3,294,147,0,2333,2334,5,216,0,0,2334,2336,1,0,0,0,2335,2330,1,0,0,0,2335,2331,1,0,0,0,2336,293,1,0,0,0,2337,2341,3,468,234,0,2338,2341,3,134,67,0,2339,2341,3,296,148,0,2340,2337,1,0,0,0,2340,2338,1,0,0,0,2340,2339,1,0,0,0,2341,2344,1,0,0,0,2342,2340,1,0,0,0,2342,2343,1,0,0,0,2343,2346,1,0,0,0,2344,2342,1,0,0,0,2345,2347,3,298,149,0,2346,2345,1,0,0,0,2346,2347,1,0,0,0,2347,295,1,0,0,0,2348,2349,3,80,40,0,2349,2350,5,134,0,0,2350,2351,3,110,55,0,2351,297,1,0,0,0,2352,2353,3,80,40,0,2353,2354,3,0,0,0,2354,299,1,0,0,0,2355,2356,3,180,90,0,2356,2357,5,63,0,0,2357,2359,3,188,94,0,2358,2360,3,396,198,0,2359,2358,1,0,0,0,2359,2360,1,0,0,0,2360,2361,1,0,0,0,2361,2362,3,292,146,0,2362,301,1,0,0,0,2363,2364,3,114,57,0,2364,2365,5,121,0,0,2365,2366,3,166,83,0,2366,2367,3,292,146,0,2367,303,1,0,0,0,2368,2369,3,180,90,0,2369,2370,5,23,0,0,2370,2372,3,188,94,0,2371,2373,3,396,198,0,2372,2371,1,0,0,0,2372,2373,1,0,0,0,2373,2374,1,0,0,0,2374,2375,3,292,146,0,2375,305,1,0,0,0,2376,2377,3,180,90,0,2377,2379,5,87,0,0,2378,2380,7,8,0,0,2379,2378,1,0,0,0,2379,2380,1,0,0,0,2380,2381,1,0,0,0,2381,2383,3,188,94,0,2382,2384,3,396,198,0,2383,2382,1,0,0,0,2383,2384,1,0,0,0,2384,2385,1,0,0,0,2385,2386,3,292,146,0,2386,307,1,0,0,0,2387,2388,3,0,0,0,2388,309,1,0,0,0,2389,2390,3,350,175,0,2390,311,1,0,0,0,2391,2392,3,2,1,0,2392,313,1,0,0,0,2393,2394,3,2,1,0,2394,315,1,0,0,0,2395,2396,3,92,46,0,2396,317,1,0,0,0,2397,2398,3,982,491,0,2398,319,1,0,0,0,2399,2400,3,308,154,0,2400,2401,5,200,0,0,2401,2402,3,322,161,0,2402,321,1,0,0,0,2403,2404,3,4,2,0,2404,323,1,0,0,0,2405,2406,3,326,163,0,2406,325,1,0,0,0,2407,2408,3,328,164,0,2408,327,1,0,0,0,2409,2410,3,18,9,0,2410,329,1,0,0,0,2411,2412,3,332,166,0,2412,331,1,0,0,0,2413,2414,3,334,167,0,2414,333,1,0,0,0,2415,2416,3,336,168,0,2416,335,1,0,0,0,2417,2418,3,338,169,0,2418,337,1,0,0,0,2419,2420,3,340,170,0,2420,339,1,0,0,0,2421,2422,3,316,158,0,2422,341,1,0,0,0,2423,2428,3,92,46,0,2424,2425,5,202,0,0,2425,2427,3,92,46,0,2426,2424,1,0,0,0,2427,2430,1,0,0,0,2428,2426,1,0,0,0,2428,2429,1,0,0,0,2429,343,1,0,0,0,2430,2428,1,0,0,0,2431,2434,3,240,120,0,2432,2434,3,238,119,0,2433,2431,1,0,0,0,2433,2432,1,0,0,0,2434,345,1,0,0,0,2435,2436,3,348,174,0,2436,347,1,0,0,0,2437,2438,3,92,46,0,2438,349,1,0,0,0,2439,2440,3,92,46,0,2440,351,1,0,0,0,2441,2442,3,354,177,0,2442,353,1,0,0,0,2443,2444,3,20,10,0,2444,355,1,0,0,0,2445,2450,3,92,46,0,2446,2447,5,202,0,0,2447,2449,3,92,46,0,2448,2446,1,0,0,0,2449,2452,1,0,0,0,2450,2448,1,0,0,0,2450,2451,1,0,0,0,2451,357,1,0,0,0,2452,2450,1,0,0,0,2453,2454,3,92,46,0,2454,359,1,0,0,0,2455,2456,3,26,13,0,2456,361,1,0,0,0,2457,2458,3,92,46,0,2458,363,1,0,0,0,2459,2460,3,366,183,0,2460,365,1,0,0,0,2461,2462,5,214,0,0,2462,2463,3,294,147,0,2463,2464,5,216,0,0,2464,367,1,0,0,0,2465,2466,7,8,0,0,2466,369,1,0,0,0,2467,2469,5,221,0,0,2468,2467,1,0,0,0,2468,2469,1,0,0,0,2469,2470,1,0,0,0,2470,2471,5,202,0,0,2471,2474,7,20,0,0,2472,2474,5,222,0,0,2473,2468,1,0,0,0,2473,2472,1,0,0,0,2474,371,1,0,0,0,2475,2476,3,114,57,0,2476,2477,5,84,0,0,2477,2478,3,166,83,0,2478,2479,3,132,66,0,2479,373,1,0,0,0,2480,2481,3,180,90,0,2481,2482,5,70,0,0,2482,2483,3,378,189,0,2483,2484,3,132,66,0,2484,375,1,0,0,0,2485,2486,3,180,90,0,2486,2487,5,150,0,0,2487,2488,5,70,0,0,2488,2489,3,378,189,0,2489,2490,3,132,66,0,2490,377,1,0,0,0,2491,2493,3,188,94,0,2492,2494,3,396,198,0,2493,2492,1,0,0,0,2493,2494,1,0,0,0,2494,2497,1,0,0,0,2495,2496,5,111,0,0,2496,2498,3,380,190,0,2497,2495,1,0,0,0,2497,2498,1,0,0,0,2498,2504,1,0,0,0,2499,2500,5,74,0,0,2500,2501,3,386,193,0,2501,2502,5,154,0,0,2502,2503,3,386,193,0,2503,2505,1,0,0,0,2504,2499,1,0,0,0,2504,2505,1,0,0,0,2505,2531,1,0,0,0,2506,2508,5,8,0,0,2507,2506,1,0,0,0,2507,2508,1,0,0,0,2508,2509,1,0,0,0,2509,2510,3,386,193,0,2510,2511,5,154,0,0,2511,2512,3,386,193,0,2512,2531,1,0,0,0,2513,2515,3,498,249,0,2514,2513,1,0,0,0,2514,2515,1,0,0,0,2515,2517,1,0,0,0,2516,2518,3,396,198,0,2517,2516,1,0,0,0,2517,2518,1,0,0,0,2518,2521,1,0,0,0,2519,2520,5,111,0,0,2520,2522,3,650,325,0,2521,2519,1,0,0,0,2521,2522,1,0,0,0,2522,2528,1,0,0,0,2523,2524,5,74,0,0,2524,2525,3,386,193,0,2525,2526,5,154,0,0,2526,2527,3,386,193,0,2527,2529,1,0,0,0,2528,2523,1,0,0,0,2528,2529,1,0,0,0,2529,2531,1,0,0,0,2530,2491,1,0,0,0,2530,2507,1,0,0,0,2530,2514,1,0,0,0,2531,379,1,0,0,0,2532,2533,3,382,191,0,2533,381,1,0,0,0,2534,2536,3,48,24,0,2535,2534,1,0,0,0,2535,2536,1,0,0,0,2536,2537,1,0,0,0,2537,2554,3,396,198,0,2538,2540,3,48,24,0,2539,2538,1,0,0,0,2539,2540,1,0,0,0,2540,2541,1,0,0,0,2541,2543,3,384,192,0,2542,2544,3,396,198,0,2543,2542,1,0,0,0,2543,2544,1,0,0,0,2544,2554,1,0,0,0,2545,2547,3,224,112,0,2546,2548,3,406,203,0,2547,2546,1,0,0,0,2547,2548,1,0,0,0,2548,2554,1,0,0,0,2549,2551,3,406,203,0,2550,2552,3,224,112,0,2551,2550,1,0,0,0,2551,2552,1,0,0,0,2552,2554,1,0,0,0,2553,2535,1,0,0,0,2553,2539,1,0,0,0,2553,2545,1,0,0,0,2553,2549,1,0,0,0,2554,383,1,0,0,0,2555,2557,3,204,102,0,2556,2555,1,0,0,0,2557,2558,1,0,0,0,2558,2556,1,0,0,0,2558,2559,1,0,0,0,2559,2561,1,0,0,0,2560,2562,3,202,101,0,2561,2560,1,0,0,0,2561,2562,1,0,0,0,2562,2566,1,0,0,0,2563,2565,3,204,102,0,2564,2563,1,0,0,0,2565,2568,1,0,0,0,2566,2564,1,0,0,0,2566,2567,1,0,0,0,2567,2576,1,0,0,0,2568,2566,1,0,0,0,2569,2571,3,202,101,0,2570,2572,3,204,102,0,2571,2570,1,0,0,0,2572,2573,1,0,0,0,2573,2571,1,0,0,0,2573,2574,1,0,0,0,2574,2576,1,0,0,0,2575,2556,1,0,0,0,2575,2569,1,0,0,0,2576,385,1,0,0,0,2577,2578,3,388,194,0,2578,387,1,0,0,0,2579,2584,3,92,46,0,2580,2581,5,202,0,0,2581,2583,3,92,46,0,2582,2580,1,0,0,0,2583,2586,1,0,0,0,2584,2582,1,0,0,0,2584,2585,1,0,0,0,2585,389,1,0,0,0,2586,2584,1,0,0,0,2587,2588,3,392,196,0,2588,391,1,0,0,0,2589,2590,3,394,197,0,2590,393,1,0,0,0,2591,2592,3,92,46,0,2592,395,1,0,0,0,2593,2594,3,398,199,0,2594,397,1,0,0,0,2595,2602,5,207,0,0,2596,2602,5,184,0,0,2597,2599,5,46,0,0,2598,2600,7,21,0,0,2599,2598,1,0,0,0,2599,2600,1,0,0,0,2600,2602,1,0,0,0,2601,2595,1,0,0,0,2601,2596,1,0,0,0,2601,2597,1,0,0,0,2602,2603,1,0,0,0,2603,2604,3,0,0,0,2604,399,1,0,0,0,2605,2608,3,402,201,0,2606,2608,3,404,202,0,2607,2605,1,0,0,0,2607,2606,1,0,0,0,2608,401,1,0,0,0,2609,2611,5,103,0,0,2610,2612,3,48,24,0,2611,2610,1,0,0,0,2611,2612,1,0,0,0,2612,2613,1,0,0,0,2613,2614,3,212,106,0,2614,2615,3,132,66,0,2615,403,1,0,0,0,2616,2618,5,103,0,0,2617,2619,3,48,24,0,2618,2617,1,0,0,0,2618,2619,1,0,0,0,2619,2620,1,0,0,0,2620,2621,3,410,205,0,2621,2622,3,132,66,0,2622,405,1,0,0,0,2623,2624,3,408,204,0,2624,407,1,0,0,0,2625,2626,3,410,205,0,2626,409,1,0,0,0,2627,2631,5,211,0,0,2628,2629,3,412,206,0,2629,2630,5,181,0,0,2630,2632,1,0,0,0,2631,2628,1,0,0,0,2631,2632,1,0,0,0,2632,2633,1,0,0,0,2633,2634,3,412,206,0,2634,2635,5,212,0,0,2635,411,1,0,0,0,2636,2639,3,28,14,0,2637,2639,3,10,5,0,2638,2636,1,0,0,0,2638,2637,1,0,0,0,2639,413,1,0,0,0,2640,2641,3,114,57,0,2641,2642,5,101,0,0,2642,2643,3,166,83,0,2643,2644,3,132,66,0,2644,415,1,0,0,0,2645,2646,5,192,0,0,2646,2650,3,420,210,0,2647,2648,5,192,0,0,2648,2650,3,960,480,0,2649,2645,1,0,0,0,2649,2647,1,0,0,0,2650,417,1,0,0,0,2651,2652,5,192,0,0,2652,2656,3,420,210,0,2653,2654,5,192,0,0,2654,2656,3,960,480,0,2655,2651,1,0,0,0,2655,2653,1,0,0,0,2656,419,1,0,0,0,2657,2658,3,224,112,0,2658,421,1,0,0,0,2659,2661,3,418,209,0,2660,2659,1,0,0,0,2661,2664,1,0,0,0,2662,2660,1,0,0,0,2662,2663,1,0,0,0,2663,2665,1,0,0,0,2664,2662,1,0,0,0,2665,2666,7,22,0,0,2666,2676,3,424,212,0,2667,2668,5,1,0,0,2668,2673,3,58,29,0,2669,2670,5,200,0,0,2670,2672,3,58,29,0,2671,2669,1,0,0,0,2672,2675,1,0,0,0,2673,2671,1,0,0,0,2673,2674,1,0,0,0,2674,2677,1,0,0,0,2675,2673,1,0,0,0,2676,2667,1,0,0,0,2676,2677,1,0,0,0,2677,2678,1,0,0,0,2678,2679,3,426,213,0,2679,423,1,0,0,0,2680,2682,3,48,24,0,2681,2680,1,0,0,0,2681,2682,1,0,0,0,2682,2686,1,0,0,0,2683,2687,5,204,0,0,2684,2685,5,158,0,0,2685,2687,5,24,0,0,2686,2683,1,0,0,0,2686,2684,1,0,0,0,2687,2689,1,0,0,0,2688,2681,1,0,0,0,2688,2689,1,0,0,0,2689,2690,1,0,0,0,2690,2691,3,224,112,0,2691,425,1,0,0,0,2692,2713,5,205,0,0,2693,2697,5,214,0,0,2694,2696,3,428,214,0,2695,2694,1,0,0,0,2696,2699,1,0,0,0,2697,2695,1,0,0,0,2697,2698,1,0,0,0,2698,2700,1,0,0,0,2699,2697,1,0,0,0,2700,2713,5,216,0,0,2701,2708,5,214,0,0,2702,2707,3,472,236,0,2703,2707,3,966,483,0,2704,2707,3,90,45,0,2705,2707,3,94,47,0,2706,2702,1,0,0,0,2706,2703,1,0,0,0,2706,2704,1,0,0,0,2706,2705,1,0,0,0,2707,2710,1,0,0,0,2708,2706,1,0,0,0,2708,2709,1,0,0,0,2709,2711,1,0,0,0,2710,2708,1,0,0,0,2711,2713,5,216,0,0,2712,2692,1,0,0,0,2712,2693,1,0,0,0,2712,2701,1,0,0,0,2713,427,1,0,0,0,2714,2719,3,86,43,0,2715,2719,3,430,215,0,2716,2719,3,90,45,0,2717,2719,3,94,47,0,2718,2714,1,0,0,0,2718,2715,1,0,0,0,2718,2716,1,0,0,0,2718,2717,1,0,0,0,2719,429,1,0,0,0,2720,2721,3,432,216,0,2721,431,1,0,0,0,2722,2724,5,65,0,0,2723,2722,1,0,0,0,2723,2724,1,0,0,0,2724,2726,1,0,0,0,2725,2727,7,19,0,0,2726,2725,1,0,0,0,2726,2727,1,0,0,0,2727,2728,1,0,0,0,2728,2730,3,236,118,0,2729,2731,3,200,100,0,2730,2729,1,0,0,0,2730,2731,1,0,0,0,2731,2733,1,0,0,0,2732,2734,3,396,198,0,2733,2732,1,0,0,0,2733,2734,1,0,0,0,2734,2735,1,0,0,0,2735,2736,3,426,213,0,2736,433,1,0,0,0,2737,2739,3,418,209,0,2738,2737,1,0,0,0,2739,2742,1,0,0,0,2740,2738,1,0,0,0,2740,2741,1,0,0,0,2741,2743,1,0,0,0,2742,2740,1,0,0,0,2743,2744,3,438,219,0,2744,2745,3,440,220,0,2745,435,1,0,0,0,2746,2748,5,141,0,0,2747,2746,1,0,0,0,2747,2748,1,0,0,0,2748,2749,1,0,0,0,2749,2753,5,94,0,0,2750,2752,3,418,209,0,2751,2750,1,0,0,0,2752,2755,1,0,0,0,2753,2751,1,0,0,0,2753,2754,1,0,0,0,2754,2756,1,0,0,0,2755,2753,1,0,0,0,2756,2757,3,438,219,0,2757,2758,3,440,220,0,2758,437,1,0,0,0,2759,2761,5,115,0,0,2760,2762,3,48,24,0,2761,2760,1,0,0,0,2761,2762,1,0,0,0,2762,439,1,0,0,0,2763,2773,5,205,0,0,2764,2768,5,214,0,0,2765,2767,3,448,224,0,2766,2765,1,0,0,0,2767,2770,1,0,0,0,2768,2766,1,0,0,0,2768,2769,1,0,0,0,2769,2771,1,0,0,0,2770,2768,1,0,0,0,2771,2773,5,216,0,0,2772,2763,1,0,0,0,2772,2764,1,0,0,0,2773,441,1,0,0,0,2774,2775,3,80,40,0,2775,2776,5,68,0,0,2776,2777,3,0,0,0,2777,2778,5,205,0,0,2778,443,1,0,0,0,2779,2781,3,48,24,0,2780,2779,1,0,0,0,2780,2781,1,0,0,0,2781,2782,1,0,0,0,2782,2784,5,74,0,0,2783,2780,1,0,0,0,2783,2784,1,0,0,0,2784,2785,1,0,0,0,2785,2790,3,92,46,0,2786,2787,5,200,0,0,2787,2789,3,92,46,0,2788,2786,1,0,0,0,2789,2792,1,0,0,0,2790,2788,1,0,0,0,2790,2791,1,0,0,0,2791,2793,1,0,0,0,2792,2790,1,0,0,0,2793,2794,5,154,0,0,2794,2799,3,92,46,0,2795,2796,5,200,0,0,2796,2798,3,92,46,0,2797,2795,1,0,0,0,2798,2801,1,0,0,0,2799,2797,1,0,0,0,2799,2800,1,0,0,0,2800,445,1,0,0,0,2801,2799,1,0,0,0,2802,2803,3,62,31,0,2803,447,1,0,0,0,2804,2809,3,450,225,0,2805,2809,3,442,221,0,2806,2809,3,90,45,0,2807,2809,3,94,47,0,2808,2804,1,0,0,0,2808,2805,1,0,0,0,2808,2806,1,0,0,0,2808,2807,1,0,0,0,2809,449,1,0,0,0,2810,2813,3,80,40,0,2811,2814,3,452,226,0,2812,2814,3,454,227,0,2813,2811,1,0,0,0,2813,2812,1,0,0,0,2814,451,1,0,0,0,2815,2846,3,434,217,0,2816,2846,3,436,218,0,2817,2846,3,62,31,0,2818,2846,3,56,28,0,2819,2846,3,526,263,0,2820,2846,3,530,265,0,2821,2846,3,542,271,0,2822,2846,3,544,272,0,2823,2846,3,568,284,0,2824,2846,3,572,286,0,2825,2846,3,586,293,0,2826,2846,3,636,318,0,2827,2846,3,600,300,0,2828,2846,3,576,288,0,2829,2846,3,658,329,0,2830,2846,3,834,417,0,2831,2846,3,772,386,0,2832,2846,3,846,423,0,2833,2846,3,854,427,0,2834,2846,3,894,447,0,2835,2846,3,898,449,0,2836,2846,3,910,455,0,2837,2846,3,914,457,0,2838,2846,3,922,461,0,2839,2846,3,928,464,0,2840,2846,3,950,475,0,2841,2846,3,954,477,0,2842,2846,3,958,479,0,2843,2846,3,630,315,0,2844,2846,3,970,485,0,2845,2815,1,0,0,0,2845,2816,1,0,0,0,2845,2817,1,0,0,0,2845,2818,1,0,0,0,2845,2819,1,0,0,0,2845,2820,1,0,0,0,2845,2821,1,0,0,0,2845,2822,1,0,0,0,2845,2823,1,0,0,0,2845,2824,1,0,0,0,2845,2825,1,0,0,0,2845,2826,1,0,0,0,2845,2827,1,0,0,0,2845,2828,1,0,0,0,2845,2829,1,0,0,0,2845,2830,1,0,0,0,2845,2831,1,0,0,0,2845,2832,1,0,0,0,2845,2833,1,0,0,0,2845,2834,1,0,0,0,2845,2835,1,0,0,0,2845,2836,1,0,0,0,2845,2837,1,0,0,0,2845,2838,1,0,0,0,2845,2839,1,0,0,0,2845,2840,1,0,0,0,2845,2841,1,0,0,0,2845,2842,1,0,0,0,2845,2843,1,0,0,0,2845,2844,1,0,0,0,2846,453,1,0,0,0,2847,2850,3,512,256,0,2848,2850,3,516,258,0,2849,2847,1,0,0,0,2849,2848,1,0,0,0,2850,455,1,0,0,0,2851,2852,7,23,0,0,2852,457,1,0,0,0,2853,2854,3,418,209,0,2854,459,1,0,0,0,2855,2857,3,456,228,0,2856,2855,1,0,0,0,2856,2857,1,0,0,0,2857,2861,1,0,0,0,2858,2860,3,458,229,0,2859,2858,1,0,0,0,2860,2863,1,0,0,0,2861,2859,1,0,0,0,2861,2862,1,0,0,0,2862,461,1,0,0,0,2863,2861,1,0,0,0,2864,2865,3,464,232,0,2865,2866,3,466,233,0,2866,463,1,0,0,0,2867,2869,3,48,24,0,2868,2867,1,0,0,0,2868,2869,1,0,0,0,2869,2871,1,0,0,0,2870,2872,3,524,262,0,2871,2870,1,0,0,0,2871,2872,1,0,0,0,2872,465,1,0,0,0,2873,2883,5,205,0,0,2874,2878,5,214,0,0,2875,2877,3,468,234,0,2876,2875,1,0,0,0,2877,2880,1,0,0,0,2878,2876,1,0,0,0,2878,2879,1,0,0,0,2879,2881,1,0,0,0,2880,2878,1,0,0,0,2881,2883,5,216,0,0,2882,2873,1,0,0,0,2882,2874,1,0,0,0,2883,467,1,0,0,0,2884,2901,3,94,47,0,2885,2886,3,80,40,0,2886,2887,3,470,235,0,2887,2901,1,0,0,0,2888,2890,3,560,280,0,2889,2888,1,0,0,0,2889,2890,1,0,0,0,2890,2891,1,0,0,0,2891,2892,3,80,40,0,2892,2893,3,514,257,0,2893,2901,1,0,0,0,2894,2896,3,560,280,0,2895,2894,1,0,0,0,2895,2896,1,0,0,0,2896,2897,1,0,0,0,2897,2898,3,80,40,0,2898,2899,3,516,258,0,2899,2901,1,0,0,0,2900,2884,1,0,0,0,2900,2885,1,0,0,0,2900,2889,1,0,0,0,2900,2895,1,0,0,0,2901,469,1,0,0,0,2902,2907,5,7,0,0,2903,2904,5,206,0,0,2904,2905,3,44,22,0,2905,2906,5,208,0,0,2906,2908,1,0,0,0,2907,2903,1,0,0,0,2907,2908,1,0,0,0,2908,2910,1,0,0,0,2909,2911,3,44,22,0,2910,2909,1,0,0,0,2910,2911,1,0,0,0,2911,2912,1,0,0,0,2912,2913,5,71,0,0,2913,2914,3,92,46,0,2914,2915,3,50,25,0,2915,2921,1,0,0,0,2916,2917,5,164,0,0,2917,2921,3,522,261,0,2918,2921,3,452,226,0,2919,2921,3,512,256,0,2920,2902,1,0,0,0,2920,2916,1,0,0,0,2920,2918,1,0,0,0,2920,2919,1,0,0,0,2921,471,1,0,0,0,2922,2923,3,80,40,0,2923,2924,3,452,226,0,2924,473,1,0,0,0,2925,2926,3,80,40,0,2926,2927,5,164,0,0,2927,2928,3,522,261,0,2928,475,1,0,0,0,2929,2930,3,80,40,0,2930,2931,3,512,256,0,2931,477,1,0,0,0,2932,2933,3,80,40,0,2933,2934,3,516,258,0,2934,479,1,0,0,0,2935,2936,3,80,40,0,2936,2937,3,518,259,0,2937,481,1,0,0,0,2938,2939,3,80,40,0,2939,2940,3,520,260,0,2940,483,1,0,0,0,2941,2943,3,186,93,0,2942,2941,1,0,0,0,2942,2943,1,0,0,0,2943,2945,1,0,0,0,2944,2946,5,49,0,0,2945,2944,1,0,0,0,2945,2946,1,0,0,0,2946,2948,1,0,0,0,2947,2949,7,23,0,0,2948,2947,1,0,0,0,2948,2949,1,0,0,0,2949,2951,1,0,0,0,2950,2952,5,40,0,0,2951,2950,1,0,0,0,2951,2952,1,0,0,0,2952,485,1,0,0,0,2953,2955,3,484,242,0,2954,2956,5,127,0,0,2955,2954,1,0,0,0,2955,2956,1,0,0,0,2956,487,1,0,0,0,2957,2958,5,56,0,0,2958,2959,3,182,91,0,2959,489,1,0,0,0,2960,2961,3,418,209,0,2961,491,1,0,0,0,2962,2965,3,488,244,0,2963,2965,3,486,243,0,2964,2962,1,0,0,0,2964,2963,1,0,0,0,2965,493,1,0,0,0,2966,2970,3,492,246,0,2967,2969,3,490,245,0,2968,2967,1,0,0,0,2969,2972,1,0,0,0,2970,2968,1,0,0,0,2970,2971,1,0,0,0,2971,495,1,0,0,0,2972,2970,1,0,0,0,2973,2975,3,498,249,0,2974,2973,1,0,0,0,2974,2975,1,0,0,0,2975,2976,1,0,0,0,2976,2977,3,500,250,0,2977,497,1,0,0,0,2978,2980,3,48,24,0,2979,2981,3,200,100,0,2980,2979,1,0,0,0,2980,2981,1,0,0,0,2981,2984,1,0,0,0,2982,2984,3,200,100,0,2983,2978,1,0,0,0,2983,2982,1,0,0,0,2984,499,1,0,0,0,2985,2987,3,396,198,0,2986,2985,1,0,0,0,2986,2987,1,0,0,0,2987,2988,1,0,0,0,2988,2989,3,502,251,0,2989,501,1,0,0,0,2990,2991,3,466,233,0,2991,503,1,0,0,0,2992,2993,3,484,242,0,2993,2994,3,496,248,0,2994,505,1,0,0,0,2995,2998,3,488,244,0,2996,2998,3,484,242,0,2997,2995,1,0,0,0,2997,2996,1,0,0,0,2998,2999,1,0,0,0,2999,3e3,5,127,0,0,3e3,3001,3,496,248,0,3001,507,1,0,0,0,3002,3003,3,488,244,0,3003,3004,3,188,94,0,3004,3005,3,500,250,0,3005,509,1,0,0,0,3006,3010,3,230,115,0,3007,3009,3,204,102,0,3008,3007,1,0,0,0,3009,3012,1,0,0,0,3010,3008,1,0,0,0,3010,3011,1,0,0,0,3011,3013,1,0,0,0,3012,3010,1,0,0,0,3013,3014,3,502,251,0,3014,511,1,0,0,0,3015,3024,3,506,253,0,3016,3024,3,508,254,0,3017,3024,3,528,264,0,3018,3024,3,538,269,0,3019,3024,3,596,298,0,3020,3024,3,598,299,0,3021,3024,3,972,486,0,3022,3024,3,504,252,0,3023,3015,1,0,0,0,3023,3016,1,0,0,0,3023,3017,1,0,0,0,3023,3018,1,0,0,0,3023,3019,1,0,0,0,3023,3020,1,0,0,0,3023,3021,1,0,0,0,3023,3022,1,0,0,0,3024,513,1,0,0,0,3025,3027,5,56,0,0,3026,3028,3,44,22,0,3027,3026,1,0,0,0,3027,3028,1,0,0,0,3028,3030,1,0,0,0,3029,3031,3,274,137,0,3030,3029,1,0,0,0,3030,3031,1,0,0,0,3031,3033,1,0,0,0,3032,3034,5,106,0,0,3033,3032,1,0,0,0,3033,3034,1,0,0,0,3034,3035,1,0,0,0,3035,3036,3,516,258,0,3036,515,1,0,0,0,3037,3040,3,518,259,0,3038,3040,3,520,260,0,3039,3037,1,0,0,0,3039,3038,1,0,0,0,3040,517,1,0,0,0,3041,3057,3,550,275,0,3042,3057,3,552,276,0,3043,3057,3,554,277,0,3044,3057,3,558,279,0,3045,3057,3,570,285,0,3046,3057,3,574,287,0,3047,3057,3,938,469,0,3048,3057,3,956,478,0,3049,3057,3,582,291,0,3050,3057,3,588,294,0,3051,3057,3,616,308,0,3052,3057,3,632,316,0,3053,3057,3,638,319,0,3054,3057,3,646,323,0,3055,3057,3,648,324,0,3056,3041,1,0,0,0,3056,3042,1,0,0,0,3056,3043,1,0,0,0,3056,3044,1,0,0,0,3056,3045,1,0,0,0,3056,3046,1,0,0,0,3056,3047,1,0,0,0,3056,3048,1,0,0,0,3056,3049,1,0,0,0,3056,3050,1,0,0,0,3056,3051,1,0,0,0,3056,3052,1,0,0,0,3056,3053,1,0,0,0,3056,3054,1,0,0,0,3056,3055,1,0,0,0,3057,519,1,0,0,0,3058,3075,3,676,338,0,3059,3075,3,836,418,0,3060,3075,3,800,400,0,3061,3075,3,848,424,0,3062,3075,3,882,441,0,3063,3075,3,896,448,0,3064,3075,3,900,450,0,3065,3075,3,912,456,0,3066,3075,3,916,458,0,3067,3075,3,924,462,0,3068,3075,3,952,476,0,3069,3075,3,680,340,0,3070,3075,3,804,402,0,3071,3075,3,926,463,0,3072,3075,3,850,425,0,3073,3075,3,884,442,0,3074,3058,1,0,0,0,3074,3059,1,0,0,0,3074,3060,1,0,0,0,3074,3061,1,0,0,0,3074,3062,1,0,0,0,3074,3063,1,0,0,0,3074,3064,1,0,0,0,3074,3065,1,0,0,0,3074,3066,1,0,0,0,3074,3067,1,0,0,0,3074,3068,1,0,0,0,3074,3069,1,0,0,0,3074,3070,1,0,0,0,3074,3071,1,0,0,0,3074,3072,1,0,0,0,3074,3073,1,0,0,0,3075,521,1,0,0,0,3076,3098,3,510,255,0,3077,3098,3,506,253,0,3078,3098,3,528,264,0,3079,3098,3,596,298,0,3080,3098,3,598,299,0,3081,3098,3,550,275,0,3082,3098,3,552,276,0,3083,3098,3,554,277,0,3084,3098,3,558,279,0,3085,3098,3,570,285,0,3086,3098,3,574,287,0,3087,3098,3,938,469,0,3088,3098,3,956,478,0,3089,3098,3,582,291,0,3090,3098,3,588,294,0,3091,3098,3,616,308,0,3092,3098,3,632,316,0,3093,3098,3,638,319,0,3094,3098,3,646,323,0,3095,3098,3,648,324,0,3096,3098,3,520,260,0,3097,3076,1,0,0,0,3097,3077,1,0,0,0,3097,3078,1,0,0,0,3097,3079,1,0,0,0,3097,3080,1,0,0,0,3097,3081,1,0,0,0,3097,3082,1,0,0,0,3097,3083,1,0,0,0,3097,3084,1,0,0,0,3097,3085,1,0,0,0,3097,3086,1,0,0,0,3097,3087,1,0,0,0,3097,3088,1,0,0,0,3097,3089,1,0,0,0,3097,3090,1,0,0,0,3097,3091,1,0,0,0,3097,3092,1,0,0,0,3097,3093,1,0,0,0,3097,3094,1,0,0,0,3097,3095,1,0,0,0,3097,3096,1,0,0,0,3098,523,1,0,0,0,3099,3100,7,11,0,0,3100,3105,3,172,86,0,3101,3102,5,200,0,0,3102,3104,3,172,86,0,3103,3101,1,0,0,0,3104,3107,1,0,0,0,3105,3103,1,0,0,0,3105,3106,1,0,0,0,3106,525,1,0,0,0,3107,3105,1,0,0,0,3108,3109,3,460,230,0,3109,3110,5,19,0,0,3110,3111,5,45,0,0,3111,3112,3,462,231,0,3112,527,1,0,0,0,3113,3114,3,494,247,0,3114,3115,5,19,0,0,3115,3116,3,496,248,0,3116,529,1,0,0,0,3117,3119,3,458,229,0,3118,3117,1,0,0,0,3119,3122,1,0,0,0,3120,3118,1,0,0,0,3120,3121,1,0,0,0,3121,3123,1,0,0,0,3122,3120,1,0,0,0,3123,3124,5,58,0,0,3124,3125,5,45,0,0,3125,3126,3,464,232,0,3126,3127,3,532,266,0,3127,531,1,0,0,0,3128,3139,5,205,0,0,3129,3134,5,214,0,0,3130,3133,3,446,223,0,3131,3133,3,534,267,0,3132,3130,1,0,0,0,3132,3131,1,0,0,0,3133,3136,1,0,0,0,3134,3132,1,0,0,0,3134,3135,1,0,0,0,3135,3137,1,0,0,0,3136,3134,1,0,0,0,3137,3139,5,216,0,0,3138,3128,1,0,0,0,3138,3129,1,0,0,0,3139,533,1,0,0,0,3140,3142,3,418,209,0,3141,3140,1,0,0,0,3142,3145,1,0,0,0,3143,3141,1,0,0,0,3143,3144,1,0,0,0,3144,3146,1,0,0,0,3145,3143,1,0,0,0,3146,3147,3,80,40,0,3147,3148,3,536,268,0,3148,535,1,0,0,0,3149,3151,5,58,0,0,3150,3149,1,0,0,0,3150,3151,1,0,0,0,3151,3152,1,0,0,0,3152,3153,3,496,248,0,3153,537,1,0,0,0,3154,3155,3,494,247,0,3155,3156,5,58,0,0,3156,3157,3,496,248,0,3157,539,1,0,0,0,3158,3160,3,456,228,0,3159,3158,1,0,0,0,3159,3160,1,0,0,0,3160,3163,1,0,0,0,3161,3162,5,82,0,0,3162,3164,3,546,273,0,3163,3161,1,0,0,0,3163,3164,1,0,0,0,3164,3168,1,0,0,0,3165,3167,3,458,229,0,3166,3165,1,0,0,0,3167,3170,1,0,0,0,3168,3166,1,0,0,0,3168,3169,1,0,0,0,3169,541,1,0,0,0,3170,3168,1,0,0,0,3171,3172,3,540,270,0,3172,3173,5,110,0,0,3173,3174,5,45,0,0,3174,3175,3,462,231,0,3175,543,1,0,0,0,3176,3178,3,456,228,0,3177,3176,1,0,0,0,3177,3178,1,0,0,0,3178,3179,1,0,0,0,3179,3183,5,82,0,0,3180,3182,3,458,229,0,3181,3180,1,0,0,0,3182,3185,1,0,0,0,3183,3181,1,0,0,0,3183,3184,1,0,0,0,3184,3186,1,0,0,0,3185,3183,1,0,0,0,3186,3187,5,45,0,0,3187,3188,3,462,231,0,3188,3189,3,546,273,0,3189,545,1,0,0,0,3190,3191,3,984,492,0,3191,547,1,0,0,0,3192,3194,3,486,243,0,3193,3195,5,82,0,0,3194,3193,1,0,0,0,3194,3195,1,0,0,0,3195,3197,1,0,0,0,3196,3198,3,556,278,0,3197,3196,1,0,0,0,3197,3198,1,0,0,0,3198,3202,1,0,0,0,3199,3201,3,490,245,0,3200,3199,1,0,0,0,3201,3204,1,0,0,0,3202,3200,1,0,0,0,3202,3203,1,0,0,0,3203,549,1,0,0,0,3204,3202,1,0,0,0,3205,3206,3,548,274,0,3206,3207,5,110,0,0,3207,3208,3,496,248,0,3208,551,1,0,0,0,3209,3210,3,486,243,0,3210,3214,5,82,0,0,3211,3213,3,490,245,0,3212,3211,1,0,0,0,3213,3216,1,0,0,0,3214,3212,1,0,0,0,3214,3215,1,0,0,0,3215,3217,1,0,0,0,3216,3214,1,0,0,0,3217,3218,3,496,248,0,3218,553,1,0,0,0,3219,3221,3,486,243,0,3220,3222,5,82,0,0,3221,3220,1,0,0,0,3221,3222,1,0,0,0,3222,3223,1,0,0,0,3223,3227,3,556,278,0,3224,3226,3,490,245,0,3225,3224,1,0,0,0,3226,3229,1,0,0,0,3227,3225,1,0,0,0,3227,3228,1,0,0,0,3228,3230,1,0,0,0,3229,3227,1,0,0,0,3230,3231,3,496,248,0,3231,555,1,0,0,0,3232,3233,7,24,0,0,3233,557,1,0,0,0,3234,3235,3,548,274,0,3235,3244,5,59,0,0,3236,3238,3,230,115,0,3237,3239,3,200,100,0,3238,3237,1,0,0,0,3238,3239,1,0,0,0,3239,3245,1,0,0,0,3240,3242,5,110,0,0,3241,3243,3,498,249,0,3242,3241,1,0,0,0,3242,3243,1,0,0,0,3243,3245,1,0,0,0,3244,3236,1,0,0,0,3244,3240,1,0,0,0,3245,3246,1,0,0,0,3246,3247,3,500,250,0,3247,559,1,0,0,0,3248,3249,5,152,0,0,3249,3250,3,562,281,0,3250,561,1,0,0,0,3251,3252,3,564,282,0,3252,563,1,0,0,0,3253,3254,3,566,283,0,3254,565,1,0,0,0,3255,3257,3,406,203,0,3256,3255,1,0,0,0,3256,3257,1,0,0,0,3257,567,1,0,0,0,3258,3259,3,540,270,0,3259,3260,5,91,0,0,3260,3261,5,45,0,0,3261,3262,3,462,231,0,3262,569,1,0,0,0,3263,3264,3,548,274,0,3264,3265,5,91,0,0,3265,3266,3,496,248,0,3266,571,1,0,0,0,3267,3268,3,540,270,0,3268,3269,5,117,0,0,3269,3270,5,45,0,0,3270,3271,3,462,231,0,3271,573,1,0,0,0,3272,3273,3,548,274,0,3273,3274,5,117,0,0,3274,3275,3,496,248,0,3275,575,1,0,0,0,3276,3277,3,460,230,0,3277,3278,5,119,0,0,3278,3279,5,45,0,0,3279,3280,3,462,231,0,3280,3281,3,578,289,0,3281,577,1,0,0,0,3282,3283,3,580,290,0,3283,579,1,0,0,0,3284,3285,3,992,496,0,3285,581,1,0,0,0,3286,3287,3,548,274,0,3287,3288,5,119,0,0,3288,3289,3,496,248,0,3289,583,1,0,0,0,3290,3291,5,217,0,0,3291,3292,3,92,46,0,3292,585,1,0,0,0,3293,3294,3,540,270,0,3294,3295,5,37,0,0,3295,3296,5,45,0,0,3296,3297,3,462,231,0,3297,587,1,0,0,0,3298,3312,3,548,274,0,3299,3301,5,37,0,0,3300,3302,3,498,249,0,3301,3300,1,0,0,0,3301,3302,1,0,0,0,3302,3304,1,0,0,0,3303,3305,3,396,198,0,3304,3303,1,0,0,0,3304,3305,1,0,0,0,3305,3308,1,0,0,0,3306,3307,5,36,0,0,3307,3309,3,590,295,0,3308,3306,1,0,0,0,3308,3309,1,0,0,0,3309,3313,1,0,0,0,3310,3311,5,36,0,0,3311,3313,3,590,295,0,3312,3299,1,0,0,0,3312,3310,1,0,0,0,3313,3314,1,0,0,0,3314,3315,3,502,251,0,3315,589,1,0,0,0,3316,3319,3,592,296,0,3317,3319,3,594,297,0,3318,3316,1,0,0,0,3318,3317,1,0,0,0,3319,591,1,0,0,0,3320,3321,3,270,135,0,3321,3322,5,154,0,0,3322,3323,3,270,135,0,3323,593,1,0,0,0,3324,3325,5,196,0,0,3325,3326,3,270,135,0,3326,3327,5,200,0,0,3327,3332,3,270,135,0,3328,3329,5,200,0,0,3329,3331,3,270,135,0,3330,3328,1,0,0,0,3331,3334,1,0,0,0,3332,3330,1,0,0,0,3332,3333,1,0,0,0,3333,3335,1,0,0,0,3334,3332,1,0,0,0,3335,3336,5,197,0,0,3336,595,1,0,0,0,3337,3342,3,494,247,0,3338,3340,5,22,0,0,3339,3341,3,498,249,0,3340,3339,1,0,0,0,3340,3341,1,0,0,0,3341,3343,1,0,0,0,3342,3338,1,0,0,0,3342,3343,1,0,0,0,3343,3344,1,0,0,0,3344,3345,5,21,0,0,3345,3346,3,270,135,0,3346,3347,5,207,0,0,3347,3348,3,270,135,0,3348,3349,3,502,251,0,3349,597,1,0,0,0,3350,3355,3,494,247,0,3351,3353,5,150,0,0,3352,3354,3,498,249,0,3353,3352,1,0,0,0,3353,3354,1,0,0,0,3354,3356,1,0,0,0,3355,3351,1,0,0,0,3355,3356,1,0,0,0,3356,3357,1,0,0,0,3357,3358,5,69,0,0,3358,3359,3,270,135,0,3359,3360,5,152,0,0,3360,3361,3,270,135,0,3361,3362,3,502,251,0,3362,599,1,0,0,0,3363,3364,3,540,270,0,3364,3365,5,85,0,0,3365,3366,5,45,0,0,3366,3367,3,464,232,0,3367,3368,3,602,301,0,3368,601,1,0,0,0,3369,3379,5,205,0,0,3370,3374,5,214,0,0,3371,3373,3,604,302,0,3372,3371,1,0,0,0,3373,3376,1,0,0,0,3374,3372,1,0,0,0,3374,3375,1,0,0,0,3375,3377,1,0,0,0,3376,3374,1,0,0,0,3377,3379,5,216,0,0,3378,3369,1,0,0,0,3378,3370,1,0,0,0,3379,603,1,0,0,0,3380,3390,3,472,236,0,3381,3390,3,474,237,0,3382,3390,3,606,303,0,3383,3385,3,560,280,0,3384,3383,1,0,0,0,3384,3385,1,0,0,0,3385,3386,1,0,0,0,3386,3390,3,610,305,0,3387,3390,3,90,45,0,3388,3390,3,94,47,0,3389,3380,1,0,0,0,3389,3381,1,0,0,0,3389,3382,1,0,0,0,3389,3384,1,0,0,0,3389,3387,1,0,0,0,3389,3388,1,0,0,0,3390,605,1,0,0,0,3391,3392,3,80,40,0,3392,3393,3,608,304,0,3393,607,1,0,0,0,3394,3400,3,506,253,0,3395,3400,3,528,264,0,3396,3400,3,538,269,0,3397,3400,3,596,298,0,3398,3400,3,598,299,0,3399,3394,1,0,0,0,3399,3395,1,0,0,0,3399,3396,1,0,0,0,3399,3397,1,0,0,0,3399,3398,1,0,0,0,3400,609,1,0,0,0,3401,3402,3,80,40,0,3402,3403,3,612,306,0,3403,611,1,0,0,0,3404,3409,3,614,307,0,3405,3409,3,514,257,0,3406,3409,3,518,259,0,3407,3409,3,520,260,0,3408,3404,1,0,0,0,3408,3405,1,0,0,0,3408,3406,1,0,0,0,3408,3407,1,0,0,0,3409,613,1,0,0,0,3410,3411,5,56,0,0,3411,3412,3,496,248,0,3412,615,1,0,0,0,3413,3414,3,548,274,0,3414,3415,5,85,0,0,3415,3416,3,618,309,0,3416,3417,3,602,301,0,3417,617,1,0,0,0,3418,3420,3,498,249,0,3419,3418,1,0,0,0,3419,3420,1,0,0,0,3420,3422,1,0,0,0,3421,3423,3,396,198,0,3422,3421,1,0,0,0,3422,3423,1,0,0,0,3423,3426,1,0,0,0,3424,3425,5,36,0,0,3425,3427,3,620,310,0,3426,3424,1,0,0,0,3426,3427,1,0,0,0,3427,3430,1,0,0,0,3428,3430,3,620,310,0,3429,3419,1,0,0,0,3429,3428,1,0,0,0,3430,619,1,0,0,0,3431,3434,3,622,311,0,3432,3434,3,624,312,0,3433,3431,1,0,0,0,3433,3432,1,0,0,0,3434,621,1,0,0,0,3435,3436,3,626,313,0,3436,3437,5,154,0,0,3437,3438,3,626,313,0,3438,623,1,0,0,0,3439,3440,5,196,0,0,3440,3441,3,626,313,0,3441,3442,5,200,0,0,3442,3447,3,626,313,0,3443,3444,5,200,0,0,3444,3446,3,626,313,0,3445,3443,1,0,0,0,3446,3449,1,0,0,0,3447,3445,1,0,0,0,3447,3448,1,0,0,0,3448,3450,1,0,0,0,3449,3447,1,0,0,0,3450,3451,5,197,0,0,3451,625,1,0,0,0,3452,3453,3,628,314,0,3453,627,1,0,0,0,3454,3456,3,274,137,0,3455,3454,1,0,0,0,3455,3456,1,0,0,0,3456,3460,1,0,0,0,3457,3458,3,44,22,0,3458,3459,7,17,0,0,3459,3461,1,0,0,0,3460,3457,1,0,0,0,3460,3461,1,0,0,0,3461,3462,1,0,0,0,3462,3463,3,230,115,0,3463,629,1,0,0,0,3464,3465,3,540,270,0,3465,3466,5,10,0,0,3466,3467,5,45,0,0,3467,3468,3,462,231,0,3468,631,1,0,0,0,3469,3470,3,548,274,0,3470,3471,3,634,317,0,3471,3472,3,502,251,0,3472,633,1,0,0,0,3473,3475,5,10,0,0,3474,3476,3,498,249,0,3475,3474,1,0,0,0,3475,3476,1,0,0,0,3476,3479,1,0,0,0,3477,3478,5,9,0,0,3478,3480,3,590,295,0,3479,3477,1,0,0,0,3479,3480,1,0,0,0,3480,3484,1,0,0,0,3481,3482,5,9,0,0,3482,3484,3,590,295,0,3483,3473,1,0,0,0,3483,3481,1,0,0,0,3484,635,1,0,0,0,3485,3486,3,540,270,0,3486,3487,5,70,0,0,3487,3488,5,45,0,0,3488,3489,3,462,231,0,3489,637,1,0,0,0,3490,3491,3,548,274,0,3491,3492,5,99,0,0,3492,3493,3,640,320,0,3493,3494,3,466,233,0,3494,639,1,0,0,0,3495,3497,3,498,249,0,3496,3495,1,0,0,0,3496,3497,1,0,0,0,3497,3499,1,0,0,0,3498,3500,3,396,198,0,3499,3498,1,0,0,0,3499,3500,1,0,0,0,3500,3503,1,0,0,0,3501,3502,5,111,0,0,3502,3504,3,650,325,0,3503,3501,1,0,0,0,3503,3504,1,0,0,0,3504,3510,1,0,0,0,3505,3506,5,74,0,0,3506,3507,3,642,321,0,3507,3508,5,154,0,0,3508,3509,3,642,321,0,3509,3511,1,0,0,0,3510,3505,1,0,0,0,3510,3511,1,0,0,0,3511,3517,1,0,0,0,3512,3513,3,642,321,0,3513,3514,5,154,0,0,3514,3515,3,642,321,0,3515,3517,1,0,0,0,3516,3496,1,0,0,0,3516,3512,1,0,0,0,3517,641,1,0,0,0,3518,3519,3,644,322,0,3519,643,1,0,0,0,3520,3521,3,230,115,0,3521,645,1,0,0,0,3522,3523,3,548,274,0,3523,3524,5,70,0,0,3524,3525,3,378,189,0,3525,3526,3,466,233,0,3526,647,1,0,0,0,3527,3528,3,548,274,0,3528,3529,5,150,0,0,3529,3530,5,70,0,0,3530,3531,3,378,189,0,3531,3532,3,466,233,0,3532,649,1,0,0,0,3533,3534,3,652,326,0,3534,651,1,0,0,0,3535,3536,3,382,191,0,3536,653,1,0,0,0,3537,3540,3,92,46,0,3538,3540,3,656,328,0,3539,3537,1,0,0,0,3539,3538,1,0,0,0,3540,655,1,0,0,0,3541,3542,3,242,121,0,3542,3543,5,202,0,0,3543,3545,1,0,0,0,3544,3541,1,0,0,0,3545,3546,1,0,0,0,3546,3544,1,0,0,0,3546,3547,1,0,0,0,3547,3548,1,0,0,0,3548,3549,3,242,121,0,3549,3550,5,202,0,0,3550,657,1,0,0,0,3551,3552,3,540,270,0,3552,3553,5,4,0,0,3553,3554,5,45,0,0,3554,3555,3,464,232,0,3555,3556,3,660,330,0,3556,659,1,0,0,0,3557,3567,5,205,0,0,3558,3562,5,214,0,0,3559,3561,3,662,331,0,3560,3559,1,0,0,0,3561,3564,1,0,0,0,3562,3560,1,0,0,0,3562,3563,1,0,0,0,3563,3565,1,0,0,0,3564,3562,1,0,0,0,3565,3567,5,216,0,0,3566,3557,1,0,0,0,3566,3558,1,0,0,0,3567,661,1,0,0,0,3568,3588,3,664,332,0,3569,3573,3,668,334,0,3570,3572,3,672,336,0,3571,3570,1,0,0,0,3572,3575,1,0,0,0,3573,3571,1,0,0,0,3573,3574,1,0,0,0,3574,3588,1,0,0,0,3575,3573,1,0,0,0,3576,3578,3,560,280,0,3577,3576,1,0,0,0,3577,3578,1,0,0,0,3578,3579,1,0,0,0,3579,3583,3,666,333,0,3580,3582,3,672,336,0,3581,3580,1,0,0,0,3582,3585,1,0,0,0,3583,3581,1,0,0,0,3583,3584,1,0,0,0,3584,3588,1,0,0,0,3585,3583,1,0,0,0,3586,3588,3,674,337,0,3587,3568,1,0,0,0,3587,3569,1,0,0,0,3587,3577,1,0,0,0,3587,3586,1,0,0,0,3588,663,1,0,0,0,3589,3599,3,94,47,0,3590,3599,3,90,45,0,3591,3599,3,472,236,0,3592,3599,3,474,237,0,3593,3599,3,476,238,0,3594,3596,3,560,280,0,3595,3594,1,0,0,0,3595,3596,1,0,0,0,3596,3597,1,0,0,0,3597,3599,3,480,240,0,3598,3589,1,0,0,0,3598,3590,1,0,0,0,3598,3591,1,0,0,0,3598,3592,1,0,0,0,3598,3593,1,0,0,0,3598,3595,1,0,0,0,3599,665,1,0,0,0,3600,3603,3,670,335,0,3601,3603,3,482,241,0,3602,3600,1,0,0,0,3602,3601,1,0,0,0,3603,667,1,0,0,0,3604,3605,3,80,40,0,3605,3606,5,69,0,0,3606,3607,3,92,46,0,3607,3608,3,50,25,0,3608,669,1,0,0,0,3609,3610,3,80,40,0,3610,3611,3,684,342,0,3611,671,1,0,0,0,3612,3613,3,80,40,0,3613,3614,3,762,381,0,3614,673,1,0,0,0,3615,3616,3,80,40,0,3616,3617,3,770,385,0,3617,675,1,0,0,0,3618,3619,3,548,274,0,3619,3620,5,4,0,0,3620,3621,3,678,339,0,3621,3622,3,660,330,0,3622,677,1,0,0,0,3623,3625,3,498,249,0,3624,3623,1,0,0,0,3624,3625,1,0,0,0,3625,3627,1,0,0,0,3626,3628,3,396,198,0,3627,3626,1,0,0,0,3627,3628,1,0,0,0,3628,679,1,0,0,0,3629,3630,3,548,274,0,3630,3631,5,118,0,0,3631,3632,3,682,341,0,3632,3633,3,660,330,0,3633,681,1,0,0,0,3634,3636,3,230,115,0,3635,3637,3,200,100,0,3636,3635,1,0,0,0,3636,3637,1,0,0,0,3637,3643,1,0,0,0,3638,3640,5,4,0,0,3639,3641,3,498,249,0,3640,3639,1,0,0,0,3640,3641,1,0,0,0,3641,3643,1,0,0,0,3642,3634,1,0,0,0,3642,3638,1,0,0,0,3643,3645,1,0,0,0,3644,3646,3,396,198,0,3645,3644,1,0,0,0,3645,3646,1,0,0,0,3646,683,1,0,0,0,3647,3656,3,690,345,0,3648,3656,3,718,359,0,3649,3656,3,702,351,0,3650,3656,3,732,366,0,3651,3656,3,742,371,0,3652,3656,3,744,372,0,3653,3656,3,754,377,0,3654,3656,3,756,378,0,3655,3647,1,0,0,0,3655,3648,1,0,0,0,3655,3649,1,0,0,0,3655,3650,1,0,0,0,3655,3651,1,0,0,0,3655,3652,1,0,0,0,3655,3653,1,0,0,0,3655,3654,1,0,0,0,3656,685,1,0,0,0,3657,3659,5,4,0,0,3658,3660,3,498,249,0,3659,3658,1,0,0,0,3659,3660,1,0,0,0,3660,687,1,0,0,0,3661,3663,3,548,274,0,3662,3664,3,686,343,0,3663,3662,1,0,0,0,3663,3664,1,0,0,0,3664,689,1,0,0,0,3665,3670,3,694,347,0,3666,3670,3,696,348,0,3667,3670,3,698,349,0,3668,3670,3,700,350,0,3669,3665,1,0,0,0,3669,3666,1,0,0,0,3669,3667,1,0,0,0,3669,3668,1,0,0,0,3670,691,1,0,0,0,3671,3673,3,484,242,0,3672,3674,5,82,0,0,3673,3672,1,0,0,0,3673,3674,1,0,0,0,3674,3676,1,0,0,0,3675,3677,3,556,278,0,3676,3675,1,0,0,0,3676,3677,1,0,0,0,3677,3681,1,0,0,0,3678,3680,3,490,245,0,3679,3678,1,0,0,0,3680,3683,1,0,0,0,3681,3679,1,0,0,0,3681,3682,1,0,0,0,3682,693,1,0,0,0,3683,3681,1,0,0,0,3684,3685,3,692,346,0,3685,3687,5,98,0,0,3686,3688,3,498,249,0,3687,3686,1,0,0,0,3687,3688,1,0,0,0,3688,3689,1,0,0,0,3689,3690,3,660,330,0,3690,695,1,0,0,0,3691,3692,3,692,346,0,3692,3694,5,44,0,0,3693,3695,3,498,249,0,3694,3693,1,0,0,0,3694,3695,1,0,0,0,3695,3696,1,0,0,0,3696,3697,3,660,330,0,3697,697,1,0,0,0,3698,3699,3,692,346,0,3699,3701,5,92,0,0,3700,3702,3,498,249,0,3701,3700,1,0,0,0,3701,3702,1,0,0,0,3702,3703,1,0,0,0,3703,3704,3,660,330,0,3704,699,1,0,0,0,3705,3706,3,692,346,0,3706,3708,5,72,0,0,3707,3709,3,498,249,0,3708,3707,1,0,0,0,3708,3709,1,0,0,0,3709,3710,1,0,0,0,3710,3711,3,660,330,0,3711,701,1,0,0,0,3712,3713,3,548,274,0,3713,3714,3,704,352,0,3714,3715,3,660,330,0,3715,703,1,0,0,0,3716,3718,3,686,343,0,3717,3716,1,0,0,0,3717,3718,1,0,0,0,3718,3719,1,0,0,0,3719,3720,5,3,0,0,3720,3721,3,706,353,0,3721,705,1,0,0,0,3722,3725,3,708,354,0,3723,3724,5,168,0,0,3724,3726,3,724,362,0,3725,3723,1,0,0,0,3725,3726,1,0,0,0,3726,707,1,0,0,0,3727,3728,3,710,355,0,3728,709,1,0,0,0,3729,3738,3,382,191,0,3730,3732,3,48,24,0,3731,3730,1,0,0,0,3731,3732,1,0,0,0,3732,3734,1,0,0,0,3733,3735,3,384,192,0,3734,3733,1,0,0,0,3734,3735,1,0,0,0,3735,3736,1,0,0,0,3736,3738,3,712,356,0,3737,3729,1,0,0,0,3737,3731,1,0,0,0,3738,711,1,0,0,0,3739,3740,3,714,357,0,3740,713,1,0,0,0,3741,3742,3,716,358,0,3742,715,1,0,0,0,3743,3744,7,25,0,0,3744,3748,3,40,20,0,3745,3746,5,171,0,0,3746,3748,3,42,21,0,3747,3743,1,0,0,0,3747,3745,1,0,0,0,3748,717,1,0,0,0,3749,3752,3,548,274,0,3750,3753,3,686,343,0,3751,3753,3,678,339,0,3752,3750,1,0,0,0,3752,3751,1,0,0,0,3753,3754,1,0,0,0,3754,3763,5,136,0,0,3755,3757,3,724,362,0,3756,3758,3,722,361,0,3757,3756,1,0,0,0,3757,3758,1,0,0,0,3758,3764,1,0,0,0,3759,3761,3,730,365,0,3760,3762,3,722,361,0,3761,3760,1,0,0,0,3761,3762,1,0,0,0,3762,3764,1,0,0,0,3763,3755,1,0,0,0,3763,3759,1,0,0,0,3764,3765,1,0,0,0,3765,3766,3,660,330,0,3766,719,1,0,0,0,3767,3769,3,686,343,0,3768,3767,1,0,0,0,3768,3769,1,0,0,0,3769,3770,1,0,0,0,3770,3771,5,136,0,0,3771,3773,3,724,362,0,3772,3774,3,722,361,0,3773,3772,1,0,0,0,3773,3774,1,0,0,0,3774,721,1,0,0,0,3775,3776,5,168,0,0,3776,3779,3,724,362,0,3777,3778,5,154,0,0,3778,3780,3,724,362,0,3779,3777,1,0,0,0,3779,3780,1,0,0,0,3780,3786,1,0,0,0,3781,3782,3,730,365,0,3782,3783,5,154,0,0,3783,3784,3,724,362,0,3784,3786,1,0,0,0,3785,3775,1,0,0,0,3785,3781,1,0,0,0,3786,723,1,0,0,0,3787,3788,3,726,363,0,3788,725,1,0,0,0,3789,3790,3,728,364,0,3790,727,1,0,0,0,3791,3792,3,0,0,0,3792,729,1,0,0,0,3793,3794,3,986,493,0,3794,731,1,0,0,0,3795,3796,3,548,274,0,3796,3797,3,734,367,0,3797,3798,3,660,330,0,3798,733,1,0,0,0,3799,3801,3,686,343,0,3800,3799,1,0,0,0,3800,3801,1,0,0,0,3801,3802,1,0,0,0,3802,3803,5,15,0,0,3803,3804,3,736,368,0,3804,3805,3,342,171,0,3805,3806,5,184,0,0,3806,3807,3,724,362,0,3807,735,1,0,0,0,3808,3809,3,738,369,0,3809,737,1,0,0,0,3810,3811,3,740,370,0,3811,3812,5,202,0,0,3812,3814,1,0,0,0,3813,3810,1,0,0,0,3813,3814,1,0,0,0,3814,739,1,0,0,0,3815,3816,3,990,495,0,3816,741,1,0,0,0,3817,3819,3,548,274,0,3818,3820,3,686,343,0,3819,3818,1,0,0,0,3819,3820,1,0,0,0,3820,3821,1,0,0,0,3821,3823,5,151,0,0,3822,3824,3,724,362,0,3823,3822,1,0,0,0,3823,3824,1,0,0,0,3824,3825,1,0,0,0,3825,3826,3,660,330,0,3826,743,1,0,0,0,3827,3828,3,688,344,0,3828,3829,5,77,0,0,3829,3830,3,746,373,0,3830,3836,3,748,374,0,3831,3834,5,55,0,0,3832,3835,3,748,374,0,3833,3835,3,752,376,0,3834,3832,1,0,0,0,3834,3833,1,0,0,0,3835,3837,1,0,0,0,3836,3831,1,0,0,0,3836,3837,1,0,0,0,3837,745,1,0,0,0,3838,3839,3,0,0,0,3839,747,1,0,0,0,3840,3841,3,750,375,0,3841,749,1,0,0,0,3842,3844,5,4,0,0,3843,3845,3,498,249,0,3844,3843,1,0,0,0,3844,3845,1,0,0,0,3845,3847,1,0,0,0,3846,3842,1,0,0,0,3846,3847,1,0,0,0,3847,3848,1,0,0,0,3848,3852,5,214,0,0,3849,3851,3,662,331,0,3850,3849,1,0,0,0,3851,3854,1,0,0,0,3852,3850,1,0,0,0,3852,3853,1,0,0,0,3853,3855,1,0,0,0,3854,3852,1,0,0,0,3855,3856,5,216,0,0,3856,751,1,0,0,0,3857,3858,3,744,372,0,3858,753,1,0,0,0,3859,3864,3,688,344,0,3860,3861,5,172,0,0,3861,3865,3,746,373,0,3862,3863,5,96,0,0,3863,3865,3,730,365,0,3864,3860,1,0,0,0,3864,3862,1,0,0,0,3865,3866,1,0,0,0,3866,3871,3,748,374,0,3867,3868,5,161,0,0,3868,3869,3,746,373,0,3869,3870,5,205,0,0,3870,3872,1,0,0,0,3871,3867,1,0,0,0,3871,3872,1,0,0,0,3872,755,1,0,0,0,3873,3874,3,688,344,0,3874,3875,5,71,0,0,3875,3876,3,758,379,0,3876,3877,5,80,0,0,3877,3878,3,724,362,0,3878,3879,3,748,374,0,3879,757,1,0,0,0,3880,3882,3,498,249,0,3881,3880,1,0,0,0,3881,3882,1,0,0,0,3882,759,1,0,0,0,3883,3885,3,498,249,0,3884,3883,1,0,0,0,3884,3885,1,0,0,0,3885,761,1,0,0,0,3886,3890,3,764,382,0,3887,3890,3,766,383,0,3888,3890,3,768,384,0,3889,3886,1,0,0,0,3889,3887,1,0,0,0,3889,3888,1,0,0,0,3890,3891,1,0,0,0,3891,3892,3,502,251,0,3892,763,1,0,0,0,3893,3894,3,564,282,0,3894,3895,5,152,0,0,3895,3896,3,270,135,0,3896,765,1,0,0,0,3897,3898,3,814,407,0,3898,3899,5,152,0,0,3899,3900,3,828,414,0,3900,767,1,0,0,0,3901,3902,5,55,0,0,3902,3903,3,828,414,0,3903,769,1,0,0,0,3904,3906,5,150,0,0,3905,3907,3,498,249,0,3906,3905,1,0,0,0,3906,3907,1,0,0,0,3907,3909,1,0,0,0,3908,3904,1,0,0,0,3908,3909,1,0,0,0,3909,3910,1,0,0,0,3910,3911,5,69,0,0,3911,3912,3,342,171,0,3912,3913,3,814,407,0,3913,3914,5,152,0,0,3914,3915,3,828,414,0,3915,3916,3,502,251,0,3916,771,1,0,0,0,3917,3918,3,540,270,0,3918,3919,5,142,0,0,3919,3920,5,45,0,0,3920,3921,3,464,232,0,3921,3922,3,774,387,0,3922,773,1,0,0,0,3923,3936,5,205,0,0,3924,3926,5,116,0,0,3925,3924,1,0,0,0,3925,3926,1,0,0,0,3926,3927,1,0,0,0,3927,3931,5,214,0,0,3928,3930,3,776,388,0,3929,3928,1,0,0,0,3930,3933,1,0,0,0,3931,3929,1,0,0,0,3931,3932,1,0,0,0,3932,3934,1,0,0,0,3933,3931,1,0,0,0,3934,3936,5,216,0,0,3935,3923,1,0,0,0,3935,3925,1,0,0,0,3936,775,1,0,0,0,3937,3959,3,664,332,0,3938,3940,3,560,280,0,3939,3938,1,0,0,0,3939,3940,1,0,0,0,3940,3941,1,0,0,0,3941,3945,3,482,241,0,3942,3944,3,798,399,0,3943,3942,1,0,0,0,3944,3947,1,0,0,0,3945,3943,1,0,0,0,3945,3946,1,0,0,0,3946,3959,1,0,0,0,3947,3945,1,0,0,0,3948,3959,3,796,398,0,3949,3953,3,778,389,0,3950,3952,3,784,392,0,3951,3950,1,0,0,0,3952,3955,1,0,0,0,3953,3951,1,0,0,0,3953,3954,1,0,0,0,3954,3959,1,0,0,0,3955,3953,1,0,0,0,3956,3959,3,780,390,0,3957,3959,3,782,391,0,3958,3937,1,0,0,0,3958,3939,1,0,0,0,3958,3948,1,0,0,0,3958,3949,1,0,0,0,3958,3956,1,0,0,0,3958,3957,1,0,0,0,3959,777,1,0,0,0,3960,3961,3,80,40,0,3961,3962,5,57,0,0,3962,3963,3,786,393,0,3963,779,1,0,0,0,3964,3965,3,80,40,0,3965,3966,5,53,0,0,3966,3967,3,786,393,0,3967,781,1,0,0,0,3968,3969,3,80,40,0,3969,3970,5,61,0,0,3970,3971,3,786,393,0,3971,783,1,0,0,0,3972,3976,3,80,40,0,3973,3977,3,766,383,0,3974,3975,5,152,0,0,3975,3977,3,828,414,0,3976,3973,1,0,0,0,3976,3974,1,0,0,0,3977,3978,1,0,0,0,3978,3979,5,205,0,0,3979,785,1,0,0,0,3980,3981,3,980,490,0,3981,3982,5,205,0,0,3982,3988,1,0,0,0,3983,3988,3,788,394,0,3984,3988,3,790,395,0,3985,3988,3,792,396,0,3986,3988,3,794,397,0,3987,3980,1,0,0,0,3987,3983,1,0,0,0,3987,3984,1,0,0,0,3987,3985,1,0,0,0,3987,3986,1,0,0,0,3988,787,1,0,0,0,3989,3990,3,682,341,0,3990,3991,3,660,330,0,3991,789,1,0,0,0,3992,3993,3,704,352,0,3993,3994,3,660,330,0,3994,791,1,0,0,0,3995,3996,3,720,360,0,3996,3997,3,660,330,0,3997,793,1,0,0,0,3998,3999,3,734,367,0,3999,4e3,3,660,330,0,4e3,795,1,0,0,0,4001,4002,3,80,40,0,4002,4003,3,806,403,0,4003,797,1,0,0,0,4004,4005,3,80,40,0,4005,4006,3,808,404,0,4006,799,1,0,0,0,4007,4008,3,548,274,0,4008,4009,5,142,0,0,4009,4010,3,678,339,0,4010,4011,3,802,401,0,4011,801,1,0,0,0,4012,4025,5,205,0,0,4013,4015,5,116,0,0,4014,4013,1,0,0,0,4014,4015,1,0,0,0,4015,4016,1,0,0,0,4016,4020,5,214,0,0,4017,4019,3,776,388,0,4018,4017,1,0,0,0,4019,4022,1,0,0,0,4020,4018,1,0,0,0,4020,4021,1,0,0,0,4021,4023,1,0,0,0,4022,4020,1,0,0,0,4023,4025,5,216,0,0,4024,4012,1,0,0,0,4024,4014,1,0,0,0,4025,803,1,0,0,0,4026,4027,3,548,274,0,4027,4036,5,60,0,0,4028,4030,3,230,115,0,4029,4031,3,200,100,0,4030,4029,1,0,0,0,4030,4031,1,0,0,0,4031,4037,1,0,0,0,4032,4034,5,142,0,0,4033,4035,3,498,249,0,4034,4033,1,0,0,0,4034,4035,1,0,0,0,4035,4037,1,0,0,0,4036,4028,1,0,0,0,4036,4032,1,0,0,0,4037,4039,1,0,0,0,4038,4040,3,396,198,0,4039,4038,1,0,0,0,4039,4040,1,0,0,0,4040,4041,1,0,0,0,4041,4042,3,802,401,0,4042,805,1,0,0,0,4043,4048,5,155,0,0,4044,4046,3,498,249,0,4045,4044,1,0,0,0,4045,4046,1,0,0,0,4046,4047,1,0,0,0,4047,4049,5,69,0,0,4048,4045,1,0,0,0,4048,4049,1,0,0,0,4049,4050,1,0,0,0,4050,4051,3,342,171,0,4051,4055,3,730,365,0,4052,4053,3,730,365,0,4053,4054,3,810,405,0,4054,4056,1,0,0,0,4055,4052,1,0,0,0,4055,4056,1,0,0,0,4056,4058,1,0,0,0,4057,4059,3,814,407,0,4058,4057,1,0,0,0,4058,4059,1,0,0,0,4059,4061,1,0,0,0,4060,4062,3,816,408,0,4061,4060,1,0,0,0,4061,4062,1,0,0,0,4062,4063,1,0,0,0,4063,4064,5,152,0,0,4064,4065,3,828,414,0,4065,4066,3,660,330,0,4066,807,1,0,0,0,4067,4092,3,730,365,0,4068,4072,5,155,0,0,4069,4070,3,730,365,0,4070,4071,3,810,405,0,4071,4073,1,0,0,0,4072,4069,1,0,0,0,4072,4073,1,0,0,0,4073,4075,1,0,0,0,4074,4076,3,814,407,0,4075,4074,1,0,0,0,4075,4076,1,0,0,0,4076,4078,1,0,0,0,4077,4079,3,816,408,0,4078,4077,1,0,0,0,4078,4079,1,0,0,0,4079,4093,1,0,0,0,4080,4081,3,730,365,0,4081,4083,3,810,405,0,4082,4084,3,814,407,0,4083,4082,1,0,0,0,4083,4084,1,0,0,0,4084,4086,1,0,0,0,4085,4087,3,816,408,0,4086,4085,1,0,0,0,4086,4087,1,0,0,0,4087,4093,1,0,0,0,4088,4090,3,814,407,0,4089,4091,3,816,408,0,4090,4089,1,0,0,0,4090,4091,1,0,0,0,4091,4093,1,0,0,0,4092,4068,1,0,0,0,4092,4080,1,0,0,0,4092,4088,1,0,0,0,4092,4093,1,0,0,0,4093,4094,1,0,0,0,4094,4095,5,152,0,0,4095,4096,3,828,414,0,4096,4097,3,660,330,0,4097,809,1,0,0,0,4098,4099,5,3,0,0,4099,4100,3,812,406,0,4100,811,1,0,0,0,4101,4102,3,706,353,0,4102,813,1,0,0,0,4103,4104,5,77,0,0,4104,4105,3,0,0,0,4105,815,1,0,0,0,4106,4107,5,53,0,0,4107,4108,3,818,409,0,4108,817,1,0,0,0,4109,4115,3,980,490,0,4110,4115,3,820,410,0,4111,4115,3,822,411,0,4112,4115,3,824,412,0,4113,4115,3,826,413,0,4114,4109,1,0,0,0,4114,4110,1,0,0,0,4114,4111,1,0,0,0,4114,4112,1,0,0,0,4114,4113,1,0,0,0,4115,819,1,0,0,0,4116,4125,3,682,341,0,4117,4121,5,214,0,0,4118,4120,3,662,331,0,4119,4118,1,0,0,0,4120,4123,1,0,0,0,4121,4119,1,0,0,0,4121,4122,1,0,0,0,4122,4124,1,0,0,0,4123,4121,1,0,0,0,4124,4126,5,216,0,0,4125,4117,1,0,0,0,4125,4126,1,0,0,0,4126,821,1,0,0,0,4127,4136,3,704,352,0,4128,4132,5,214,0,0,4129,4131,3,662,331,0,4130,4129,1,0,0,0,4131,4134,1,0,0,0,4132,4130,1,0,0,0,4132,4133,1,0,0,0,4133,4135,1,0,0,0,4134,4132,1,0,0,0,4135,4137,5,216,0,0,4136,4128,1,0,0,0,4136,4137,1,0,0,0,4137,823,1,0,0,0,4138,4147,3,720,360,0,4139,4143,5,214,0,0,4140,4142,3,662,331,0,4141,4140,1,0,0,0,4142,4145,1,0,0,0,4143,4141,1,0,0,0,4143,4144,1,0,0,0,4144,4146,1,0,0,0,4145,4143,1,0,0,0,4146,4148,5,216,0,0,4147,4139,1,0,0,0,4147,4148,1,0,0,0,4148,825,1,0,0,0,4149,4158,3,734,367,0,4150,4154,5,214,0,0,4151,4153,3,662,331,0,4152,4151,1,0,0,0,4153,4156,1,0,0,0,4154,4152,1,0,0,0,4154,4155,1,0,0,0,4155,4157,1,0,0,0,4156,4154,1,0,0,0,4157,4159,5,216,0,0,4158,4150,1,0,0,0,4158,4159,1,0,0,0,4159,827,1,0,0,0,4160,4161,3,830,415,0,4161,829,1,0,0,0,4162,4163,3,832,416,0,4163,4164,3,270,135,0,4164,831,1,0,0,0,4165,4166,3,982,491,0,4166,833,1,0,0,0,4167,4168,3,540,270,0,4168,4169,5,25,0,0,4169,4170,5,45,0,0,4170,4171,3,464,232,0,4171,4172,3,838,419,0,4172,835,1,0,0,0,4173,4174,3,548,274,0,4174,4175,5,25,0,0,4175,4176,3,678,339,0,4176,4177,3,838,419,0,4177,837,1,0,0,0,4178,4184,5,205,0,0,4179,4180,5,214,0,0,4180,4181,3,840,420,0,4181,4182,5,216,0,0,4182,4184,1,0,0,0,4183,4178,1,0,0,0,4183,4179,1,0,0,0,4184,839,1,0,0,0,4185,4187,3,842,421,0,4186,4185,1,0,0,0,4187,4190,1,0,0,0,4188,4186,1,0,0,0,4188,4189,1,0,0,0,4189,4192,1,0,0,0,4190,4188,1,0,0,0,4191,4193,3,298,149,0,4192,4191,1,0,0,0,4192,4193,1,0,0,0,4193,841,1,0,0,0,4194,4197,3,662,331,0,4195,4197,3,844,422,0,4196,4194,1,0,0,0,4196,4195,1,0,0,0,4197,843,1,0,0,0,4198,4199,3,80,40,0,4199,4200,5,134,0,0,4200,4201,3,454,227,0,4201,845,1,0,0,0,4202,4203,3,540,270,0,4203,4204,5,41,0,0,4204,4205,5,45,0,0,4205,4206,3,464,232,0,4206,4207,3,838,419,0,4207,847,1,0,0,0,4208,4209,3,548,274,0,4209,4210,5,41,0,0,4210,4211,3,852,426,0,4211,4212,3,838,419,0,4212,849,1,0,0,0,4213,4214,3,548,274,0,4214,4216,5,14,0,0,4215,4217,5,107,0,0,4216,4215,1,0,0,0,4216,4217,1,0,0,0,4217,4224,1,0,0,0,4218,4220,3,230,115,0,4219,4221,3,200,100,0,4220,4219,1,0,0,0,4220,4221,1,0,0,0,4221,4225,1,0,0,0,4222,4223,5,41,0,0,4223,4225,3,852,426,0,4224,4218,1,0,0,0,4224,4222,1,0,0,0,4225,4226,1,0,0,0,4226,4227,3,838,419,0,4227,851,1,0,0,0,4228,4230,3,498,249,0,4229,4228,1,0,0,0,4229,4230,1,0,0,0,4230,4232,1,0,0,0,4231,4233,3,396,198,0,4232,4231,1,0,0,0,4232,4233,1,0,0,0,4233,853,1,0,0,0,4234,4235,3,540,270,0,4235,4236,5,133,0,0,4236,4237,5,45,0,0,4237,4238,3,464,232,0,4238,4239,3,856,428,0,4239,855,1,0,0,0,4240,4250,5,205,0,0,4241,4245,5,214,0,0,4242,4244,3,858,429,0,4243,4242,1,0,0,0,4244,4247,1,0,0,0,4245,4243,1,0,0,0,4245,4246,1,0,0,0,4246,4248,1,0,0,0,4247,4245,1,0,0,0,4248,4250,5,216,0,0,4249,4240,1,0,0,0,4249,4241,1,0,0,0,4250,857,1,0,0,0,4251,4259,3,468,234,0,4252,4259,3,860,430,0,4253,4259,3,864,432,0,4254,4259,3,870,435,0,4255,4259,3,918,459,0,4256,4259,3,874,437,0,4257,4259,3,878,439,0,4258,4251,1,0,0,0,4258,4252,1,0,0,0,4258,4253,1,0,0,0,4258,4254,1,0,0,0,4258,4255,1,0,0,0,4258,4256,1,0,0,0,4258,4257,1,0,0,0,4259,859,1,0,0,0,4260,4261,3,80,40,0,4261,4262,3,862,431,0,4262,861,1,0,0,0,4263,4267,5,146,0,0,4264,4266,3,490,245,0,4265,4264,1,0,0,0,4266,4269,1,0,0,0,4267,4265,1,0,0,0,4267,4268,1,0,0,0,4268,4270,1,0,0,0,4269,4267,1,0,0,0,4270,4271,3,496,248,0,4271,863,1,0,0,0,4272,4273,3,80,40,0,4273,4274,3,866,433,0,4274,4275,3,868,434,0,4275,865,1,0,0,0,4276,4277,7,26,0,0,4277,867,1,0,0,0,4278,4280,3,230,115,0,4279,4281,3,200,100,0,4280,4279,1,0,0,0,4280,4281,1,0,0,0,4281,4282,1,0,0,0,4282,4283,3,856,428,0,4283,4302,1,0,0,0,4284,4286,3,490,245,0,4285,4284,1,0,0,0,4286,4289,1,0,0,0,4287,4285,1,0,0,0,4287,4288,1,0,0,0,4288,4290,1,0,0,0,4289,4287,1,0,0,0,4290,4297,5,41,0,0,4291,4293,3,490,245,0,4292,4291,1,0,0,0,4293,4294,1,0,0,0,4294,4292,1,0,0,0,4294,4295,1,0,0,0,4295,4297,1,0,0,0,4296,4287,1,0,0,0,4296,4292,1,0,0,0,4297,4298,1,0,0,0,4298,4299,3,852,426,0,4299,4300,3,838,419,0,4300,4302,1,0,0,0,4301,4278,1,0,0,0,4301,4296,1,0,0,0,4302,869,1,0,0,0,4303,4304,3,80,40,0,4304,4305,5,73,0,0,4305,4306,3,872,436,0,4306,871,1,0,0,0,4307,4309,3,230,115,0,4308,4310,3,200,100,0,4309,4308,1,0,0,0,4309,4310,1,0,0,0,4310,4311,1,0,0,0,4311,4312,3,838,419,0,4312,4331,1,0,0,0,4313,4315,3,490,245,0,4314,4313,1,0,0,0,4315,4318,1,0,0,0,4316,4314,1,0,0,0,4316,4317,1,0,0,0,4317,4319,1,0,0,0,4318,4316,1,0,0,0,4319,4326,5,32,0,0,4320,4322,3,490,245,0,4321,4320,1,0,0,0,4322,4323,1,0,0,0,4323,4321,1,0,0,0,4323,4324,1,0,0,0,4324,4326,1,0,0,0,4325,4316,1,0,0,0,4325,4321,1,0,0,0,4326,4327,1,0,0,0,4327,4328,3,978,489,0,4328,4329,3,838,419,0,4329,4331,1,0,0,0,4330,4307,1,0,0,0,4330,4325,1,0,0,0,4331,873,1,0,0,0,4332,4333,3,80,40,0,4333,4334,3,876,438,0,4334,875,1,0,0,0,4335,4339,5,5,0,0,4336,4338,3,490,245,0,4337,4336,1,0,0,0,4338,4341,1,0,0,0,4339,4337,1,0,0,0,4339,4340,1,0,0,0,4340,4342,1,0,0,0,4341,4339,1,0,0,0,4342,4343,3,496,248,0,4343,877,1,0,0,0,4344,4345,3,80,40,0,4345,4346,3,880,440,0,4346,879,1,0,0,0,4347,4351,5,140,0,0,4348,4350,3,490,245,0,4349,4348,1,0,0,0,4350,4353,1,0,0,0,4351,4349,1,0,0,0,4351,4352,1,0,0,0,4352,4354,1,0,0,0,4353,4351,1,0,0,0,4354,4355,3,496,248,0,4355,881,1,0,0,0,4356,4357,3,548,274,0,4357,4358,5,133,0,0,4358,4359,3,852,426,0,4359,4360,3,856,428,0,4360,883,1,0,0,0,4361,4367,3,548,274,0,4362,4364,5,14,0,0,4363,4365,5,107,0,0,4364,4363,1,0,0,0,4364,4365,1,0,0,0,4365,4368,1,0,0,0,4366,4368,5,107,0,0,4367,4362,1,0,0,0,4367,4366,1,0,0,0,4367,4368,1,0,0,0,4368,4369,1,0,0,0,4369,4378,5,135,0,0,4370,4372,3,230,115,0,4371,4373,3,200,100,0,4372,4371,1,0,0,0,4372,4373,1,0,0,0,4373,4379,1,0,0,0,4374,4376,5,133,0,0,4375,4377,3,498,249,0,4376,4375,1,0,0,0,4376,4377,1,0,0,0,4377,4379,1,0,0,0,4378,4370,1,0,0,0,4378,4374,1,0,0,0,4379,4381,1,0,0,0,4380,4382,3,396,198,0,4381,4380,1,0,0,0,4381,4382,1,0,0,0,4382,4385,1,0,0,0,4383,4384,5,24,0,0,4384,4386,3,886,443,0,4385,4383,1,0,0,0,4385,4386,1,0,0,0,4386,4387,1,0,0,0,4387,4388,3,856,428,0,4388,885,1,0,0,0,4389,4390,3,888,444,0,4390,887,1,0,0,0,4391,4392,3,890,445,0,4392,889,1,0,0,0,4393,4394,3,892,446,0,4394,891,1,0,0,0,4395,4396,3,342,171,0,4396,893,1,0,0,0,4397,4398,3,540,270,0,4398,4399,5,32,0,0,4399,4400,5,45,0,0,4400,4401,3,464,232,0,4401,4402,3,856,428,0,4402,895,1,0,0,0,4403,4404,3,548,274,0,4404,4405,5,32,0,0,4405,4406,3,852,426,0,4406,4407,3,856,428,0,4407,897,1,0,0,0,4408,4409,3,540,270,0,4409,4410,5,26,0,0,4410,4411,5,45,0,0,4411,4412,3,464,232,0,4412,4413,3,902,451,0,4413,899,1,0,0,0,4414,4415,3,548,274,0,4415,4416,5,26,0,0,4416,4417,3,852,426,0,4417,4418,3,902,451,0,4418,901,1,0,0,0,4419,4432,5,205,0,0,4420,4424,5,214,0,0,4421,4423,3,904,452,0,4422,4421,1,0,0,0,4423,4426,1,0,0,0,4424,4422,1,0,0,0,4424,4425,1,0,0,0,4425,4428,1,0,0,0,4426,4424,1,0,0,0,4427,4429,3,298,149,0,4428,4427,1,0,0,0,4428,4429,1,0,0,0,4429,4430,1,0,0,0,4430,4432,5,216,0,0,4431,4419,1,0,0,0,4431,4420,1,0,0,0,4432,903,1,0,0,0,4433,4439,3,662,331,0,4434,4439,3,844,422,0,4435,4439,3,860,430,0,4436,4439,3,874,437,0,4437,4439,3,906,453,0,4438,4433,1,0,0,0,4438,4434,1,0,0,0,4438,4435,1,0,0,0,4438,4436,1,0,0,0,4438,4437,1,0,0,0,4439,905,1,0,0,0,4440,4441,3,80,40,0,4441,4442,5,109,0,0,4442,4443,3,908,454,0,4443,907,1,0,0,0,4444,4446,3,490,245,0,4445,4444,1,0,0,0,4446,4449,1,0,0,0,4447,4445,1,0,0,0,4447,4448,1,0,0,0,4448,4450,1,0,0,0,4449,4447,1,0,0,0,4450,4451,3,852,426,0,4451,4452,3,856,428,0,4452,909,1,0,0,0,4453,4454,3,540,270,0,4454,4455,5,11,0,0,4455,4456,5,45,0,0,4456,4457,3,464,232,0,4457,4458,3,902,451,0,4458,911,1,0,0,0,4459,4460,3,548,274,0,4460,4461,5,11,0,0,4461,4462,3,852,426,0,4462,4463,3,902,451,0,4463,913,1,0,0,0,4464,4465,3,540,270,0,4465,4466,5,166,0,0,4466,4467,5,45,0,0,4467,4468,3,464,232,0,4468,4469,3,902,451,0,4469,915,1,0,0,0,4470,4471,3,548,274,0,4471,4472,5,166,0,0,4472,4473,3,852,426,0,4473,4474,3,902,451,0,4474,917,1,0,0,0,4475,4476,3,80,40,0,4476,4477,5,167,0,0,4477,4478,3,920,460,0,4478,919,1,0,0,0,4479,4483,3,230,115,0,4480,4482,3,204,102,0,4481,4480,1,0,0,0,4482,4485,1,0,0,0,4483,4481,1,0,0,0,4483,4484,1,0,0,0,4484,4486,1,0,0,0,4485,4483,1,0,0,0,4486,4487,3,856,428,0,4487,4506,1,0,0,0,4488,4490,3,490,245,0,4489,4488,1,0,0,0,4490,4493,1,0,0,0,4491,4489,1,0,0,0,4491,4492,1,0,0,0,4492,4494,1,0,0,0,4493,4491,1,0,0,0,4494,4501,5,133,0,0,4495,4497,3,490,245,0,4496,4495,1,0,0,0,4497,4498,1,0,0,0,4498,4496,1,0,0,0,4498,4499,1,0,0,0,4499,4501,1,0,0,0,4500,4491,1,0,0,0,4500,4496,1,0,0,0,4501,4502,1,0,0,0,4502,4503,3,852,426,0,4503,4504,3,856,428,0,4504,4506,1,0,0,0,4505,4479,1,0,0,0,4505,4500,1,0,0,0,4506,921,1,0,0,0,4507,4508,3,540,270,0,4508,4509,5,162,0,0,4509,4510,5,26,0,0,4510,4511,5,45,0,0,4511,4512,3,464,232,0,4512,4513,3,902,451,0,4513,923,1,0,0,0,4514,4515,3,548,274,0,4515,4516,5,162,0,0,4516,4517,5,26,0,0,4517,4518,3,852,426,0,4518,4519,3,902,451,0,4519,925,1,0,0,0,4520,4521,3,548,274,0,4521,4531,5,81,0,0,4522,4524,3,230,115,0,4523,4525,3,200,100,0,4524,4523,1,0,0,0,4524,4525,1,0,0,0,4525,4532,1,0,0,0,4526,4527,5,162,0,0,4527,4529,5,26,0,0,4528,4530,3,498,249,0,4529,4528,1,0,0,0,4529,4530,1,0,0,0,4530,4532,1,0,0,0,4531,4522,1,0,0,0,4531,4526,1,0,0,0,4532,4534,1,0,0,0,4533,4535,3,396,198,0,4534,4533,1,0,0,0,4534,4535,1,0,0,0,4535,4536,1,0,0,0,4536,4537,3,902,451,0,4537,927,1,0,0,0,4538,4539,3,540,270,0,4539,4540,5,169,0,0,4540,4541,5,45,0,0,4541,4542,3,464,232,0,4542,4543,3,930,465,0,4543,929,1,0,0,0,4544,4554,5,205,0,0,4545,4549,5,214,0,0,4546,4548,3,932,466,0,4547,4546,1,0,0,0,4548,4551,1,0,0,0,4549,4547,1,0,0,0,4549,4550,1,0,0,0,4550,4552,1,0,0,0,4551,4549,1,0,0,0,4552,4554,5,216,0,0,4553,4544,1,0,0,0,4553,4545,1,0,0,0,4554,931,1,0,0,0,4555,4559,3,468,234,0,4556,4559,3,442,221,0,4557,4559,3,934,467,0,4558,4555,1,0,0,0,4558,4556,1,0,0,0,4558,4557,1,0,0,0,4559,933,1,0,0,0,4560,4561,3,80,40,0,4561,4562,5,129,0,0,4562,4563,3,936,468,0,4563,935,1,0,0,0,4564,4566,3,230,115,0,4565,4567,3,200,100,0,4566,4565,1,0,0,0,4566,4567,1,0,0,0,4567,4568,1,0,0,0,4568,4569,3,502,251,0,4569,4586,1,0,0,0,4570,4572,3,490,245,0,4571,4570,1,0,0,0,4572,4575,1,0,0,0,4573,4571,1,0,0,0,4573,4574,1,0,0,0,4574,4576,1,0,0,0,4575,4573,1,0,0,0,4576,4583,5,130,0,0,4577,4579,3,490,245,0,4578,4577,1,0,0,0,4579,4580,1,0,0,0,4580,4578,1,0,0,0,4580,4581,1,0,0,0,4581,4583,1,0,0,0,4582,4573,1,0,0,0,4582,4578,1,0,0,0,4583,4584,1,0,0,0,4584,4586,3,496,248,0,4585,4564,1,0,0,0,4585,4582,1,0,0,0,4586,937,1,0,0,0,4587,4588,3,548,274,0,4588,4590,5,169,0,0,4589,4591,3,498,249,0,4590,4589,1,0,0,0,4590,4591,1,0,0,0,4591,4593,1,0,0,0,4592,4594,3,396,198,0,4593,4592,1,0,0,0,4593,4594,1,0,0,0,4594,4595,1,0,0,0,4595,4596,3,940,470,0,4596,939,1,0,0,0,4597,4607,5,205,0,0,4598,4602,5,214,0,0,4599,4601,3,942,471,0,4600,4599,1,0,0,0,4601,4604,1,0,0,0,4602,4600,1,0,0,0,4602,4603,1,0,0,0,4603,4605,1,0,0,0,4604,4602,1,0,0,0,4605,4607,5,216,0,0,4606,4597,1,0,0,0,4606,4598,1,0,0,0,4607,941,1,0,0,0,4608,4613,3,468,234,0,4609,4613,3,442,221,0,4610,4613,3,934,467,0,4611,4613,3,944,472,0,4612,4608,1,0,0,0,4612,4609,1,0,0,0,4612,4610,1,0,0,0,4612,4611,1,0,0,0,4613,943,1,0,0,0,4614,4617,5,62,0,0,4615,4618,3,946,473,0,4616,4618,3,948,474,0,4617,4615,1,0,0,0,4617,4616,1,0,0,0,4618,4619,1,0,0,0,4619,4620,3,50,25,0,4620,945,1,0,0,0,4621,4622,3,98,49,0,4622,947,1,0,0,0,4623,4624,3,100,50,0,4624,949,1,0,0,0,4625,4626,3,540,270,0,4626,4627,5,170,0,0,4627,4628,5,45,0,0,4628,4629,3,464,232,0,4629,4630,3,856,428,0,4630,951,1,0,0,0,4631,4632,3,548,274,0,4632,4633,5,170,0,0,4633,4634,3,852,426,0,4634,4635,3,856,428,0,4635,953,1,0,0,0,4636,4637,3,540,270,0,4637,4638,5,130,0,0,4638,4639,5,45,0,0,4639,4640,3,462,231,0,4640,955,1,0,0,0,4641,4642,3,548,274,0,4642,4643,5,130,0,0,4643,4644,3,496,248,0,4644,957,1,0,0,0,4645,4647,5,2,0,0,4646,4645,1,0,0,0,4646,4647,1,0,0,0,4647,4651,1,0,0,0,4648,4650,3,458,229,0,4649,4648,1,0,0,0,4650,4653,1,0,0,0,4651,4649,1,0,0,0,4651,4652,1,0,0,0,4652,4654,1,0,0,0,4653,4651,1,0,0,0,4654,4655,5,102,0,0,4655,4656,5,45,0,0,4656,4657,3,462,231,0,4657,959,1,0,0,0,4658,4659,3,224,112,0,4659,961,1,0,0,0,4660,4662,3,490,245,0,4661,4660,1,0,0,0,4662,4665,1,0,0,0,4663,4661,1,0,0,0,4663,4664,1,0,0,0,4664,4666,1,0,0,0,4665,4663,1,0,0,0,4666,4667,7,22,0,0,4667,4677,3,964,482,0,4668,4669,5,1,0,0,4669,4674,3,58,29,0,4670,4671,5,200,0,0,4671,4673,3,58,29,0,4672,4670,1,0,0,0,4673,4676,1,0,0,0,4674,4672,1,0,0,0,4674,4675,1,0,0,0,4675,4678,1,0,0,0,4676,4674,1,0,0,0,4677,4668,1,0,0,0,4677,4678,1,0,0,0,4678,4679,1,0,0,0,4679,4680,3,426,213,0,4680,963,1,0,0,0,4681,4683,3,48,24,0,4682,4681,1,0,0,0,4682,4683,1,0,0,0,4683,4687,1,0,0,0,4684,4688,5,204,0,0,4685,4686,5,158,0,0,4686,4688,5,24,0,0,4687,4684,1,0,0,0,4687,4685,1,0,0,0,4688,4690,1,0,0,0,4689,4682,1,0,0,0,4689,4690,1,0,0,0,4690,4691,1,0,0,0,4691,4692,3,224,112,0,4692,965,1,0,0,0,4693,4694,3,968,484,0,4694,967,1,0,0,0,4695,4697,5,127,0,0,4696,4695,1,0,0,0,4696,4697,1,0,0,0,4697,4699,1,0,0,0,4698,4700,7,19,0,0,4699,4698,1,0,0,0,4699,4700,1,0,0,0,4700,4701,1,0,0,0,4701,4703,3,236,118,0,4702,4704,3,200,100,0,4703,4702,1,0,0,0,4703,4704,1,0,0,0,4704,4706,1,0,0,0,4705,4707,3,396,198,0,4706,4705,1,0,0,0,4706,4707,1,0,0,0,4707,4708,1,0,0,0,4708,4709,3,426,213,0,4709,969,1,0,0,0,4710,4712,3,456,228,0,4711,4710,1,0,0,0,4711,4712,1,0,0,0,4712,4714,1,0,0,0,4713,4715,3,458,229,0,4714,4713,1,0,0,0,4715,4716,1,0,0,0,4716,4714,1,0,0,0,4716,4717,1,0,0,0,4717,4718,1,0,0,0,4718,4719,5,45,0,0,4719,4720,3,462,231,0,4720,971,1,0,0,0,4721,4723,3,492,246,0,4722,4724,3,490,245,0,4723,4722,1,0,0,0,4724,4725,1,0,0,0,4725,4723,1,0,0,0,4725,4726,1,0,0,0,4726,4727,1,0,0,0,4727,4728,3,496,248,0,4728,973,1,0,0,0,4729,4732,3,98,49,0,4730,4732,3,976,488,0,4731,4729,1,0,0,0,4731,4730,1,0,0,0,4732,975,1,0,0,0,4733,4734,3,92,46,0,4734,4735,5,183,0,0,4735,4738,5,198,0,0,4736,4737,5,183,0,0,4737,4739,5,179,0,0,4738,4736,1,0,0,0,4738,4739,1,0,0,0,4739,977,1,0,0,0,4740,4742,3,498,249,0,4741,4740,1,0,0,0,4741,4742,1,0,0,0,4742,4744,1,0,0,0,4743,4745,3,396,198,0,4744,4743,1,0,0,0,4744,4745,1,0,0,0,4745,979,1,0,0,0,4746,4747,1,0,0,0,4747,981,1,0,0,0,4748,4749,1,0,0,0,4749,983,1,0,0,0,4750,4751,1,0,0,0,4751,985,1,0,0,0,4752,4753,1,0,0,0,4753,987,1,0,0,0,4754,4755,5,218,0,0,4755,989,1,0,0,0,4756,4757,5,218,0,0,4757,991,1,0,0,0,4758,4759,1,0,0,0,4759,993,1,0,0,0,526,1009,1065,1072,1088,1090,1092,1102,1112,1118,1121,1126,1148,1157,1165,1177,1196,1210,1217,1225,1229,1233,1237,1242,1247,1250,1257,1266,1274,1281,1291,1295,1303,1306,1308,1312,1318,1322,1328,1330,1339,1347,1355,1362,1366,1371,1374,1380,1394,1397,1405,1412,1418,1422,1429,1434,1441,1444,1450,1456,1458,1466,1494,1506,1514,1519,1523,1526,1529,1533,1535,1540,1549,1559,1568,1577,1586,1595,1603,1607,1613,1617,1619,1634,1642,1647,1649,1657,1666,1676,1681,1683,1691,1700,1710,1718,1726,1734,1739,1754,1757,1760,1764,1769,1778,1783,1785,1798,1801,1805,1808,1812,1815,1820,1825,1828,1831,1834,1837,1843,1848,1858,1860,1865,1870,1874,1879,1886,1889,1895,1903,1917,1923,1926,1931,1938,1941,1946,1950,1952,1956,1960,1962,1964,1971,1978,1986,1995,2012,2020,2022,2029,2036,2043,2048,2050,2063,2071,2079,2084,2086,2099,2108,2110,2117,2123,2125,2133,2142,2152,2157,2160,2198,2201,2204,2210,2213,2218,2220,2227,2237,2245,2250,2269,2272,2275,2281,2283,2296,2299,2302,2308,2310,2321,2335,2340,2342,2346,2359,2372,2379,2383,2428,2433,2450,2468,2473,2493,2497,2504,2507,2514,2517,2521,2528,2530,2535,2539,2543,2547,2551,2553,2558,2561,2566,2573,2575,2584,2599,2601,2607,2611,2618,2631,2638,2649,2655,2662,2673,2676,2681,2686,2688,2697,2706,2708,2712,2718,2723,2726,2730,2733,2740,2747,2753,2761,2768,2772,2780,2783,2790,2799,2808,2813,2845,2849,2856,2861,2868,2871,2878,2882,2889,2895,2900,2907,2910,2920,2942,2945,2948,2951,2955,2964,2970,2974,2980,2983,2986,2997,3010,3023,3027,3030,3033,3039,3056,3074,3097,3105,3120,3132,3134,3138,3143,3150,3159,3163,3168,3177,3183,3194,3197,3202,3214,3221,3227,3238,3242,3244,3256,3301,3304,3308,3312,3318,3332,3340,3342,3353,3355,3374,3378,3384,3389,3399,3408,3419,3422,3426,3429,3433,3447,3455,3460,3475,3479,3483,3496,3499,3503,3510,3516,3539,3546,3562,3566,3573,3577,3583,3587,3595,3598,3602,3624,3627,3636,3640,3642,3645,3655,3659,3663,3669,3673,3676,3681,3687,3694,3701,3708,3717,3725,3731,3734,3737,3747,3752,3757,3761,3763,3768,3773,3779,3785,3800,3813,3819,3823,3834,3836,3844,3846,3852,3864,3871,3881,3884,3889,3906,3908,3925,3931,3935,3939,3945,3953,3958,3976,3987,4014,4020,4024,4030,4034,4036,4039,4045,4048,4055,4058,4061,4072,4075,4078,4083,4086,4090,4092,4114,4121,4125,4132,4136,4143,4147,4154,4158,4183,4188,4192,4196,4216,4220,4224,4229,4232,4245,4249,4258,4267,4280,4287,4294,4296,4301,4309,4316,4323,4325,4330,4339,4351,4364,4367,4372,4376,4378,4381,4385,4424,4428,4431,4438,4447,4483,4491,4498,4500,4505,4524,4529,4531,4534,4549,4553,4558,4566,4573,4580,4582,4585,4590,4593,4602,4606,4612,4617,4646,4651,4663,4674,4677,4682,4687,4689,4696,4699,4703,4706,4711,4716,4725,4731,4738,4741,4744];static __ATN;static get _ATN(){return _SysMLv2Parser.__ATN||(_SysMLv2Parser.__ATN=new ATNDeserializer().deserialize(_SysMLv2Parser._serializedATN)),_SysMLv2Parser.__ATN}static vocabulary=new Vocabulary(_SysMLv2Parser.literalNames,_SysMLv2Parser.symbolicNames,[]);get vocabulary(){return _SysMLv2Parser.vocabulary}static decisionsToDFA=_SysMLv2Parser._ATN.decisionToState.map((ds,index)=>new DFA(ds,index))},OwnedExpressionContext=class _OwnedExpressionContext extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IF(){return this.getToken(SysMLv2Parser.IF,0)}ownedExpression(i){return i===void 0?this.getRuleContexts(_OwnedExpressionContext):this.getRuleContext(i,_OwnedExpressionContext)}QUESTION(){return this.getToken(SysMLv2Parser.QUESTION,0)}ELSE(){return this.getToken(SysMLv2Parser.ELSE,0)}PLUS(){return this.getToken(SysMLv2Parser.PLUS,0)}MINUS(){return this.getToken(SysMLv2Parser.MINUS,0)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}NOT(){return this.getToken(SysMLv2Parser.NOT,0)}typeReference(){return this.getRuleContext(0,TypeReferenceContext)}AT_SIGN(){return this.getToken(SysMLv2Parser.AT_SIGN,0)}AT_AT(){return this.getToken(SysMLv2Parser.AT_AT,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}baseExpression(){return this.getRuleContext(0,BaseExpressionContext)}QUESTION_QUESTION(){return this.getToken(SysMLv2Parser.QUESTION_QUESTION,0)}IMPLIES(){return this.getToken(SysMLv2Parser.IMPLIES,0)}OR(){return this.getToken(SysMLv2Parser.OR,0)}AND(){return this.getToken(SysMLv2Parser.AND,0)}XOR(){return this.getToken(SysMLv2Parser.XOR,0)}PIPE(){return this.getToken(SysMLv2Parser.PIPE,0)}AMP(){return this.getToken(SysMLv2Parser.AMP,0)}EQ_EQ(){return this.getToken(SysMLv2Parser.EQ_EQ,0)}BANG_EQ(){return this.getToken(SysMLv2Parser.BANG_EQ,0)}EQ_EQ_EQ(){return this.getToken(SysMLv2Parser.EQ_EQ_EQ,0)}BANG_EQ_EQ(){return this.getToken(SysMLv2Parser.BANG_EQ_EQ,0)}LT(){return this.getToken(SysMLv2Parser.LT,0)}GT(){return this.getToken(SysMLv2Parser.GT,0)}LE(){return this.getToken(SysMLv2Parser.LE,0)}GE(){return this.getToken(SysMLv2Parser.GE,0)}DOT_DOT(){return this.getToken(SysMLv2Parser.DOT_DOT,0)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}SLASH(){return this.getToken(SysMLv2Parser.SLASH,0)}PERCENT(){return this.getToken(SysMLv2Parser.PERCENT,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}CARET(){return this.getToken(SysMLv2Parser.CARET,0)}ISTYPE(){return this.getToken(SysMLv2Parser.ISTYPE,0)}HASTYPE(){return this.getToken(SysMLv2Parser.HASTYPE,0)}AS(){return this.getToken(SysMLv2Parser.AS,0)}META(){return this.getToken(SysMLv2Parser.META,0)}LBRACK(){return this.getToken(SysMLv2Parser.LBRACK,0)}RBRACK(){return this.getToken(SysMLv2Parser.RBRACK,0)}sequenceExpressionList(){return this.getRuleContext(0,SequenceExpressionListContext)}HASH(){return this.getToken(SysMLv2Parser.HASH,0)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}DOT_QUESTION(){return this.getToken(SysMLv2Parser.DOT_QUESTION,0)}bodyExpression(){return this.getRuleContext(0,BodyExpressionContext)}ARROW(){return this.getToken(SysMLv2Parser.ARROW,0)}get ruleIndex(){return SysMLv2Parser.RULE_ownedExpression}enterRule(listener){listener.enterOwnedExpression&&listener.enterOwnedExpression(this)}exitRule(listener){listener.exitOwnedExpression&&listener.exitOwnedExpression(this)}accept(visitor){return visitor.visitOwnedExpression?visitor.visitOwnedExpression(this):visitor.visitChildren(this)}},TypeReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeReference}enterRule(listener){listener.enterTypeReference&&listener.enterTypeReference(this)}exitRule(listener){listener.exitTypeReference&&listener.exitTypeReference(this)}accept(visitor){return visitor.visitTypeReference?visitor.visitTypeReference(this):visitor.visitChildren(this)}},SequenceExpressionListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(i){return i===void 0?this.getRuleContexts(OwnedExpressionContext):this.getRuleContext(i,OwnedExpressionContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_sequenceExpressionList}enterRule(listener){listener.enterSequenceExpressionList&&listener.enterSequenceExpressionList(this)}exitRule(listener){listener.exitSequenceExpressionList&&listener.exitSequenceExpressionList(this)}accept(visitor){return visitor.visitSequenceExpressionList?visitor.visitSequenceExpressionList(this):visitor.visitChildren(this)}},BaseExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nullExpression(){return this.getRuleContext(0,NullExpressionContext)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}literalExpression(){return this.getRuleContext(0,LiteralExpressionContext)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}constructorExpression(){return this.getRuleContext(0,ConstructorExpressionContext)}bodyExpression(){return this.getRuleContext(0,BodyExpressionContext)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}sequenceExpressionList(){return this.getRuleContext(0,SequenceExpressionListContext)}get ruleIndex(){return SysMLv2Parser.RULE_baseExpression}enterRule(listener){listener.enterBaseExpression&&listener.enterBaseExpression(this)}exitRule(listener){listener.exitBaseExpression&&listener.exitBaseExpression(this)}accept(visitor){return visitor.visitBaseExpression?visitor.visitBaseExpression(this):visitor.visitChildren(this)}},NullExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}NULL(){return this.getToken(SysMLv2Parser.NULL,0)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}get ruleIndex(){return SysMLv2Parser.RULE_nullExpression}enterRule(listener){listener.enterNullExpression&&listener.enterNullExpression(this)}exitRule(listener){listener.exitNullExpression&&listener.exitNullExpression(this)}accept(visitor){return visitor.visitNullExpression?visitor.visitNullExpression(this):visitor.visitChildren(this)}},FeatureReferenceExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureReferenceExpression}enterRule(listener){listener.enterFeatureReferenceExpression&&listener.enterFeatureReferenceExpression(this)}exitRule(listener){listener.exitFeatureReferenceExpression&&listener.exitFeatureReferenceExpression(this)}accept(visitor){return visitor.visitFeatureReferenceExpression?visitor.visitFeatureReferenceExpression(this):visitor.visitChildren(this)}},MetadataAccessExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}get ruleIndex(){return SysMLv2Parser.RULE_metadataAccessExpression}enterRule(listener){listener.enterMetadataAccessExpression&&listener.enterMetadataAccessExpression(this)}exitRule(listener){listener.exitMetadataAccessExpression&&listener.exitMetadataAccessExpression(this)}accept(visitor){return visitor.visitMetadataAccessExpression?visitor.visitMetadataAccessExpression(this):visitor.visitChildren(this)}},InvocationExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}get ruleIndex(){return SysMLv2Parser.RULE_invocationExpression}enterRule(listener){listener.enterInvocationExpression&&listener.enterInvocationExpression(this)}exitRule(listener){listener.exitInvocationExpression&&listener.exitInvocationExpression(this)}accept(visitor){return visitor.visitInvocationExpression?visitor.visitInvocationExpression(this):visitor.visitChildren(this)}},ConstructorExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}NEW(){return this.getToken(SysMLv2Parser.NEW,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}get ruleIndex(){return SysMLv2Parser.RULE_constructorExpression}enterRule(listener){listener.enterConstructorExpression&&listener.enterConstructorExpression(this)}exitRule(listener){listener.exitConstructorExpression&&listener.exitConstructorExpression(this)}accept(visitor){return visitor.visitConstructorExpression?visitor.visitConstructorExpression(this):visitor.visitChildren(this)}},BodyExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,FunctionBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_bodyExpression}enterRule(listener){listener.enterBodyExpression&&listener.enterBodyExpression(this)}exitRule(listener){listener.exitBodyExpression&&listener.exitBodyExpression(this)}accept(visitor){return visitor.visitBodyExpression?visitor.visitBodyExpression(this):visitor.visitChildren(this)}},ArgumentListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}positionalArgumentList(){return this.getRuleContext(0,PositionalArgumentListContext)}namedArgumentList(){return this.getRuleContext(0,NamedArgumentListContext)}get ruleIndex(){return SysMLv2Parser.RULE_argumentList}enterRule(listener){listener.enterArgumentList&&listener.enterArgumentList(this)}exitRule(listener){listener.exitArgumentList&&listener.exitArgumentList(this)}accept(visitor){return visitor.visitArgumentList?visitor.visitArgumentList(this):visitor.visitChildren(this)}},PositionalArgumentListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(i){return i===void 0?this.getRuleContexts(OwnedExpressionContext):this.getRuleContext(i,OwnedExpressionContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_positionalArgumentList}enterRule(listener){listener.enterPositionalArgumentList&&listener.enterPositionalArgumentList(this)}exitRule(listener){listener.exitPositionalArgumentList&&listener.exitPositionalArgumentList(this)}accept(visitor){return visitor.visitPositionalArgumentList?visitor.visitPositionalArgumentList(this):visitor.visitChildren(this)}},NamedArgumentListContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namedArgument(i){return i===void 0?this.getRuleContexts(NamedArgumentContext):this.getRuleContext(i,NamedArgumentContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_namedArgumentList}enterRule(listener){listener.enterNamedArgumentList&&listener.enterNamedArgumentList(this)}exitRule(listener){listener.exitNamedArgumentList&&listener.exitNamedArgumentList(this)}accept(visitor){return visitor.visitNamedArgumentList?visitor.visitNamedArgumentList(this):visitor.visitChildren(this)}},NamedArgumentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_namedArgument}enterRule(listener){listener.enterNamedArgument&&listener.enterNamedArgument(this)}exitRule(listener){listener.exitNamedArgument&&listener.exitNamedArgument(this)}accept(visitor){return visitor.visitNamedArgument?visitor.visitNamedArgument(this):visitor.visitChildren(this)}},LiteralExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}literalBoolean(){return this.getRuleContext(0,LiteralBooleanContext)}literalString(){return this.getRuleContext(0,LiteralStringContext)}literalInteger(){return this.getRuleContext(0,LiteralIntegerContext)}literalReal(){return this.getRuleContext(0,LiteralRealContext)}literalInfinity(){return this.getRuleContext(0,LiteralInfinityContext)}get ruleIndex(){return SysMLv2Parser.RULE_literalExpression}enterRule(listener){listener.enterLiteralExpression&&listener.enterLiteralExpression(this)}exitRule(listener){listener.exitLiteralExpression&&listener.exitLiteralExpression(this)}accept(visitor){return visitor.visitLiteralExpression?visitor.visitLiteralExpression(this):visitor.visitChildren(this)}},LiteralBooleanContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TRUE(){return this.getToken(SysMLv2Parser.TRUE,0)}FALSE(){return this.getToken(SysMLv2Parser.FALSE,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalBoolean}enterRule(listener){listener.enterLiteralBoolean&&listener.enterLiteralBoolean(this)}exitRule(listener){listener.exitLiteralBoolean&&listener.exitLiteralBoolean(this)}accept(visitor){return visitor.visitLiteralBoolean?visitor.visitLiteralBoolean(this):visitor.visitChildren(this)}},LiteralStringContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalString}enterRule(listener){listener.enterLiteralString&&listener.enterLiteralString(this)}exitRule(listener){listener.exitLiteralString&&listener.exitLiteralString(this)}accept(visitor){return visitor.visitLiteralString?visitor.visitLiteralString(this):visitor.visitChildren(this)}},LiteralIntegerContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INTEGER(){return this.getToken(SysMLv2Parser.INTEGER,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalInteger}enterRule(listener){listener.enterLiteralInteger&&listener.enterLiteralInteger(this)}exitRule(listener){listener.exitLiteralInteger&&listener.exitLiteralInteger(this)}accept(visitor){return visitor.visitLiteralInteger?visitor.visitLiteralInteger(this):visitor.visitChildren(this)}},LiteralRealContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REAL(){return this.getToken(SysMLv2Parser.REAL,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalReal}enterRule(listener){listener.enterLiteralReal&&listener.enterLiteralReal(this)}exitRule(listener){listener.exitLiteralReal&&listener.exitLiteralReal(this)}accept(visitor){return visitor.visitLiteralReal?visitor.visitLiteralReal(this):visitor.visitChildren(this)}},LiteralInfinityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}get ruleIndex(){return SysMLv2Parser.RULE_literalInfinity}enterRule(listener){listener.enterLiteralInfinity&&listener.enterLiteralInfinity(this)}exitRule(listener){listener.exitLiteralInfinity&&listener.exitLiteralInfinity(this)}accept(visitor){return visitor.visitLiteralInfinity?visitor.visitLiteralInfinity(this):visitor.visitChildren(this)}},ArgumentMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_argumentMember}enterRule(listener){listener.enterArgumentMember&&listener.enterArgumentMember(this)}exitRule(listener){listener.exitArgumentMember&&listener.exitArgumentMember(this)}accept(visitor){return visitor.visitArgumentMember?visitor.visitArgumentMember(this):visitor.visitChildren(this)}},ArgumentExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_argumentExpressionMember}enterRule(listener){listener.enterArgumentExpressionMember&&listener.enterArgumentExpressionMember(this)}exitRule(listener){listener.exitArgumentExpressionMember&&listener.exitArgumentExpressionMember(this)}accept(visitor){return visitor.visitArgumentExpressionMember?visitor.visitArgumentExpressionMember(this):visitor.visitChildren(this)}},NameContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IDENTIFIER(){return this.getToken(SysMLv2Parser.IDENTIFIER,0)}STRING(){return this.getToken(SysMLv2Parser.STRING,0)}unreservedKeyword(){return this.getRuleContext(0,UnreservedKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_name}enterRule(listener){listener.enterName&&listener.enterName(this)}exitRule(listener){listener.exitName&&listener.exitName(this)}accept(visitor){return visitor.visitName?visitor.visitName(this):visitor.visitChildren(this)}},UnreservedKeywordContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TYPE(){return this.getToken(SysMLv2Parser.TYPE,0)}MULTIPLICITY(){return this.getToken(SysMLv2Parser.MULTIPLICITY,0)}VAR(){return this.getToken(SysMLv2Parser.VAR,0)}LANGUAGE(){return this.getToken(SysMLv2Parser.LANGUAGE,0)}LOCALE(){return this.getToken(SysMLv2Parser.LOCALE,0)}CROSSES(){return this.getToken(SysMLv2Parser.CROSSES,0)}STEP(){return this.getToken(SysMLv2Parser.STEP,0)}FEATURE(){return this.getToken(SysMLv2Parser.FEATURE,0)}BEHAVIOR(){return this.getToken(SysMLv2Parser.BEHAVIOR,0)}FUNCTION(){return this.getToken(SysMLv2Parser.FUNCTION,0)}MEMBER(){return this.getToken(SysMLv2Parser.MEMBER,0)}PREDICATE(){return this.getToken(SysMLv2Parser.PREDICATE,0)}INTERACTION(){return this.getToken(SysMLv2Parser.INTERACTION,0)}METACLASS(){return this.getToken(SysMLv2Parser.METACLASS,0)}get ruleIndex(){return SysMLv2Parser.RULE_unreservedKeyword}enterRule(listener){listener.enterUnreservedKeyword&&listener.enterUnreservedKeyword(this)}exitRule(listener){listener.exitUnreservedKeyword&&listener.exitUnreservedKeyword(this)}accept(visitor){return visitor.visitUnreservedKeyword?visitor.visitUnreservedKeyword(this):visitor.visitChildren(this)}},IdentificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}get ruleIndex(){return SysMLv2Parser.RULE_identification}enterRule(listener){listener.enterIdentification&&listener.enterIdentification(this)}exitRule(listener){listener.exitIdentification&&listener.exitIdentification(this)}accept(visitor){return visitor.visitIdentification?visitor.visitIdentification(this):visitor.visitChildren(this)}},RelationshipBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}relationshipOwnedElement(i){return i===void 0?this.getRuleContexts(RelationshipOwnedElementContext):this.getRuleContext(i,RelationshipOwnedElementContext)}ownedAnnotation(i){return i===void 0?this.getRuleContexts(OwnedAnnotationContext):this.getRuleContext(i,OwnedAnnotationContext)}get ruleIndex(){return SysMLv2Parser.RULE_relationshipBody}enterRule(listener){listener.enterRelationshipBody&&listener.enterRelationshipBody(this)}exitRule(listener){listener.exitRelationshipBody&&listener.exitRelationshipBody(this)}accept(visitor){return visitor.visitRelationshipBody?visitor.visitRelationshipBody(this):visitor.visitChildren(this)}},RelationshipOwnedElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRelatedElement(){return this.getRuleContext(0,OwnedRelatedElementContext)}ownedAnnotation(){return this.getRuleContext(0,OwnedAnnotationContext)}get ruleIndex(){return SysMLv2Parser.RULE_relationshipOwnedElement}enterRule(listener){listener.enterRelationshipOwnedElement&&listener.enterRelationshipOwnedElement(this)}exitRule(listener){listener.exitRelationshipOwnedElement&&listener.exitRelationshipOwnedElement(this)}accept(visitor){return visitor.visitRelationshipOwnedElement?visitor.visitRelationshipOwnedElement(this):visitor.visitChildren(this)}},OwnedRelatedElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureElement(){return this.getRuleContext(0,NonFeatureElementContext)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedRelatedElement}enterRule(listener){listener.enterOwnedRelatedElement&&listener.enterOwnedRelatedElement(this)}exitRule(listener){listener.exitOwnedRelatedElement&&listener.exitOwnedRelatedElement(this)}accept(visitor){return visitor.visitOwnedRelatedElement?visitor.visitOwnedRelatedElement(this):visitor.visitChildren(this)}},DependencyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DEPENDENCY(){return this.getToken(SysMLv2Parser.DEPENDENCY,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}prefixMetadataAnnotation(i){return i===void 0?this.getRuleContexts(PrefixMetadataAnnotationContext):this.getRuleContext(i,PrefixMetadataAnnotationContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}identification(){return this.getRuleContext(0,IdentificationContext)}dependencyDeclaration(){return this.getRuleContext(0,DependencyDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_dependency}enterRule(listener){listener.enterDependency&&listener.enterDependency(this)}exitRule(listener){listener.exitDependency&&listener.exitDependency(this)}accept(visitor){return visitor.visitDependency?visitor.visitDependency(this):visitor.visitChildren(this)}},AnnotationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_annotation}enterRule(listener){listener.enterAnnotation&&listener.enterAnnotation(this)}exitRule(listener){listener.exitAnnotation&&listener.exitAnnotation(this)}accept(visitor){return visitor.visitAnnotation?visitor.visitAnnotation(this):visitor.visitChildren(this)}},OwnedAnnotationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedAnnotation}enterRule(listener){listener.enterOwnedAnnotation&&listener.enterOwnedAnnotation(this)}exitRule(listener){listener.exitOwnedAnnotation&&listener.exitOwnedAnnotation(this)}accept(visitor){return visitor.visitOwnedAnnotation?visitor.visitOwnedAnnotation(this):visitor.visitChildren(this)}},AnnotatingElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}comment(){return this.getRuleContext(0,CommentContext)}documentation(){return this.getRuleContext(0,DocumentationContext)}textualRepresentation(){return this.getRuleContext(0,TextualRepresentationContext)}metadataFeature(){return this.getRuleContext(0,MetadataFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_annotatingElement}enterRule(listener){listener.enterAnnotatingElement&&listener.enterAnnotatingElement(this)}exitRule(listener){listener.exitAnnotatingElement&&listener.exitAnnotatingElement(this)}accept(visitor){return visitor.visitAnnotatingElement?visitor.visitAnnotatingElement(this):visitor.visitChildren(this)}},CommentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}COMMENT(){return this.getToken(SysMLv2Parser.COMMENT,0)}LOCALE(){return this.getToken(SysMLv2Parser.LOCALE,0)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ABOUT(){return this.getToken(SysMLv2Parser.ABOUT,0)}annotation(i){return i===void 0?this.getRuleContexts(AnnotationContext):this.getRuleContext(i,AnnotationContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_comment}enterRule(listener){listener.enterComment&&listener.enterComment(this)}exitRule(listener){listener.exitComment&&listener.exitComment(this)}accept(visitor){return visitor.visitComment?visitor.visitComment(this):visitor.visitChildren(this)}},DocumentationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DOC(){return this.getToken(SysMLv2Parser.DOC,0)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}identification(){return this.getRuleContext(0,IdentificationContext)}LOCALE(){return this.getToken(SysMLv2Parser.LOCALE,0)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}get ruleIndex(){return SysMLv2Parser.RULE_documentation}enterRule(listener){listener.enterDocumentation&&listener.enterDocumentation(this)}exitRule(listener){listener.exitDocumentation&&listener.exitDocumentation(this)}accept(visitor){return visitor.visitDocumentation?visitor.visitDocumentation(this):visitor.visitChildren(this)}},TextualRepresentationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LANGUAGE(){return this.getToken(SysMLv2Parser.LANGUAGE,0)}DOUBLE_STRING(){return this.getToken(SysMLv2Parser.DOUBLE_STRING,0)}REGULAR_COMMENT(){return this.getToken(SysMLv2Parser.REGULAR_COMMENT,0)}REP(){return this.getToken(SysMLv2Parser.REP,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_textualRepresentation}enterRule(listener){listener.enterTextualRepresentation&&listener.enterTextualRepresentation(this)}exitRule(listener){listener.exitTextualRepresentation&&listener.exitTextualRepresentation(this)}accept(visitor){return visitor.visitTextualRepresentation?visitor.visitTextualRepresentation(this):visitor.visitChildren(this)}},RootNamespaceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}EOF(){return this.getToken(SysMLv2Parser.EOF,0)}packageBodyElement(i){return i===void 0?this.getRuleContexts(PackageBodyElementContext):this.getRuleContext(i,PackageBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_rootNamespace}enterRule(listener){listener.enterRootNamespace&&listener.enterRootNamespace(this)}exitRule(listener){listener.exitRootNamespace&&listener.exitRootNamespace(this)}accept(visitor){return visitor.visitRootNamespace?visitor.visitRootNamespace(this):visitor.visitChildren(this)}},NamespaceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namespaceDeclaration(){return this.getRuleContext(0,NamespaceDeclarationContext)}namespaceBody(){return this.getRuleContext(0,NamespaceBodyContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespace}enterRule(listener){listener.enterNamespace&&listener.enterNamespace(this)}exitRule(listener){listener.exitNamespace&&listener.exitNamespace(this)}accept(visitor){return visitor.visitNamespace?visitor.visitNamespace(this):visitor.visitChildren(this)}},NamespaceDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}NAMESPACE(){return this.getToken(SysMLv2Parser.NAMESPACE,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceDeclaration}enterRule(listener){listener.enterNamespaceDeclaration&&listener.enterNamespaceDeclaration(this)}exitRule(listener){listener.exitNamespaceDeclaration&&listener.exitNamespaceDeclaration(this)}accept(visitor){return visitor.visitNamespaceDeclaration?visitor.visitNamespaceDeclaration(this):visitor.visitChildren(this)}},NamespaceBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}namespaceBodyElement(i){return i===void 0?this.getRuleContexts(NamespaceBodyElementContext):this.getRuleContext(i,NamespaceBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceBody}enterRule(listener){listener.enterNamespaceBody&&listener.enterNamespaceBody(this)}exitRule(listener){listener.exitNamespaceBody&&listener.exitNamespaceBody(this)}accept(visitor){return visitor.visitNamespaceBody?visitor.visitNamespaceBody(this):visitor.visitChildren(this)}},NamespaceBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namespaceMember(){return this.getRuleContext(0,NamespaceMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceBodyElement}enterRule(listener){listener.enterNamespaceBodyElement&&listener.enterNamespaceBodyElement(this)}exitRule(listener){listener.exitNamespaceBodyElement&&listener.exitNamespaceBodyElement(this)}accept(visitor){return visitor.visitNamespaceBodyElement?visitor.visitNamespaceBodyElement(this):visitor.visitChildren(this)}},MemberPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}visibilityIndicator(){return this.getRuleContext(0,VisibilityIndicatorContext)}get ruleIndex(){return SysMLv2Parser.RULE_memberPrefix}enterRule(listener){listener.enterMemberPrefix&&listener.enterMemberPrefix(this)}exitRule(listener){listener.exitMemberPrefix&&listener.exitMemberPrefix(this)}accept(visitor){return visitor.visitMemberPrefix?visitor.visitMemberPrefix(this):visitor.visitChildren(this)}},VisibilityIndicatorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}PUBLIC(){return this.getToken(SysMLv2Parser.PUBLIC,0)}PRIVATE(){return this.getToken(SysMLv2Parser.PRIVATE,0)}PROTECTED(){return this.getToken(SysMLv2Parser.PROTECTED,0)}get ruleIndex(){return SysMLv2Parser.RULE_visibilityIndicator}enterRule(listener){listener.enterVisibilityIndicator&&listener.enterVisibilityIndicator(this)}exitRule(listener){listener.exitVisibilityIndicator&&listener.exitVisibilityIndicator(this)}accept(visitor){return visitor.visitVisibilityIndicator?visitor.visitVisibilityIndicator(this):visitor.visitChildren(this)}},NamespaceMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureMember(){return this.getRuleContext(0,NonFeatureMemberContext)}namespaceFeatureMember(){return this.getRuleContext(0,NamespaceFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceMember}enterRule(listener){listener.enterNamespaceMember&&listener.enterNamespaceMember(this)}exitRule(listener){listener.exitNamespaceMember&&listener.exitNamespaceMember(this)}accept(visitor){return visitor.visitNamespaceMember?visitor.visitNamespaceMember(this):visitor.visitChildren(this)}},NonFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}memberElement(){return this.getRuleContext(0,MemberElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonFeatureMember}enterRule(listener){listener.enterNonFeatureMember&&listener.enterNonFeatureMember(this)}exitRule(listener){listener.exitNonFeatureMember&&listener.exitNonFeatureMember(this)}accept(visitor){return visitor.visitNonFeatureMember?visitor.visitNonFeatureMember(this):visitor.visitChildren(this)}},NamespaceFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceFeatureMember}enterRule(listener){listener.enterNamespaceFeatureMember&&listener.enterNamespaceFeatureMember(this)}exitRule(listener){listener.exitNamespaceFeatureMember&&listener.exitNamespaceFeatureMember(this)}accept(visitor){return visitor.visitNamespaceFeatureMember?visitor.visitNamespaceFeatureMember(this):visitor.visitChildren(this)}},AliasMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}ALIAS(){return this.getToken(SysMLv2Parser.ALIAS,0)}FOR(){return this.getToken(SysMLv2Parser.FOR,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}get ruleIndex(){return SysMLv2Parser.RULE_aliasMember}enterRule(listener){listener.enterAliasMember&&listener.enterAliasMember(this)}exitRule(listener){listener.exitAliasMember&&listener.exitAliasMember(this)}accept(visitor){return visitor.visitAliasMember?visitor.visitAliasMember(this):visitor.visitChildren(this)}},QualifiedNameContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}DOLLAR(){return this.getToken(SysMLv2Parser.DOLLAR,0)}COLON_COLON(i){return i===void 0?this.getTokens(SysMLv2Parser.COLON_COLON):this.getToken(SysMLv2Parser.COLON_COLON,i)}get ruleIndex(){return SysMLv2Parser.RULE_qualifiedName}enterRule(listener){listener.enterQualifiedName&&listener.enterQualifiedName(this)}exitRule(listener){listener.exitQualifiedName&&listener.exitQualifiedName(this)}accept(visitor){return visitor.visitQualifiedName?visitor.visitQualifiedName(this):visitor.visitChildren(this)}},ImportRuleContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IMPORT(){return this.getToken(SysMLv2Parser.IMPORT,0)}importDeclaration(){return this.getRuleContext(0,ImportDeclarationContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}visibilityIndicator(){return this.getRuleContext(0,VisibilityIndicatorContext)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}get ruleIndex(){return SysMLv2Parser.RULE_importRule}enterRule(listener){listener.enterImportRule&&listener.enterImportRule(this)}exitRule(listener){listener.exitImportRule&&listener.exitImportRule(this)}accept(visitor){return visitor.visitImportRule?visitor.visitImportRule(this):visitor.visitChildren(this)}},ImportDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}membershipImport(){return this.getRuleContext(0,MembershipImportContext)}namespaceImport(){return this.getRuleContext(0,NamespaceImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_importDeclaration}enterRule(listener){listener.enterImportDeclaration&&listener.enterImportDeclaration(this)}exitRule(listener){listener.exitImportDeclaration&&listener.exitImportDeclaration(this)}accept(visitor){return visitor.visitImportDeclaration?visitor.visitImportDeclaration(this):visitor.visitChildren(this)}},MembershipImportContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}COLON_COLON(){return this.getToken(SysMLv2Parser.COLON_COLON,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}get ruleIndex(){return SysMLv2Parser.RULE_membershipImport}enterRule(listener){listener.enterMembershipImport&&listener.enterMembershipImport(this)}exitRule(listener){listener.exitMembershipImport&&listener.exitMembershipImport(this)}accept(visitor){return visitor.visitMembershipImport?visitor.visitMembershipImport(this):visitor.visitChildren(this)}},NamespaceImportContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}COLON_COLON(i){return i===void 0?this.getTokens(SysMLv2Parser.COLON_COLON):this.getToken(SysMLv2Parser.COLON_COLON,i)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}filterPackage(){return this.getRuleContext(0,FilterPackageContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceImport}enterRule(listener){listener.enterNamespaceImport&&listener.enterNamespaceImport(this)}exitRule(listener){listener.exitNamespaceImport&&listener.exitNamespaceImport(this)}accept(visitor){return visitor.visitNamespaceImport?visitor.visitNamespaceImport(this):visitor.visitChildren(this)}},FilterPackageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}filterPackageImportDeclaration(){return this.getRuleContext(0,FilterPackageImportDeclarationContext)}filterPackageMember(i){return i===void 0?this.getRuleContexts(FilterPackageMemberContext):this.getRuleContext(i,FilterPackageMemberContext)}filterPackageImport(){return this.getRuleContext(0,FilterPackageImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackage}enterRule(listener){listener.enterFilterPackage&&listener.enterFilterPackage(this)}exitRule(listener){listener.exitFilterPackage&&listener.exitFilterPackage(this)}accept(visitor){return visitor.visitFilterPackage?visitor.visitFilterPackage(this):visitor.visitChildren(this)}},FilterPackageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACK(){return this.getToken(SysMLv2Parser.LBRACK,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}RBRACK(){return this.getToken(SysMLv2Parser.RBRACK,0)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackageMember}enterRule(listener){listener.enterFilterPackageMember&&listener.enterFilterPackageMember(this)}exitRule(listener){listener.exitFilterPackageMember&&listener.exitFilterPackageMember(this)}accept(visitor){return visitor.visitFilterPackageMember?visitor.visitFilterPackageMember(this):visitor.visitChildren(this)}},MemberElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}nonFeatureElement(){return this.getRuleContext(0,NonFeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_memberElement}enterRule(listener){listener.enterMemberElement&&listener.enterMemberElement(this)}exitRule(listener){listener.exitMemberElement&&listener.exitMemberElement(this)}accept(visitor){return visitor.visitMemberElement?visitor.visitMemberElement(this):visitor.visitChildren(this)}},NonFeatureElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}dependency(){return this.getRuleContext(0,DependencyContext)}namespace(){return this.getRuleContext(0,NamespaceContext)}type(){return this.getRuleContext(0,TypeContext)}classifier(){return this.getRuleContext(0,ClassifierContext)}dataType(){return this.getRuleContext(0,DataTypeContext)}class(){return this.getRuleContext(0,ClassContext)}structure(){return this.getRuleContext(0,StructureContext)}metaclass(){return this.getRuleContext(0,MetaclassContext)}association(){return this.getRuleContext(0,AssociationContext)}associationStructure(){return this.getRuleContext(0,AssociationStructureContext)}interaction(){return this.getRuleContext(0,InteractionContext)}behavior(){return this.getRuleContext(0,BehaviorContext)}function(){return this.getRuleContext(0,FunctionContext)}predicate(){return this.getRuleContext(0,PredicateContext)}multiplicity(){return this.getRuleContext(0,MultiplicityContext)}package(){return this.getRuleContext(0,PackageContext)}libraryPackage(){return this.getRuleContext(0,LibraryPackageContext)}specialization(){return this.getRuleContext(0,SpecializationContext)}conjugation(){return this.getRuleContext(0,ConjugationContext)}subclassification(){return this.getRuleContext(0,SubclassificationContext)}disjoining(){return this.getRuleContext(0,DisjoiningContext)}featureInverting(){return this.getRuleContext(0,FeatureInvertingContext)}featureTyping(){return this.getRuleContext(0,FeatureTypingContext)}subsetting(){return this.getRuleContext(0,SubsettingContext)}redefinition(){return this.getRuleContext(0,RedefinitionContext)}typeFeaturing(){return this.getRuleContext(0,TypeFeaturingContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonFeatureElement}enterRule(listener){listener.enterNonFeatureElement&&listener.enterNonFeatureElement(this)}exitRule(listener){listener.exitNonFeatureElement&&listener.exitNonFeatureElement(this)}accept(visitor){return visitor.visitNonFeatureElement?visitor.visitNonFeatureElement(this):visitor.visitChildren(this)}},FeatureElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}feature(){return this.getRuleContext(0,FeatureContext)}step(){return this.getRuleContext(0,StepContext)}expression(){return this.getRuleContext(0,ExpressionContext)}booleanExpression(){return this.getRuleContext(0,BooleanExpressionContext)}invariant(){return this.getRuleContext(0,InvariantContext)}connector(){return this.getRuleContext(0,ConnectorContext)}bindingConnector(){return this.getRuleContext(0,BindingConnectorContext)}succession(){return this.getRuleContext(0,SuccessionContext)}flow(){return this.getRuleContext(0,FlowContext)}successionFlow(){return this.getRuleContext(0,SuccessionFlowContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureElement}enterRule(listener){listener.enterFeatureElement&&listener.enterFeatureElement(this)}exitRule(listener){listener.exitFeatureElement&&listener.exitFeatureElement(this)}accept(visitor){return visitor.visitFeatureElement?visitor.visitFeatureElement(this):visitor.visitChildren(this)}},TypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}TYPE(){return this.getToken(SysMLv2Parser.TYPE,0)}typeDeclaration(){return this.getRuleContext(0,TypeDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_type}enterRule(listener){listener.enterType&&listener.enterType(this)}exitRule(listener){listener.exitType&&listener.exitType(this)}accept(visitor){return visitor.visitType?visitor.visitType(this):visitor.visitChildren(this)}},TypePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_typePrefix}enterRule(listener){listener.enterTypePrefix&&listener.enterTypePrefix(this)}exitRule(listener){listener.exitTypePrefix&&listener.exitTypePrefix(this)}accept(visitor){return visitor.visitTypePrefix?visitor.visitTypePrefix(this):visitor.visitChildren(this)}},TypeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}specializationPart(i){return i===void 0?this.getRuleContexts(SpecializationPartContext):this.getRuleContext(i,SpecializationPartContext)}conjugationPart(i){return i===void 0?this.getRuleContexts(ConjugationPartContext):this.getRuleContext(i,ConjugationPartContext)}typeRelationshipPart(i){return i===void 0?this.getRuleContexts(TypeRelationshipPartContext):this.getRuleContext(i,TypeRelationshipPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeDeclaration}enterRule(listener){listener.enterTypeDeclaration&&listener.enterTypeDeclaration(this)}exitRule(listener){listener.exitTypeDeclaration&&listener.exitTypeDeclaration(this)}accept(visitor){return visitor.visitTypeDeclaration?visitor.visitTypeDeclaration(this):visitor.visitChildren(this)}},SpecializationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSpecialization(i){return i===void 0?this.getRuleContexts(OwnedSpecializationContext):this.getRuleContext(i,OwnedSpecializationContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_specializationPart}enterRule(listener){listener.enterSpecializationPart&&listener.enterSpecializationPart(this)}exitRule(listener){listener.exitSpecializationPart&&listener.exitSpecializationPart(this)}accept(visitor){return visitor.visitSpecializationPart?visitor.visitSpecializationPart(this):visitor.visitChildren(this)}},ConjugationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedConjugation(){return this.getRuleContext(0,OwnedConjugationContext)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}CONJUGATES(){return this.getToken(SysMLv2Parser.CONJUGATES,0)}get ruleIndex(){return SysMLv2Parser.RULE_conjugationPart}enterRule(listener){listener.enterConjugationPart&&listener.enterConjugationPart(this)}exitRule(listener){listener.exitConjugationPart&&listener.exitConjugationPart(this)}accept(visitor){return visitor.visitConjugationPart?visitor.visitConjugationPart(this):visitor.visitChildren(this)}},TypeRelationshipPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}disjoiningPart(){return this.getRuleContext(0,DisjoiningPartContext)}unioningPart(){return this.getRuleContext(0,UnioningPartContext)}intersectingPart(){return this.getRuleContext(0,IntersectingPartContext)}differencingPart(){return this.getRuleContext(0,DifferencingPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeRelationshipPart}enterRule(listener){listener.enterTypeRelationshipPart&&listener.enterTypeRelationshipPart(this)}exitRule(listener){listener.exitTypeRelationshipPart&&listener.exitTypeRelationshipPart(this)}accept(visitor){return visitor.visitTypeRelationshipPart?visitor.visitTypeRelationshipPart(this):visitor.visitChildren(this)}},DisjoiningPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DISJOINT(){return this.getToken(SysMLv2Parser.DISJOINT,0)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}ownedDisjoining(i){return i===void 0?this.getRuleContexts(OwnedDisjoiningContext):this.getRuleContext(i,OwnedDisjoiningContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_disjoiningPart}enterRule(listener){listener.enterDisjoiningPart&&listener.enterDisjoiningPart(this)}exitRule(listener){listener.exitDisjoiningPart&&listener.exitDisjoiningPart(this)}accept(visitor){return visitor.visitDisjoiningPart?visitor.visitDisjoiningPart(this):visitor.visitChildren(this)}},UnioningPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}UNIONS(){return this.getToken(SysMLv2Parser.UNIONS,0)}unioning(i){return i===void 0?this.getRuleContexts(UnioningContext):this.getRuleContext(i,UnioningContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_unioningPart}enterRule(listener){listener.enterUnioningPart&&listener.enterUnioningPart(this)}exitRule(listener){listener.exitUnioningPart&&listener.exitUnioningPart(this)}accept(visitor){return visitor.visitUnioningPart?visitor.visitUnioningPart(this):visitor.visitChildren(this)}},IntersectingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INTERSECTS(){return this.getToken(SysMLv2Parser.INTERSECTS,0)}intersecting(i){return i===void 0?this.getRuleContexts(IntersectingContext):this.getRuleContext(i,IntersectingContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_intersectingPart}enterRule(listener){listener.enterIntersectingPart&&listener.enterIntersectingPart(this)}exitRule(listener){listener.exitIntersectingPart&&listener.exitIntersectingPart(this)}accept(visitor){return visitor.visitIntersectingPart?visitor.visitIntersectingPart(this):visitor.visitChildren(this)}},DifferencingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DIFFERENCES(){return this.getToken(SysMLv2Parser.DIFFERENCES,0)}differencing(i){return i===void 0?this.getRuleContexts(DifferencingContext):this.getRuleContext(i,DifferencingContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_differencingPart}enterRule(listener){listener.enterDifferencingPart&&listener.enterDifferencingPart(this)}exitRule(listener){listener.exitDifferencingPart&&listener.exitDifferencingPart(this)}accept(visitor){return visitor.visitDifferencingPart?visitor.visitDifferencingPart(this):visitor.visitChildren(this)}},TypeBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}typeBodyElement(i){return i===void 0?this.getRuleContexts(TypeBodyElementContext):this.getRuleContext(i,TypeBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeBody}enterRule(listener){listener.enterTypeBody&&listener.enterTypeBody(this)}exitRule(listener){listener.exitTypeBody&&listener.exitTypeBody(this)}accept(visitor){return visitor.visitTypeBody?visitor.visitTypeBody(this):visitor.visitChildren(this)}},TypeBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureMember(){return this.getRuleContext(0,NonFeatureMemberContext)}featureMember(){return this.getRuleContext(0,FeatureMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeBodyElement}enterRule(listener){listener.enterTypeBodyElement&&listener.enterTypeBodyElement(this)}exitRule(listener){listener.exitTypeBodyElement&&listener.exitTypeBodyElement(this)}accept(visitor){return visitor.visitTypeBodyElement?visitor.visitTypeBodyElement(this):visitor.visitChildren(this)}},SpecializationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBTYPE(){return this.getToken(SysMLv2Parser.SUBTYPE,0)}specificType(){return this.getRuleContext(0,SpecificTypeContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_specialization}enterRule(listener){listener.enterSpecialization&&listener.enterSpecialization(this)}exitRule(listener){listener.exitSpecialization&&listener.exitSpecialization(this)}accept(visitor){return visitor.visitSpecialization?visitor.visitSpecialization(this):visitor.visitChildren(this)}},OwnedSpecializationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedSpecialization}enterRule(listener){listener.enterOwnedSpecialization&&listener.enterOwnedSpecialization(this)}exitRule(listener){listener.exitOwnedSpecialization&&listener.exitOwnedSpecialization(this)}accept(visitor){return visitor.visitOwnedSpecialization?visitor.visitOwnedSpecialization(this):visitor.visitChildren(this)}},SpecificTypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_specificType}enterRule(listener){listener.enterSpecificType&&listener.enterSpecificType(this)}exitRule(listener){listener.exitSpecificType&&listener.exitSpecificType(this)}accept(visitor){return visitor.visitSpecificType?visitor.visitSpecificType(this):visitor.visitChildren(this)}},GeneralTypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_generalType}enterRule(listener){listener.enterGeneralType&&listener.enterGeneralType(this)}exitRule(listener){listener.exitGeneralType&&listener.exitGeneralType(this)}accept(visitor){return visitor.visitGeneralType?visitor.visitGeneralType(this):visitor.visitChildren(this)}},ConjugationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}CONJUGATE(){return this.getToken(SysMLv2Parser.CONJUGATE,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}CONJUGATES(){return this.getToken(SysMLv2Parser.CONJUGATES,0)}CONJUGATION(){return this.getToken(SysMLv2Parser.CONJUGATION,0)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugation}enterRule(listener){listener.enterConjugation&&listener.enterConjugation(this)}exitRule(listener){listener.exitConjugation&&listener.exitConjugation(this)}accept(visitor){return visitor.visitConjugation?visitor.visitConjugation(this):visitor.visitChildren(this)}},OwnedConjugationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedConjugation}enterRule(listener){listener.enterOwnedConjugation&&listener.enterOwnedConjugation(this)}exitRule(listener){listener.exitOwnedConjugation&&listener.exitOwnedConjugation(this)}accept(visitor){return visitor.visitOwnedConjugation?visitor.visitOwnedConjugation(this):visitor.visitChildren(this)}},DisjoiningContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DISJOINT(){return this.getToken(SysMLv2Parser.DISJOINT,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}DISJOINING(){return this.getToken(SysMLv2Parser.DISJOINING,0)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_disjoining}enterRule(listener){listener.enterDisjoining&&listener.enterDisjoining(this)}exitRule(listener){listener.exitDisjoining&&listener.exitDisjoining(this)}accept(visitor){return visitor.visitDisjoining?visitor.visitDisjoining(this):visitor.visitChildren(this)}},OwnedDisjoiningContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedDisjoining}enterRule(listener){listener.enterOwnedDisjoining&&listener.enterOwnedDisjoining(this)}exitRule(listener){listener.exitOwnedDisjoining&&listener.exitOwnedDisjoining(this)}accept(visitor){return visitor.visitOwnedDisjoining?visitor.visitOwnedDisjoining(this):visitor.visitChildren(this)}},UnioningContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_unioning}enterRule(listener){listener.enterUnioning&&listener.enterUnioning(this)}exitRule(listener){listener.exitUnioning&&listener.exitUnioning(this)}accept(visitor){return visitor.visitUnioning?visitor.visitUnioning(this):visitor.visitChildren(this)}},IntersectingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_intersecting}enterRule(listener){listener.enterIntersecting&&listener.enterIntersecting(this)}exitRule(listener){listener.exitIntersecting&&listener.exitIntersecting(this)}accept(visitor){return visitor.visitIntersecting?visitor.visitIntersecting(this):visitor.visitChildren(this)}},DifferencingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_differencing}enterRule(listener){listener.enterDifferencing&&listener.enterDifferencing(this)}exitRule(listener){listener.exitDifferencing&&listener.exitDifferencing(this)}accept(visitor){return visitor.visitDifferencing?visitor.visitDifferencing(this):visitor.visitChildren(this)}},FeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeFeatureMember(){return this.getRuleContext(0,TypeFeatureMemberContext)}ownedFeatureMember(){return this.getRuleContext(0,OwnedFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureMember}enterRule(listener){listener.enterFeatureMember&&listener.enterFeatureMember(this)}exitRule(listener){listener.exitFeatureMember&&listener.exitFeatureMember(this)}accept(visitor){return visitor.visitFeatureMember?visitor.visitFeatureMember(this):visitor.visitChildren(this)}},TypeFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}MEMBER(){return this.getToken(SysMLv2Parser.MEMBER,0)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeFeatureMember}enterRule(listener){listener.enterTypeFeatureMember&&listener.enterTypeFeatureMember(this)}exitRule(listener){listener.exitTypeFeatureMember&&listener.exitTypeFeatureMember(this)}accept(visitor){return visitor.visitTypeFeatureMember?visitor.visitTypeFeatureMember(this):visitor.visitChildren(this)}},OwnedFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureMember}enterRule(listener){listener.enterOwnedFeatureMember&&listener.enterOwnedFeatureMember(this)}exitRule(listener){listener.exitOwnedFeatureMember&&listener.exitOwnedFeatureMember(this)}accept(visitor){return visitor.visitOwnedFeatureMember?visitor.visitOwnedFeatureMember(this):visitor.visitChildren(this)}},ClassifierContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}CLASSIFIER(){return this.getToken(SysMLv2Parser.CLASSIFIER,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_classifier}enterRule(listener){listener.enterClassifier&&listener.enterClassifier(this)}exitRule(listener){listener.exitClassifier&&listener.exitClassifier(this)}accept(visitor){return visitor.visitClassifier?visitor.visitClassifier(this):visitor.visitChildren(this)}},ClassifierDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}superclassingPart(){return this.getRuleContext(0,SuperclassingPartContext)}conjugationPart(){return this.getRuleContext(0,ConjugationPartContext)}typeRelationshipPart(i){return i===void 0?this.getRuleContexts(TypeRelationshipPartContext):this.getRuleContext(i,TypeRelationshipPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_classifierDeclaration}enterRule(listener){listener.enterClassifierDeclaration&&listener.enterClassifierDeclaration(this)}exitRule(listener){listener.exitClassifierDeclaration&&listener.exitClassifierDeclaration(this)}accept(visitor){return visitor.visitClassifierDeclaration?visitor.visitClassifierDeclaration(this):visitor.visitChildren(this)}},SuperclassingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSubclassification(i){return i===void 0?this.getRuleContexts(OwnedSubclassificationContext):this.getRuleContext(i,OwnedSubclassificationContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_superclassingPart}enterRule(listener){listener.enterSuperclassingPart&&listener.enterSuperclassingPart(this)}exitRule(listener){listener.exitSuperclassingPart&&listener.exitSuperclassingPart(this)}accept(visitor){return visitor.visitSuperclassingPart?visitor.visitSuperclassingPart(this):visitor.visitChildren(this)}},SubclassificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBCLASSIFIER(){return this.getToken(SysMLv2Parser.SUBCLASSIFIER,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_subclassification}enterRule(listener){listener.enterSubclassification&&listener.enterSubclassification(this)}exitRule(listener){listener.exitSubclassification&&listener.exitSubclassification(this)}accept(visitor){return visitor.visitSubclassification?visitor.visitSubclassification(this):visitor.visitChildren(this)}},OwnedSubclassificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedSubclassification}enterRule(listener){listener.enterOwnedSubclassification&&listener.enterOwnedSubclassification(this)}exitRule(listener){listener.exitOwnedSubclassification&&listener.exitOwnedSubclassification(this)}accept(visitor){return visitor.visitOwnedSubclassification?visitor.visitOwnedSubclassification(this):visitor.visitChildren(this)}},FeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}FEATURE(){return this.getToken(SysMLv2Parser.FEATURE,0)}prefixMetadataMember(){return this.getRuleContext(0,PrefixMetadataMemberContext)}endFeaturePrefix(){return this.getRuleContext(0,EndFeaturePrefixContext)}basicFeaturePrefix(){return this.getRuleContext(0,BasicFeaturePrefixContext)}REF(){return this.getToken(SysMLv2Parser.REF,0)}get ruleIndex(){return SysMLv2Parser.RULE_feature}enterRule(listener){listener.enterFeature&&listener.enterFeature(this)}exitRule(listener){listener.exitFeature&&listener.exitFeature(this)}accept(visitor){return visitor.visitFeature?visitor.visitFeature(this):visitor.visitChildren(this)}},EndFeaturePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}CONST(){return this.getToken(SysMLv2Parser.CONST,0)}get ruleIndex(){return SysMLv2Parser.RULE_endFeaturePrefix}enterRule(listener){listener.enterEndFeaturePrefix&&listener.enterEndFeaturePrefix(this)}exitRule(listener){listener.exitEndFeaturePrefix&&listener.exitEndFeaturePrefix(this)}accept(visitor){return visitor.visitEndFeaturePrefix?visitor.visitEndFeaturePrefix(this):visitor.visitChildren(this)}},BasicFeaturePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDirection(){return this.getRuleContext(0,FeatureDirectionContext)}DERIVED(){return this.getToken(SysMLv2Parser.DERIVED,0)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}COMPOSITE(){return this.getToken(SysMLv2Parser.COMPOSITE,0)}PORTION(){return this.getToken(SysMLv2Parser.PORTION,0)}VAR(){return this.getToken(SysMLv2Parser.VAR,0)}CONST(){return this.getToken(SysMLv2Parser.CONST,0)}get ruleIndex(){return SysMLv2Parser.RULE_basicFeaturePrefix}enterRule(listener){listener.enterBasicFeaturePrefix&&listener.enterBasicFeaturePrefix(this)}exitRule(listener){listener.exitBasicFeaturePrefix&&listener.exitBasicFeaturePrefix(this)}accept(visitor){return visitor.visitBasicFeaturePrefix?visitor.visitBasicFeaturePrefix(this):visitor.visitChildren(this)}},FeaturePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}endFeaturePrefix(){return this.getRuleContext(0,EndFeaturePrefixContext)}ownedCrossFeatureMember(){return this.getRuleContext(0,OwnedCrossFeatureMemberContext)}basicFeaturePrefix(){return this.getRuleContext(0,BasicFeaturePrefixContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_featurePrefix}enterRule(listener){listener.enterFeaturePrefix&&listener.enterFeaturePrefix(this)}exitRule(listener){listener.exitFeaturePrefix&&listener.exitFeaturePrefix(this)}accept(visitor){return visitor.visitFeaturePrefix?visitor.visitFeaturePrefix(this):visitor.visitChildren(this)}},OwnedCrossFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedCrossFeature(){return this.getRuleContext(0,OwnedCrossFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossFeatureMember}enterRule(listener){listener.enterOwnedCrossFeatureMember&&listener.enterOwnedCrossFeatureMember(this)}exitRule(listener){listener.exitOwnedCrossFeatureMember&&listener.exitOwnedCrossFeatureMember(this)}accept(visitor){return visitor.visitOwnedCrossFeatureMember?visitor.visitOwnedCrossFeatureMember(this):visitor.visitChildren(this)}},OwnedCrossFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicFeaturePrefix(){return this.getRuleContext(0,BasicFeaturePrefixContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossFeature}enterRule(listener){listener.enterOwnedCrossFeature&&listener.enterOwnedCrossFeature(this)}exitRule(listener){listener.exitOwnedCrossFeature&&listener.exitOwnedCrossFeature(this)}accept(visitor){return visitor.visitOwnedCrossFeature?visitor.visitOwnedCrossFeature(this):visitor.visitChildren(this)}},FeatureDirectionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IN(){return this.getToken(SysMLv2Parser.IN,0)}OUT(){return this.getToken(SysMLv2Parser.OUT,0)}INOUT(){return this.getToken(SysMLv2Parser.INOUT,0)}get ruleIndex(){return SysMLv2Parser.RULE_featureDirection}enterRule(listener){listener.enterFeatureDirection&&listener.enterFeatureDirection(this)}exitRule(listener){listener.exitFeatureDirection&&listener.exitFeatureDirection(this)}accept(visitor){return visitor.visitFeatureDirection?visitor.visitFeatureDirection(this):visitor.visitChildren(this)}},FeatureDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureIdentification(){return this.getRuleContext(0,FeatureIdentificationContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}conjugationPart(){return this.getRuleContext(0,ConjugationPartContext)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}featureRelationshipPart(i){return i===void 0?this.getRuleContexts(FeatureRelationshipPartContext):this.getRuleContext(i,FeatureRelationshipPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureDeclaration}enterRule(listener){listener.enterFeatureDeclaration&&listener.enterFeatureDeclaration(this)}exitRule(listener){listener.exitFeatureDeclaration&&listener.exitFeatureDeclaration(this)}accept(visitor){return visitor.visitFeatureDeclaration?visitor.visitFeatureDeclaration(this):visitor.visitChildren(this)}},FeatureIdentificationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}get ruleIndex(){return SysMLv2Parser.RULE_featureIdentification}enterRule(listener){listener.enterFeatureIdentification&&listener.enterFeatureIdentification(this)}exitRule(listener){listener.exitFeatureIdentification&&listener.exitFeatureIdentification(this)}accept(visitor){return visitor.visitFeatureIdentification?visitor.visitFeatureIdentification(this):visitor.visitChildren(this)}},FeatureRelationshipPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeRelationshipPart(){return this.getRuleContext(0,TypeRelationshipPartContext)}chainingPart(){return this.getRuleContext(0,ChainingPartContext)}invertingPart(){return this.getRuleContext(0,InvertingPartContext)}typeFeaturingPart(){return this.getRuleContext(0,TypeFeaturingPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureRelationshipPart}enterRule(listener){listener.enterFeatureRelationshipPart&&listener.enterFeatureRelationshipPart(this)}exitRule(listener){listener.exitFeatureRelationshipPart&&listener.exitFeatureRelationshipPart(this)}accept(visitor){return visitor.visitFeatureRelationshipPart?visitor.visitFeatureRelationshipPart(this):visitor.visitChildren(this)}},ChainingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}CHAINS(){return this.getToken(SysMLv2Parser.CHAINS,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_chainingPart}enterRule(listener){listener.enterChainingPart&&listener.enterChainingPart(this)}exitRule(listener){listener.exitChainingPart&&listener.exitChainingPart(this)}accept(visitor){return visitor.visitChainingPart?visitor.visitChainingPart(this):visitor.visitChildren(this)}},InvertingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INVERSE(){return this.getToken(SysMLv2Parser.INVERSE,0)}OF(){return this.getToken(SysMLv2Parser.OF,0)}ownedFeatureInverting(){return this.getRuleContext(0,OwnedFeatureInvertingContext)}get ruleIndex(){return SysMLv2Parser.RULE_invertingPart}enterRule(listener){listener.enterInvertingPart&&listener.enterInvertingPart(this)}exitRule(listener){listener.exitInvertingPart&&listener.exitInvertingPart(this)}accept(visitor){return visitor.visitInvertingPart?visitor.visitInvertingPart(this):visitor.visitChildren(this)}},TypeFeaturingPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}FEATURED(){return this.getToken(SysMLv2Parser.FEATURED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}ownedTypeFeaturing(i){return i===void 0?this.getRuleContexts(OwnedTypeFeaturingContext):this.getRuleContext(i,OwnedTypeFeaturingContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_typeFeaturingPart}enterRule(listener){listener.enterTypeFeaturingPart&&listener.enterTypeFeaturingPart(this)}exitRule(listener){listener.exitTypeFeaturingPart&&listener.exitTypeFeaturingPart(this)}accept(visitor){return visitor.visitTypeFeaturingPart?visitor.visitTypeFeaturingPart(this):visitor.visitChildren(this)}},FeatureSpecializationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}multiplicityPart(){return this.getRuleContext(0,MultiplicityPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureSpecializationPart}enterRule(listener){listener.enterFeatureSpecializationPart&&listener.enterFeatureSpecializationPart(this)}exitRule(listener){listener.exitFeatureSpecializationPart&&listener.exitFeatureSpecializationPart(this)}accept(visitor){return visitor.visitFeatureSpecializationPart?visitor.visitFeatureSpecializationPart(this):visitor.visitChildren(this)}},MultiplicityPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}ORDERED(){return this.getToken(SysMLv2Parser.ORDERED,0)}NONUNIQUE(){return this.getToken(SysMLv2Parser.NONUNIQUE,0)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityPart}enterRule(listener){listener.enterMultiplicityPart&&listener.enterMultiplicityPart(this)}exitRule(listener){listener.exitMultiplicityPart&&listener.exitMultiplicityPart(this)}accept(visitor){return visitor.visitMultiplicityPart?visitor.visitMultiplicityPart(this):visitor.visitChildren(this)}},FeatureSpecializationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typings(){return this.getRuleContext(0,TypingsContext)}subsettings(){return this.getRuleContext(0,SubsettingsContext)}references(){return this.getRuleContext(0,ReferencesContext)}crosses(){return this.getRuleContext(0,CrossesContext)}redefinitions(){return this.getRuleContext(0,RedefinitionsContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureSpecialization}enterRule(listener){listener.enterFeatureSpecialization&&listener.enterFeatureSpecialization(this)}exitRule(listener){listener.exitFeatureSpecialization&&listener.exitFeatureSpecialization(this)}accept(visitor){return visitor.visitFeatureSpecialization?visitor.visitFeatureSpecialization(this):visitor.visitChildren(this)}},TypingsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typedBy(){return this.getRuleContext(0,TypedByContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}featureTyping(i){return i===void 0?this.getRuleContexts(FeatureTypingContext):this.getRuleContext(i,FeatureTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_typings}enterRule(listener){listener.enterTypings&&listener.enterTypings(this)}exitRule(listener){listener.exitTypings&&listener.exitTypings(this)}accept(visitor){return visitor.visitTypings?visitor.visitTypings(this):visitor.visitChildren(this)}},TypedByContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureTyping(){return this.getRuleContext(0,FeatureTypingContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}DEFINED(){return this.getToken(SysMLv2Parser.DEFINED,0)}get ruleIndex(){return SysMLv2Parser.RULE_typedBy}enterRule(listener){listener.enterTypedBy&&listener.enterTypedBy(this)}exitRule(listener){listener.exitTypedBy&&listener.exitTypedBy(this)}accept(visitor){return visitor.visitTypedBy?visitor.visitTypedBy(this):visitor.visitChildren(this)}},SubsettingsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}subsets(){return this.getRuleContext(0,SubsetsContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}ownedSubsetting(i){return i===void 0?this.getRuleContexts(OwnedSubsettingContext):this.getRuleContext(i,OwnedSubsettingContext)}get ruleIndex(){return SysMLv2Parser.RULE_subsettings}enterRule(listener){listener.enterSubsettings&&listener.enterSubsettings(this)}exitRule(listener){listener.exitSubsettings&&listener.exitSubsettings(this)}accept(visitor){return visitor.visitSubsettings?visitor.visitSubsettings(this):visitor.visitChildren(this)}},SubsetsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSubsetting(){return this.getRuleContext(0,OwnedSubsettingContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SUBSETS(){return this.getToken(SysMLv2Parser.SUBSETS,0)}get ruleIndex(){return SysMLv2Parser.RULE_subsets}enterRule(listener){listener.enterSubsets&&listener.enterSubsets(this)}exitRule(listener){listener.exitSubsets&&listener.exitSubsets(this)}accept(visitor){return visitor.visitSubsets?visitor.visitSubsets(this):visitor.visitChildren(this)}},ReferencesContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}COLON_COLON_GT(){return this.getToken(SysMLv2Parser.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(SysMLv2Parser.REFERENCES,0)}get ruleIndex(){return SysMLv2Parser.RULE_references}enterRule(listener){listener.enterReferences&&listener.enterReferences(this)}exitRule(listener){listener.exitReferences&&listener.exitReferences(this)}accept(visitor){return visitor.visitReferences?visitor.visitReferences(this):visitor.visitChildren(this)}},CrossesContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedCrossSubsetting(){return this.getRuleContext(0,OwnedCrossSubsettingContext)}FAT_ARROW(){return this.getToken(SysMLv2Parser.FAT_ARROW,0)}CROSSES(){return this.getToken(SysMLv2Parser.CROSSES,0)}get ruleIndex(){return SysMLv2Parser.RULE_crosses}enterRule(listener){listener.enterCrosses&&listener.enterCrosses(this)}exitRule(listener){listener.exitCrosses&&listener.exitCrosses(this)}accept(visitor){return visitor.visitCrosses?visitor.visitCrosses(this):visitor.visitChildren(this)}},RedefinitionsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}redefines(){return this.getRuleContext(0,RedefinesContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}ownedRedefinition(i){return i===void 0?this.getRuleContexts(OwnedRedefinitionContext):this.getRuleContext(i,OwnedRedefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_redefinitions}enterRule(listener){listener.enterRedefinitions&&listener.enterRedefinitions(this)}exitRule(listener){listener.exitRedefinitions&&listener.exitRedefinitions(this)}accept(visitor){return visitor.visitRedefinitions?visitor.visitRedefinitions(this):visitor.visitChildren(this)}},RedefinesContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRedefinition(){return this.getRuleContext(0,OwnedRedefinitionContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}get ruleIndex(){return SysMLv2Parser.RULE_redefines}enterRule(listener){listener.enterRedefines&&listener.enterRedefines(this)}exitRule(listener){listener.exitRedefines&&listener.exitRedefines(this)}accept(visitor){return visitor.visitRedefines?visitor.visitRedefines(this):visitor.visitChildren(this)}},FeatureTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TYPING(){return this.getToken(SysMLv2Parser.TYPING,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}conjugatedPortTyping(){return this.getRuleContext(0,ConjugatedPortTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureTyping}enterRule(listener){listener.enterFeatureTyping&&listener.enterFeatureTyping(this)}exitRule(listener){listener.exitFeatureTyping&&listener.exitFeatureTyping(this)}accept(visitor){return visitor.visitFeatureTyping?visitor.visitFeatureTyping(this):visitor.visitChildren(this)}},OwnedFeatureTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureTyping}enterRule(listener){listener.enterOwnedFeatureTyping&&listener.enterOwnedFeatureTyping(this)}exitRule(listener){listener.exitOwnedFeatureTyping&&listener.exitOwnedFeatureTyping(this)}accept(visitor){return visitor.visitOwnedFeatureTyping?visitor.visitOwnedFeatureTyping(this):visitor.visitChildren(this)}},SubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBSET(){return this.getToken(SysMLv2Parser.SUBSET,0)}specificType(){return this.getRuleContext(0,SpecificTypeContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SUBSETS(){return this.getToken(SysMLv2Parser.SUBSETS,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_subsetting}enterRule(listener){listener.enterSubsetting&&listener.enterSubsetting(this)}exitRule(listener){listener.exitSubsetting&&listener.exitSubsetting(this)}accept(visitor){return visitor.visitSubsetting?visitor.visitSubsetting(this):visitor.visitChildren(this)}},OwnedSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedSubsetting}enterRule(listener){listener.enterOwnedSubsetting&&listener.enterOwnedSubsetting(this)}exitRule(listener){listener.exitOwnedSubsetting&&listener.exitOwnedSubsetting(this)}accept(visitor){return visitor.visitOwnedSubsetting?visitor.visitOwnedSubsetting(this):visitor.visitChildren(this)}},OwnedReferenceSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedReferenceSubsetting}enterRule(listener){listener.enterOwnedReferenceSubsetting&&listener.enterOwnedReferenceSubsetting(this)}exitRule(listener){listener.exitOwnedReferenceSubsetting&&listener.exitOwnedReferenceSubsetting(this)}accept(visitor){return visitor.visitOwnedReferenceSubsetting?visitor.visitOwnedReferenceSubsetting(this):visitor.visitChildren(this)}},OwnedCrossSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossSubsetting}enterRule(listener){listener.enterOwnedCrossSubsetting&&listener.enterOwnedCrossSubsetting(this)}exitRule(listener){listener.exitOwnedCrossSubsetting&&listener.exitOwnedCrossSubsetting(this)}accept(visitor){return visitor.visitOwnedCrossSubsetting?visitor.visitOwnedCrossSubsetting(this):visitor.visitChildren(this)}},RedefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REDEFINITION(){return this.getToken(SysMLv2Parser.REDEFINITION,0)}specificType(){return this.getRuleContext(0,SpecificTypeContext)}generalType(){return this.getRuleContext(0,GeneralTypeContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}SPECIALIZATION(){return this.getToken(SysMLv2Parser.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_redefinition}enterRule(listener){listener.enterRedefinition&&listener.enterRedefinition(this)}exitRule(listener){listener.exitRedefinition&&listener.exitRedefinition(this)}accept(visitor){return visitor.visitRedefinition?visitor.visitRedefinition(this):visitor.visitChildren(this)}},OwnedRedefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedRedefinition}enterRule(listener){listener.enterOwnedRedefinition&&listener.enterOwnedRedefinition(this)}exitRule(listener){listener.exitOwnedRedefinition&&listener.exitOwnedRedefinition(this)}accept(visitor){return visitor.visitOwnedRedefinition?visitor.visitOwnedRedefinition(this):visitor.visitChildren(this)}},OwnedFeatureChainContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureChain(){return this.getRuleContext(0,FeatureChainContext)}ownedFeatureChaining(i){return i===void 0?this.getRuleContexts(OwnedFeatureChainingContext):this.getRuleContext(i,OwnedFeatureChainingContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureChain}enterRule(listener){listener.enterOwnedFeatureChain&&listener.enterOwnedFeatureChain(this)}exitRule(listener){listener.exitOwnedFeatureChain&&listener.exitOwnedFeatureChain(this)}accept(visitor){return visitor.visitOwnedFeatureChain?visitor.visitOwnedFeatureChain(this):visitor.visitChildren(this)}},FeatureChainContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureChaining(i){return i===void 0?this.getRuleContexts(OwnedFeatureChainingContext):this.getRuleContext(i,OwnedFeatureChainingContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_featureChain}enterRule(listener){listener.enterFeatureChain&&listener.enterFeatureChain(this)}exitRule(listener){listener.exitFeatureChain&&listener.exitFeatureChain(this)}accept(visitor){return visitor.visitFeatureChain?visitor.visitFeatureChain(this):visitor.visitChildren(this)}},OwnedFeatureChainingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureChaining}enterRule(listener){listener.enterOwnedFeatureChaining&&listener.enterOwnedFeatureChaining(this)}exitRule(listener){listener.exitOwnedFeatureChaining&&listener.exitOwnedFeatureChaining(this)}accept(visitor){return visitor.visitOwnedFeatureChaining?visitor.visitOwnedFeatureChaining(this):visitor.visitChildren(this)}},FeatureInvertingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INVERSE(){return this.getToken(SysMLv2Parser.INVERSE,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}INVERTING(){return this.getToken(SysMLv2Parser.INVERTING,0)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureInverting}enterRule(listener){listener.enterFeatureInverting&&listener.enterFeatureInverting(this)}exitRule(listener){listener.exitFeatureInverting&&listener.exitFeatureInverting(this)}accept(visitor){return visitor.visitFeatureInverting?visitor.visitFeatureInverting(this):visitor.visitChildren(this)}},OwnedFeatureInvertingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureInverting}enterRule(listener){listener.enterOwnedFeatureInverting&&listener.enterOwnedFeatureInverting(this)}exitRule(listener){listener.exitOwnedFeatureInverting&&listener.exitOwnedFeatureInverting(this)}accept(visitor){return visitor.visitOwnedFeatureInverting?visitor.visitOwnedFeatureInverting(this):visitor.visitChildren(this)}},TypeFeaturingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}FEATURING(){return this.getToken(SysMLv2Parser.FEATURING,0)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}BY(){return this.getToken(SysMLv2Parser.BY,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeFeaturing}enterRule(listener){listener.enterTypeFeaturing&&listener.enterTypeFeaturing(this)}exitRule(listener){listener.exitTypeFeaturing&&listener.exitTypeFeaturing(this)}accept(visitor){return visitor.visitTypeFeaturing?visitor.visitTypeFeaturing(this):visitor.visitChildren(this)}},OwnedTypeFeaturingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedTypeFeaturing}enterRule(listener){listener.enterOwnedTypeFeaturing&&listener.enterOwnedTypeFeaturing(this)}exitRule(listener){listener.exitOwnedTypeFeaturing&&listener.exitOwnedTypeFeaturing(this)}accept(visitor){return visitor.visitOwnedTypeFeaturing?visitor.visitOwnedTypeFeaturing(this):visitor.visitChildren(this)}},DataTypeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}DATATYPE(){return this.getToken(SysMLv2Parser.DATATYPE,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_dataType}enterRule(listener){listener.enterDataType&&listener.enterDataType(this)}exitRule(listener){listener.exitDataType&&listener.exitDataType(this)}accept(visitor){return visitor.visitDataType?visitor.visitDataType(this):visitor.visitChildren(this)}},ClassContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}CLASS(){return this.getToken(SysMLv2Parser.CLASS,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_class}enterRule(listener){listener.enterClass&&listener.enterClass(this)}exitRule(listener){listener.exitClass&&listener.exitClass(this)}accept(visitor){return visitor.visitClass?visitor.visitClass(this):visitor.visitChildren(this)}},StructureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}STRUCT(){return this.getToken(SysMLv2Parser.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_structure}enterRule(listener){listener.enterStructure&&listener.enterStructure(this)}exitRule(listener){listener.exitStructure&&listener.exitStructure(this)}accept(visitor){return visitor.visitStructure?visitor.visitStructure(this):visitor.visitChildren(this)}},AssociationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}ASSOC(){return this.getToken(SysMLv2Parser.ASSOC,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_association}enterRule(listener){listener.enterAssociation&&listener.enterAssociation(this)}exitRule(listener){listener.exitAssociation&&listener.exitAssociation(this)}accept(visitor){return visitor.visitAssociation?visitor.visitAssociation(this):visitor.visitChildren(this)}},AssociationStructureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}ASSOC(){return this.getToken(SysMLv2Parser.ASSOC,0)}STRUCT(){return this.getToken(SysMLv2Parser.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_associationStructure}enterRule(listener){listener.enterAssociationStructure&&listener.enterAssociationStructure(this)}exitRule(listener){listener.exitAssociationStructure&&listener.exitAssociationStructure(this)}accept(visitor){return visitor.visitAssociationStructure?visitor.visitAssociationStructure(this):visitor.visitChildren(this)}},ConnectorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}CONNECTOR(){return this.getToken(SysMLv2Parser.CONNECTOR,0)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}connectorDeclaration(){return this.getRuleContext(0,ConnectorDeclarationContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_connector}enterRule(listener){listener.enterConnector&&listener.enterConnector(this)}exitRule(listener){listener.exitConnector&&listener.exitConnector(this)}accept(visitor){return visitor.visitConnector?visitor.visitConnector(this):visitor.visitChildren(this)}},ConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}binaryConnectorDeclaration(){return this.getRuleContext(0,BinaryConnectorDeclarationContext)}naryConnectorDeclaration(){return this.getRuleContext(0,NaryConnectorDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectorDeclaration}enterRule(listener){listener.enterConnectorDeclaration&&listener.enterConnectorDeclaration(this)}exitRule(listener){listener.exitConnectorDeclaration&&listener.exitConnectorDeclaration(this)}accept(visitor){return visitor.visitConnectorDeclaration?visitor.visitConnectorDeclaration(this):visitor.visitChildren(this)}},BinaryConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_binaryConnectorDeclaration}enterRule(listener){listener.enterBinaryConnectorDeclaration&&listener.enterBinaryConnectorDeclaration(this)}exitRule(listener){listener.exitBinaryConnectorDeclaration&&listener.exitBinaryConnectorDeclaration(this)}accept(visitor){return visitor.visitBinaryConnectorDeclaration?visitor.visitBinaryConnectorDeclaration(this):visitor.visitChildren(this)}},NaryConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_naryConnectorDeclaration}enterRule(listener){listener.enterNaryConnectorDeclaration&&listener.enterNaryConnectorDeclaration(this)}exitRule(listener){listener.exitNaryConnectorDeclaration&&listener.exitNaryConnectorDeclaration(this)}accept(visitor){return visitor.visitNaryConnectorDeclaration?visitor.visitNaryConnectorDeclaration(this):visitor.visitChildren(this)}},ConnectorEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}connectorEnd(){return this.getRuleContext(0,ConnectorEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectorEndMember}enterRule(listener){listener.enterConnectorEndMember&&listener.enterConnectorEndMember(this)}exitRule(listener){listener.exitConnectorEndMember&&listener.exitConnectorEndMember(this)}accept(visitor){return visitor.visitConnectorEndMember?visitor.visitConnectorEndMember(this):visitor.visitChildren(this)}},ConnectorEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,OwnedCrossMultiplicityMemberContext)}name(){return this.getRuleContext(0,NameContext)}COLON_COLON_GT(){return this.getToken(SysMLv2Parser.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(SysMLv2Parser.REFERENCES,0)}get ruleIndex(){return SysMLv2Parser.RULE_connectorEnd}enterRule(listener){listener.enterConnectorEnd&&listener.enterConnectorEnd(this)}exitRule(listener){listener.exitConnectorEnd&&listener.exitConnectorEnd(this)}accept(visitor){return visitor.visitConnectorEnd?visitor.visitConnectorEnd(this):visitor.visitChildren(this)}},OwnedCrossMultiplicityMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedCrossMultiplicity(){return this.getRuleContext(0,OwnedCrossMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossMultiplicityMember}enterRule(listener){listener.enterOwnedCrossMultiplicityMember&&listener.enterOwnedCrossMultiplicityMember(this)}exitRule(listener){listener.exitOwnedCrossMultiplicityMember&&listener.exitOwnedCrossMultiplicityMember(this)}accept(visitor){return visitor.visitOwnedCrossMultiplicityMember?visitor.visitOwnedCrossMultiplicityMember(this):visitor.visitChildren(this)}},OwnedCrossMultiplicityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedCrossMultiplicity}enterRule(listener){listener.enterOwnedCrossMultiplicity&&listener.enterOwnedCrossMultiplicity(this)}exitRule(listener){listener.exitOwnedCrossMultiplicity&&listener.exitOwnedCrossMultiplicity(this)}accept(visitor){return visitor.visitOwnedCrossMultiplicity?visitor.visitOwnedCrossMultiplicity(this):visitor.visitChildren(this)}},BindingConnectorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}BINDING(){return this.getToken(SysMLv2Parser.BINDING,0)}bindingConnectorDeclaration(){return this.getRuleContext(0,BindingConnectorDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_bindingConnector}enterRule(listener){listener.enterBindingConnector&&listener.enterBindingConnector(this)}exitRule(listener){listener.exitBindingConnector&&listener.exitBindingConnector(this)}accept(visitor){return visitor.visitBindingConnector?visitor.visitBindingConnector(this):visitor.visitChildren(this)}},BindingConnectorDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}get ruleIndex(){return SysMLv2Parser.RULE_bindingConnectorDeclaration}enterRule(listener){listener.enterBindingConnectorDeclaration&&listener.enterBindingConnectorDeclaration(this)}exitRule(listener){listener.exitBindingConnectorDeclaration&&listener.exitBindingConnectorDeclaration(this)}accept(visitor){return visitor.visitBindingConnectorDeclaration?visitor.visitBindingConnectorDeclaration(this):visitor.visitChildren(this)}},SuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}successionDeclaration(){return this.getRuleContext(0,SuccessionDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_succession}enterRule(listener){listener.enterSuccession&&listener.enterSuccession(this)}exitRule(listener){listener.exitSuccession&&listener.exitSuccession(this)}accept(visitor){return visitor.visitSuccession?visitor.visitSuccession(this):visitor.visitChildren(this)}},SuccessionDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}get ruleIndex(){return SysMLv2Parser.RULE_successionDeclaration}enterRule(listener){listener.enterSuccessionDeclaration&&listener.enterSuccessionDeclaration(this)}exitRule(listener){listener.exitSuccessionDeclaration&&listener.exitSuccessionDeclaration(this)}accept(visitor){return visitor.visitSuccessionDeclaration?visitor.visitSuccessionDeclaration(this):visitor.visitChildren(this)}},BehaviorContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}BEHAVIOR(){return this.getToken(SysMLv2Parser.BEHAVIOR,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_behavior}enterRule(listener){listener.enterBehavior&&listener.enterBehavior(this)}exitRule(listener){listener.exitBehavior&&listener.exitBehavior(this)}accept(visitor){return visitor.visitBehavior?visitor.visitBehavior(this):visitor.visitChildren(this)}},StepContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}STEP(){return this.getToken(SysMLv2Parser.STEP,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_step}enterRule(listener){listener.enterStep&&listener.enterStep(this)}exitRule(listener){listener.exitStep&&listener.exitStep(this)}accept(visitor){return visitor.visitStep?visitor.visitStep(this):visitor.visitChildren(this)}},FunctionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}FUNCTION(){return this.getToken(SysMLv2Parser.FUNCTION,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_function}enterRule(listener){listener.enterFunction&&listener.enterFunction(this)}exitRule(listener){listener.exitFunction&&listener.exitFunction(this)}accept(visitor){return visitor.visitFunction?visitor.visitFunction(this):visitor.visitChildren(this)}},FunctionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,FunctionBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_functionBody}enterRule(listener){listener.enterFunctionBody&&listener.enterFunctionBody(this)}exitRule(listener){listener.exitFunctionBody&&listener.exitFunctionBody(this)}accept(visitor){return visitor.visitFunctionBody?visitor.visitFunctionBody(this):visitor.visitChildren(this)}},FunctionBodyPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(i){return i===void 0?this.getRuleContexts(DefinitionBodyItemContext):this.getRuleContext(i,DefinitionBodyItemContext)}typeBodyElement(i){return i===void 0?this.getRuleContexts(TypeBodyElementContext):this.getRuleContext(i,TypeBodyElementContext)}returnFeatureMember(i){return i===void 0?this.getRuleContexts(ReturnFeatureMemberContext):this.getRuleContext(i,ReturnFeatureMemberContext)}resultExpressionMember(){return this.getRuleContext(0,ResultExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionBodyPart}enterRule(listener){listener.enterFunctionBodyPart&&listener.enterFunctionBodyPart(this)}exitRule(listener){listener.exitFunctionBodyPart&&listener.exitFunctionBodyPart(this)}accept(visitor){return visitor.visitFunctionBodyPart?visitor.visitFunctionBodyPart(this):visitor.visitChildren(this)}},ReturnFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}RETURN(){return this.getToken(SysMLv2Parser.RETURN,0)}featureElement(){return this.getRuleContext(0,FeatureElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_returnFeatureMember}enterRule(listener){listener.enterReturnFeatureMember&&listener.enterReturnFeatureMember(this)}exitRule(listener){listener.exitReturnFeatureMember&&listener.exitReturnFeatureMember(this)}accept(visitor){return visitor.visitReturnFeatureMember?visitor.visitReturnFeatureMember(this):visitor.visitChildren(this)}},ResultExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_resultExpressionMember}enterRule(listener){listener.enterResultExpressionMember&&listener.enterResultExpressionMember(this)}exitRule(listener){listener.exitResultExpressionMember&&listener.exitResultExpressionMember(this)}accept(visitor){return visitor.visitResultExpressionMember?visitor.visitResultExpressionMember(this):visitor.visitChildren(this)}},ExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}EXPR(){return this.getToken(SysMLv2Parser.EXPR,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_expression}enterRule(listener){listener.enterExpression&&listener.enterExpression(this)}exitRule(listener){listener.exitExpression&&listener.exitExpression(this)}accept(visitor){return visitor.visitExpression?visitor.visitExpression(this):visitor.visitChildren(this)}},PredicateContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}PREDICATE(){return this.getToken(SysMLv2Parser.PREDICATE,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_predicate}enterRule(listener){listener.enterPredicate&&listener.enterPredicate(this)}exitRule(listener){listener.exitPredicate&&listener.exitPredicate(this)}accept(visitor){return visitor.visitPredicate?visitor.visitPredicate(this):visitor.visitChildren(this)}},BooleanExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}BOOL(){return this.getToken(SysMLv2Parser.BOOL,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_booleanExpression}enterRule(listener){listener.enterBooleanExpression&&listener.enterBooleanExpression(this)}exitRule(listener){listener.exitBooleanExpression&&listener.exitBooleanExpression(this)}accept(visitor){return visitor.visitBooleanExpression?visitor.visitBooleanExpression(this):visitor.visitChildren(this)}},InvariantContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}INV(){return this.getToken(SysMLv2Parser.INV,0)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}functionBody(){return this.getRuleContext(0,FunctionBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}TRUE(){return this.getToken(SysMLv2Parser.TRUE,0)}FALSE(){return this.getToken(SysMLv2Parser.FALSE,0)}get ruleIndex(){return SysMLv2Parser.RULE_invariant}enterRule(listener){listener.enterInvariant&&listener.enterInvariant(this)}exitRule(listener){listener.exitInvariant&&listener.exitInvariant(this)}accept(visitor){return visitor.visitInvariant?visitor.visitInvariant(this):visitor.visitChildren(this)}},OwnedExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedExpressionMember}enterRule(listener){listener.enterOwnedExpressionMember&&listener.enterOwnedExpressionMember(this)}exitRule(listener){listener.exitOwnedExpressionMember&&listener.exitOwnedExpressionMember(this)}accept(visitor){return visitor.visitOwnedExpressionMember?visitor.visitOwnedExpressionMember(this):visitor.visitChildren(this)}},MetadataReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}elementReferenceMember(){return this.getRuleContext(0,ElementReferenceMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataReference}enterRule(listener){listener.enterMetadataReference&&listener.enterMetadataReference(this)}exitRule(listener){listener.exitMetadataReference&&listener.exitMetadataReference(this)}accept(visitor){return visitor.visitMetadataReference?visitor.visitMetadataReference(this):visitor.visitChildren(this)}},TypeReferenceMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeReference(){return this.getRuleContext(0,TypeReferenceContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeReferenceMember}enterRule(listener){listener.enterTypeReferenceMember&&listener.enterTypeReferenceMember(this)}exitRule(listener){listener.exitTypeReferenceMember&&listener.exitTypeReferenceMember(this)}accept(visitor){return visitor.visitTypeReferenceMember?visitor.visitTypeReferenceMember(this):visitor.visitChildren(this)}},TypeResultMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typeReference(){return this.getRuleContext(0,TypeReferenceContext)}get ruleIndex(){return SysMLv2Parser.RULE_typeResultMember}enterRule(listener){listener.enterTypeResultMember&&listener.enterTypeResultMember(this)}exitRule(listener){listener.exitTypeResultMember&&listener.exitTypeResultMember(this)}accept(visitor){return visitor.visitTypeResultMember?visitor.visitTypeResultMember(this):visitor.visitChildren(this)}},ReferenceTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_referenceTyping}enterRule(listener){listener.enterReferenceTyping&&listener.enterReferenceTyping(this)}exitRule(listener){listener.exitReferenceTyping&&listener.exitReferenceTyping(this)}accept(visitor){return visitor.visitReferenceTyping?visitor.visitReferenceTyping(this):visitor.visitChildren(this)}},EmptyResultMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyFeature_(){return this.getRuleContext(0,EmptyFeature_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyResultMember}enterRule(listener){listener.enterEmptyResultMember&&listener.enterEmptyResultMember(this)}exitRule(listener){listener.exitEmptyResultMember&&listener.exitEmptyResultMember(this)}accept(visitor){return visitor.visitEmptyResultMember?visitor.visitEmptyResultMember(this):visitor.visitChildren(this)}},SequenceOperatorExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpressionMember(){return this.getRuleContext(0,OwnedExpressionMemberContext)}COMMA(){return this.getToken(SysMLv2Parser.COMMA,0)}sequenceExpressionListMember(){return this.getRuleContext(0,SequenceExpressionListMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_sequenceOperatorExpression}enterRule(listener){listener.enterSequenceOperatorExpression&&listener.enterSequenceOperatorExpression(this)}exitRule(listener){listener.exitSequenceOperatorExpression&&listener.exitSequenceOperatorExpression(this)}accept(visitor){return visitor.visitSequenceOperatorExpression?visitor.visitSequenceOperatorExpression(this):visitor.visitChildren(this)}},SequenceExpressionListMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sequenceExpressionList(){return this.getRuleContext(0,SequenceExpressionListContext)}get ruleIndex(){return SysMLv2Parser.RULE_sequenceExpressionListMember}enterRule(listener){listener.enterSequenceExpressionListMember&&listener.enterSequenceExpressionListMember(this)}exitRule(listener){listener.exitSequenceExpressionListMember&&listener.exitSequenceExpressionListMember(this)}accept(visitor){return visitor.visitSequenceExpressionListMember?visitor.visitSequenceExpressionListMember(this):visitor.visitChildren(this)}},BodyArgumentMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}bodyArgument(){return this.getRuleContext(0,BodyArgumentContext)}get ruleIndex(){return SysMLv2Parser.RULE_bodyArgumentMember}enterRule(listener){listener.enterBodyArgumentMember&&listener.enterBodyArgumentMember(this)}exitRule(listener){listener.exitBodyArgumentMember&&listener.exitBodyArgumentMember(this)}accept(visitor){return visitor.visitBodyArgumentMember?visitor.visitBodyArgumentMember(this):visitor.visitChildren(this)}},BodyArgumentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}bodyArgumentValue(){return this.getRuleContext(0,BodyArgumentValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_bodyArgument}enterRule(listener){listener.enterBodyArgument&&listener.enterBodyArgument(this)}exitRule(listener){listener.exitBodyArgument&&listener.exitBodyArgument(this)}accept(visitor){return visitor.visitBodyArgument?visitor.visitBodyArgument(this):visitor.visitChildren(this)}},BodyArgumentValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}bodyExpression(){return this.getRuleContext(0,BodyExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_bodyArgumentValue}enterRule(listener){listener.enterBodyArgumentValue&&listener.enterBodyArgumentValue(this)}exitRule(listener){listener.exitBodyArgumentValue&&listener.exitBodyArgumentValue(this)}accept(visitor){return visitor.visitBodyArgumentValue?visitor.visitBodyArgumentValue(this):visitor.visitChildren(this)}},FunctionReferenceArgumentMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}functionReferenceArgument(){return this.getRuleContext(0,FunctionReferenceArgumentContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionReferenceArgumentMember}enterRule(listener){listener.enterFunctionReferenceArgumentMember&&listener.enterFunctionReferenceArgumentMember(this)}exitRule(listener){listener.exitFunctionReferenceArgumentMember&&listener.exitFunctionReferenceArgumentMember(this)}accept(visitor){return visitor.visitFunctionReferenceArgumentMember?visitor.visitFunctionReferenceArgumentMember(this):visitor.visitChildren(this)}},FunctionReferenceArgumentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}functionReferenceArgumentValue(){return this.getRuleContext(0,FunctionReferenceArgumentValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionReferenceArgument}enterRule(listener){listener.enterFunctionReferenceArgument&&listener.enterFunctionReferenceArgument(this)}exitRule(listener){listener.exitFunctionReferenceArgument&&listener.exitFunctionReferenceArgument(this)}accept(visitor){return visitor.visitFunctionReferenceArgument?visitor.visitFunctionReferenceArgument(this):visitor.visitChildren(this)}},FunctionReferenceArgumentValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}functionReferenceExpression(){return this.getRuleContext(0,FunctionReferenceExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionReferenceArgumentValue}enterRule(listener){listener.enterFunctionReferenceArgumentValue&&listener.enterFunctionReferenceArgumentValue(this)}exitRule(listener){listener.exitFunctionReferenceArgumentValue&&listener.exitFunctionReferenceArgumentValue(this)}accept(visitor){return visitor.visitFunctionReferenceArgumentValue?visitor.visitFunctionReferenceArgumentValue(this):visitor.visitChildren(this)}},FunctionReferenceExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}functionReferenceMember(){return this.getRuleContext(0,FunctionReferenceMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionReferenceExpression}enterRule(listener){listener.enterFunctionReferenceExpression&&listener.enterFunctionReferenceExpression(this)}exitRule(listener){listener.exitFunctionReferenceExpression&&listener.exitFunctionReferenceExpression(this)}accept(visitor){return visitor.visitFunctionReferenceExpression?visitor.visitFunctionReferenceExpression(this):visitor.visitChildren(this)}},FunctionReferenceMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}functionReference(){return this.getRuleContext(0,FunctionReferenceContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionReferenceMember}enterRule(listener){listener.enterFunctionReferenceMember&&listener.enterFunctionReferenceMember(this)}exitRule(listener){listener.exitFunctionReferenceMember&&listener.exitFunctionReferenceMember(this)}accept(visitor){return visitor.visitFunctionReferenceMember?visitor.visitFunctionReferenceMember(this):visitor.visitChildren(this)}},FunctionReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}referenceTyping(){return this.getRuleContext(0,ReferenceTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_functionReference}enterRule(listener){listener.enterFunctionReference&&listener.enterFunctionReference(this)}exitRule(listener){listener.exitFunctionReference&&listener.exitFunctionReference(this)}accept(visitor){return visitor.visitFunctionReference?visitor.visitFunctionReference(this):visitor.visitChildren(this)}},FeatureChainMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_featureChainMember}enterRule(listener){listener.enterFeatureChainMember&&listener.enterFeatureChainMember(this)}exitRule(listener){listener.exitFeatureChainMember&&listener.exitFeatureChainMember(this)}accept(visitor){return visitor.visitFeatureChainMember?visitor.visitFeatureChainMember(this):visitor.visitChildren(this)}},OwnedFeatureChainMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureChain(){return this.getRuleContext(0,FeatureChainContext)}ownedFeatureChain(){return this.getRuleContext(0,OwnedFeatureChainContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedFeatureChainMember}enterRule(listener){listener.enterOwnedFeatureChainMember&&listener.enterOwnedFeatureChainMember(this)}exitRule(listener){listener.exitOwnedFeatureChainMember&&listener.exitOwnedFeatureChainMember(this)}accept(visitor){return visitor.visitOwnedFeatureChainMember?visitor.visitOwnedFeatureChainMember(this):visitor.visitChildren(this)}},FeatureReferenceMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureReference(){return this.getRuleContext(0,FeatureReferenceContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureReferenceMember}enterRule(listener){listener.enterFeatureReferenceMember&&listener.enterFeatureReferenceMember(this)}exitRule(listener){listener.exitFeatureReferenceMember&&listener.exitFeatureReferenceMember(this)}accept(visitor){return visitor.visitFeatureReferenceMember?visitor.visitFeatureReferenceMember(this):visitor.visitChildren(this)}},FeatureReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureReference}enterRule(listener){listener.enterFeatureReference&&listener.enterFeatureReference(this)}exitRule(listener){listener.exitFeatureReference&&listener.exitFeatureReference(this)}accept(visitor){return visitor.visitFeatureReference?visitor.visitFeatureReference(this):visitor.visitChildren(this)}},ElementReferenceMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_elementReferenceMember}enterRule(listener){listener.enterElementReferenceMember&&listener.enterElementReferenceMember(this)}exitRule(listener){listener.exitElementReferenceMember&&listener.exitElementReferenceMember(this)}accept(visitor){return visitor.visitElementReferenceMember?visitor.visitElementReferenceMember(this):visitor.visitChildren(this)}},ConstructorResultMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}constructorResult(){return this.getRuleContext(0,ConstructorResultContext)}get ruleIndex(){return SysMLv2Parser.RULE_constructorResultMember}enterRule(listener){listener.enterConstructorResultMember&&listener.enterConstructorResultMember(this)}exitRule(listener){listener.exitConstructorResultMember&&listener.exitConstructorResultMember(this)}accept(visitor){return visitor.visitConstructorResultMember?visitor.visitConstructorResultMember(this):visitor.visitChildren(this)}},ConstructorResultContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}argumentList(){return this.getRuleContext(0,ArgumentListContext)}get ruleIndex(){return SysMLv2Parser.RULE_constructorResult}enterRule(listener){listener.enterConstructorResult&&listener.enterConstructorResult(this)}exitRule(listener){listener.exitConstructorResult&&listener.exitConstructorResult(this)}accept(visitor){return visitor.visitConstructorResult?visitor.visitConstructorResult(this):visitor.visitChildren(this)}},InstantiatedTypeMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_instantiatedTypeMember}enterRule(listener){listener.enterInstantiatedTypeMember&&listener.enterInstantiatedTypeMember(this)}exitRule(listener){listener.exitInstantiatedTypeMember&&listener.exitInstantiatedTypeMember(this)}accept(visitor){return visitor.visitInstantiatedTypeMember?visitor.visitInstantiatedTypeMember(this):visitor.visitChildren(this)}},InstantiatedTypeReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_instantiatedTypeReference}enterRule(listener){listener.enterInstantiatedTypeReference&&listener.enterInstantiatedTypeReference(this)}exitRule(listener){listener.exitInstantiatedTypeReference&&listener.exitInstantiatedTypeReference(this)}accept(visitor){return visitor.visitInstantiatedTypeReference?visitor.visitInstantiatedTypeReference(this):visitor.visitChildren(this)}},NamedArgumentMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namedArgument(){return this.getRuleContext(0,NamedArgumentContext)}get ruleIndex(){return SysMLv2Parser.RULE_namedArgumentMember}enterRule(listener){listener.enterNamedArgumentMember&&listener.enterNamedArgumentMember(this)}exitRule(listener){listener.exitNamedArgumentMember&&listener.exitNamedArgumentMember(this)}accept(visitor){return visitor.visitNamedArgumentMember?visitor.visitNamedArgumentMember(this):visitor.visitChildren(this)}},ParameterRedefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_parameterRedefinition}enterRule(listener){listener.enterParameterRedefinition&&listener.enterParameterRedefinition(this)}exitRule(listener){listener.exitParameterRedefinition&&listener.exitParameterRedefinition(this)}accept(visitor){return visitor.visitParameterRedefinition?visitor.visitParameterRedefinition(this):visitor.visitChildren(this)}},ExpressionBodyMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}expressionBody(){return this.getRuleContext(0,ExpressionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_expressionBodyMember}enterRule(listener){listener.enterExpressionBodyMember&&listener.enterExpressionBodyMember(this)}exitRule(listener){listener.exitExpressionBodyMember&&listener.exitExpressionBodyMember(this)}accept(visitor){return visitor.visitExpressionBodyMember?visitor.visitExpressionBodyMember(this):visitor.visitChildren(this)}},ExpressionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,FunctionBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_expressionBody}enterRule(listener){listener.enterExpressionBody&&listener.enterExpressionBody(this)}exitRule(listener){listener.exitExpressionBody&&listener.exitExpressionBody(this)}accept(visitor){return visitor.visitExpressionBody?visitor.visitExpressionBody(this):visitor.visitChildren(this)}},BooleanValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TRUE(){return this.getToken(SysMLv2Parser.TRUE,0)}FALSE(){return this.getToken(SysMLv2Parser.FALSE,0)}get ruleIndex(){return SysMLv2Parser.RULE_booleanValue}enterRule(listener){listener.enterBooleanValue&&listener.enterBooleanValue(this)}exitRule(listener){listener.exitBooleanValue&&listener.exitBooleanValue(this)}accept(visitor){return visitor.visitBooleanValue?visitor.visitBooleanValue(this):visitor.visitChildren(this)}},RealValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}INTEGER(i){return i===void 0?this.getTokens(SysMLv2Parser.INTEGER):this.getToken(SysMLv2Parser.INTEGER,i)}REAL(){return this.getToken(SysMLv2Parser.REAL,0)}get ruleIndex(){return SysMLv2Parser.RULE_realValue}enterRule(listener){listener.enterRealValue&&listener.enterRealValue(this)}exitRule(listener){listener.exitRealValue&&listener.exitRealValue(this)}accept(visitor){return visitor.visitRealValue?visitor.visitRealValue(this):visitor.visitChildren(this)}},InteractionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}INTERACTION(){return this.getToken(SysMLv2Parser.INTERACTION,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_interaction}enterRule(listener){listener.enterInteraction&&listener.enterInteraction(this)}exitRule(listener){listener.exitInteraction&&listener.exitInteraction(this)}accept(visitor){return visitor.visitInteraction?visitor.visitInteraction(this):visitor.visitChildren(this)}},FlowContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_flow}enterRule(listener){listener.enterFlow&&listener.enterFlow(this)}exitRule(listener){listener.exitFlow&&listener.exitFlow(this)}accept(visitor){return visitor.visitFlow?visitor.visitFlow(this):visitor.visitChildren(this)}},SuccessionFlowContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featurePrefix(){return this.getRuleContext(0,FeaturePrefixContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_successionFlow}enterRule(listener){listener.enterSuccessionFlow&&listener.enterSuccessionFlow(this)}exitRule(listener){listener.exitSuccessionFlow&&listener.exitSuccessionFlow(this)}accept(visitor){return visitor.visitSuccessionFlow?visitor.visitSuccessionFlow(this):visitor.visitChildren(this)}},FlowDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}payloadFeatureMember(){return this.getRuleContext(0,PayloadFeatureMemberContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}flowEndMember(i){return i===void 0?this.getRuleContexts(FlowEndMemberContext):this.getRuleContext(i,FlowEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}ALL(){return this.getToken(SysMLv2Parser.ALL,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}flowPayloadFeatureMember(){return this.getRuleContext(0,FlowPayloadFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowDeclaration}enterRule(listener){listener.enterFlowDeclaration&&listener.enterFlowDeclaration(this)}exitRule(listener){listener.exitFlowDeclaration&&listener.exitFlowDeclaration(this)}accept(visitor){return visitor.visitFlowDeclaration?visitor.visitFlowDeclaration(this):visitor.visitChildren(this)}},PayloadFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadFeature(){return this.getRuleContext(0,PayloadFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadFeatureMember}enterRule(listener){listener.enterPayloadFeatureMember&&listener.enterPayloadFeatureMember(this)}exitRule(listener){listener.exitPayloadFeatureMember&&listener.exitPayloadFeatureMember(this)}accept(visitor){return visitor.visitPayloadFeatureMember?visitor.visitPayloadFeatureMember(this):visitor.visitChildren(this)}},PayloadFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}valuePart(){return this.getRuleContext(0,ValuePartContext)}identification(){return this.getRuleContext(0,IdentificationContext)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,PayloadFeatureSpecializationPartContext)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadFeature}enterRule(listener){listener.enterPayloadFeature&&listener.enterPayloadFeature(this)}exitRule(listener){listener.exitPayloadFeature&&listener.exitPayloadFeature(this)}accept(visitor){return visitor.visitPayloadFeature?visitor.visitPayloadFeature(this):visitor.visitChildren(this)}},PayloadFeatureSpecializationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}multiplicityPart(){return this.getRuleContext(0,MultiplicityPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadFeatureSpecializationPart}enterRule(listener){listener.enterPayloadFeatureSpecializationPart&&listener.enterPayloadFeatureSpecializationPart(this)}exitRule(listener){listener.exitPayloadFeatureSpecializationPart&&listener.exitPayloadFeatureSpecializationPart(this)}accept(visitor){return visitor.visitPayloadFeatureSpecializationPart?visitor.visitPayloadFeatureSpecializationPart(this):visitor.visitChildren(this)}},FlowEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}flowEnd(){return this.getRuleContext(0,FlowEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowEndMember}enterRule(listener){listener.enterFlowEndMember&&listener.enterFlowEndMember(this)}exitRule(listener){listener.exitFlowEndMember&&listener.exitFlowEndMember(this)}accept(visitor){return visitor.visitFlowEndMember?visitor.visitFlowEndMember(this):visitor.visitChildren(this)}},FlowEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_flowEnd}enterRule(listener){listener.enterFlowEnd&&listener.enterFlowEnd(this)}exitRule(listener){listener.exitFlowEnd&&listener.exitFlowEnd(this)}accept(visitor){return visitor.visitFlowEnd?visitor.visitFlowEnd(this):visitor.visitChildren(this)}},FlowFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}flowFeature(){return this.getRuleContext(0,FlowFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowFeatureMember}enterRule(listener){listener.enterFlowFeatureMember&&listener.enterFlowFeatureMember(this)}exitRule(listener){listener.exitFlowFeatureMember&&listener.exitFlowFeatureMember(this)}accept(visitor){return visitor.visitFlowFeatureMember?visitor.visitFlowFeatureMember(this):visitor.visitChildren(this)}},FlowFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}flowFeatureRedefinition(){return this.getRuleContext(0,FlowFeatureRedefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowFeature}enterRule(listener){listener.enterFlowFeature&&listener.enterFlowFeature(this)}exitRule(listener){listener.exitFlowFeature&&listener.exitFlowFeature(this)}accept(visitor){return visitor.visitFlowFeature?visitor.visitFlowFeature(this):visitor.visitChildren(this)}},FlowFeatureRedefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowFeatureRedefinition}enterRule(listener){listener.enterFlowFeatureRedefinition&&listener.enterFlowFeatureRedefinition(this)}exitRule(listener){listener.exitFlowFeatureRedefinition&&listener.exitFlowFeatureRedefinition(this)}accept(visitor){return visitor.visitFlowFeatureRedefinition?visitor.visitFlowFeatureRedefinition(this):visitor.visitChildren(this)}},ValuePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureValue(){return this.getRuleContext(0,FeatureValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_valuePart}enterRule(listener){listener.enterValuePart&&listener.enterValuePart(this)}exitRule(listener){listener.exitValuePart&&listener.exitValuePart(this)}accept(visitor){return visitor.visitValuePart?visitor.visitValuePart(this):visitor.visitChildren(this)}},FeatureValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}COLON_EQ(){return this.getToken(SysMLv2Parser.COLON_EQ,0)}DEFAULT(){return this.getToken(SysMLv2Parser.DEFAULT,0)}get ruleIndex(){return SysMLv2Parser.RULE_featureValue}enterRule(listener){listener.enterFeatureValue&&listener.enterFeatureValue(this)}exitRule(listener){listener.exitFeatureValue&&listener.exitFeatureValue(this)}accept(visitor){return visitor.visitFeatureValue?visitor.visitFeatureValue(this):visitor.visitChildren(this)}},MultiplicityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}multiplicitySubset(){return this.getRuleContext(0,MultiplicitySubsetContext)}multiplicityRange(){return this.getRuleContext(0,MultiplicityRangeContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicity}enterRule(listener){listener.enterMultiplicity&&listener.enterMultiplicity(this)}exitRule(listener){listener.exitMultiplicity&&listener.exitMultiplicity(this)}accept(visitor){return visitor.visitMultiplicity?visitor.visitMultiplicity(this):visitor.visitChildren(this)}},MultiplicitySubsetContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}MULTIPLICITY(){return this.getToken(SysMLv2Parser.MULTIPLICITY,0)}subsets(){return this.getRuleContext(0,SubsetsContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicitySubset}enterRule(listener){listener.enterMultiplicitySubset&&listener.enterMultiplicitySubset(this)}exitRule(listener){listener.exitMultiplicitySubset&&listener.exitMultiplicitySubset(this)}accept(visitor){return visitor.visitMultiplicitySubset?visitor.visitMultiplicitySubset(this):visitor.visitChildren(this)}},MultiplicityRangeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}MULTIPLICITY(){return this.getToken(SysMLv2Parser.MULTIPLICITY,0)}multiplicityBounds(){return this.getRuleContext(0,MultiplicityBoundsContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityRange}enterRule(listener){listener.enterMultiplicityRange&&listener.enterMultiplicityRange(this)}exitRule(listener){listener.exitMultiplicityRange&&listener.exitMultiplicityRange(this)}accept(visitor){return visitor.visitMultiplicityRange?visitor.visitMultiplicityRange(this):visitor.visitChildren(this)}},OwnedMultiplicityContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicityRange(){return this.getRuleContext(0,OwnedMultiplicityRangeContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedMultiplicity}enterRule(listener){listener.enterOwnedMultiplicity&&listener.enterOwnedMultiplicity(this)}exitRule(listener){listener.exitOwnedMultiplicity&&listener.exitOwnedMultiplicity(this)}accept(visitor){return visitor.visitOwnedMultiplicity?visitor.visitOwnedMultiplicity(this):visitor.visitChildren(this)}},OwnedMultiplicityRangeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}multiplicityBounds(){return this.getRuleContext(0,MultiplicityBoundsContext)}get ruleIndex(){return SysMLv2Parser.RULE_ownedMultiplicityRange}enterRule(listener){listener.enterOwnedMultiplicityRange&&listener.enterOwnedMultiplicityRange(this)}exitRule(listener){listener.exitOwnedMultiplicityRange&&listener.exitOwnedMultiplicityRange(this)}accept(visitor){return visitor.visitOwnedMultiplicityRange?visitor.visitOwnedMultiplicityRange(this):visitor.visitChildren(this)}},MultiplicityBoundsContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACK(){return this.getToken(SysMLv2Parser.LBRACK,0)}multiplicityExpressionMember(i){return i===void 0?this.getRuleContexts(MultiplicityExpressionMemberContext):this.getRuleContext(i,MultiplicityExpressionMemberContext)}RBRACK(){return this.getToken(SysMLv2Parser.RBRACK,0)}DOT_DOT(){return this.getToken(SysMLv2Parser.DOT_DOT,0)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityBounds}enterRule(listener){listener.enterMultiplicityBounds&&listener.enterMultiplicityBounds(this)}exitRule(listener){listener.exitMultiplicityBounds&&listener.exitMultiplicityBounds(this)}accept(visitor){return visitor.visitMultiplicityBounds?visitor.visitMultiplicityBounds(this):visitor.visitChildren(this)}},MultiplicityExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}literalExpression(){return this.getRuleContext(0,LiteralExpressionContext)}featureReferenceExpression(){return this.getRuleContext(0,FeatureReferenceExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_multiplicityExpressionMember}enterRule(listener){listener.enterMultiplicityExpressionMember&&listener.enterMultiplicityExpressionMember(this)}exitRule(listener){listener.exitMultiplicityExpressionMember&&listener.exitMultiplicityExpressionMember(this)}accept(visitor){return visitor.visitMultiplicityExpressionMember?visitor.visitMultiplicityExpressionMember(this):visitor.visitChildren(this)}},MetaclassContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}typePrefix(){return this.getRuleContext(0,TypePrefixContext)}METACLASS(){return this.getToken(SysMLv2Parser.METACLASS,0)}classifierDeclaration(){return this.getRuleContext(0,ClassifierDeclarationContext)}typeBody(){return this.getRuleContext(0,TypeBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_metaclass}enterRule(listener){listener.enterMetaclass&&listener.enterMetaclass(this)}exitRule(listener){listener.exitMetaclass&&listener.exitMetaclass(this)}accept(visitor){return visitor.visitMetaclass?visitor.visitMetaclass(this):visitor.visitChildren(this)}},PrefixMetadataAnnotationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}HASH(){return this.getToken(SysMLv2Parser.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,PrefixMetadataFeatureContext)}prefixMetadataUsage(){return this.getRuleContext(0,PrefixMetadataUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataAnnotation}enterRule(listener){listener.enterPrefixMetadataAnnotation&&listener.enterPrefixMetadataAnnotation(this)}exitRule(listener){listener.exitPrefixMetadataAnnotation&&listener.exitPrefixMetadataAnnotation(this)}accept(visitor){return visitor.visitPrefixMetadataAnnotation?visitor.visitPrefixMetadataAnnotation(this):visitor.visitChildren(this)}},PrefixMetadataMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}HASH(){return this.getToken(SysMLv2Parser.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,PrefixMetadataFeatureContext)}prefixMetadataUsage(){return this.getRuleContext(0,PrefixMetadataUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataMember}enterRule(listener){listener.enterPrefixMetadataMember&&listener.enterPrefixMetadataMember(this)}exitRule(listener){listener.exitPrefixMetadataMember&&listener.exitPrefixMetadataMember(this)}accept(visitor){return visitor.visitPrefixMetadataMember?visitor.visitPrefixMetadataMember(this):visitor.visitChildren(this)}},PrefixMetadataFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataFeature}enterRule(listener){listener.enterPrefixMetadataFeature&&listener.enterPrefixMetadataFeature(this)}exitRule(listener){listener.exitPrefixMetadataFeature&&listener.exitPrefixMetadataFeature(this)}accept(visitor){return visitor.visitPrefixMetadataFeature?visitor.visitPrefixMetadataFeature(this):visitor.visitChildren(this)}},MetadataFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataFeatureDeclaration(){return this.getRuleContext(0,MetadataFeatureDeclarationContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}AT_SIGN(){return this.getToken(SysMLv2Parser.AT_SIGN,0)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}ABOUT(){return this.getToken(SysMLv2Parser.ABOUT,0)}annotation(i){return i===void 0?this.getRuleContexts(AnnotationContext):this.getRuleContext(i,AnnotationContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_metadataFeature}enterRule(listener){listener.enterMetadataFeature&&listener.enterMetadataFeature(this)}exitRule(listener){listener.exitMetadataFeature&&listener.exitMetadataFeature(this)}accept(visitor){return visitor.visitMetadataFeature?visitor.visitMetadataFeature(this):visitor.visitChildren(this)}},MetadataFeatureDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataFeatureDeclaration}enterRule(listener){listener.enterMetadataFeatureDeclaration&&listener.enterMetadataFeatureDeclaration(this)}exitRule(listener){listener.exitMetadataFeatureDeclaration&&listener.exitMetadataFeatureDeclaration(this)}accept(visitor){return visitor.visitMetadataFeatureDeclaration?visitor.visitMetadataFeatureDeclaration(this):visitor.visitChildren(this)}},MetadataBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}metadataBodyElement(i){return i===void 0?this.getRuleContexts(MetadataBodyElementContext):this.getRuleContext(i,MetadataBodyElementContext)}definitionMember(i){return i===void 0?this.getRuleContexts(DefinitionMemberContext):this.getRuleContext(i,DefinitionMemberContext)}metadataBodyUsageMember(i){return i===void 0?this.getRuleContexts(MetadataBodyUsageMemberContext):this.getRuleContext(i,MetadataBodyUsageMemberContext)}aliasMember(i){return i===void 0?this.getRuleContexts(AliasMemberContext):this.getRuleContext(i,AliasMemberContext)}importRule(i){return i===void 0?this.getRuleContexts(ImportRuleContext):this.getRuleContext(i,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBody}enterRule(listener){listener.enterMetadataBody&&listener.enterMetadataBody(this)}exitRule(listener){listener.exitMetadataBody&&listener.exitMetadataBody(this)}accept(visitor){return visitor.visitMetadataBody?visitor.visitMetadataBody(this):visitor.visitChildren(this)}},MetadataBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureMember(){return this.getRuleContext(0,NonFeatureMemberContext)}metadataBodyFeatureMember(){return this.getRuleContext(0,MetadataBodyFeatureMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyElement}enterRule(listener){listener.enterMetadataBodyElement&&listener.enterMetadataBodyElement(this)}exitRule(listener){listener.exitMetadataBodyElement&&listener.exitMetadataBodyElement(this)}accept(visitor){return visitor.visitMetadataBodyElement?visitor.visitMetadataBodyElement(this):visitor.visitChildren(this)}},MetadataBodyFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataBodyFeature(){return this.getRuleContext(0,MetadataBodyFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyFeatureMember}enterRule(listener){listener.enterMetadataBodyFeatureMember&&listener.enterMetadataBodyFeatureMember(this)}exitRule(listener){listener.exitMetadataBodyFeatureMember&&listener.exitMetadataBodyFeatureMember(this)}accept(visitor){return visitor.visitMetadataBodyFeatureMember?visitor.visitMetadataBodyFeatureMember(this):visitor.visitChildren(this)}},MetadataBodyFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRedefinition(){return this.getRuleContext(0,OwnedRedefinitionContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}FEATURE(){return this.getToken(SysMLv2Parser.FEATURE,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyFeature}enterRule(listener){listener.enterMetadataBodyFeature&&listener.enterMetadataBodyFeature(this)}exitRule(listener){listener.exitMetadataBodyFeature&&listener.exitMetadataBodyFeature(this)}accept(visitor){return visitor.visitMetadataBodyFeature?visitor.visitMetadataBodyFeature(this):visitor.visitChildren(this)}},PackageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}packageDeclaration(){return this.getRuleContext(0,PackageDeclarationContext)}packageBody(){return this.getRuleContext(0,PackageBodyContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_package}enterRule(listener){listener.enterPackage&&listener.enterPackage(this)}exitRule(listener){listener.exitPackage&&listener.exitPackage(this)}accept(visitor){return visitor.visitPackage?visitor.visitPackage(this):visitor.visitChildren(this)}},LibraryPackageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LIBRARY(){return this.getToken(SysMLv2Parser.LIBRARY,0)}packageDeclaration(){return this.getRuleContext(0,PackageDeclarationContext)}packageBody(){return this.getRuleContext(0,PackageBodyContext)}STANDARD(){return this.getToken(SysMLv2Parser.STANDARD,0)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_libraryPackage}enterRule(listener){listener.enterLibraryPackage&&listener.enterLibraryPackage(this)}exitRule(listener){listener.exitLibraryPackage&&listener.exitLibraryPackage(this)}accept(visitor){return visitor.visitLibraryPackage?visitor.visitLibraryPackage(this):visitor.visitChildren(this)}},PackageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}PACKAGE(){return this.getToken(SysMLv2Parser.PACKAGE,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageDeclaration}enterRule(listener){listener.enterPackageDeclaration&&listener.enterPackageDeclaration(this)}exitRule(listener){listener.exitPackageDeclaration&&listener.exitPackageDeclaration(this)}accept(visitor){return visitor.visitPackageDeclaration?visitor.visitPackageDeclaration(this):visitor.visitChildren(this)}},PackageBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}packageBodyElement(i){return i===void 0?this.getRuleContexts(PackageBodyElementContext):this.getRuleContext(i,PackageBodyElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageBody}enterRule(listener){listener.enterPackageBody&&listener.enterPackageBody(this)}exitRule(listener){listener.exitPackageBody&&listener.exitPackageBody(this)}accept(visitor){return visitor.visitPackageBody?visitor.visitPackageBody(this):visitor.visitChildren(this)}},ElementFilterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}FILTER(){return this.getToken(SysMLv2Parser.FILTER,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}get ruleIndex(){return SysMLv2Parser.RULE_elementFilterMember}enterRule(listener){listener.enterElementFilterMember&&listener.enterElementFilterMember(this)}exitRule(listener){listener.exitElementFilterMember&&listener.exitElementFilterMember(this)}accept(visitor){return visitor.visitElementFilterMember?visitor.visitElementFilterMember(this):visitor.visitChildren(this)}},DependencyDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(i){return i===void 0?this.getRuleContexts(QualifiedNameContext):this.getRuleContext(i,QualifiedNameContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_dependencyDeclaration}enterRule(listener){listener.enterDependencyDeclaration&&listener.enterDependencyDeclaration(this)}exitRule(listener){listener.exitDependencyDeclaration&&listener.exitDependencyDeclaration(this)}accept(visitor){return visitor.visitDependencyDeclaration?visitor.visitDependencyDeclaration(this):visitor.visitChildren(this)}},AnnotatingMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_annotatingMember}enterRule(listener){listener.enterAnnotatingMember&&listener.enterAnnotatingMember(this)}exitRule(listener){listener.exitAnnotatingMember&&listener.exitAnnotatingMember(this)}accept(visitor){return visitor.visitAnnotatingMember?visitor.visitAnnotatingMember(this):visitor.visitChildren(this)}},PackageBodyElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}packageMember(){return this.getRuleContext(0,PackageMemberContext)}elementFilterMember(){return this.getRuleContext(0,ElementFilterMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageBodyElement}enterRule(listener){listener.enterPackageBodyElement&&listener.enterPackageBodyElement(this)}exitRule(listener){listener.exitPackageBodyElement&&listener.exitPackageBodyElement(this)}accept(visitor){return visitor.visitPackageBodyElement?visitor.visitPackageBodyElement(this):visitor.visitChildren(this)}},PackageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}definitionElement(){return this.getRuleContext(0,DefinitionElementContext)}usageElement(){return this.getRuleContext(0,UsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_packageMember}enterRule(listener){listener.enterPackageMember&&listener.enterPackageMember(this)}exitRule(listener){listener.exitPackageMember&&listener.exitPackageMember(this)}accept(visitor){return visitor.visitPackageMember?visitor.visitPackageMember(this):visitor.visitChildren(this)}},DefinitionElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}package(){return this.getRuleContext(0,PackageContext)}libraryPackage(){return this.getRuleContext(0,LibraryPackageContext)}annotatingElement(){return this.getRuleContext(0,AnnotatingElementContext)}dependency(){return this.getRuleContext(0,DependencyContext)}attributeDefinition(){return this.getRuleContext(0,AttributeDefinitionContext)}enumerationDefinition(){return this.getRuleContext(0,EnumerationDefinitionContext)}occurrenceDefinition(){return this.getRuleContext(0,OccurrenceDefinitionContext)}individualDefinition(){return this.getRuleContext(0,IndividualDefinitionContext)}itemDefinition(){return this.getRuleContext(0,ItemDefinitionContext)}partDefinition(){return this.getRuleContext(0,PartDefinitionContext)}connectionDefinition(){return this.getRuleContext(0,ConnectionDefinitionContext)}flowDefinition(){return this.getRuleContext(0,FlowDefinitionContext)}interfaceDefinition(){return this.getRuleContext(0,InterfaceDefinitionContext)}portDefinition(){return this.getRuleContext(0,PortDefinitionContext)}actionDefinition(){return this.getRuleContext(0,ActionDefinitionContext)}calculationDefinition(){return this.getRuleContext(0,CalculationDefinitionContext)}stateDefinition(){return this.getRuleContext(0,StateDefinitionContext)}constraintDefinition(){return this.getRuleContext(0,ConstraintDefinitionContext)}requirementDefinition(){return this.getRuleContext(0,RequirementDefinitionContext)}concernDefinition(){return this.getRuleContext(0,ConcernDefinitionContext)}caseDefinition(){return this.getRuleContext(0,CaseDefinitionContext)}analysisCaseDefinition(){return this.getRuleContext(0,AnalysisCaseDefinitionContext)}verificationCaseDefinition(){return this.getRuleContext(0,VerificationCaseDefinitionContext)}useCaseDefinition(){return this.getRuleContext(0,UseCaseDefinitionContext)}viewDefinition(){return this.getRuleContext(0,ViewDefinitionContext)}viewpointDefinition(){return this.getRuleContext(0,ViewpointDefinitionContext)}renderingDefinition(){return this.getRuleContext(0,RenderingDefinitionContext)}metadataDefinition(){return this.getRuleContext(0,MetadataDefinitionContext)}allocationDefinition(){return this.getRuleContext(0,AllocationDefinitionContext)}extendedDefinition(){return this.getRuleContext(0,ExtendedDefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionElement}enterRule(listener){listener.enterDefinitionElement&&listener.enterDefinitionElement(this)}exitRule(listener){listener.exitDefinitionElement&&listener.exitDefinitionElement(this)}accept(visitor){return visitor.visitDefinitionElement?visitor.visitDefinitionElement(this):visitor.visitChildren(this)}},UsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonOccurrenceUsageElement(){return this.getRuleContext(0,NonOccurrenceUsageElementContext)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageElement}enterRule(listener){listener.enterUsageElement&&listener.enterUsageElement(this)}exitRule(listener){listener.exitUsageElement&&listener.exitUsageElement(this)}accept(visitor){return visitor.visitUsageElement?visitor.visitUsageElement(this):visitor.visitChildren(this)}},BasicDefinitionPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}VARIATION(){return this.getToken(SysMLv2Parser.VARIATION,0)}get ruleIndex(){return SysMLv2Parser.RULE_basicDefinitionPrefix}enterRule(listener){listener.enterBasicDefinitionPrefix&&listener.enterBasicDefinitionPrefix(this)}exitRule(listener){listener.exitBasicDefinitionPrefix&&listener.exitBasicDefinitionPrefix(this)}accept(visitor){return visitor.visitBasicDefinitionPrefix?visitor.visitBasicDefinitionPrefix(this):visitor.visitChildren(this)}},DefinitionExtensionKeywordContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}prefixMetadataMember(){return this.getRuleContext(0,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionExtensionKeyword}enterRule(listener){listener.enterDefinitionExtensionKeyword&&listener.enterDefinitionExtensionKeyword(this)}exitRule(listener){listener.exitDefinitionExtensionKeyword&&listener.exitDefinitionExtensionKeyword(this)}accept(visitor){return visitor.visitDefinitionExtensionKeyword?visitor.visitDefinitionExtensionKeyword(this):visitor.visitChildren(this)}},DefinitionPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionPrefix}enterRule(listener){listener.enterDefinitionPrefix&&listener.enterDefinitionPrefix(this)}exitRule(listener){listener.exitDefinitionPrefix&&listener.exitDefinitionPrefix(this)}accept(visitor){return visitor.visitDefinitionPrefix?visitor.visitDefinitionPrefix(this):visitor.visitChildren(this)}},DefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_definition}enterRule(listener){listener.enterDefinition&&listener.enterDefinition(this)}exitRule(listener){listener.exitDefinition&&listener.exitDefinition(this)}accept(visitor){return visitor.visitDefinition?visitor.visitDefinition(this):visitor.visitChildren(this)}},DefinitionDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}identification(){return this.getRuleContext(0,IdentificationContext)}subclassificationPart(){return this.getRuleContext(0,SubclassificationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionDeclaration}enterRule(listener){listener.enterDefinitionDeclaration&&listener.enterDefinitionDeclaration(this)}exitRule(listener){listener.exitDefinitionDeclaration&&listener.exitDefinitionDeclaration(this)}accept(visitor){return visitor.visitDefinitionDeclaration?visitor.visitDefinitionDeclaration(this):visitor.visitChildren(this)}},DefinitionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}definitionBodyItem(i){return i===void 0?this.getRuleContexts(DefinitionBodyItemContext):this.getRuleContext(i,DefinitionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionBody}enterRule(listener){listener.enterDefinitionBody&&listener.enterDefinitionBody(this)}exitRule(listener){listener.exitDefinitionBody&&listener.exitDefinitionBody(this)}accept(visitor){return visitor.visitDefinitionBody?visitor.visitDefinitionBody(this):visitor.visitChildren(this)}},DefinitionBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}importRule(){return this.getRuleContext(0,ImportRuleContext)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}definitionBodyItemContent(){return this.getRuleContext(0,DefinitionBodyItemContentContext)}endOccurrenceUsageElement(){return this.getRuleContext(0,EndOccurrenceUsageElementContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionBodyItem}enterRule(listener){listener.enterDefinitionBodyItem&&listener.enterDefinitionBodyItem(this)}exitRule(listener){listener.exitDefinitionBodyItem&&listener.exitDefinitionBodyItem(this)}accept(visitor){return visitor.visitDefinitionBodyItem?visitor.visitDefinitionBodyItem(this):visitor.visitChildren(this)}},DefinitionBodyItemContentContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALIAS(){return this.getToken(SysMLv2Parser.ALIAS,0)}FOR(){return this.getToken(SysMLv2Parser.FOR,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}LT(){return this.getToken(SysMLv2Parser.LT,0)}name(i){return i===void 0?this.getRuleContexts(NameContext):this.getRuleContext(i,NameContext)}GT(){return this.getToken(SysMLv2Parser.GT,0)}VARIANT(){return this.getToken(SysMLv2Parser.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,VariantUsageElementContext)}definitionElement(){return this.getRuleContext(0,DefinitionElementContext)}nonOccurrenceUsageElement(){return this.getRuleContext(0,NonOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionBodyItemContent}enterRule(listener){listener.enterDefinitionBodyItemContent&&listener.enterDefinitionBodyItemContent(this)}exitRule(listener){listener.exitDefinitionBodyItemContent&&listener.exitDefinitionBodyItemContent(this)}accept(visitor){return visitor.visitDefinitionBodyItemContent?visitor.visitDefinitionBodyItemContent(this):visitor.visitChildren(this)}},DefinitionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}definitionElement(){return this.getRuleContext(0,DefinitionElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_definitionMember}enterRule(listener){listener.enterDefinitionMember&&listener.enterDefinitionMember(this)}exitRule(listener){listener.exitDefinitionMember&&listener.exitDefinitionMember(this)}accept(visitor){return visitor.visitDefinitionMember?visitor.visitDefinitionMember(this):visitor.visitChildren(this)}},VariantUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}VARIANT(){return this.getToken(SysMLv2Parser.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,VariantUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_variantUsageMember}enterRule(listener){listener.enterVariantUsageMember&&listener.enterVariantUsageMember(this)}exitRule(listener){listener.exitVariantUsageMember&&listener.exitVariantUsageMember(this)}accept(visitor){return visitor.visitVariantUsageMember?visitor.visitVariantUsageMember(this):visitor.visitChildren(this)}},NonOccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}nonOccurrenceUsageElement(){return this.getRuleContext(0,NonOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonOccurrenceUsageMember}enterRule(listener){listener.enterNonOccurrenceUsageMember&&listener.enterNonOccurrenceUsageMember(this)}exitRule(listener){listener.exitNonOccurrenceUsageMember&&listener.exitNonOccurrenceUsageMember(this)}accept(visitor){return visitor.visitNonOccurrenceUsageMember?visitor.visitNonOccurrenceUsageMember(this):visitor.visitChildren(this)}},OccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsageMember}enterRule(listener){listener.enterOccurrenceUsageMember&&listener.enterOccurrenceUsageMember(this)}exitRule(listener){listener.exitOccurrenceUsageMember&&listener.exitOccurrenceUsageMember(this)}accept(visitor){return visitor.visitOccurrenceUsageMember?visitor.visitOccurrenceUsageMember(this):visitor.visitChildren(this)}},StructureUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}structureUsageElement(){return this.getRuleContext(0,StructureUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_structureUsageMember}enterRule(listener){listener.enterStructureUsageMember&&listener.enterStructureUsageMember(this)}exitRule(listener){listener.exitStructureUsageMember&&listener.exitStructureUsageMember(this)}accept(visitor){return visitor.visitStructureUsageMember?visitor.visitStructureUsageMember(this):visitor.visitChildren(this)}},BehaviorUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_behaviorUsageMember}enterRule(listener){listener.enterBehaviorUsageMember&&listener.enterBehaviorUsageMember(this)}exitRule(listener){listener.exitBehaviorUsageMember&&listener.exitBehaviorUsageMember(this)}accept(visitor){return visitor.visitBehaviorUsageMember?visitor.visitBehaviorUsageMember(this):visitor.visitChildren(this)}},RefPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureDirection(){return this.getRuleContext(0,FeatureDirectionContext)}DERIVED(){return this.getToken(SysMLv2Parser.DERIVED,0)}CONSTANT(){return this.getToken(SysMLv2Parser.CONSTANT,0)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}VARIATION(){return this.getToken(SysMLv2Parser.VARIATION,0)}get ruleIndex(){return SysMLv2Parser.RULE_refPrefix}enterRule(listener){listener.enterRefPrefix&&listener.enterRefPrefix(this)}exitRule(listener){listener.exitRefPrefix&&listener.exitRefPrefix(this)}accept(visitor){return visitor.visitRefPrefix?visitor.visitRefPrefix(this):visitor.visitChildren(this)}},BasicUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}REF(){return this.getToken(SysMLv2Parser.REF,0)}get ruleIndex(){return SysMLv2Parser.RULE_basicUsagePrefix}enterRule(listener){listener.enterBasicUsagePrefix&&listener.enterBasicUsagePrefix(this)}exitRule(listener){listener.exitBasicUsagePrefix&&listener.exitBasicUsagePrefix(this)}accept(visitor){return visitor.visitBasicUsagePrefix?visitor.visitBasicUsagePrefix(this):visitor.visitChildren(this)}},EndUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}ownedCrossFeatureMember(){return this.getRuleContext(0,OwnedCrossFeatureMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_endUsagePrefix}enterRule(listener){listener.enterEndUsagePrefix&&listener.enterEndUsagePrefix(this)}exitRule(listener){listener.exitEndUsagePrefix&&listener.exitEndUsagePrefix(this)}accept(visitor){return visitor.visitEndUsagePrefix?visitor.visitEndUsagePrefix(this):visitor.visitChildren(this)}},UsageExtensionKeywordContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}prefixMetadataMember(){return this.getRuleContext(0,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageExtensionKeyword}enterRule(listener){listener.enterUsageExtensionKeyword&&listener.enterUsageExtensionKeyword(this)}exitRule(listener){listener.exitUsageExtensionKeyword&&listener.exitUsageExtensionKeyword(this)}accept(visitor){return visitor.visitUsageExtensionKeyword?visitor.visitUsageExtensionKeyword(this):visitor.visitChildren(this)}},UnextendedUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}endUsagePrefix(){return this.getRuleContext(0,EndUsagePrefixContext)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}get ruleIndex(){return SysMLv2Parser.RULE_unextendedUsagePrefix}enterRule(listener){listener.enterUnextendedUsagePrefix&&listener.enterUnextendedUsagePrefix(this)}exitRule(listener){listener.exitUnextendedUsagePrefix&&listener.exitUnextendedUsagePrefix(this)}accept(visitor){return visitor.visitUnextendedUsagePrefix?visitor.visitUnextendedUsagePrefix(this):visitor.visitChildren(this)}},UsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}unextendedUsagePrefix(){return this.getRuleContext(0,UnextendedUsagePrefixContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_usagePrefix}enterRule(listener){listener.enterUsagePrefix&&listener.enterUsagePrefix(this)}exitRule(listener){listener.exitUsagePrefix&&listener.exitUsagePrefix(this)}accept(visitor){return visitor.visitUsagePrefix?visitor.visitUsagePrefix(this):visitor.visitChildren(this)}},UsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageCompletion(){return this.getRuleContext(0,UsageCompletionContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_usage}enterRule(listener){listener.enterUsage&&listener.enterUsage(this)}exitRule(listener){listener.exitUsage&&listener.exitUsage(this)}accept(visitor){return visitor.visitUsage?visitor.visitUsage(this):visitor.visitChildren(this)}},UsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}identification(){return this.getRuleContext(0,IdentificationContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageDeclaration}enterRule(listener){listener.enterUsageDeclaration&&listener.enterUsageDeclaration(this)}exitRule(listener){listener.exitUsageDeclaration&&listener.exitUsageDeclaration(this)}accept(visitor){return visitor.visitUsageDeclaration?visitor.visitUsageDeclaration(this):visitor.visitChildren(this)}},UsageCompletionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageCompletion}enterRule(listener){listener.enterUsageCompletion&&listener.enterUsageCompletion(this)}exitRule(listener){listener.exitUsageCompletion&&listener.exitUsageCompletion(this)}accept(visitor){return visitor.visitUsageCompletion?visitor.visitUsageCompletion(this):visitor.visitChildren(this)}},UsageBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_usageBody}enterRule(listener){listener.enterUsageBody&&listener.enterUsageBody(this)}exitRule(listener){listener.exitUsageBody&&listener.exitUsageBody(this)}accept(visitor){return visitor.visitUsageBody?visitor.visitUsageBody(this):visitor.visitChildren(this)}},DefaultReferenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_defaultReferenceUsage}enterRule(listener){listener.enterDefaultReferenceUsage&&listener.enterDefaultReferenceUsage(this)}exitRule(listener){listener.exitDefaultReferenceUsage&&listener.exitDefaultReferenceUsage(this)}accept(visitor){return visitor.visitDefaultReferenceUsage?visitor.visitDefaultReferenceUsage(this):visitor.visitChildren(this)}},ReferenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}REF(){return this.getToken(SysMLv2Parser.REF,0)}usage(){return this.getRuleContext(0,UsageContext)}endUsagePrefix(){return this.getRuleContext(0,EndUsagePrefixContext)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}get ruleIndex(){return SysMLv2Parser.RULE_referenceUsage}enterRule(listener){listener.enterReferenceUsage&&listener.enterReferenceUsage(this)}exitRule(listener){listener.exitReferenceUsage&&listener.exitReferenceUsage(this)}accept(visitor){return visitor.visitReferenceUsage?visitor.visitReferenceUsage(this):visitor.visitChildren(this)}},EndFeatureUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}endUsagePrefix(){return this.getRuleContext(0,EndUsagePrefixContext)}featureDeclaration(){return this.getRuleContext(0,FeatureDeclarationContext)}usageCompletion(){return this.getRuleContext(0,UsageCompletionContext)}get ruleIndex(){return SysMLv2Parser.RULE_endFeatureUsage}enterRule(listener){listener.enterEndFeatureUsage&&listener.enterEndFeatureUsage(this)}exitRule(listener){listener.exitEndFeatureUsage&&listener.exitEndFeatureUsage(this)}accept(visitor){return visitor.visitEndFeatureUsage?visitor.visitEndFeatureUsage(this):visitor.visitChildren(this)}},VariantReferenceContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}get ruleIndex(){return SysMLv2Parser.RULE_variantReference}enterRule(listener){listener.enterVariantReference&&listener.enterVariantReference(this)}exitRule(listener){listener.exitVariantReference&&listener.exitVariantReference(this)}accept(visitor){return visitor.visitVariantReference?visitor.visitVariantReference(this):visitor.visitChildren(this)}},NonOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}referenceUsage(){return this.getRuleContext(0,ReferenceUsageContext)}endFeatureUsage(){return this.getRuleContext(0,EndFeatureUsageContext)}attributeUsage(){return this.getRuleContext(0,AttributeUsageContext)}enumerationUsage(){return this.getRuleContext(0,EnumerationUsageContext)}bindingConnectorAsUsage(){return this.getRuleContext(0,BindingConnectorAsUsageContext)}successionAsUsage(){return this.getRuleContext(0,SuccessionAsUsageContext)}extendedUsage(){return this.getRuleContext(0,ExtendedUsageContext)}defaultReferenceUsage(){return this.getRuleContext(0,DefaultReferenceUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonOccurrenceUsageElement}enterRule(listener){listener.enterNonOccurrenceUsageElement&&listener.enterNonOccurrenceUsageElement(this)}exitRule(listener){listener.exitNonOccurrenceUsageElement&&listener.exitNonOccurrenceUsageElement(this)}accept(visitor){return visitor.visitNonOccurrenceUsageElement?visitor.visitNonOccurrenceUsageElement(this):visitor.visitChildren(this)}},EndOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}occurrenceUsageElement(){return this.getRuleContext(0,OccurrenceUsageElementContext)}name(){return this.getRuleContext(0,NameContext)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,OwnedCrossMultiplicityMemberContext)}NONUNIQUE(){return this.getToken(SysMLv2Parser.NONUNIQUE,0)}get ruleIndex(){return SysMLv2Parser.RULE_endOccurrenceUsageElement}enterRule(listener){listener.enterEndOccurrenceUsageElement&&listener.enterEndOccurrenceUsageElement(this)}exitRule(listener){listener.exitEndOccurrenceUsageElement&&listener.exitEndOccurrenceUsageElement(this)}accept(visitor){return visitor.visitEndOccurrenceUsageElement?visitor.visitEndOccurrenceUsageElement(this):visitor.visitChildren(this)}},OccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}structureUsageElement(){return this.getRuleContext(0,StructureUsageElementContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsageElement}enterRule(listener){listener.enterOccurrenceUsageElement&&listener.enterOccurrenceUsageElement(this)}exitRule(listener){listener.exitOccurrenceUsageElement&&listener.exitOccurrenceUsageElement(this)}accept(visitor){return visitor.visitOccurrenceUsageElement?visitor.visitOccurrenceUsageElement(this):visitor.visitChildren(this)}},StructureUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsage(){return this.getRuleContext(0,OccurrenceUsageContext)}individualUsage(){return this.getRuleContext(0,IndividualUsageContext)}portionUsage(){return this.getRuleContext(0,PortionUsageContext)}eventOccurrenceUsage(){return this.getRuleContext(0,EventOccurrenceUsageContext)}itemUsage(){return this.getRuleContext(0,ItemUsageContext)}partUsage(){return this.getRuleContext(0,PartUsageContext)}viewUsage(){return this.getRuleContext(0,ViewUsageContext)}renderingUsage(){return this.getRuleContext(0,RenderingUsageContext)}portUsage(){return this.getRuleContext(0,PortUsageContext)}connectionUsage(){return this.getRuleContext(0,ConnectionUsageContext)}interfaceUsage(){return this.getRuleContext(0,InterfaceUsageContext)}allocationUsage(){return this.getRuleContext(0,AllocationUsageContext)}message(){return this.getRuleContext(0,MessageContext)}flowUsage(){return this.getRuleContext(0,FlowUsageContext)}successionFlowUsage(){return this.getRuleContext(0,SuccessionFlowUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_structureUsageElement}enterRule(listener){listener.enterStructureUsageElement&&listener.enterStructureUsageElement(this)}exitRule(listener){listener.exitStructureUsageElement&&listener.exitStructureUsageElement(this)}accept(visitor){return visitor.visitStructureUsageElement?visitor.visitStructureUsageElement(this):visitor.visitChildren(this)}},BehaviorUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionUsage(){return this.getRuleContext(0,ActionUsageContext)}calculationUsage(){return this.getRuleContext(0,CalculationUsageContext)}stateUsage(){return this.getRuleContext(0,StateUsageContext)}constraintUsage(){return this.getRuleContext(0,ConstraintUsageContext)}requirementUsage(){return this.getRuleContext(0,RequirementUsageContext)}concernUsage(){return this.getRuleContext(0,ConcernUsageContext)}caseUsage(){return this.getRuleContext(0,CaseUsageContext)}analysisCaseUsage(){return this.getRuleContext(0,AnalysisCaseUsageContext)}verificationCaseUsage(){return this.getRuleContext(0,VerificationCaseUsageContext)}useCaseUsage(){return this.getRuleContext(0,UseCaseUsageContext)}viewpointUsage(){return this.getRuleContext(0,ViewpointUsageContext)}performActionUsage(){return this.getRuleContext(0,PerformActionUsageContext)}exhibitStateUsage(){return this.getRuleContext(0,ExhibitStateUsageContext)}includeUseCaseUsage(){return this.getRuleContext(0,IncludeUseCaseUsageContext)}assertConstraintUsage(){return this.getRuleContext(0,AssertConstraintUsageContext)}satisfyRequirementUsage(){return this.getRuleContext(0,SatisfyRequirementUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_behaviorUsageElement}enterRule(listener){listener.enterBehaviorUsageElement&&listener.enterBehaviorUsageElement(this)}exitRule(listener){listener.exitBehaviorUsageElement&&listener.exitBehaviorUsageElement(this)}accept(visitor){return visitor.visitBehaviorUsageElement?visitor.visitBehaviorUsageElement(this):visitor.visitChildren(this)}},VariantUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}variantReference(){return this.getRuleContext(0,VariantReferenceContext)}referenceUsage(){return this.getRuleContext(0,ReferenceUsageContext)}attributeUsage(){return this.getRuleContext(0,AttributeUsageContext)}bindingConnectorAsUsage(){return this.getRuleContext(0,BindingConnectorAsUsageContext)}successionAsUsage(){return this.getRuleContext(0,SuccessionAsUsageContext)}occurrenceUsage(){return this.getRuleContext(0,OccurrenceUsageContext)}individualUsage(){return this.getRuleContext(0,IndividualUsageContext)}portionUsage(){return this.getRuleContext(0,PortionUsageContext)}eventOccurrenceUsage(){return this.getRuleContext(0,EventOccurrenceUsageContext)}itemUsage(){return this.getRuleContext(0,ItemUsageContext)}partUsage(){return this.getRuleContext(0,PartUsageContext)}viewUsage(){return this.getRuleContext(0,ViewUsageContext)}renderingUsage(){return this.getRuleContext(0,RenderingUsageContext)}portUsage(){return this.getRuleContext(0,PortUsageContext)}connectionUsage(){return this.getRuleContext(0,ConnectionUsageContext)}interfaceUsage(){return this.getRuleContext(0,InterfaceUsageContext)}allocationUsage(){return this.getRuleContext(0,AllocationUsageContext)}message(){return this.getRuleContext(0,MessageContext)}flowUsage(){return this.getRuleContext(0,FlowUsageContext)}successionFlowUsage(){return this.getRuleContext(0,SuccessionFlowUsageContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_variantUsageElement}enterRule(listener){listener.enterVariantUsageElement&&listener.enterVariantUsageElement(this)}exitRule(listener){listener.exitVariantUsageElement&&listener.exitVariantUsageElement(this)}accept(visitor){return visitor.visitVariantUsageElement?visitor.visitVariantUsageElement(this):visitor.visitChildren(this)}},SubclassificationPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedSubclassification(i){return i===void 0?this.getRuleContexts(OwnedSubclassificationContext):this.getRuleContext(i,OwnedSubclassificationContext)}COLON_GT(){return this.getToken(SysMLv2Parser.COLON_GT,0)}SPECIALIZES(){return this.getToken(SysMLv2Parser.SPECIALIZES,0)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_subclassificationPart}enterRule(listener){listener.enterSubclassificationPart&&listener.enterSubclassificationPart(this)}exitRule(listener){listener.exitSubclassificationPart&&listener.exitSubclassificationPart(this)}accept(visitor){return visitor.visitSubclassificationPart?visitor.visitSubclassificationPart(this):visitor.visitChildren(this)}},AttributeDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionPrefix(){return this.getRuleContext(0,DefinitionPrefixContext)}ATTRIBUTE(){return this.getToken(SysMLv2Parser.ATTRIBUTE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_attributeDefinition}enterRule(listener){listener.enterAttributeDefinition&&listener.enterAttributeDefinition(this)}exitRule(listener){listener.exitAttributeDefinition&&listener.exitAttributeDefinition(this)}accept(visitor){return visitor.visitAttributeDefinition?visitor.visitAttributeDefinition(this):visitor.visitChildren(this)}},AttributeUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}ATTRIBUTE(){return this.getToken(SysMLv2Parser.ATTRIBUTE,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_attributeUsage}enterRule(listener){listener.enterAttributeUsage&&listener.enterAttributeUsage(this)}exitRule(listener){listener.exitAttributeUsage&&listener.exitAttributeUsage(this)}accept(visitor){return visitor.visitAttributeUsage?visitor.visitAttributeUsage(this):visitor.visitChildren(this)}},EnumerationDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ENUM(){return this.getToken(SysMLv2Parser.ENUM,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}enumerationBody(){return this.getRuleContext(0,EnumerationBodyContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationDefinition}enterRule(listener){listener.enterEnumerationDefinition&&listener.enterEnumerationDefinition(this)}exitRule(listener){listener.exitEnumerationDefinition&&listener.exitEnumerationDefinition(this)}accept(visitor){return visitor.visitEnumerationDefinition?visitor.visitEnumerationDefinition(this):visitor.visitChildren(this)}},EnumerationBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}annotatingMember(i){return i===void 0?this.getRuleContexts(AnnotatingMemberContext):this.getRuleContext(i,AnnotatingMemberContext)}enumerationUsageMember(i){return i===void 0?this.getRuleContexts(EnumerationUsageMemberContext):this.getRuleContext(i,EnumerationUsageMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationBody}enterRule(listener){listener.enterEnumerationBody&&listener.enterEnumerationBody(this)}exitRule(listener){listener.exitEnumerationBody&&listener.exitEnumerationBody(this)}accept(visitor){return visitor.visitEnumerationBody?visitor.visitEnumerationBody(this):visitor.visitChildren(this)}},EnumerationUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}enumeratedValue(){return this.getRuleContext(0,EnumeratedValueContext)}prefixMetadataMember(i){return i===void 0?this.getRuleContexts(PrefixMetadataMemberContext):this.getRuleContext(i,PrefixMetadataMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationUsageMember}enterRule(listener){listener.enterEnumerationUsageMember&&listener.enterEnumerationUsageMember(this)}exitRule(listener){listener.exitEnumerationUsageMember&&listener.exitEnumerationUsageMember(this)}accept(visitor){return visitor.visitEnumerationUsageMember?visitor.visitEnumerationUsageMember(this):visitor.visitChildren(this)}},EnumeratedValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usage(){return this.getRuleContext(0,UsageContext)}ENUM(){return this.getToken(SysMLv2Parser.ENUM,0)}get ruleIndex(){return SysMLv2Parser.RULE_enumeratedValue}enterRule(listener){listener.enterEnumeratedValue&&listener.enterEnumeratedValue(this)}exitRule(listener){listener.exitEnumeratedValue&&listener.exitEnumeratedValue(this)}accept(visitor){return visitor.visitEnumeratedValue?visitor.visitEnumeratedValue(this):visitor.visitChildren(this)}},EnumerationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}ENUM(){return this.getToken(SysMLv2Parser.ENUM,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_enumerationUsage}enterRule(listener){listener.enterEnumerationUsage&&listener.enterEnumerationUsage(this)}exitRule(listener){listener.exitEnumerationUsage&&listener.exitEnumerationUsage(this)}accept(visitor){return visitor.visitEnumerationUsage?visitor.visitEnumerationUsage(this):visitor.visitChildren(this)}},OccurrenceDefinitionPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}emptyMultiplicityMember(){return this.getRuleContext(0,EmptyMultiplicityMemberContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceDefinitionPrefix}enterRule(listener){listener.enterOccurrenceDefinitionPrefix&&listener.enterOccurrenceDefinitionPrefix(this)}exitRule(listener){listener.exitOccurrenceDefinitionPrefix&&listener.exitOccurrenceDefinitionPrefix(this)}accept(visitor){return visitor.visitOccurrenceDefinitionPrefix?visitor.visitOccurrenceDefinitionPrefix(this):visitor.visitChildren(this)}},OccurrenceDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}OCCURRENCE(){return this.getToken(SysMLv2Parser.OCCURRENCE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceDefinition}enterRule(listener){listener.enterOccurrenceDefinition&&listener.enterOccurrenceDefinition(this)}exitRule(listener){listener.exitOccurrenceDefinition&&listener.exitOccurrenceDefinition(this)}accept(visitor){return visitor.visitOccurrenceDefinition?visitor.visitOccurrenceDefinition(this):visitor.visitChildren(this)}},IndividualDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}emptyMultiplicityMember(){return this.getRuleContext(0,EmptyMultiplicityMemberContext)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_individualDefinition}enterRule(listener){listener.enterIndividualDefinition&&listener.enterIndividualDefinition(this)}exitRule(listener){listener.exitIndividualDefinition&&listener.exitIndividualDefinition(this)}accept(visitor){return visitor.visitIndividualDefinition?visitor.visitIndividualDefinition(this):visitor.visitChildren(this)}},EmptyMultiplicityMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyMultiplicity_(){return this.getRuleContext(0,EmptyMultiplicity_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyMultiplicityMember}enterRule(listener){listener.enterEmptyMultiplicityMember&&listener.enterEmptyMultiplicityMember(this)}exitRule(listener){listener.exitEmptyMultiplicityMember&&listener.exitEmptyMultiplicityMember(this)}accept(visitor){return visitor.visitEmptyMultiplicityMember?visitor.visitEmptyMultiplicityMember(this):visitor.visitChildren(this)}},OccurrenceUsagePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,PortionKindContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsagePrefix}enterRule(listener){listener.enterOccurrenceUsagePrefix&&listener.enterOccurrenceUsagePrefix(this)}exitRule(listener){listener.exitOccurrenceUsagePrefix&&listener.exitOccurrenceUsagePrefix(this)}accept(visitor){return visitor.visitOccurrenceUsagePrefix?visitor.visitOccurrenceUsagePrefix(this):visitor.visitChildren(this)}},OccurrenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}OCCURRENCE(){return this.getToken(SysMLv2Parser.OCCURRENCE,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_occurrenceUsage}enterRule(listener){listener.enterOccurrenceUsage&&listener.enterOccurrenceUsage(this)}exitRule(listener){listener.exitOccurrenceUsage&&listener.exitOccurrenceUsage(this)}accept(visitor){return visitor.visitOccurrenceUsage?visitor.visitOccurrenceUsage(this):visitor.visitChildren(this)}},IndividualUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_individualUsage}enterRule(listener){listener.enterIndividualUsage&&listener.enterIndividualUsage(this)}exitRule(listener){listener.exitIndividualUsage&&listener.exitIndividualUsage(this)}accept(visitor){return visitor.visitIndividualUsage?visitor.visitIndividualUsage(this):visitor.visitChildren(this)}},PortionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}basicUsagePrefix(){return this.getRuleContext(0,BasicUsagePrefixContext)}portionKind(){return this.getRuleContext(0,PortionKindContext)}usage(){return this.getRuleContext(0,UsageContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_portionUsage}enterRule(listener){listener.enterPortionUsage&&listener.enterPortionUsage(this)}exitRule(listener){listener.exitPortionUsage&&listener.exitPortionUsage(this)}accept(visitor){return visitor.visitPortionUsage?visitor.visitPortionUsage(this):visitor.visitChildren(this)}},PortionKindContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SNAPSHOT(){return this.getToken(SysMLv2Parser.SNAPSHOT,0)}TIMESLICE(){return this.getToken(SysMLv2Parser.TIMESLICE,0)}get ruleIndex(){return SysMLv2Parser.RULE_portionKind}enterRule(listener){listener.enterPortionKind&&listener.enterPortionKind(this)}exitRule(listener){listener.exitPortionKind&&listener.exitPortionKind(this)}accept(visitor){return visitor.visitPortionKind?visitor.visitPortionKind(this):visitor.visitChildren(this)}},EventOccurrenceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}EVENT(){return this.getToken(SysMLv2Parser.EVENT,0)}usageCompletion(){return this.getRuleContext(0,UsageCompletionContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}OCCURRENCE(){return this.getToken(SysMLv2Parser.OCCURRENCE,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_eventOccurrenceUsage}enterRule(listener){listener.enterEventOccurrenceUsage&&listener.enterEventOccurrenceUsage(this)}exitRule(listener){listener.exitEventOccurrenceUsage&&listener.exitEventOccurrenceUsage(this)}accept(visitor){return visitor.visitEventOccurrenceUsage?visitor.visitEventOccurrenceUsage(this):visitor.visitChildren(this)}},SourceSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}sourceSuccession(){return this.getRuleContext(0,SourceSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceSuccessionMember}enterRule(listener){listener.enterSourceSuccessionMember&&listener.enterSourceSuccessionMember(this)}exitRule(listener){listener.exitSourceSuccessionMember&&listener.exitSourceSuccessionMember(this)}accept(visitor){return visitor.visitSourceSuccessionMember?visitor.visitSourceSuccessionMember(this):visitor.visitChildren(this)}},SourceSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sourceEndMember(){return this.getRuleContext(0,SourceEndMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceSuccession}enterRule(listener){listener.enterSourceSuccession&&listener.enterSourceSuccession(this)}exitRule(listener){listener.exitSourceSuccession&&listener.exitSourceSuccession(this)}accept(visitor){return visitor.visitSourceSuccession?visitor.visitSourceSuccession(this):visitor.visitChildren(this)}},SourceEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sourceEnd(){return this.getRuleContext(0,SourceEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceEndMember}enterRule(listener){listener.enterSourceEndMember&&listener.enterSourceEndMember(this)}exitRule(listener){listener.exitSourceEndMember&&listener.exitSourceEndMember(this)}accept(visitor){return visitor.visitSourceEndMember?visitor.visitSourceEndMember(this):visitor.visitChildren(this)}},SourceEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedMultiplicity(){return this.getRuleContext(0,OwnedMultiplicityContext)}get ruleIndex(){return SysMLv2Parser.RULE_sourceEnd}enterRule(listener){listener.enterSourceEnd&&listener.enterSourceEnd(this)}exitRule(listener){listener.exitSourceEnd&&listener.exitSourceEnd(this)}accept(visitor){return visitor.visitSourceEnd?visitor.visitSourceEnd(this):visitor.visitChildren(this)}},ItemDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ITEM(){return this.getToken(SysMLv2Parser.ITEM,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_itemDefinition}enterRule(listener){listener.enterItemDefinition&&listener.enterItemDefinition(this)}exitRule(listener){listener.exitItemDefinition&&listener.exitItemDefinition(this)}accept(visitor){return visitor.visitItemDefinition?visitor.visitItemDefinition(this):visitor.visitChildren(this)}},ItemUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ITEM(){return this.getToken(SysMLv2Parser.ITEM,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_itemUsage}enterRule(listener){listener.enterItemUsage&&listener.enterItemUsage(this)}exitRule(listener){listener.exitItemUsage&&listener.exitItemUsage(this)}accept(visitor){return visitor.visitItemUsage?visitor.visitItemUsage(this):visitor.visitChildren(this)}},PartDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}PART(){return this.getToken(SysMLv2Parser.PART,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_partDefinition}enterRule(listener){listener.enterPartDefinition&&listener.enterPartDefinition(this)}exitRule(listener){listener.exitPartDefinition&&listener.exitPartDefinition(this)}accept(visitor){return visitor.visitPartDefinition?visitor.visitPartDefinition(this):visitor.visitChildren(this)}},PartUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}PART(){return this.getToken(SysMLv2Parser.PART,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_partUsage}enterRule(listener){listener.enterPartUsage&&listener.enterPartUsage(this)}exitRule(listener){listener.exitPartUsage&&listener.exitPartUsage(this)}accept(visitor){return visitor.visitPartUsage?visitor.visitPartUsage(this):visitor.visitChildren(this)}},PortDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionPrefix(){return this.getRuleContext(0,DefinitionPrefixContext)}PORT(){return this.getToken(SysMLv2Parser.PORT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}conjugatedPortDefinitionMember(){return this.getRuleContext(0,ConjugatedPortDefinitionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_portDefinition}enterRule(listener){listener.enterPortDefinition&&listener.enterPortDefinition(this)}exitRule(listener){listener.exitPortDefinition&&listener.exitPortDefinition(this)}accept(visitor){return visitor.visitPortDefinition?visitor.visitPortDefinition(this):visitor.visitChildren(this)}},ConjugatedPortDefinitionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}conjugatedPortDefinition(){return this.getRuleContext(0,ConjugatedPortDefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugatedPortDefinitionMember}enterRule(listener){listener.enterConjugatedPortDefinitionMember&&listener.enterConjugatedPortDefinitionMember(this)}exitRule(listener){listener.exitConjugatedPortDefinitionMember&&listener.exitConjugatedPortDefinitionMember(this)}accept(visitor){return visitor.visitConjugatedPortDefinitionMember?visitor.visitConjugatedPortDefinitionMember(this):visitor.visitChildren(this)}},ConjugatedPortDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}portConjugation(){return this.getRuleContext(0,PortConjugationContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugatedPortDefinition}enterRule(listener){listener.enterConjugatedPortDefinition&&listener.enterConjugatedPortDefinition(this)}exitRule(listener){listener.exitConjugatedPortDefinition&&listener.exitConjugatedPortDefinition(this)}accept(visitor){return visitor.visitConjugatedPortDefinition?visitor.visitConjugatedPortDefinition(this):visitor.visitChildren(this)}},PortUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}PORT(){return this.getToken(SysMLv2Parser.PORT,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_portUsage}enterRule(listener){listener.enterPortUsage&&listener.enterPortUsage(this)}exitRule(listener){listener.exitPortUsage&&listener.exitPortUsage(this)}accept(visitor){return visitor.visitPortUsage?visitor.visitPortUsage(this):visitor.visitChildren(this)}},ConjugatedPortTypingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TILDE(){return this.getToken(SysMLv2Parser.TILDE,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}get ruleIndex(){return SysMLv2Parser.RULE_conjugatedPortTyping}enterRule(listener){listener.enterConjugatedPortTyping&&listener.enterConjugatedPortTyping(this)}exitRule(listener){listener.exitConjugatedPortTyping&&listener.exitConjugatedPortTyping(this)}accept(visitor){return visitor.visitConjugatedPortTyping?visitor.visitConjugatedPortTyping(this):visitor.visitChildren(this)}},ConnectionDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CONNECTION(){return this.getToken(SysMLv2Parser.CONNECTION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectionDefinition}enterRule(listener){listener.enterConnectionDefinition&&listener.enterConnectionDefinition(this)}exitRule(listener){listener.exitConnectionDefinition&&listener.exitConnectionDefinition(this)}accept(visitor){return visitor.visitConnectionDefinition?visitor.visitConnectionDefinition(this):visitor.visitChildren(this)}},ConnectionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}CONNECTION(){return this.getToken(SysMLv2Parser.CONNECTION,0)}CONNECT(){return this.getToken(SysMLv2Parser.CONNECT,0)}connectorPart(){return this.getRuleContext(0,ConnectorPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectionUsage}enterRule(listener){listener.enterConnectionUsage&&listener.enterConnectionUsage(this)}exitRule(listener){listener.exitConnectionUsage&&listener.exitConnectionUsage(this)}accept(visitor){return visitor.visitConnectionUsage?visitor.visitConnectionUsage(this):visitor.visitChildren(this)}},ConnectorPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}binaryConnectorPart(){return this.getRuleContext(0,BinaryConnectorPartContext)}naryConnectorPart(){return this.getRuleContext(0,NaryConnectorPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_connectorPart}enterRule(listener){listener.enterConnectorPart&&listener.enterConnectorPart(this)}exitRule(listener){listener.exitConnectorPart&&listener.exitConnectorPart(this)}accept(visitor){return visitor.visitConnectorPart?visitor.visitConnectorPart(this):visitor.visitChildren(this)}},BinaryConnectorPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}get ruleIndex(){return SysMLv2Parser.RULE_binaryConnectorPart}enterRule(listener){listener.enterBinaryConnectorPart&&listener.enterBinaryConnectorPart(this)}exitRule(listener){listener.exitBinaryConnectorPart&&listener.exitBinaryConnectorPart(this)}accept(visitor){return visitor.visitBinaryConnectorPart?visitor.visitBinaryConnectorPart(this):visitor.visitChildren(this)}},NaryConnectorPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}get ruleIndex(){return SysMLv2Parser.RULE_naryConnectorPart}enterRule(listener){listener.enterNaryConnectorPart&&listener.enterNaryConnectorPart(this)}exitRule(listener){listener.exitNaryConnectorPart&&listener.exitNaryConnectorPart(this)}accept(visitor){return visitor.visitNaryConnectorPart?visitor.visitNaryConnectorPart(this):visitor.visitChildren(this)}},BindingConnectorAsUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}BIND(){return this.getToken(SysMLv2Parser.BIND,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}EQ(){return this.getToken(SysMLv2Parser.EQ,0)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}BINDING(){return this.getToken(SysMLv2Parser.BINDING,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_bindingConnectorAsUsage}enterRule(listener){listener.enterBindingConnectorAsUsage&&listener.enterBindingConnectorAsUsage(this)}exitRule(listener){listener.exitBindingConnectorAsUsage&&listener.exitBindingConnectorAsUsage(this)}accept(visitor){return visitor.visitBindingConnectorAsUsage?visitor.visitBindingConnectorAsUsage(this):visitor.visitChildren(this)}},SuccessionAsUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usagePrefix(){return this.getRuleContext(0,UsagePrefixContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}connectorEndMember(i){return i===void 0?this.getRuleContexts(ConnectorEndMemberContext):this.getRuleContext(i,ConnectorEndMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_successionAsUsage}enterRule(listener){listener.enterSuccessionAsUsage&&listener.enterSuccessionAsUsage(this)}exitRule(listener){listener.exitSuccessionAsUsage&&listener.exitSuccessionAsUsage(this)}accept(visitor){return visitor.visitSuccessionAsUsage?visitor.visitSuccessionAsUsage(this):visitor.visitChildren(this)}},InterfaceDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}INTERFACE(){return this.getToken(SysMLv2Parser.INTERFACE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}interfaceBody(){return this.getRuleContext(0,InterfaceBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceDefinition}enterRule(listener){listener.enterInterfaceDefinition&&listener.enterInterfaceDefinition(this)}exitRule(listener){listener.exitInterfaceDefinition&&listener.exitInterfaceDefinition(this)}accept(visitor){return visitor.visitInterfaceDefinition?visitor.visitInterfaceDefinition(this):visitor.visitChildren(this)}},InterfaceBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}interfaceBodyItem(i){return i===void 0?this.getRuleContexts(InterfaceBodyItemContext):this.getRuleContext(i,InterfaceBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceBody}enterRule(listener){listener.enterInterfaceBody&&listener.enterInterfaceBody(this)}exitRule(listener){listener.exitInterfaceBody&&listener.exitInterfaceBody(this)}accept(visitor){return visitor.visitInterfaceBody?visitor.visitInterfaceBody(this):visitor.visitChildren(this)}},InterfaceBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionMember(){return this.getRuleContext(0,DefinitionMemberContext)}variantUsageMember(){return this.getRuleContext(0,VariantUsageMemberContext)}interfaceNonOccurrenceUsageMember(){return this.getRuleContext(0,InterfaceNonOccurrenceUsageMemberContext)}interfaceOccurrenceUsageMember(){return this.getRuleContext(0,InterfaceOccurrenceUsageMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}importRule(){return this.getRuleContext(0,ImportRuleContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceBodyItem}enterRule(listener){listener.enterInterfaceBodyItem&&listener.enterInterfaceBodyItem(this)}exitRule(listener){listener.exitInterfaceBodyItem&&listener.exitInterfaceBodyItem(this)}accept(visitor){return visitor.visitInterfaceBodyItem?visitor.visitInterfaceBodyItem(this):visitor.visitChildren(this)}},InterfaceNonOccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}interfaceNonOccurrenceUsageElement(){return this.getRuleContext(0,InterfaceNonOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceNonOccurrenceUsageMember}enterRule(listener){listener.enterInterfaceNonOccurrenceUsageMember&&listener.enterInterfaceNonOccurrenceUsageMember(this)}exitRule(listener){listener.exitInterfaceNonOccurrenceUsageMember&&listener.exitInterfaceNonOccurrenceUsageMember(this)}accept(visitor){return visitor.visitInterfaceNonOccurrenceUsageMember?visitor.visitInterfaceNonOccurrenceUsageMember(this):visitor.visitChildren(this)}},InterfaceNonOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}referenceUsage(){return this.getRuleContext(0,ReferenceUsageContext)}attributeUsage(){return this.getRuleContext(0,AttributeUsageContext)}enumerationUsage(){return this.getRuleContext(0,EnumerationUsageContext)}bindingConnectorAsUsage(){return this.getRuleContext(0,BindingConnectorAsUsageContext)}successionAsUsage(){return this.getRuleContext(0,SuccessionAsUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceNonOccurrenceUsageElement}enterRule(listener){listener.enterInterfaceNonOccurrenceUsageElement&&listener.enterInterfaceNonOccurrenceUsageElement(this)}exitRule(listener){listener.exitInterfaceNonOccurrenceUsageElement&&listener.exitInterfaceNonOccurrenceUsageElement(this)}accept(visitor){return visitor.visitInterfaceNonOccurrenceUsageElement?visitor.visitInterfaceNonOccurrenceUsageElement(this):visitor.visitChildren(this)}},InterfaceOccurrenceUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}interfaceOccurrenceUsageElement(){return this.getRuleContext(0,InterfaceOccurrenceUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceOccurrenceUsageMember}enterRule(listener){listener.enterInterfaceOccurrenceUsageMember&&listener.enterInterfaceOccurrenceUsageMember(this)}exitRule(listener){listener.exitInterfaceOccurrenceUsageMember&&listener.exitInterfaceOccurrenceUsageMember(this)}accept(visitor){return visitor.visitInterfaceOccurrenceUsageMember?visitor.visitInterfaceOccurrenceUsageMember(this):visitor.visitChildren(this)}},InterfaceOccurrenceUsageElementContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}defaultInterfaceEnd(){return this.getRuleContext(0,DefaultInterfaceEndContext)}endOccurrenceUsageElement(){return this.getRuleContext(0,EndOccurrenceUsageElementContext)}structureUsageElement(){return this.getRuleContext(0,StructureUsageElementContext)}behaviorUsageElement(){return this.getRuleContext(0,BehaviorUsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceOccurrenceUsageElement}enterRule(listener){listener.enterInterfaceOccurrenceUsageElement&&listener.enterInterfaceOccurrenceUsageElement(this)}exitRule(listener){listener.exitInterfaceOccurrenceUsageElement&&listener.exitInterfaceOccurrenceUsageElement(this)}accept(visitor){return visitor.visitInterfaceOccurrenceUsageElement?visitor.visitInterfaceOccurrenceUsageElement(this):visitor.visitChildren(this)}},DefaultInterfaceEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}END(){return this.getToken(SysMLv2Parser.END,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_defaultInterfaceEnd}enterRule(listener){listener.enterDefaultInterfaceEnd&&listener.enterDefaultInterfaceEnd(this)}exitRule(listener){listener.exitDefaultInterfaceEnd&&listener.exitDefaultInterfaceEnd(this)}accept(visitor){return visitor.visitDefaultInterfaceEnd?visitor.visitDefaultInterfaceEnd(this):visitor.visitChildren(this)}},InterfaceUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}INTERFACE(){return this.getToken(SysMLv2Parser.INTERFACE,0)}interfaceUsageDeclaration(){return this.getRuleContext(0,InterfaceUsageDeclarationContext)}interfaceBody(){return this.getRuleContext(0,InterfaceBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceUsage}enterRule(listener){listener.enterInterfaceUsage&&listener.enterInterfaceUsage(this)}exitRule(listener){listener.exitInterfaceUsage&&listener.exitInterfaceUsage(this)}accept(visitor){return visitor.visitInterfaceUsage?visitor.visitInterfaceUsage(this):visitor.visitChildren(this)}},InterfaceUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}CONNECT(){return this.getToken(SysMLv2Parser.CONNECT,0)}interfacePart(){return this.getRuleContext(0,InterfacePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceUsageDeclaration}enterRule(listener){listener.enterInterfaceUsageDeclaration&&listener.enterInterfaceUsageDeclaration(this)}exitRule(listener){listener.exitInterfaceUsageDeclaration&&listener.exitInterfaceUsageDeclaration(this)}accept(visitor){return visitor.visitInterfaceUsageDeclaration?visitor.visitInterfaceUsageDeclaration(this):visitor.visitChildren(this)}},InterfacePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}binaryInterfacePart(){return this.getRuleContext(0,BinaryInterfacePartContext)}naryInterfacePart(){return this.getRuleContext(0,NaryInterfacePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfacePart}enterRule(listener){listener.enterInterfacePart&&listener.enterInterfacePart(this)}exitRule(listener){listener.exitInterfacePart&&listener.exitInterfacePart(this)}accept(visitor){return visitor.visitInterfacePart?visitor.visitInterfacePart(this):visitor.visitChildren(this)}},BinaryInterfacePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}interfaceEndMember(i){return i===void 0?this.getRuleContexts(InterfaceEndMemberContext):this.getRuleContext(i,InterfaceEndMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}get ruleIndex(){return SysMLv2Parser.RULE_binaryInterfacePart}enterRule(listener){listener.enterBinaryInterfacePart&&listener.enterBinaryInterfacePart(this)}exitRule(listener){listener.exitBinaryInterfacePart&&listener.exitBinaryInterfacePart(this)}accept(visitor){return visitor.visitBinaryInterfacePart?visitor.visitBinaryInterfacePart(this):visitor.visitChildren(this)}},NaryInterfacePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LPAREN(){return this.getToken(SysMLv2Parser.LPAREN,0)}interfaceEndMember(i){return i===void 0?this.getRuleContexts(InterfaceEndMemberContext):this.getRuleContext(i,InterfaceEndMemberContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}RPAREN(){return this.getToken(SysMLv2Parser.RPAREN,0)}get ruleIndex(){return SysMLv2Parser.RULE_naryInterfacePart}enterRule(listener){listener.enterNaryInterfacePart&&listener.enterNaryInterfacePart(this)}exitRule(listener){listener.exitNaryInterfacePart&&listener.exitNaryInterfacePart(this)}accept(visitor){return visitor.visitNaryInterfacePart?visitor.visitNaryInterfacePart(this):visitor.visitChildren(this)}},InterfaceEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}interfaceEnd(){return this.getRuleContext(0,InterfaceEndContext)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceEndMember}enterRule(listener){listener.enterInterfaceEndMember&&listener.enterInterfaceEndMember(this)}exitRule(listener){listener.exitInterfaceEndMember&&listener.exitInterfaceEndMember(this)}accept(visitor){return visitor.visitInterfaceEndMember?visitor.visitInterfaceEndMember(this):visitor.visitChildren(this)}},InterfaceEndContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,OwnedCrossMultiplicityMemberContext)}name(){return this.getRuleContext(0,NameContext)}COLON_COLON_GT(){return this.getToken(SysMLv2Parser.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(SysMLv2Parser.REFERENCES,0)}get ruleIndex(){return SysMLv2Parser.RULE_interfaceEnd}enterRule(listener){listener.enterInterfaceEnd&&listener.enterInterfaceEnd(this)}exitRule(listener){listener.exitInterfaceEnd&&listener.exitInterfaceEnd(this)}accept(visitor){return visitor.visitInterfaceEnd?visitor.visitInterfaceEnd(this):visitor.visitChildren(this)}},AllocationDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ALLOCATION(){return this.getToken(SysMLv2Parser.ALLOCATION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_allocationDefinition}enterRule(listener){listener.enterAllocationDefinition&&listener.enterAllocationDefinition(this)}exitRule(listener){listener.exitAllocationDefinition&&listener.exitAllocationDefinition(this)}accept(visitor){return visitor.visitAllocationDefinition?visitor.visitAllocationDefinition(this):visitor.visitChildren(this)}},AllocationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}allocationUsageDeclaration(){return this.getRuleContext(0,AllocationUsageDeclarationContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_allocationUsage}enterRule(listener){listener.enterAllocationUsage&&listener.enterAllocationUsage(this)}exitRule(listener){listener.exitAllocationUsage&&listener.exitAllocationUsage(this)}accept(visitor){return visitor.visitAllocationUsage?visitor.visitAllocationUsage(this):visitor.visitChildren(this)}},AllocationUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ALLOCATION(){return this.getToken(SysMLv2Parser.ALLOCATION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}ALLOCATE(){return this.getToken(SysMLv2Parser.ALLOCATE,0)}connectorPart(){return this.getRuleContext(0,ConnectorPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_allocationUsageDeclaration}enterRule(listener){listener.enterAllocationUsageDeclaration&&listener.enterAllocationUsageDeclaration(this)}exitRule(listener){listener.exitAllocationUsageDeclaration&&listener.exitAllocationUsageDeclaration(this)}accept(visitor){return visitor.visitAllocationUsageDeclaration?visitor.visitAllocationUsageDeclaration(this):visitor.visitChildren(this)}},FlowDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowDefinition}enterRule(listener){listener.enterFlowDefinition&&listener.enterFlowDefinition(this)}exitRule(listener){listener.exitFlowDefinition&&listener.exitFlowDefinition(this)}accept(visitor){return visitor.visitFlowDefinition?visitor.visitFlowDefinition(this):visitor.visitChildren(this)}},MessageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}MESSAGE(){return this.getToken(SysMLv2Parser.MESSAGE,0)}messageDeclaration(){return this.getRuleContext(0,MessageDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_message}enterRule(listener){listener.enterMessage&&listener.enterMessage(this)}exitRule(listener){listener.exitMessage&&listener.exitMessage(this)}accept(visitor){return visitor.visitMessage?visitor.visitMessage(this):visitor.visitChildren(this)}},MessageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}OF(){return this.getToken(SysMLv2Parser.OF,0)}flowPayloadFeatureMember(){return this.getRuleContext(0,FlowPayloadFeatureMemberContext)}FROM(){return this.getToken(SysMLv2Parser.FROM,0)}messageEventMember(i){return i===void 0?this.getRuleContexts(MessageEventMemberContext):this.getRuleContext(i,MessageEventMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}get ruleIndex(){return SysMLv2Parser.RULE_messageDeclaration}enterRule(listener){listener.enterMessageDeclaration&&listener.enterMessageDeclaration(this)}exitRule(listener){listener.exitMessageDeclaration&&listener.exitMessageDeclaration(this)}accept(visitor){return visitor.visitMessageDeclaration?visitor.visitMessageDeclaration(this):visitor.visitChildren(this)}},MessageEventMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}messageEvent(){return this.getRuleContext(0,MessageEventContext)}get ruleIndex(){return SysMLv2Parser.RULE_messageEventMember}enterRule(listener){listener.enterMessageEventMember&&listener.enterMessageEventMember(this)}exitRule(listener){listener.exitMessageEventMember&&listener.exitMessageEventMember(this)}accept(visitor){return visitor.visitMessageEventMember?visitor.visitMessageEventMember(this):visitor.visitChildren(this)}},MessageEventContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}get ruleIndex(){return SysMLv2Parser.RULE_messageEvent}enterRule(listener){listener.enterMessageEvent&&listener.enterMessageEvent(this)}exitRule(listener){listener.exitMessageEvent&&listener.exitMessageEvent(this)}accept(visitor){return visitor.visitMessageEvent?visitor.visitMessageEvent(this):visitor.visitChildren(this)}},FlowUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowUsage}enterRule(listener){listener.enterFlowUsage&&listener.enterFlowUsage(this)}exitRule(listener){listener.exitFlowUsage&&listener.exitFlowUsage(this)}accept(visitor){return visitor.visitFlowUsage?visitor.visitFlowUsage(this):visitor.visitChildren(this)}},SuccessionFlowUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}FLOW(){return this.getToken(SysMLv2Parser.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,FlowDeclarationContext)}definitionBody(){return this.getRuleContext(0,DefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_successionFlowUsage}enterRule(listener){listener.enterSuccessionFlowUsage&&listener.enterSuccessionFlowUsage(this)}exitRule(listener){listener.exitSuccessionFlowUsage&&listener.exitSuccessionFlowUsage(this)}accept(visitor){return visitor.visitSuccessionFlowUsage?visitor.visitSuccessionFlowUsage(this):visitor.visitChildren(this)}},FlowPayloadFeatureMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}flowPayloadFeature(){return this.getRuleContext(0,FlowPayloadFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowPayloadFeatureMember}enterRule(listener){listener.enterFlowPayloadFeatureMember&&listener.enterFlowPayloadFeatureMember(this)}exitRule(listener){listener.exitFlowPayloadFeatureMember&&listener.exitFlowPayloadFeatureMember(this)}accept(visitor){return visitor.visitFlowPayloadFeatureMember?visitor.visitFlowPayloadFeatureMember(this):visitor.visitChildren(this)}},FlowPayloadFeatureContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadFeature(){return this.getRuleContext(0,PayloadFeatureContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowPayloadFeature}enterRule(listener){listener.enterFlowPayloadFeature&&listener.enterFlowPayloadFeature(this)}exitRule(listener){listener.exitFlowPayloadFeature&&listener.exitFlowPayloadFeature(this)}accept(visitor){return visitor.visitFlowPayloadFeature?visitor.visitFlowPayloadFeature(this):visitor.visitChildren(this)}},FlowEndSubsettingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}featureChainPrefix(){return this.getRuleContext(0,FeatureChainPrefixContext)}get ruleIndex(){return SysMLv2Parser.RULE_flowEndSubsetting}enterRule(listener){listener.enterFlowEndSubsetting&&listener.enterFlowEndSubsetting(this)}exitRule(listener){listener.exitFlowEndSubsetting&&listener.exitFlowEndSubsetting(this)}accept(visitor){return visitor.visitFlowEndSubsetting?visitor.visitFlowEndSubsetting(this):visitor.visitChildren(this)}},FeatureChainPrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureChaining(i){return i===void 0?this.getRuleContexts(OwnedFeatureChainingContext):this.getRuleContext(i,OwnedFeatureChainingContext)}DOT(i){return i===void 0?this.getTokens(SysMLv2Parser.DOT):this.getToken(SysMLv2Parser.DOT,i)}get ruleIndex(){return SysMLv2Parser.RULE_featureChainPrefix}enterRule(listener){listener.enterFeatureChainPrefix&&listener.enterFeatureChainPrefix(this)}exitRule(listener){listener.exitFeatureChainPrefix&&listener.exitFeatureChainPrefix(this)}accept(visitor){return visitor.visitFeatureChainPrefix?visitor.visitFeatureChainPrefix(this):visitor.visitChildren(this)}},ActionDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionDefinition}enterRule(listener){listener.enterActionDefinition&&listener.enterActionDefinition(this)}exitRule(listener){listener.exitActionDefinition&&listener.exitActionDefinition(this)}accept(visitor){return visitor.visitActionDefinition?visitor.visitActionDefinition(this):visitor.visitChildren(this)}},ActionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBody}enterRule(listener){listener.enterActionBody&&listener.enterActionBody(this)}exitRule(listener){listener.exitActionBody&&listener.exitActionBody(this)}accept(visitor){return visitor.visitActionBody?visitor.visitActionBody(this):visitor.visitChildren(this)}},ActionBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonBehaviorBodyItem(){return this.getRuleContext(0,NonBehaviorBodyItemContext)}initialNodeMember(){return this.getRuleContext(0,InitialNodeMemberContext)}actionTargetSuccessionMember(i){return i===void 0?this.getRuleContexts(ActionTargetSuccessionMemberContext):this.getRuleContext(i,ActionTargetSuccessionMemberContext)}actionBehaviorMember(){return this.getRuleContext(0,ActionBehaviorMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}guardedSuccessionMember(){return this.getRuleContext(0,GuardedSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBodyItem}enterRule(listener){listener.enterActionBodyItem&&listener.enterActionBodyItem(this)}exitRule(listener){listener.exitActionBodyItem&&listener.exitActionBodyItem(this)}accept(visitor){return visitor.visitActionBodyItem?visitor.visitActionBodyItem(this):visitor.visitChildren(this)}},NonBehaviorBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}importRule(){return this.getRuleContext(0,ImportRuleContext)}aliasMember(){return this.getRuleContext(0,AliasMemberContext)}definitionMember(){return this.getRuleContext(0,DefinitionMemberContext)}variantUsageMember(){return this.getRuleContext(0,VariantUsageMemberContext)}nonOccurrenceUsageMember(){return this.getRuleContext(0,NonOccurrenceUsageMemberContext)}structureUsageMember(){return this.getRuleContext(0,StructureUsageMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_nonBehaviorBodyItem}enterRule(listener){listener.enterNonBehaviorBodyItem&&listener.enterNonBehaviorBodyItem(this)}exitRule(listener){listener.exitNonBehaviorBodyItem&&listener.exitNonBehaviorBodyItem(this)}accept(visitor){return visitor.visitNonBehaviorBodyItem?visitor.visitNonBehaviorBodyItem(this):visitor.visitChildren(this)}},ActionBehaviorMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodeMember(){return this.getRuleContext(0,ActionNodeMemberContext)}behaviorUsageMember(){return this.getRuleContext(0,BehaviorUsageMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBehaviorMember}enterRule(listener){listener.enterActionBehaviorMember&&listener.enterActionBehaviorMember(this)}exitRule(listener){listener.exitActionBehaviorMember&&listener.exitActionBehaviorMember(this)}accept(visitor){return visitor.visitActionBehaviorMember?visitor.visitActionBehaviorMember(this):visitor.visitChildren(this)}},InitialNodeMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_initialNodeMember}enterRule(listener){listener.enterInitialNodeMember&&listener.enterInitialNodeMember(this)}exitRule(listener){listener.exitInitialNodeMember&&listener.exitInitialNodeMember(this)}accept(visitor){return visitor.visitInitialNodeMember?visitor.visitInitialNodeMember(this):visitor.visitChildren(this)}},ActionNodeMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}actionNode(){return this.getRuleContext(0,ActionNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNodeMember}enterRule(listener){listener.enterActionNodeMember&&listener.enterActionNodeMember(this)}exitRule(listener){listener.exitActionNodeMember&&listener.exitActionNodeMember(this)}accept(visitor){return visitor.visitActionNodeMember?visitor.visitActionNodeMember(this):visitor.visitChildren(this)}},ActionTargetSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}actionTargetSuccession(){return this.getRuleContext(0,ActionTargetSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionTargetSuccessionMember}enterRule(listener){listener.enterActionTargetSuccessionMember&&listener.enterActionTargetSuccessionMember(this)}exitRule(listener){listener.exitActionTargetSuccessionMember&&listener.exitActionTargetSuccessionMember(this)}accept(visitor){return visitor.visitActionTargetSuccessionMember?visitor.visitActionTargetSuccessionMember(this):visitor.visitChildren(this)}},GuardedSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}guardedSuccession(){return this.getRuleContext(0,GuardedSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardedSuccessionMember}enterRule(listener){listener.enterGuardedSuccessionMember&&listener.enterGuardedSuccessionMember(this)}exitRule(listener){listener.exitGuardedSuccessionMember&&listener.exitGuardedSuccessionMember(this)}accept(visitor){return visitor.visitGuardedSuccessionMember?visitor.visitGuardedSuccessionMember(this):visitor.visitChildren(this)}},ActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionUsage}enterRule(listener){listener.enterActionUsage&&listener.enterActionUsage(this)}exitRule(listener){listener.exitActionUsage&&listener.exitActionUsage(this)}accept(visitor){return visitor.visitActionUsage?visitor.visitActionUsage(this):visitor.visitChildren(this)}},ActionUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionUsageDeclaration}enterRule(listener){listener.enterActionUsageDeclaration&&listener.enterActionUsageDeclaration(this)}exitRule(listener){listener.exitActionUsageDeclaration&&listener.exitActionUsageDeclaration(this)}accept(visitor){return visitor.visitActionUsageDeclaration?visitor.visitActionUsageDeclaration(this):visitor.visitChildren(this)}},PerformActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}PERFORM(){return this.getToken(SysMLv2Parser.PERFORM,0)}performActionUsageDeclaration(){return this.getRuleContext(0,PerformActionUsageDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_performActionUsage}enterRule(listener){listener.enterPerformActionUsage&&listener.enterPerformActionUsage(this)}exitRule(listener){listener.exitPerformActionUsage&&listener.exitPerformActionUsage(this)}accept(visitor){return visitor.visitPerformActionUsage?visitor.visitPerformActionUsage(this):visitor.visitChildren(this)}},PerformActionUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_performActionUsageDeclaration}enterRule(listener){listener.enterPerformActionUsageDeclaration&&listener.enterPerformActionUsageDeclaration(this)}exitRule(listener){listener.exitPerformActionUsageDeclaration&&listener.exitPerformActionUsageDeclaration(this)}accept(visitor){return visitor.visitPerformActionUsageDeclaration?visitor.visitPerformActionUsageDeclaration(this):visitor.visitChildren(this)}},ActionNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNode(){return this.getRuleContext(0,ControlNodeContext)}sendNode(){return this.getRuleContext(0,SendNodeContext)}acceptNode(){return this.getRuleContext(0,AcceptNodeContext)}assignmentNode(){return this.getRuleContext(0,AssignmentNodeContext)}terminateNode(){return this.getRuleContext(0,TerminateNodeContext)}ifNode(){return this.getRuleContext(0,IfNodeContext)}whileLoopNode(){return this.getRuleContext(0,WhileLoopNodeContext)}forLoopNode(){return this.getRuleContext(0,ForLoopNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNode}enterRule(listener){listener.enterActionNode&&listener.enterActionNode(this)}exitRule(listener){listener.exitActionNode&&listener.exitActionNode(this)}accept(visitor){return visitor.visitActionNode?visitor.visitActionNode(this):visitor.visitChildren(this)}},ActionNodeUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNodeUsageDeclaration}enterRule(listener){listener.enterActionNodeUsageDeclaration&&listener.enterActionNodeUsageDeclaration(this)}exitRule(listener){listener.exitActionNodeUsageDeclaration&&listener.exitActionNodeUsageDeclaration(this)}accept(visitor){return visitor.visitActionNodeUsageDeclaration?visitor.visitActionNodeUsageDeclaration(this):visitor.visitChildren(this)}},ActionNodePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionNodePrefix}enterRule(listener){listener.enterActionNodePrefix&&listener.enterActionNodePrefix(this)}exitRule(listener){listener.exitActionNodePrefix&&listener.exitActionNodePrefix(this)}accept(visitor){return visitor.visitActionNodePrefix?visitor.visitActionNodePrefix(this):visitor.visitChildren(this)}},ControlNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}mergeNode(){return this.getRuleContext(0,MergeNodeContext)}decisionNode(){return this.getRuleContext(0,DecisionNodeContext)}joinNode(){return this.getRuleContext(0,JoinNodeContext)}forkNode(){return this.getRuleContext(0,ForkNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_controlNode}enterRule(listener){listener.enterControlNode&&listener.enterControlNode(this)}exitRule(listener){listener.exitControlNode&&listener.exitControlNode(this)}accept(visitor){return visitor.visitControlNode?visitor.visitControlNode(this):visitor.visitChildren(this)}},ControlNodePrefixContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}refPrefix(){return this.getRuleContext(0,RefPrefixContext)}INDIVIDUAL(){return this.getToken(SysMLv2Parser.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,PortionKindContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_controlNodePrefix}enterRule(listener){listener.enterControlNodePrefix&&listener.enterControlNodePrefix(this)}exitRule(listener){listener.exitControlNodePrefix&&listener.exitControlNodePrefix(this)}accept(visitor){return visitor.visitControlNodePrefix?visitor.visitControlNodePrefix(this):visitor.visitChildren(this)}},MergeNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}MERGE(){return this.getToken(SysMLv2Parser.MERGE,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_mergeNode}enterRule(listener){listener.enterMergeNode&&listener.enterMergeNode(this)}exitRule(listener){listener.exitMergeNode&&listener.exitMergeNode(this)}accept(visitor){return visitor.visitMergeNode?visitor.visitMergeNode(this):visitor.visitChildren(this)}},DecisionNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}DECIDE(){return this.getToken(SysMLv2Parser.DECIDE,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_decisionNode}enterRule(listener){listener.enterDecisionNode&&listener.enterDecisionNode(this)}exitRule(listener){listener.exitDecisionNode&&listener.exitDecisionNode(this)}accept(visitor){return visitor.visitDecisionNode?visitor.visitDecisionNode(this):visitor.visitChildren(this)}},JoinNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}JOIN(){return this.getToken(SysMLv2Parser.JOIN,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_joinNode}enterRule(listener){listener.enterJoinNode&&listener.enterJoinNode(this)}exitRule(listener){listener.exitJoinNode&&listener.exitJoinNode(this)}accept(visitor){return visitor.visitJoinNode?visitor.visitJoinNode(this):visitor.visitChildren(this)}},ForkNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}controlNodePrefix(){return this.getRuleContext(0,ControlNodePrefixContext)}FORK(){return this.getToken(SysMLv2Parser.FORK,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_forkNode}enterRule(listener){listener.enterForkNode&&listener.enterForkNode(this)}exitRule(listener){listener.exitForkNode&&listener.exitForkNode(this)}accept(visitor){return visitor.visitForkNode?visitor.visitForkNode(this):visitor.visitChildren(this)}},AcceptNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}acceptNodeDeclaration(){return this.getRuleContext(0,AcceptNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_acceptNode}enterRule(listener){listener.enterAcceptNode&&listener.enterAcceptNode(this)}exitRule(listener){listener.exitAcceptNode&&listener.exitAcceptNode(this)}accept(visitor){return visitor.visitAcceptNode?visitor.visitAcceptNode(this):visitor.visitChildren(this)}},AcceptNodeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACCEPT(){return this.getToken(SysMLv2Parser.ACCEPT,0)}acceptParameterPart(){return this.getRuleContext(0,AcceptParameterPartContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_acceptNodeDeclaration}enterRule(listener){listener.enterAcceptNodeDeclaration&&listener.enterAcceptNodeDeclaration(this)}exitRule(listener){listener.exitAcceptNodeDeclaration&&listener.exitAcceptNodeDeclaration(this)}accept(visitor){return visitor.visitAcceptNodeDeclaration?visitor.visitAcceptNodeDeclaration(this):visitor.visitChildren(this)}},AcceptParameterPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadParameterMember(){return this.getRuleContext(0,PayloadParameterMemberContext)}VIA(){return this.getToken(SysMLv2Parser.VIA,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_acceptParameterPart}enterRule(listener){listener.enterAcceptParameterPart&&listener.enterAcceptParameterPart(this)}exitRule(listener){listener.exitAcceptParameterPart&&listener.exitAcceptParameterPart(this)}accept(visitor){return visitor.visitAcceptParameterPart?visitor.visitAcceptParameterPart(this):visitor.visitChildren(this)}},PayloadParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadParameter(){return this.getRuleContext(0,PayloadParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadParameterMember}enterRule(listener){listener.enterPayloadParameterMember&&listener.enterPayloadParameterMember(this)}exitRule(listener){listener.exitPayloadParameterMember&&listener.exitPayloadParameterMember(this)}accept(visitor){return visitor.visitPayloadParameterMember?visitor.visitPayloadParameterMember(this):visitor.visitChildren(this)}},PayloadParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}payloadFeature(){return this.getRuleContext(0,PayloadFeatureContext)}triggerValuePart(){return this.getRuleContext(0,TriggerValuePartContext)}identification(){return this.getRuleContext(0,IdentificationContext)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,PayloadFeatureSpecializationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_payloadParameter}enterRule(listener){listener.enterPayloadParameter&&listener.enterPayloadParameter(this)}exitRule(listener){listener.exitPayloadParameter&&listener.exitPayloadParameter(this)}accept(visitor){return visitor.visitPayloadParameter?visitor.visitPayloadParameter(this):visitor.visitChildren(this)}},TriggerValuePartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}triggerFeatureValue(){return this.getRuleContext(0,TriggerFeatureValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerValuePart}enterRule(listener){listener.enterTriggerValuePart&&listener.enterTriggerValuePart(this)}exitRule(listener){listener.exitTriggerValuePart&&listener.exitTriggerValuePart(this)}accept(visitor){return visitor.visitTriggerValuePart?visitor.visitTriggerValuePart(this):visitor.visitChildren(this)}},TriggerFeatureValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}triggerExpression(){return this.getRuleContext(0,TriggerExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerFeatureValue}enterRule(listener){listener.enterTriggerFeatureValue&&listener.enterTriggerFeatureValue(this)}exitRule(listener){listener.exitTriggerFeatureValue&&listener.exitTriggerFeatureValue(this)}accept(visitor){return visitor.visitTriggerFeatureValue?visitor.visitTriggerFeatureValue(this):visitor.visitChildren(this)}},TriggerExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}argumentMember(){return this.getRuleContext(0,ArgumentMemberContext)}AT(){return this.getToken(SysMLv2Parser.AT,0)}AFTER(){return this.getToken(SysMLv2Parser.AFTER,0)}WHEN(){return this.getToken(SysMLv2Parser.WHEN,0)}argumentExpressionMember(){return this.getRuleContext(0,ArgumentExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerExpression}enterRule(listener){listener.enterTriggerExpression&&listener.enterTriggerExpression(this)}exitRule(listener){listener.exitTriggerExpression&&listener.exitTriggerExpression(this)}accept(visitor){return visitor.visitTriggerExpression?visitor.visitTriggerExpression(this):visitor.visitChildren(this)}},SendNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}SEND(){return this.getToken(SysMLv2Parser.SEND,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}emptyParameterMember(){return this.getRuleContext(0,EmptyParameterMemberContext)}senderReceiverPart(){return this.getRuleContext(0,SenderReceiverPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_sendNode}enterRule(listener){listener.enterSendNode&&listener.enterSendNode(this)}exitRule(listener){listener.exitSendNode&&listener.exitSendNode(this)}accept(visitor){return visitor.visitSendNode?visitor.visitSendNode(this):visitor.visitChildren(this)}},SendNodeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEND(){return this.getToken(SysMLv2Parser.SEND,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}senderReceiverPart(){return this.getRuleContext(0,SenderReceiverPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_sendNodeDeclaration}enterRule(listener){listener.enterSendNodeDeclaration&&listener.enterSendNodeDeclaration(this)}exitRule(listener){listener.exitSendNodeDeclaration&&listener.exitSendNodeDeclaration(this)}accept(visitor){return visitor.visitSendNodeDeclaration?visitor.visitSendNodeDeclaration(this):visitor.visitChildren(this)}},SenderReceiverPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}VIA(){return this.getToken(SysMLv2Parser.VIA,0)}nodeParameterMember(i){return i===void 0?this.getRuleContexts(NodeParameterMemberContext):this.getRuleContext(i,NodeParameterMemberContext)}TO(){return this.getToken(SysMLv2Parser.TO,0)}emptyParameterMember(){return this.getRuleContext(0,EmptyParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_senderReceiverPart}enterRule(listener){listener.enterSenderReceiverPart&&listener.enterSenderReceiverPart(this)}exitRule(listener){listener.exitSenderReceiverPart&&listener.exitSenderReceiverPart(this)}accept(visitor){return visitor.visitSenderReceiverPart?visitor.visitSenderReceiverPart(this):visitor.visitChildren(this)}},NodeParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nodeParameter(){return this.getRuleContext(0,NodeParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_nodeParameterMember}enterRule(listener){listener.enterNodeParameterMember&&listener.enterNodeParameterMember(this)}exitRule(listener){listener.exitNodeParameterMember&&listener.exitNodeParameterMember(this)}accept(visitor){return visitor.visitNodeParameterMember?visitor.visitNodeParameterMember(this):visitor.visitChildren(this)}},NodeParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureBinding(){return this.getRuleContext(0,FeatureBindingContext)}get ruleIndex(){return SysMLv2Parser.RULE_nodeParameter}enterRule(listener){listener.enterNodeParameter&&listener.enterNodeParameter(this)}exitRule(listener){listener.exitNodeParameter&&listener.exitNodeParameter(this)}accept(visitor){return visitor.visitNodeParameter?visitor.visitNodeParameter(this):visitor.visitChildren(this)}},FeatureBindingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_featureBinding}enterRule(listener){listener.enterFeatureBinding&&listener.enterFeatureBinding(this)}exitRule(listener){listener.exitFeatureBinding&&listener.exitFeatureBinding(this)}accept(visitor){return visitor.visitFeatureBinding?visitor.visitFeatureBinding(this):visitor.visitChildren(this)}},EmptyParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyUsage_(){return this.getRuleContext(0,EmptyUsage_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyParameterMember}enterRule(listener){listener.enterEmptyParameterMember&&listener.enterEmptyParameterMember(this)}exitRule(listener){listener.exitEmptyParameterMember&&listener.exitEmptyParameterMember(this)}accept(visitor){return visitor.visitEmptyParameterMember?visitor.visitEmptyParameterMember(this):visitor.visitChildren(this)}},AssignmentNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}assignmentNodeDeclaration(){return this.getRuleContext(0,AssignmentNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentNode}enterRule(listener){listener.enterAssignmentNode&&listener.enterAssignmentNode(this)}exitRule(listener){listener.exitAssignmentNode&&listener.exitAssignmentNode(this)}accept(visitor){return visitor.visitAssignmentNode?visitor.visitAssignmentNode(this):visitor.visitChildren(this)}},AssignmentNodeDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ASSIGN(){return this.getToken(SysMLv2Parser.ASSIGN,0)}assignmentTargetMember(){return this.getRuleContext(0,AssignmentTargetMemberContext)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}COLON_EQ(){return this.getToken(SysMLv2Parser.COLON_EQ,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentNodeDeclaration}enterRule(listener){listener.enterAssignmentNodeDeclaration&&listener.enterAssignmentNodeDeclaration(this)}exitRule(listener){listener.exitAssignmentNodeDeclaration&&listener.exitAssignmentNodeDeclaration(this)}accept(visitor){return visitor.visitAssignmentNodeDeclaration?visitor.visitAssignmentNodeDeclaration(this):visitor.visitChildren(this)}},AssignmentTargetMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentTargetParameter(){return this.getRuleContext(0,AssignmentTargetParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentTargetMember}enterRule(listener){listener.enterAssignmentTargetMember&&listener.enterAssignmentTargetMember(this)}exitRule(listener){listener.exitAssignmentTargetMember&&listener.exitAssignmentTargetMember(this)}accept(visitor){return visitor.visitAssignmentTargetMember?visitor.visitAssignmentTargetMember(this):visitor.visitChildren(this)}},AssignmentTargetParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentTargetBinding(){return this.getRuleContext(0,AssignmentTargetBindingContext)}DOT(){return this.getToken(SysMLv2Parser.DOT,0)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentTargetParameter}enterRule(listener){listener.enterAssignmentTargetParameter&&listener.enterAssignmentTargetParameter(this)}exitRule(listener){listener.exitAssignmentTargetParameter&&listener.exitAssignmentTargetParameter(this)}accept(visitor){return visitor.visitAssignmentTargetParameter?visitor.visitAssignmentTargetParameter(this):visitor.visitChildren(this)}},AssignmentTargetBindingContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonFeatureChainPrimaryExpression(){return this.getRuleContext(0,NonFeatureChainPrimaryExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_assignmentTargetBinding}enterRule(listener){listener.enterAssignmentTargetBinding&&listener.enterAssignmentTargetBinding(this)}exitRule(listener){listener.exitAssignmentTargetBinding&&listener.exitAssignmentTargetBinding(this)}accept(visitor){return visitor.visitAssignmentTargetBinding?visitor.visitAssignmentTargetBinding(this):visitor.visitChildren(this)}},TerminateNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}TERMINATE(){return this.getToken(SysMLv2Parser.TERMINATE,0)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}actionNodeUsageDeclaration(){return this.getRuleContext(0,ActionNodeUsageDeclarationContext)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_terminateNode}enterRule(listener){listener.enterTerminateNode&&listener.enterTerminateNode(this)}exitRule(listener){listener.exitTerminateNode&&listener.exitTerminateNode(this)}accept(visitor){return visitor.visitTerminateNode?visitor.visitTerminateNode(this):visitor.visitChildren(this)}},IfNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodePrefix(){return this.getRuleContext(0,ActionNodePrefixContext)}IF(){return this.getToken(SysMLv2Parser.IF,0)}expressionParameterMember(){return this.getRuleContext(0,ExpressionParameterMemberContext)}actionBodyParameterMember(i){return i===void 0?this.getRuleContexts(ActionBodyParameterMemberContext):this.getRuleContext(i,ActionBodyParameterMemberContext)}ELSE(){return this.getToken(SysMLv2Parser.ELSE,0)}ifNodeParameterMember(){return this.getRuleContext(0,IfNodeParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_ifNode}enterRule(listener){listener.enterIfNode&&listener.enterIfNode(this)}exitRule(listener){listener.exitIfNode&&listener.exitIfNode(this)}accept(visitor){return visitor.visitIfNode?visitor.visitIfNode(this):visitor.visitChildren(this)}},ExpressionParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_expressionParameterMember}enterRule(listener){listener.enterExpressionParameterMember&&listener.enterExpressionParameterMember(this)}exitRule(listener){listener.exitExpressionParameterMember&&listener.exitExpressionParameterMember(this)}accept(visitor){return visitor.visitExpressionParameterMember?visitor.visitExpressionParameterMember(this):visitor.visitChildren(this)}},ActionBodyParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionBodyParameter(){return this.getRuleContext(0,ActionBodyParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBodyParameterMember}enterRule(listener){listener.enterActionBodyParameterMember&&listener.enterActionBodyParameterMember(this)}exitRule(listener){listener.exitActionBodyParameterMember&&listener.exitActionBodyParameterMember(this)}accept(visitor){return visitor.visitActionBodyParameterMember?visitor.visitActionBodyParameterMember(this):visitor.visitChildren(this)}},ActionBodyParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}ACTION(){return this.getToken(SysMLv2Parser.ACTION,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionBodyParameter}enterRule(listener){listener.enterActionBodyParameter&&listener.enterActionBodyParameter(this)}exitRule(listener){listener.exitActionBodyParameter&&listener.exitActionBodyParameter(this)}accept(visitor){return visitor.visitActionBodyParameter?visitor.visitActionBodyParameter(this):visitor.visitChildren(this)}},IfNodeParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ifNode(){return this.getRuleContext(0,IfNodeContext)}get ruleIndex(){return SysMLv2Parser.RULE_ifNodeParameterMember}enterRule(listener){listener.enterIfNodeParameterMember&&listener.enterIfNodeParameterMember(this)}exitRule(listener){listener.exitIfNodeParameterMember&&listener.exitIfNodeParameterMember(this)}accept(visitor){return visitor.visitIfNodeParameterMember?visitor.visitIfNodeParameterMember(this):visitor.visitChildren(this)}},WhileLoopNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodePrefix(){return this.getRuleContext(0,ActionNodePrefixContext)}actionBodyParameterMember(){return this.getRuleContext(0,ActionBodyParameterMemberContext)}WHILE(){return this.getToken(SysMLv2Parser.WHILE,0)}expressionParameterMember(i){return i===void 0?this.getRuleContexts(ExpressionParameterMemberContext):this.getRuleContext(i,ExpressionParameterMemberContext)}LOOP(){return this.getToken(SysMLv2Parser.LOOP,0)}emptyParameterMember(){return this.getRuleContext(0,EmptyParameterMemberContext)}UNTIL(){return this.getToken(SysMLv2Parser.UNTIL,0)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}get ruleIndex(){return SysMLv2Parser.RULE_whileLoopNode}enterRule(listener){listener.enterWhileLoopNode&&listener.enterWhileLoopNode(this)}exitRule(listener){listener.exitWhileLoopNode&&listener.exitWhileLoopNode(this)}accept(visitor){return visitor.visitWhileLoopNode?visitor.visitWhileLoopNode(this):visitor.visitChildren(this)}},ForLoopNodeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionNodePrefix(){return this.getRuleContext(0,ActionNodePrefixContext)}FOR(){return this.getToken(SysMLv2Parser.FOR,0)}forVariableDeclarationMember(){return this.getRuleContext(0,ForVariableDeclarationMemberContext)}IN(){return this.getToken(SysMLv2Parser.IN,0)}nodeParameterMember(){return this.getRuleContext(0,NodeParameterMemberContext)}actionBodyParameterMember(){return this.getRuleContext(0,ActionBodyParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_forLoopNode}enterRule(listener){listener.enterForLoopNode&&listener.enterForLoopNode(this)}exitRule(listener){listener.exitForLoopNode&&listener.exitForLoopNode(this)}accept(visitor){return visitor.visitForLoopNode?visitor.visitForLoopNode(this):visitor.visitChildren(this)}},ForVariableDeclarationMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_forVariableDeclarationMember}enterRule(listener){listener.enterForVariableDeclarationMember&&listener.enterForVariableDeclarationMember(this)}exitRule(listener){listener.exitForVariableDeclarationMember&&listener.exitForVariableDeclarationMember(this)}accept(visitor){return visitor.visitForVariableDeclarationMember?visitor.visitForVariableDeclarationMember(this):visitor.visitChildren(this)}},ForVariableDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_forVariableDeclaration}enterRule(listener){listener.enterForVariableDeclaration&&listener.enterForVariableDeclaration(this)}exitRule(listener){listener.exitForVariableDeclaration&&listener.exitForVariableDeclaration(this)}accept(visitor){return visitor.visitForVariableDeclaration?visitor.visitForVariableDeclaration(this):visitor.visitChildren(this)}},ActionTargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}targetSuccession(){return this.getRuleContext(0,TargetSuccessionContext)}guardedTargetSuccession(){return this.getRuleContext(0,GuardedTargetSuccessionContext)}defaultTargetSuccession(){return this.getRuleContext(0,DefaultTargetSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_actionTargetSuccession}enterRule(listener){listener.enterActionTargetSuccession&&listener.enterActionTargetSuccession(this)}exitRule(listener){listener.exitActionTargetSuccession&&listener.exitActionTargetSuccession(this)}accept(visitor){return visitor.visitActionTargetSuccession?visitor.visitActionTargetSuccession(this):visitor.visitChildren(this)}},TargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sourceEndMember(){return this.getRuleContext(0,SourceEndMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}connectorEndMember(){return this.getRuleContext(0,ConnectorEndMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_targetSuccession}enterRule(listener){listener.enterTargetSuccession&&listener.enterTargetSuccession(this)}exitRule(listener){listener.exitTargetSuccession&&listener.exitTargetSuccession(this)}accept(visitor){return visitor.visitTargetSuccession?visitor.visitTargetSuccession(this):visitor.visitChildren(this)}},GuardedTargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardedTargetSuccession}enterRule(listener){listener.enterGuardedTargetSuccession&&listener.enterGuardedTargetSuccession(this)}exitRule(listener){listener.exitGuardedTargetSuccession&&listener.exitGuardedTargetSuccession(this)}accept(visitor){return visitor.visitGuardedTargetSuccession?visitor.visitGuardedTargetSuccession(this):visitor.visitChildren(this)}},DefaultTargetSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ELSE(){return this.getToken(SysMLv2Parser.ELSE,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_defaultTargetSuccession}enterRule(listener){listener.enterDefaultTargetSuccession&&listener.enterDefaultTargetSuccession(this)}exitRule(listener){listener.exitDefaultTargetSuccession&&listener.exitDefaultTargetSuccession(this)}accept(visitor){return visitor.visitDefaultTargetSuccession?visitor.visitDefaultTargetSuccession(this):visitor.visitChildren(this)}},GuardedSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}SUCCESSION(){return this.getToken(SysMLv2Parser.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardedSuccession}enterRule(listener){listener.enterGuardedSuccession&&listener.enterGuardedSuccession(this)}exitRule(listener){listener.exitGuardedSuccession&&listener.exitGuardedSuccession(this)}accept(visitor){return visitor.visitGuardedSuccession?visitor.visitGuardedSuccession(this):visitor.visitChildren(this)}},StateDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}STATE(){return this.getToken(SysMLv2Parser.STATE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}stateDefBody(){return this.getRuleContext(0,StateDefBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateDefinition}enterRule(listener){listener.enterStateDefinition&&listener.enterStateDefinition(this)}exitRule(listener){listener.exitStateDefinition&&listener.exitStateDefinition(this)}accept(visitor){return visitor.visitStateDefinition?visitor.visitStateDefinition(this):visitor.visitChildren(this)}},StateDefBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}PARALLEL(){return this.getToken(SysMLv2Parser.PARALLEL,0)}stateBodyItem(i){return i===void 0?this.getRuleContexts(StateBodyItemContext):this.getRuleContext(i,StateBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateDefBody}enterRule(listener){listener.enterStateDefBody&&listener.enterStateDefBody(this)}exitRule(listener){listener.exitStateDefBody&&listener.exitStateDefBody(this)}accept(visitor){return visitor.visitStateDefBody?visitor.visitStateDefBody(this):visitor.visitChildren(this)}},StateBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}nonBehaviorBodyItem(){return this.getRuleContext(0,NonBehaviorBodyItemContext)}behaviorUsageMember(){return this.getRuleContext(0,BehaviorUsageMemberContext)}sourceSuccessionMember(){return this.getRuleContext(0,SourceSuccessionMemberContext)}targetTransitionUsageMember(i){return i===void 0?this.getRuleContexts(TargetTransitionUsageMemberContext):this.getRuleContext(i,TargetTransitionUsageMemberContext)}transitionUsageMember(){return this.getRuleContext(0,TransitionUsageMemberContext)}entryActionMember(){return this.getRuleContext(0,EntryActionMemberContext)}entryTransitionMember(i){return i===void 0?this.getRuleContexts(EntryTransitionMemberContext):this.getRuleContext(i,EntryTransitionMemberContext)}doActionMember(){return this.getRuleContext(0,DoActionMemberContext)}exitActionMember(){return this.getRuleContext(0,ExitActionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateBodyItem}enterRule(listener){listener.enterStateBodyItem&&listener.enterStateBodyItem(this)}exitRule(listener){listener.exitStateBodyItem&&listener.exitStateBodyItem(this)}accept(visitor){return visitor.visitStateBodyItem?visitor.visitStateBodyItem(this):visitor.visitChildren(this)}},EntryActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}ENTRY(){return this.getToken(SysMLv2Parser.ENTRY,0)}stateActionUsage(){return this.getRuleContext(0,StateActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_entryActionMember}enterRule(listener){listener.enterEntryActionMember&&listener.enterEntryActionMember(this)}exitRule(listener){listener.exitEntryActionMember&&listener.exitEntryActionMember(this)}accept(visitor){return visitor.visitEntryActionMember?visitor.visitEntryActionMember(this):visitor.visitChildren(this)}},DoActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}DO(){return this.getToken(SysMLv2Parser.DO,0)}stateActionUsage(){return this.getRuleContext(0,StateActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_doActionMember}enterRule(listener){listener.enterDoActionMember&&listener.enterDoActionMember(this)}exitRule(listener){listener.exitDoActionMember&&listener.exitDoActionMember(this)}accept(visitor){return visitor.visitDoActionMember?visitor.visitDoActionMember(this):visitor.visitChildren(this)}},ExitActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}EXIT(){return this.getToken(SysMLv2Parser.EXIT,0)}stateActionUsage(){return this.getRuleContext(0,StateActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_exitActionMember}enterRule(listener){listener.enterExitActionMember&&listener.enterExitActionMember(this)}exitRule(listener){listener.exitExitActionMember&&listener.exitExitActionMember(this)}accept(visitor){return visitor.visitExitActionMember?visitor.visitExitActionMember(this):visitor.visitChildren(this)}},EntryTransitionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}guardedTargetSuccession(){return this.getRuleContext(0,GuardedTargetSuccessionContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_entryTransitionMember}enterRule(listener){listener.enterEntryTransitionMember&&listener.enterEntryTransitionMember(this)}exitRule(listener){listener.exitEntryTransitionMember&&listener.exitEntryTransitionMember(this)}accept(visitor){return visitor.visitEntryTransitionMember?visitor.visitEntryTransitionMember(this):visitor.visitChildren(this)}},StateActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyActionUsage_(){return this.getRuleContext(0,EmptyActionUsage_Context)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}statePerformActionUsage(){return this.getRuleContext(0,StatePerformActionUsageContext)}stateAcceptActionUsage(){return this.getRuleContext(0,StateAcceptActionUsageContext)}stateSendActionUsage(){return this.getRuleContext(0,StateSendActionUsageContext)}stateAssignmentActionUsage(){return this.getRuleContext(0,StateAssignmentActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateActionUsage}enterRule(listener){listener.enterStateActionUsage&&listener.enterStateActionUsage(this)}exitRule(listener){listener.exitStateActionUsage&&listener.exitStateActionUsage(this)}accept(visitor){return visitor.visitStateActionUsage?visitor.visitStateActionUsage(this):visitor.visitChildren(this)}},StatePerformActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}performActionUsageDeclaration(){return this.getRuleContext(0,PerformActionUsageDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_statePerformActionUsage}enterRule(listener){listener.enterStatePerformActionUsage&&listener.enterStatePerformActionUsage(this)}exitRule(listener){listener.exitStatePerformActionUsage&&listener.exitStatePerformActionUsage(this)}accept(visitor){return visitor.visitStatePerformActionUsage?visitor.visitStatePerformActionUsage(this):visitor.visitChildren(this)}},StateAcceptActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}acceptNodeDeclaration(){return this.getRuleContext(0,AcceptNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateAcceptActionUsage}enterRule(listener){listener.enterStateAcceptActionUsage&&listener.enterStateAcceptActionUsage(this)}exitRule(listener){listener.exitStateAcceptActionUsage&&listener.exitStateAcceptActionUsage(this)}accept(visitor){return visitor.visitStateAcceptActionUsage?visitor.visitStateAcceptActionUsage(this):visitor.visitChildren(this)}},StateSendActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sendNodeDeclaration(){return this.getRuleContext(0,SendNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateSendActionUsage}enterRule(listener){listener.enterStateSendActionUsage&&listener.enterStateSendActionUsage(this)}exitRule(listener){listener.exitStateSendActionUsage&&listener.exitStateSendActionUsage(this)}accept(visitor){return visitor.visitStateSendActionUsage?visitor.visitStateSendActionUsage(this):visitor.visitChildren(this)}},StateAssignmentActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentNodeDeclaration(){return this.getRuleContext(0,AssignmentNodeDeclarationContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateAssignmentActionUsage}enterRule(listener){listener.enterStateAssignmentActionUsage&&listener.enterStateAssignmentActionUsage(this)}exitRule(listener){listener.exitStateAssignmentActionUsage&&listener.exitStateAssignmentActionUsage(this)}accept(visitor){return visitor.visitStateAssignmentActionUsage?visitor.visitStateAssignmentActionUsage(this):visitor.visitChildren(this)}},TransitionUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}transitionUsage(){return this.getRuleContext(0,TransitionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionUsageMember}enterRule(listener){listener.enterTransitionUsageMember&&listener.enterTransitionUsageMember(this)}exitRule(listener){listener.exitTransitionUsageMember&&listener.exitTransitionUsageMember(this)}accept(visitor){return visitor.visitTransitionUsageMember?visitor.visitTransitionUsageMember(this):visitor.visitChildren(this)}},TargetTransitionUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}targetTransitionUsage(){return this.getRuleContext(0,TargetTransitionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_targetTransitionUsageMember}enterRule(listener){listener.enterTargetTransitionUsageMember&&listener.enterTargetTransitionUsageMember(this)}exitRule(listener){listener.exitTargetTransitionUsageMember&&listener.exitTargetTransitionUsageMember(this)}accept(visitor){return visitor.visitTargetTransitionUsageMember?visitor.visitTargetTransitionUsageMember(this):visitor.visitChildren(this)}},StateUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}STATE(){return this.getToken(SysMLv2Parser.STATE,0)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}stateUsageBody(){return this.getRuleContext(0,StateUsageBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateUsage}enterRule(listener){listener.enterStateUsage&&listener.enterStateUsage(this)}exitRule(listener){listener.exitStateUsage&&listener.exitStateUsage(this)}accept(visitor){return visitor.visitStateUsage?visitor.visitStateUsage(this):visitor.visitChildren(this)}},StateUsageBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}PARALLEL(){return this.getToken(SysMLv2Parser.PARALLEL,0)}stateBodyItem(i){return i===void 0?this.getRuleContexts(StateBodyItemContext):this.getRuleContext(i,StateBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_stateUsageBody}enterRule(listener){listener.enterStateUsageBody&&listener.enterStateUsageBody(this)}exitRule(listener){listener.exitStateUsageBody&&listener.exitStateUsageBody(this)}accept(visitor){return visitor.visitStateUsageBody?visitor.visitStateUsageBody(this):visitor.visitChildren(this)}},ExhibitStateUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}EXHIBIT(){return this.getToken(SysMLv2Parser.EXHIBIT,0)}stateUsageBody(){return this.getRuleContext(0,StateUsageBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}STATE(){return this.getToken(SysMLv2Parser.STATE,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_exhibitStateUsage}enterRule(listener){listener.enterExhibitStateUsage&&listener.enterExhibitStateUsage(this)}exitRule(listener){listener.exitExhibitStateUsage&&listener.exitExhibitStateUsage(this)}accept(visitor){return visitor.visitExhibitStateUsage?visitor.visitExhibitStateUsage(this):visitor.visitChildren(this)}},TransitionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}TRANSITION(){return this.getToken(SysMLv2Parser.TRANSITION,0)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}emptyParameterMember(i){return i===void 0?this.getRuleContexts(EmptyParameterMemberContext):this.getRuleContext(i,EmptyParameterMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}FIRST(){return this.getToken(SysMLv2Parser.FIRST,0)}triggerActionMember(){return this.getRuleContext(0,TriggerActionMemberContext)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}effectBehaviorMember(){return this.getRuleContext(0,EffectBehaviorMemberContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionUsage}enterRule(listener){listener.enterTransitionUsage&&listener.enterTransitionUsage(this)}exitRule(listener){listener.exitTransitionUsage&&listener.exitTransitionUsage(this)}accept(visitor){return visitor.visitTransitionUsage?visitor.visitTransitionUsage(this):visitor.visitChildren(this)}},TargetTransitionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyParameterMember(i){return i===void 0?this.getRuleContexts(EmptyParameterMemberContext):this.getRuleContext(i,EmptyParameterMemberContext)}THEN(){return this.getToken(SysMLv2Parser.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,TransitionSuccessionMemberContext)}actionBody(){return this.getRuleContext(0,ActionBodyContext)}TRANSITION(){return this.getToken(SysMLv2Parser.TRANSITION,0)}triggerActionMember(){return this.getRuleContext(0,TriggerActionMemberContext)}guardExpressionMember(){return this.getRuleContext(0,GuardExpressionMemberContext)}effectBehaviorMember(){return this.getRuleContext(0,EffectBehaviorMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_targetTransitionUsage}enterRule(listener){listener.enterTargetTransitionUsage&&listener.enterTargetTransitionUsage(this)}exitRule(listener){listener.exitTargetTransitionUsage&&listener.exitTargetTransitionUsage(this)}accept(visitor){return visitor.visitTargetTransitionUsage?visitor.visitTargetTransitionUsage(this):visitor.visitChildren(this)}},TriggerActionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACCEPT(){return this.getToken(SysMLv2Parser.ACCEPT,0)}triggerAction(){return this.getRuleContext(0,TriggerActionContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerActionMember}enterRule(listener){listener.enterTriggerActionMember&&listener.enterTriggerActionMember(this)}exitRule(listener){listener.exitTriggerActionMember&&listener.exitTriggerActionMember(this)}accept(visitor){return visitor.visitTriggerActionMember?visitor.visitTriggerActionMember(this):visitor.visitChildren(this)}},TriggerActionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}acceptParameterPart(){return this.getRuleContext(0,AcceptParameterPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_triggerAction}enterRule(listener){listener.enterTriggerAction&&listener.enterTriggerAction(this)}exitRule(listener){listener.exitTriggerAction&&listener.exitTriggerAction(this)}accept(visitor){return visitor.visitTriggerAction?visitor.visitTriggerAction(this):visitor.visitChildren(this)}},GuardExpressionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IF(){return this.getToken(SysMLv2Parser.IF,0)}ownedExpression(){return this.getRuleContext(0,OwnedExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_guardExpressionMember}enterRule(listener){listener.enterGuardExpressionMember&&listener.enterGuardExpressionMember(this)}exitRule(listener){listener.exitGuardExpressionMember&&listener.exitGuardExpressionMember(this)}accept(visitor){return visitor.visitGuardExpressionMember?visitor.visitGuardExpressionMember(this):visitor.visitChildren(this)}},EffectBehaviorMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DO(){return this.getToken(SysMLv2Parser.DO,0)}effectBehaviorUsage(){return this.getRuleContext(0,EffectBehaviorUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_effectBehaviorMember}enterRule(listener){listener.enterEffectBehaviorMember&&listener.enterEffectBehaviorMember(this)}exitRule(listener){listener.exitEffectBehaviorMember&&listener.exitEffectBehaviorMember(this)}accept(visitor){return visitor.visitEffectBehaviorMember?visitor.visitEffectBehaviorMember(this):visitor.visitChildren(this)}},EffectBehaviorUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyActionUsage_(){return this.getRuleContext(0,EmptyActionUsage_Context)}transitionPerformActionUsage(){return this.getRuleContext(0,TransitionPerformActionUsageContext)}transitionAcceptActionUsage(){return this.getRuleContext(0,TransitionAcceptActionUsageContext)}transitionSendActionUsage(){return this.getRuleContext(0,TransitionSendActionUsageContext)}transitionAssignmentActionUsage(){return this.getRuleContext(0,TransitionAssignmentActionUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_effectBehaviorUsage}enterRule(listener){listener.enterEffectBehaviorUsage&&listener.enterEffectBehaviorUsage(this)}exitRule(listener){listener.exitEffectBehaviorUsage&&listener.exitEffectBehaviorUsage(this)}accept(visitor){return visitor.visitEffectBehaviorUsage?visitor.visitEffectBehaviorUsage(this):visitor.visitChildren(this)}},TransitionPerformActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}performActionUsageDeclaration(){return this.getRuleContext(0,PerformActionUsageDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionPerformActionUsage}enterRule(listener){listener.enterTransitionPerformActionUsage&&listener.enterTransitionPerformActionUsage(this)}exitRule(listener){listener.exitTransitionPerformActionUsage&&listener.exitTransitionPerformActionUsage(this)}accept(visitor){return visitor.visitTransitionPerformActionUsage?visitor.visitTransitionPerformActionUsage(this):visitor.visitChildren(this)}},TransitionAcceptActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}acceptNodeDeclaration(){return this.getRuleContext(0,AcceptNodeDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionAcceptActionUsage}enterRule(listener){listener.enterTransitionAcceptActionUsage&&listener.enterTransitionAcceptActionUsage(this)}exitRule(listener){listener.exitTransitionAcceptActionUsage&&listener.exitTransitionAcceptActionUsage(this)}accept(visitor){return visitor.visitTransitionAcceptActionUsage?visitor.visitTransitionAcceptActionUsage(this):visitor.visitChildren(this)}},TransitionSendActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}sendNodeDeclaration(){return this.getRuleContext(0,SendNodeDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionSendActionUsage}enterRule(listener){listener.enterTransitionSendActionUsage&&listener.enterTransitionSendActionUsage(this)}exitRule(listener){listener.exitTransitionSendActionUsage&&listener.exitTransitionSendActionUsage(this)}accept(visitor){return visitor.visitTransitionSendActionUsage?visitor.visitTransitionSendActionUsage(this):visitor.visitChildren(this)}},TransitionAssignmentActionUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}assignmentNodeDeclaration(){return this.getRuleContext(0,AssignmentNodeDeclarationContext)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}actionBodyItem(i){return i===void 0?this.getRuleContexts(ActionBodyItemContext):this.getRuleContext(i,ActionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionAssignmentActionUsage}enterRule(listener){listener.enterTransitionAssignmentActionUsage&&listener.enterTransitionAssignmentActionUsage(this)}exitRule(listener){listener.exitTransitionAssignmentActionUsage&&listener.exitTransitionAssignmentActionUsage(this)}accept(visitor){return visitor.visitTransitionAssignmentActionUsage?visitor.visitTransitionAssignmentActionUsage(this):visitor.visitChildren(this)}},TransitionSuccessionMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}transitionSuccession(){return this.getRuleContext(0,TransitionSuccessionContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionSuccessionMember}enterRule(listener){listener.enterTransitionSuccessionMember&&listener.enterTransitionSuccessionMember(this)}exitRule(listener){listener.exitTransitionSuccessionMember&&listener.exitTransitionSuccessionMember(this)}accept(visitor){return visitor.visitTransitionSuccessionMember?visitor.visitTransitionSuccessionMember(this):visitor.visitChildren(this)}},TransitionSuccessionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyEndMember(){return this.getRuleContext(0,EmptyEndMemberContext)}connectorEndMember(){return this.getRuleContext(0,ConnectorEndMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_transitionSuccession}enterRule(listener){listener.enterTransitionSuccession&&listener.enterTransitionSuccession(this)}exitRule(listener){listener.exitTransitionSuccession&&listener.exitTransitionSuccession(this)}accept(visitor){return visitor.visitTransitionSuccession?visitor.visitTransitionSuccession(this):visitor.visitChildren(this)}},EmptyEndMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}emptyFeature_(){return this.getRuleContext(0,EmptyFeature_Context)}get ruleIndex(){return SysMLv2Parser.RULE_emptyEndMember}enterRule(listener){listener.enterEmptyEndMember&&listener.enterEmptyEndMember(this)}exitRule(listener){listener.exitEmptyEndMember&&listener.exitEmptyEndMember(this)}accept(visitor){return visitor.visitEmptyEndMember?visitor.visitEmptyEndMember(this):visitor.visitChildren(this)}},CalculationDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CALC(){return this.getToken(SysMLv2Parser.CALC,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationDefinition}enterRule(listener){listener.enterCalculationDefinition&&listener.enterCalculationDefinition(this)}exitRule(listener){listener.exitCalculationDefinition&&listener.exitCalculationDefinition(this)}accept(visitor){return visitor.visitCalculationDefinition?visitor.visitCalculationDefinition(this):visitor.visitChildren(this)}},CalculationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CALC(){return this.getToken(SysMLv2Parser.CALC,0)}actionUsageDeclaration(){return this.getRuleContext(0,ActionUsageDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationUsage}enterRule(listener){listener.enterCalculationUsage&&listener.enterCalculationUsage(this)}exitRule(listener){listener.exitCalculationUsage&&listener.exitCalculationUsage(this)}accept(visitor){return visitor.visitCalculationUsage?visitor.visitCalculationUsage(this):visitor.visitChildren(this)}},CalculationBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}calculationBodyPart(){return this.getRuleContext(0,CalculationBodyPartContext)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}get ruleIndex(){return SysMLv2Parser.RULE_calculationBody}enterRule(listener){listener.enterCalculationBody&&listener.enterCalculationBody(this)}exitRule(listener){listener.exitCalculationBody&&listener.exitCalculationBody(this)}accept(visitor){return visitor.visitCalculationBody?visitor.visitCalculationBody(this):visitor.visitChildren(this)}},CalculationBodyPartContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}calculationBodyItem(i){return i===void 0?this.getRuleContexts(CalculationBodyItemContext):this.getRuleContext(i,CalculationBodyItemContext)}resultExpressionMember(){return this.getRuleContext(0,ResultExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationBodyPart}enterRule(listener){listener.enterCalculationBodyPart&&listener.enterCalculationBodyPart(this)}exitRule(listener){listener.exitCalculationBodyPart&&listener.exitCalculationBodyPart(this)}accept(visitor){return visitor.visitCalculationBodyPart?visitor.visitCalculationBodyPart(this):visitor.visitChildren(this)}},CalculationBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionBodyItem(){return this.getRuleContext(0,ActionBodyItemContext)}returnParameterMember(){return this.getRuleContext(0,ReturnParameterMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationBodyItem}enterRule(listener){listener.enterCalculationBodyItem&&listener.enterCalculationBodyItem(this)}exitRule(listener){listener.exitCalculationBodyItem&&listener.exitCalculationBodyItem(this)}accept(visitor){return visitor.visitCalculationBodyItem?visitor.visitCalculationBodyItem(this):visitor.visitChildren(this)}},ReturnParameterMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}RETURN(){return this.getToken(SysMLv2Parser.RETURN,0)}usageElement(){return this.getRuleContext(0,UsageElementContext)}get ruleIndex(){return SysMLv2Parser.RULE_returnParameterMember}enterRule(listener){listener.enterReturnParameterMember&&listener.enterReturnParameterMember(this)}exitRule(listener){listener.exitReturnParameterMember&&listener.exitReturnParameterMember(this)}accept(visitor){return visitor.visitReturnParameterMember?visitor.visitReturnParameterMember(this):visitor.visitChildren(this)}},ConstraintDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_constraintDefinition}enterRule(listener){listener.enterConstraintDefinition&&listener.enterConstraintDefinition(this)}exitRule(listener){listener.exitConstraintDefinition&&listener.exitConstraintDefinition(this)}accept(visitor){return visitor.visitConstraintDefinition?visitor.visitConstraintDefinition(this):visitor.visitChildren(this)}},ConstraintUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_constraintUsage}enterRule(listener){listener.enterConstraintUsage&&listener.enterConstraintUsage(this)}exitRule(listener){listener.exitConstraintUsage&&listener.exitConstraintUsage(this)}accept(visitor){return visitor.visitConstraintUsage?visitor.visitConstraintUsage(this):visitor.visitChildren(this)}},AssertConstraintUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ASSERT(){return this.getToken(SysMLv2Parser.ASSERT,0)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}NOT(){return this.getToken(SysMLv2Parser.NOT,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}get ruleIndex(){return SysMLv2Parser.RULE_assertConstraintUsage}enterRule(listener){listener.enterAssertConstraintUsage&&listener.enterAssertConstraintUsage(this)}exitRule(listener){listener.exitAssertConstraintUsage&&listener.exitAssertConstraintUsage(this)}accept(visitor){return visitor.visitAssertConstraintUsage?visitor.visitAssertConstraintUsage(this):visitor.visitChildren(this)}},ConstraintUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_constraintUsageDeclaration}enterRule(listener){listener.enterConstraintUsageDeclaration&&listener.enterConstraintUsageDeclaration(this)}exitRule(listener){listener.exitConstraintUsageDeclaration&&listener.exitConstraintUsageDeclaration(this)}accept(visitor){return visitor.visitConstraintUsageDeclaration?visitor.visitConstraintUsageDeclaration(this):visitor.visitChildren(this)}},RequirementDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementDefinition}enterRule(listener){listener.enterRequirementDefinition&&listener.enterRequirementDefinition(this)}exitRule(listener){listener.exitRequirementDefinition&&listener.exitRequirementDefinition(this)}accept(visitor){return visitor.visitRequirementDefinition?visitor.visitRequirementDefinition(this):visitor.visitChildren(this)}},RequirementBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}requirementBodyItem(i){return i===void 0?this.getRuleContexts(RequirementBodyItemContext):this.getRuleContext(i,RequirementBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementBody}enterRule(listener){listener.enterRequirementBody&&listener.enterRequirementBody(this)}exitRule(listener){listener.exitRequirementBody&&listener.exitRequirementBody(this)}accept(visitor){return visitor.visitRequirementBody?visitor.visitRequirementBody(this):visitor.visitChildren(this)}},RequirementBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(){return this.getRuleContext(0,DefinitionBodyItemContext)}subjectMember(){return this.getRuleContext(0,SubjectMemberContext)}requirementConstraintMember(){return this.getRuleContext(0,RequirementConstraintMemberContext)}framedConcernMember(){return this.getRuleContext(0,FramedConcernMemberContext)}requirementVerificationMember(){return this.getRuleContext(0,RequirementVerificationMemberContext)}actorMember(){return this.getRuleContext(0,ActorMemberContext)}stakeholderMember(){return this.getRuleContext(0,StakeholderMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementBodyItem}enterRule(listener){listener.enterRequirementBodyItem&&listener.enterRequirementBodyItem(this)}exitRule(listener){listener.exitRequirementBodyItem&&listener.exitRequirementBodyItem(this)}accept(visitor){return visitor.visitRequirementBodyItem?visitor.visitRequirementBodyItem(this):visitor.visitChildren(this)}},SubjectMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}subjectUsage(){return this.getRuleContext(0,SubjectUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_subjectMember}enterRule(listener){listener.enterSubjectMember&&listener.enterSubjectMember(this)}exitRule(listener){listener.exitSubjectMember&&listener.exitSubjectMember(this)}accept(visitor){return visitor.visitSubjectMember?visitor.visitSubjectMember(this):visitor.visitChildren(this)}},SubjectUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SUBJECT(){return this.getToken(SysMLv2Parser.SUBJECT,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_subjectUsage}enterRule(listener){listener.enterSubjectUsage&&listener.enterSubjectUsage(this)}exitRule(listener){listener.exitSubjectUsage&&listener.exitSubjectUsage(this)}accept(visitor){return visitor.visitSubjectUsage?visitor.visitSubjectUsage(this):visitor.visitChildren(this)}},RequirementConstraintMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}requirementKind(){return this.getRuleContext(0,RequirementKindContext)}requirementConstraintUsage(){return this.getRuleContext(0,RequirementConstraintUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementConstraintMember}enterRule(listener){listener.enterRequirementConstraintMember&&listener.enterRequirementConstraintMember(this)}exitRule(listener){listener.exitRequirementConstraintMember&&listener.exitRequirementConstraintMember(this)}accept(visitor){return visitor.visitRequirementConstraintMember?visitor.visitRequirementConstraintMember(this):visitor.visitChildren(this)}},RequirementKindContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ASSUME(){return this.getToken(SysMLv2Parser.ASSUME,0)}REQUIRE(){return this.getToken(SysMLv2Parser.REQUIRE,0)}get ruleIndex(){return SysMLv2Parser.RULE_requirementKind}enterRule(listener){listener.enterRequirementKind&&listener.enterRequirementKind(this)}exitRule(listener){listener.exitRequirementKind&&listener.exitRequirementKind(this)}accept(visitor){return visitor.visitRequirementKind?visitor.visitRequirementKind(this):visitor.visitChildren(this)}},RequirementConstraintUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}CONSTRAINT(){return this.getToken(SysMLv2Parser.CONSTRAINT,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementConstraintUsage}enterRule(listener){listener.enterRequirementConstraintUsage&&listener.enterRequirementConstraintUsage(this)}exitRule(listener){listener.exitRequirementConstraintUsage&&listener.exitRequirementConstraintUsage(this)}accept(visitor){return visitor.visitRequirementConstraintUsage?visitor.visitRequirementConstraintUsage(this):visitor.visitChildren(this)}},FramedConcernMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}FRAME(){return this.getToken(SysMLv2Parser.FRAME,0)}framedConcernUsage(){return this.getRuleContext(0,FramedConcernUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_framedConcernMember}enterRule(listener){listener.enterFramedConcernMember&&listener.enterFramedConcernMember(this)}exitRule(listener){listener.exitFramedConcernMember&&listener.exitFramedConcernMember(this)}accept(visitor){return visitor.visitFramedConcernMember?visitor.visitFramedConcernMember(this):visitor.visitChildren(this)}},FramedConcernUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}calculationBody(){return this.getRuleContext(0,CalculationBodyContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}calculationUsageDeclaration(){return this.getRuleContext(0,CalculationUsageDeclarationContext)}CONCERN(){return this.getToken(SysMLv2Parser.CONCERN,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_framedConcernUsage}enterRule(listener){listener.enterFramedConcernUsage&&listener.enterFramedConcernUsage(this)}exitRule(listener){listener.exitFramedConcernUsage&&listener.exitFramedConcernUsage(this)}accept(visitor){return visitor.visitFramedConcernUsage?visitor.visitFramedConcernUsage(this):visitor.visitChildren(this)}},ActorMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}actorUsage(){return this.getRuleContext(0,ActorUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_actorMember}enterRule(listener){listener.enterActorMember&&listener.enterActorMember(this)}exitRule(listener){listener.exitActorMember&&listener.exitActorMember(this)}accept(visitor){return visitor.visitActorMember?visitor.visitActorMember(this):visitor.visitChildren(this)}},ActorUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ACTOR(){return this.getToken(SysMLv2Parser.ACTOR,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_actorUsage}enterRule(listener){listener.enterActorUsage&&listener.enterActorUsage(this)}exitRule(listener){listener.exitActorUsage&&listener.exitActorUsage(this)}accept(visitor){return visitor.visitActorUsage?visitor.visitActorUsage(this):visitor.visitChildren(this)}},StakeholderMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}stakeholderUsage(){return this.getRuleContext(0,StakeholderUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_stakeholderMember}enterRule(listener){listener.enterStakeholderMember&&listener.enterStakeholderMember(this)}exitRule(listener){listener.exitStakeholderMember&&listener.exitStakeholderMember(this)}accept(visitor){return visitor.visitStakeholderMember?visitor.visitStakeholderMember(this):visitor.visitChildren(this)}},StakeholderUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}STAKEHOLDER(){return this.getToken(SysMLv2Parser.STAKEHOLDER,0)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_stakeholderUsage}enterRule(listener){listener.enterStakeholderUsage&&listener.enterStakeholderUsage(this)}exitRule(listener){listener.exitStakeholderUsage&&listener.exitStakeholderUsage(this)}accept(visitor){return visitor.visitStakeholderUsage?visitor.visitStakeholderUsage(this):visitor.visitChildren(this)}},RequirementUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementUsage}enterRule(listener){listener.enterRequirementUsage&&listener.enterRequirementUsage(this)}exitRule(listener){listener.exitRequirementUsage&&listener.exitRequirementUsage(this)}accept(visitor){return visitor.visitRequirementUsage?visitor.visitRequirementUsage(this):visitor.visitChildren(this)}},SatisfyRequirementUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}SATISFY(){return this.getToken(SysMLv2Parser.SATISFY,0)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}ASSERT(){return this.getToken(SysMLv2Parser.ASSERT,0)}NOT(){return this.getToken(SysMLv2Parser.NOT,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}BY(){return this.getToken(SysMLv2Parser.BY,0)}satisfactionSubjectMember(){return this.getRuleContext(0,SatisfactionSubjectMemberContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfyRequirementUsage}enterRule(listener){listener.enterSatisfyRequirementUsage&&listener.enterSatisfyRequirementUsage(this)}exitRule(listener){listener.exitSatisfyRequirementUsage&&listener.exitSatisfyRequirementUsage(this)}accept(visitor){return visitor.visitSatisfyRequirementUsage?visitor.visitSatisfyRequirementUsage(this):visitor.visitChildren(this)}},SatisfactionSubjectMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}satisfactionParameter(){return this.getRuleContext(0,SatisfactionParameterContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionSubjectMember}enterRule(listener){listener.enterSatisfactionSubjectMember&&listener.enterSatisfactionSubjectMember(this)}exitRule(listener){listener.exitSatisfactionSubjectMember&&listener.exitSatisfactionSubjectMember(this)}accept(visitor){return visitor.visitSatisfactionSubjectMember?visitor.visitSatisfactionSubjectMember(this):visitor.visitChildren(this)}},SatisfactionParameterContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}satisfactionFeatureValue(){return this.getRuleContext(0,SatisfactionFeatureValueContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionParameter}enterRule(listener){listener.enterSatisfactionParameter&&listener.enterSatisfactionParameter(this)}exitRule(listener){listener.exitSatisfactionParameter&&listener.exitSatisfactionParameter(this)}accept(visitor){return visitor.visitSatisfactionParameter?visitor.visitSatisfactionParameter(this):visitor.visitChildren(this)}},SatisfactionFeatureValueContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}satisfactionReferenceExpression(){return this.getRuleContext(0,SatisfactionReferenceExpressionContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionFeatureValue}enterRule(listener){listener.enterSatisfactionFeatureValue&&listener.enterSatisfactionFeatureValue(this)}exitRule(listener){listener.exitSatisfactionFeatureValue&&listener.exitSatisfactionFeatureValue(this)}accept(visitor){return visitor.visitSatisfactionFeatureValue?visitor.visitSatisfactionFeatureValue(this):visitor.visitChildren(this)}},SatisfactionReferenceExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}featureChainMember(){return this.getRuleContext(0,FeatureChainMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_satisfactionReferenceExpression}enterRule(listener){listener.enterSatisfactionReferenceExpression&&listener.enterSatisfactionReferenceExpression(this)}exitRule(listener){listener.exitSatisfactionReferenceExpression&&listener.exitSatisfactionReferenceExpression(this)}accept(visitor){return visitor.visitSatisfactionReferenceExpression?visitor.visitSatisfactionReferenceExpression(this):visitor.visitChildren(this)}},ConcernDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CONCERN(){return this.getToken(SysMLv2Parser.CONCERN,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_concernDefinition}enterRule(listener){listener.enterConcernDefinition&&listener.enterConcernDefinition(this)}exitRule(listener){listener.exitConcernDefinition&&listener.exitConcernDefinition(this)}accept(visitor){return visitor.visitConcernDefinition?visitor.visitConcernDefinition(this):visitor.visitChildren(this)}},ConcernUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CONCERN(){return this.getToken(SysMLv2Parser.CONCERN,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_concernUsage}enterRule(listener){listener.enterConcernUsage&&listener.enterConcernUsage(this)}exitRule(listener){listener.exitConcernUsage&&listener.exitConcernUsage(this)}accept(visitor){return visitor.visitConcernUsage?visitor.visitConcernUsage(this):visitor.visitChildren(this)}},CaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseDefinition}enterRule(listener){listener.enterCaseDefinition&&listener.enterCaseDefinition(this)}exitRule(listener){listener.exitCaseDefinition&&listener.exitCaseDefinition(this)}accept(visitor){return visitor.visitCaseDefinition?visitor.visitCaseDefinition(this):visitor.visitChildren(this)}},CaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseUsage}enterRule(listener){listener.enterCaseUsage&&listener.enterCaseUsage(this)}exitRule(listener){listener.exitCaseUsage&&listener.exitCaseUsage(this)}accept(visitor){return visitor.visitCaseUsage?visitor.visitCaseUsage(this):visitor.visitChildren(this)}},CaseBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}caseBodyItem(i){return i===void 0?this.getRuleContexts(CaseBodyItemContext):this.getRuleContext(i,CaseBodyItemContext)}resultExpressionMember(){return this.getRuleContext(0,ResultExpressionMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseBody}enterRule(listener){listener.enterCaseBody&&listener.enterCaseBody(this)}exitRule(listener){listener.exitCaseBody&&listener.exitCaseBody(this)}accept(visitor){return visitor.visitCaseBody?visitor.visitCaseBody(this):visitor.visitChildren(this)}},CaseBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}actionBodyItem(){return this.getRuleContext(0,ActionBodyItemContext)}returnParameterMember(){return this.getRuleContext(0,ReturnParameterMemberContext)}subjectMember(){return this.getRuleContext(0,SubjectMemberContext)}actorMember(){return this.getRuleContext(0,ActorMemberContext)}objectiveMember(){return this.getRuleContext(0,ObjectiveMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_caseBodyItem}enterRule(listener){listener.enterCaseBodyItem&&listener.enterCaseBodyItem(this)}exitRule(listener){listener.exitCaseBodyItem&&listener.exitCaseBodyItem(this)}accept(visitor){return visitor.visitCaseBodyItem?visitor.visitCaseBodyItem(this):visitor.visitChildren(this)}},ObjectiveMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}OBJECTIVE(){return this.getToken(SysMLv2Parser.OBJECTIVE,0)}objectiveRequirementUsage(){return this.getRuleContext(0,ObjectiveRequirementUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_objectiveMember}enterRule(listener){listener.enterObjectiveMember&&listener.enterObjectiveMember(this)}exitRule(listener){listener.exitObjectiveMember&&listener.exitObjectiveMember(this)}accept(visitor){return visitor.visitObjectiveMember?visitor.visitObjectiveMember(this):visitor.visitChildren(this)}},ObjectiveRequirementUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_objectiveRequirementUsage}enterRule(listener){listener.enterObjectiveRequirementUsage&&listener.enterObjectiveRequirementUsage(this)}exitRule(listener){listener.exitObjectiveRequirementUsage&&listener.exitObjectiveRequirementUsage(this)}accept(visitor){return visitor.visitObjectiveRequirementUsage?visitor.visitObjectiveRequirementUsage(this):visitor.visitChildren(this)}},AnalysisCaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}ANALYSIS(){return this.getToken(SysMLv2Parser.ANALYSIS,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_analysisCaseDefinition}enterRule(listener){listener.enterAnalysisCaseDefinition&&listener.enterAnalysisCaseDefinition(this)}exitRule(listener){listener.exitAnalysisCaseDefinition&&listener.exitAnalysisCaseDefinition(this)}accept(visitor){return visitor.visitAnalysisCaseDefinition?visitor.visitAnalysisCaseDefinition(this):visitor.visitChildren(this)}},AnalysisCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}ANALYSIS(){return this.getToken(SysMLv2Parser.ANALYSIS,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_analysisCaseUsage}enterRule(listener){listener.enterAnalysisCaseUsage&&listener.enterAnalysisCaseUsage(this)}exitRule(listener){listener.exitAnalysisCaseUsage&&listener.exitAnalysisCaseUsage(this)}accept(visitor){return visitor.visitAnalysisCaseUsage?visitor.visitAnalysisCaseUsage(this):visitor.visitChildren(this)}},VerificationCaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}VERIFICATION(){return this.getToken(SysMLv2Parser.VERIFICATION,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_verificationCaseDefinition}enterRule(listener){listener.enterVerificationCaseDefinition&&listener.enterVerificationCaseDefinition(this)}exitRule(listener){listener.exitVerificationCaseDefinition&&listener.exitVerificationCaseDefinition(this)}accept(visitor){return visitor.visitVerificationCaseDefinition?visitor.visitVerificationCaseDefinition(this):visitor.visitChildren(this)}},VerificationCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}VERIFICATION(){return this.getToken(SysMLv2Parser.VERIFICATION,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_verificationCaseUsage}enterRule(listener){listener.enterVerificationCaseUsage&&listener.enterVerificationCaseUsage(this)}exitRule(listener){listener.exitVerificationCaseUsage&&listener.exitVerificationCaseUsage(this)}accept(visitor){return visitor.visitVerificationCaseUsage?visitor.visitVerificationCaseUsage(this):visitor.visitChildren(this)}},RequirementVerificationMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}VERIFY(){return this.getToken(SysMLv2Parser.VERIFY,0)}requirementVerificationUsage(){return this.getRuleContext(0,RequirementVerificationUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementVerificationMember}enterRule(listener){listener.enterRequirementVerificationMember&&listener.enterRequirementVerificationMember(this)}exitRule(listener){listener.exitRequirementVerificationMember&&listener.exitRequirementVerificationMember(this)}accept(visitor){return visitor.visitRequirementVerificationMember?visitor.visitRequirementVerificationMember(this):visitor.visitChildren(this)}},RequirementVerificationUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}featureSpecialization(i){return i===void 0?this.getRuleContexts(FeatureSpecializationContext):this.getRuleContext(i,FeatureSpecializationContext)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}REQUIREMENT(){return this.getToken(SysMLv2Parser.REQUIREMENT,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_requirementVerificationUsage}enterRule(listener){listener.enterRequirementVerificationUsage&&listener.enterRequirementVerificationUsage(this)}exitRule(listener){listener.exitRequirementVerificationUsage&&listener.exitRequirementVerificationUsage(this)}accept(visitor){return visitor.visitRequirementVerificationUsage?visitor.visitRequirementVerificationUsage(this):visitor.visitChildren(this)}},UseCaseDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}USE(){return this.getToken(SysMLv2Parser.USE,0)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_useCaseDefinition}enterRule(listener){listener.enterUseCaseDefinition&&listener.enterUseCaseDefinition(this)}exitRule(listener){listener.exitUseCaseDefinition&&listener.exitUseCaseDefinition(this)}accept(visitor){return visitor.visitUseCaseDefinition?visitor.visitUseCaseDefinition(this):visitor.visitChildren(this)}},UseCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}USE(){return this.getToken(SysMLv2Parser.USE,0)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_useCaseUsage}enterRule(listener){listener.enterUseCaseUsage&&listener.enterUseCaseUsage(this)}exitRule(listener){listener.exitUseCaseUsage&&listener.exitUseCaseUsage(this)}accept(visitor){return visitor.visitUseCaseUsage?visitor.visitUseCaseUsage(this):visitor.visitChildren(this)}},IncludeUseCaseUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}INCLUDE(){return this.getToken(SysMLv2Parser.INCLUDE,0)}caseBody(){return this.getRuleContext(0,CaseBodyContext)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}USE(){return this.getToken(SysMLv2Parser.USE,0)}CASE(){return this.getToken(SysMLv2Parser.CASE,0)}valuePart(){return this.getRuleContext(0,ValuePartContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}get ruleIndex(){return SysMLv2Parser.RULE_includeUseCaseUsage}enterRule(listener){listener.enterIncludeUseCaseUsage&&listener.enterIncludeUseCaseUsage(this)}exitRule(listener){listener.exitIncludeUseCaseUsage&&listener.exitIncludeUseCaseUsage(this)}accept(visitor){return visitor.visitIncludeUseCaseUsage?visitor.visitIncludeUseCaseUsage(this):visitor.visitChildren(this)}},ViewDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}VIEW(){return this.getToken(SysMLv2Parser.VIEW,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}viewDefinitionBody(){return this.getRuleContext(0,ViewDefinitionBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewDefinition}enterRule(listener){listener.enterViewDefinition&&listener.enterViewDefinition(this)}exitRule(listener){listener.exitViewDefinition&&listener.exitViewDefinition(this)}accept(visitor){return visitor.visitViewDefinition?visitor.visitViewDefinition(this):visitor.visitChildren(this)}},ViewDefinitionBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}viewDefinitionBodyItem(i){return i===void 0?this.getRuleContexts(ViewDefinitionBodyItemContext):this.getRuleContext(i,ViewDefinitionBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewDefinitionBody}enterRule(listener){listener.enterViewDefinitionBody&&listener.enterViewDefinitionBody(this)}exitRule(listener){listener.exitViewDefinitionBody&&listener.exitViewDefinitionBody(this)}accept(visitor){return visitor.visitViewDefinitionBody?visitor.visitViewDefinitionBody(this):visitor.visitChildren(this)}},ViewDefinitionBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(){return this.getRuleContext(0,DefinitionBodyItemContext)}elementFilterMember(){return this.getRuleContext(0,ElementFilterMemberContext)}viewRenderingMember(){return this.getRuleContext(0,ViewRenderingMemberContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewDefinitionBodyItem}enterRule(listener){listener.enterViewDefinitionBodyItem&&listener.enterViewDefinitionBodyItem(this)}exitRule(listener){listener.exitViewDefinitionBodyItem&&listener.exitViewDefinitionBodyItem(this)}accept(visitor){return visitor.visitViewDefinitionBodyItem?visitor.visitViewDefinitionBodyItem(this):visitor.visitChildren(this)}},ViewRenderingMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}memberPrefix(){return this.getRuleContext(0,MemberPrefixContext)}RENDER(){return this.getToken(SysMLv2Parser.RENDER,0)}viewRenderingUsage(){return this.getRuleContext(0,ViewRenderingUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewRenderingMember}enterRule(listener){listener.enterViewRenderingMember&&listener.enterViewRenderingMember(this)}exitRule(listener){listener.exitViewRenderingMember&&listener.exitViewRenderingMember(this)}accept(visitor){return visitor.visitViewRenderingMember?visitor.visitViewRenderingMember(this):visitor.visitChildren(this)}},ViewRenderingUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedReferenceSubsetting(){return this.getRuleContext(0,OwnedReferenceSubsettingContext)}usageBody(){return this.getRuleContext(0,UsageBodyContext)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}usage(){return this.getRuleContext(0,UsageContext)}RENDERING(){return this.getToken(SysMLv2Parser.RENDERING,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewRenderingUsage}enterRule(listener){listener.enterViewRenderingUsage&&listener.enterViewRenderingUsage(this)}exitRule(listener){listener.exitViewRenderingUsage&&listener.exitViewRenderingUsage(this)}accept(visitor){return visitor.visitViewRenderingUsage?visitor.visitViewRenderingUsage(this):visitor.visitChildren(this)}},ViewUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}VIEW(){return this.getToken(SysMLv2Parser.VIEW,0)}viewBody(){return this.getRuleContext(0,ViewBodyContext)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewUsage}enterRule(listener){listener.enterViewUsage&&listener.enterViewUsage(this)}exitRule(listener){listener.exitViewUsage&&listener.exitViewUsage(this)}accept(visitor){return visitor.visitViewUsage?visitor.visitViewUsage(this):visitor.visitChildren(this)}},ViewBodyContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}SEMI(){return this.getToken(SysMLv2Parser.SEMI,0)}LBRACE(){return this.getToken(SysMLv2Parser.LBRACE,0)}RBRACE(){return this.getToken(SysMLv2Parser.RBRACE,0)}viewBodyItem(i){return i===void 0?this.getRuleContexts(ViewBodyItemContext):this.getRuleContext(i,ViewBodyItemContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewBody}enterRule(listener){listener.enterViewBody&&listener.enterViewBody(this)}exitRule(listener){listener.exitViewBody&&listener.exitViewBody(this)}accept(visitor){return visitor.visitViewBody?visitor.visitViewBody(this):visitor.visitChildren(this)}},ViewBodyItemContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}definitionBodyItem(){return this.getRuleContext(0,DefinitionBodyItemContext)}elementFilterMember(){return this.getRuleContext(0,ElementFilterMemberContext)}viewRenderingMember(){return this.getRuleContext(0,ViewRenderingMemberContext)}expose(){return this.getRuleContext(0,ExposeContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewBodyItem}enterRule(listener){listener.enterViewBodyItem&&listener.enterViewBodyItem(this)}exitRule(listener){listener.exitViewBodyItem&&listener.exitViewBodyItem(this)}accept(visitor){return visitor.visitViewBodyItem?visitor.visitViewBodyItem(this):visitor.visitChildren(this)}},ExposeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}EXPOSE(){return this.getToken(SysMLv2Parser.EXPOSE,0)}relationshipBody(){return this.getRuleContext(0,RelationshipBodyContext)}membershipExpose(){return this.getRuleContext(0,MembershipExposeContext)}namespaceExpose(){return this.getRuleContext(0,NamespaceExposeContext)}get ruleIndex(){return SysMLv2Parser.RULE_expose}enterRule(listener){listener.enterExpose&&listener.enterExpose(this)}exitRule(listener){listener.exitExpose&&listener.exitExpose(this)}accept(visitor){return visitor.visitExpose?visitor.visitExpose(this):visitor.visitChildren(this)}},MembershipExposeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}membershipImport(){return this.getRuleContext(0,MembershipImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_membershipExpose}enterRule(listener){listener.enterMembershipExpose&&listener.enterMembershipExpose(this)}exitRule(listener){listener.exitMembershipExpose&&listener.exitMembershipExpose(this)}accept(visitor){return visitor.visitMembershipExpose?visitor.visitMembershipExpose(this):visitor.visitChildren(this)}},NamespaceExposeContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}namespaceImport(){return this.getRuleContext(0,NamespaceImportContext)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceExpose}enterRule(listener){listener.enterNamespaceExpose&&listener.enterNamespaceExpose(this)}exitRule(listener){listener.exitNamespaceExpose&&listener.exitNamespaceExpose(this)}accept(visitor){return visitor.visitNamespaceExpose?visitor.visitNamespaceExpose(this):visitor.visitChildren(this)}},ViewpointDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}VIEWPOINT(){return this.getToken(SysMLv2Parser.VIEWPOINT,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,DefinitionDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewpointDefinition}enterRule(listener){listener.enterViewpointDefinition&&listener.enterViewpointDefinition(this)}exitRule(listener){listener.exitViewpointDefinition&&listener.exitViewpointDefinition(this)}accept(visitor){return visitor.visitViewpointDefinition?visitor.visitViewpointDefinition(this):visitor.visitChildren(this)}},ViewpointUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}VIEWPOINT(){return this.getToken(SysMLv2Parser.VIEWPOINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,ConstraintUsageDeclarationContext)}requirementBody(){return this.getRuleContext(0,RequirementBodyContext)}get ruleIndex(){return SysMLv2Parser.RULE_viewpointUsage}enterRule(listener){listener.enterViewpointUsage&&listener.enterViewpointUsage(this)}exitRule(listener){listener.exitViewpointUsage&&listener.exitViewpointUsage(this)}accept(visitor){return visitor.visitViewpointUsage?visitor.visitViewpointUsage(this):visitor.visitChildren(this)}},RenderingDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,OccurrenceDefinitionPrefixContext)}RENDERING(){return this.getToken(SysMLv2Parser.RENDERING,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}get ruleIndex(){return SysMLv2Parser.RULE_renderingDefinition}enterRule(listener){listener.enterRenderingDefinition&&listener.enterRenderingDefinition(this)}exitRule(listener){listener.exitRenderingDefinition&&listener.exitRenderingDefinition(this)}accept(visitor){return visitor.visitRenderingDefinition?visitor.visitRenderingDefinition(this):visitor.visitChildren(this)}},RenderingUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}occurrenceUsagePrefix(){return this.getRuleContext(0,OccurrenceUsagePrefixContext)}RENDERING(){return this.getToken(SysMLv2Parser.RENDERING,0)}usage(){return this.getRuleContext(0,UsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_renderingUsage}enterRule(listener){listener.enterRenderingUsage&&listener.enterRenderingUsage(this)}exitRule(listener){listener.exitRenderingUsage&&listener.exitRenderingUsage(this)}accept(visitor){return visitor.visitRenderingUsage?visitor.visitRenderingUsage(this):visitor.visitChildren(this)}},MetadataDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}ABSTRACT(){return this.getToken(SysMLv2Parser.ABSTRACT,0)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataDefinition}enterRule(listener){listener.enterMetadataDefinition&&listener.enterMetadataDefinition(this)}exitRule(listener){listener.exitMetadataDefinition&&listener.exitMetadataDefinition(this)}accept(visitor){return visitor.visitMetadataDefinition?visitor.visitMetadataDefinition(this):visitor.visitChildren(this)}},PrefixMetadataUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}get ruleIndex(){return SysMLv2Parser.RULE_prefixMetadataUsage}enterRule(listener){listener.enterPrefixMetadataUsage&&listener.enterPrefixMetadataUsage(this)}exitRule(listener){listener.exitPrefixMetadataUsage&&listener.exitPrefixMetadataUsage(this)}accept(visitor){return visitor.visitPrefixMetadataUsage?visitor.visitPrefixMetadataUsage(this):visitor.visitChildren(this)}},MetadataUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataUsageDeclaration(){return this.getRuleContext(0,MetadataUsageDeclarationContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}AT_SIGN(){return this.getToken(SysMLv2Parser.AT_SIGN,0)}METADATA(){return this.getToken(SysMLv2Parser.METADATA,0)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}ABOUT(){return this.getToken(SysMLv2Parser.ABOUT,0)}annotation(i){return i===void 0?this.getRuleContexts(AnnotationContext):this.getRuleContext(i,AnnotationContext)}COMMA(i){return i===void 0?this.getTokens(SysMLv2Parser.COMMA):this.getToken(SysMLv2Parser.COMMA,i)}get ruleIndex(){return SysMLv2Parser.RULE_metadataUsage}enterRule(listener){listener.enterMetadataUsage&&listener.enterMetadataUsage(this)}exitRule(listener){listener.exitMetadataUsage&&listener.exitMetadataUsage(this)}accept(visitor){return visitor.visitMetadataUsage?visitor.visitMetadataUsage(this):visitor.visitChildren(this)}},MetadataUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedFeatureTyping(){return this.getRuleContext(0,OwnedFeatureTypingContext)}COLON(){return this.getToken(SysMLv2Parser.COLON,0)}TYPED(){return this.getToken(SysMLv2Parser.TYPED,0)}BY(){return this.getToken(SysMLv2Parser.BY,0)}identification(){return this.getRuleContext(0,IdentificationContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataUsageDeclaration}enterRule(listener){listener.enterMetadataUsageDeclaration&&listener.enterMetadataUsageDeclaration(this)}exitRule(listener){listener.exitMetadataUsageDeclaration&&listener.exitMetadataUsageDeclaration(this)}accept(visitor){return visitor.visitMetadataUsageDeclaration?visitor.visitMetadataUsageDeclaration(this):visitor.visitChildren(this)}},MetadataBodyUsageMemberContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}metadataBodyUsage(){return this.getRuleContext(0,MetadataBodyUsageContext)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyUsageMember}enterRule(listener){listener.enterMetadataBodyUsageMember&&listener.enterMetadataBodyUsageMember(this)}exitRule(listener){listener.exitMetadataBodyUsageMember&&listener.exitMetadataBodyUsageMember(this)}accept(visitor){return visitor.visitMetadataBodyUsageMember?visitor.visitMetadataBodyUsageMember(this):visitor.visitChildren(this)}},MetadataBodyUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}ownedRedefinition(){return this.getRuleContext(0,OwnedRedefinitionContext)}metadataBody(){return this.getRuleContext(0,MetadataBodyContext)}REF(){return this.getToken(SysMLv2Parser.REF,0)}featureSpecializationPart(){return this.getRuleContext(0,FeatureSpecializationPartContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}COLON_GT_GT(){return this.getToken(SysMLv2Parser.COLON_GT_GT,0)}REDEFINES(){return this.getToken(SysMLv2Parser.REDEFINES,0)}get ruleIndex(){return SysMLv2Parser.RULE_metadataBodyUsage}enterRule(listener){listener.enterMetadataBodyUsage&&listener.enterMetadataBodyUsage(this)}exitRule(listener){listener.exitMetadataBodyUsage&&listener.exitMetadataBodyUsage(this)}accept(visitor){return visitor.visitMetadataBodyUsage?visitor.visitMetadataBodyUsage(this):visitor.visitChildren(this)}},ExtendedDefinitionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}DEF(){return this.getToken(SysMLv2Parser.DEF,0)}definition(){return this.getRuleContext(0,DefinitionContext)}basicDefinitionPrefix(){return this.getRuleContext(0,BasicDefinitionPrefixContext)}definitionExtensionKeyword(i){return i===void 0?this.getRuleContexts(DefinitionExtensionKeywordContext):this.getRuleContext(i,DefinitionExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_extendedDefinition}enterRule(listener){listener.enterExtendedDefinition&&listener.enterExtendedDefinition(this)}exitRule(listener){listener.exitExtendedDefinition&&listener.exitExtendedDefinition(this)}accept(visitor){return visitor.visitExtendedDefinition?visitor.visitExtendedDefinition(this):visitor.visitChildren(this)}},ExtendedUsageContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}unextendedUsagePrefix(){return this.getRuleContext(0,UnextendedUsagePrefixContext)}usage(){return this.getRuleContext(0,UsageContext)}usageExtensionKeyword(i){return i===void 0?this.getRuleContexts(UsageExtensionKeywordContext):this.getRuleContext(i,UsageExtensionKeywordContext)}get ruleIndex(){return SysMLv2Parser.RULE_extendedUsage}enterRule(listener){listener.enterExtendedUsage&&listener.enterExtendedUsage(this)}exitRule(listener){listener.exitExtendedUsage&&listener.exitExtendedUsage(this)}accept(visitor){return visitor.visitExtendedUsage?visitor.visitExtendedUsage(this):visitor.visitChildren(this)}},FilterPackageImportDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}membershipImport(){return this.getRuleContext(0,MembershipImportContext)}namespaceImportDirect(){return this.getRuleContext(0,NamespaceImportDirectContext)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackageImportDeclaration}enterRule(listener){listener.enterFilterPackageImportDeclaration&&listener.enterFilterPackageImportDeclaration(this)}exitRule(listener){listener.exitFilterPackageImportDeclaration&&listener.exitFilterPackageImportDeclaration(this)}accept(visitor){return visitor.visitFilterPackageImportDeclaration?visitor.visitFilterPackageImportDeclaration(this):visitor.visitChildren(this)}},NamespaceImportDirectContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}qualifiedName(){return this.getRuleContext(0,QualifiedNameContext)}COLON_COLON(i){return i===void 0?this.getTokens(SysMLv2Parser.COLON_COLON):this.getToken(SysMLv2Parser.COLON_COLON,i)}STAR(){return this.getToken(SysMLv2Parser.STAR,0)}STAR_STAR(){return this.getToken(SysMLv2Parser.STAR_STAR,0)}get ruleIndex(){return SysMLv2Parser.RULE_namespaceImportDirect}enterRule(listener){listener.enterNamespaceImportDirect&&listener.enterNamespaceImportDirect(this)}exitRule(listener){listener.exitNamespaceImportDirect&&listener.exitNamespaceImportDirect(this)}accept(visitor){return visitor.visitNamespaceImportDirect?visitor.visitNamespaceImportDirect(this):visitor.visitChildren(this)}},CalculationUsageDeclarationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}usageDeclaration(){return this.getRuleContext(0,UsageDeclarationContext)}valuePart(){return this.getRuleContext(0,ValuePartContext)}get ruleIndex(){return SysMLv2Parser.RULE_calculationUsageDeclaration}enterRule(listener){listener.enterCalculationUsageDeclaration&&listener.enterCalculationUsageDeclaration(this)}exitRule(listener){listener.exitCalculationUsageDeclaration&&listener.exitCalculationUsageDeclaration(this)}accept(visitor){return visitor.visitCalculationUsageDeclaration?visitor.visitCalculationUsageDeclaration(this):visitor.visitChildren(this)}},EmptyActionUsage_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyActionUsage_}enterRule(listener){listener.enterEmptyActionUsage_&&listener.enterEmptyActionUsage_(this)}exitRule(listener){listener.exitEmptyActionUsage_&&listener.exitEmptyActionUsage_(this)}accept(visitor){return visitor.visitEmptyActionUsage_?visitor.visitEmptyActionUsage_(this):visitor.visitChildren(this)}},EmptyFeature_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyFeature_}enterRule(listener){listener.enterEmptyFeature_&&listener.enterEmptyFeature_(this)}exitRule(listener){listener.exitEmptyFeature_&&listener.exitEmptyFeature_(this)}accept(visitor){return visitor.visitEmptyFeature_?visitor.visitEmptyFeature_(this):visitor.visitChildren(this)}},EmptyMultiplicity_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyMultiplicity_}enterRule(listener){listener.enterEmptyMultiplicity_&&listener.enterEmptyMultiplicity_(this)}exitRule(listener){listener.exitEmptyMultiplicity_&&listener.exitEmptyMultiplicity_(this)}accept(visitor){return visitor.visitEmptyMultiplicity_?visitor.visitEmptyMultiplicity_(this):visitor.visitChildren(this)}},EmptyUsage_Context=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_emptyUsage_}enterRule(listener){listener.enterEmptyUsage_&&listener.enterEmptyUsage_(this)}exitRule(listener){listener.exitEmptyUsage_&&listener.exitEmptyUsage_(this)}accept(visitor){return visitor.visitEmptyUsage_?visitor.visitEmptyUsage_(this):visitor.visitChildren(this)}},FilterPackageImportContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IDENTIFIER(){return this.getToken(SysMLv2Parser.IDENTIFIER,0)}get ruleIndex(){return SysMLv2Parser.RULE_filterPackageImport}enterRule(listener){listener.enterFilterPackageImport&&listener.enterFilterPackageImport(this)}exitRule(listener){listener.exitFilterPackageImport&&listener.exitFilterPackageImport(this)}accept(visitor){return visitor.visitFilterPackageImport?visitor.visitFilterPackageImport(this):visitor.visitChildren(this)}},NonFeatureChainPrimaryExpressionContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}IDENTIFIER(){return this.getToken(SysMLv2Parser.IDENTIFIER,0)}get ruleIndex(){return SysMLv2Parser.RULE_nonFeatureChainPrimaryExpression}enterRule(listener){listener.enterNonFeatureChainPrimaryExpression&&listener.enterNonFeatureChainPrimaryExpression(this)}exitRule(listener){listener.exitNonFeatureChainPrimaryExpression&&listener.exitNonFeatureChainPrimaryExpression(this)}accept(visitor){return visitor.visitNonFeatureChainPrimaryExpression?visitor.visitNonFeatureChainPrimaryExpression(this):visitor.visitChildren(this)}},PortConjugationContext=class extends ParserRuleContext{constructor(parent,invokingState){super(parent,invokingState)}get ruleIndex(){return SysMLv2Parser.RULE_portConjugation}enterRule(listener){listener.enterPortConjugation&&listener.enterPortConjugation(this)}exitRule(listener){listener.exitPortConjugation&&listener.exitPortConjugation(this)}accept(visitor){return visitor.visitPortConjugation?visitor.visitPortConjugation(this):visitor.visitChildren(this)}};var SysMLErrorListener=class extends BaseErrorListener{errors=[];syntaxError(recognizer,offendingSymbol,line,charPositionInLine,msg,_e){let token=offendingSymbol,length=token?.text?.length??1;this.errors.push({line:line-1,column:charPositionInLine,message:msg,offendingSymbol:token,length})}getErrors(){return this.errors}hasErrors(){return this.errors.length>0}};var WARMUP_TEXT=`
14
+ package WarmUp {
15
+ public import ISQ::*;
16
+ private import ScalarValues::*;
17
+ public import Pkg::**;
18
+ import OtherPkg::*;
19
+ import all OtherPkg2::*;
20
+
21
+ // ---- Part / Port / Item / Interface / Connection / Allocation ----
22
+ part def Vehicle {
23
+ attribute mass :> ISQ::mass;
24
+ attribute name : String;
25
+ attribute flags : Boolean;
26
+ attribute count : Integer = 42;
27
+ attribute ratio : Real default 3.14;
28
+ attribute list :> ISQ::mass [*] nonunique ordered;
29
+ ref item fuel : Fuel;
30
+ port p1 : Port1;
31
+ port p2 : ~Port1;
32
+
33
+ perform action doSomething;
34
+ exhibit state myStates parallel {
35
+ state operatingStates {
36
+ entry action initial;
37
+ do doSomething;
38
+ state off;
39
+ state starting;
40
+ state on { do doSomething; }
41
+ transition initial then off;
42
+ transition 'off-on' first off accept StartSig then on;
43
+ transition on_off first on accept StopSig do send new OffSig() to ctrl then off;
44
+ }
45
+ }
46
+ state healthStates {
47
+ state normal;
48
+ state degraded;
49
+ transition initial then normal;
50
+ transition norm_deg first normal accept when temp > Tmax then degraded;
51
+ transition deg_norm first degraded accept ReturnNormal then normal;
52
+ }
53
+
54
+ constraint massConstraint { mass <= 2000 }
55
+ assert constraint fuelCheck { fuel.fuelMass <= fuelMassMax }
56
+
57
+ item :> envelopingShapes [1] : Box {
58
+ length1 :>> length = 100;
59
+ }
60
+ }
61
+
62
+ part def Engine {
63
+ attribute mass :> ISQ::mass;
64
+ attribute power :> ISQ::power;
65
+ attribute cost : Real;
66
+ attribute displacement :> ISQ::volume;
67
+ attribute fuelEfficiency : Real;
68
+ port ctrlPort : ~CtrlPort;
69
+ port fuelIn : ~FuelPort;
70
+ port driveOut : DrivePort;
71
+ port flyWheel;
72
+ part cylinders : Cylinder [4..6];
73
+ part alternator { action generateElectricity; }
74
+ perform action generateTorque;
75
+ exhibit state engineStates {
76
+ state off; state starting; state on { do generateTorque; }
77
+ }
78
+ }
79
+
80
+ abstract part def Software;
81
+ part def Controller :> Software {
82
+ port controlPort : CtrlPort;
83
+ exhibit state controllerStates parallel {
84
+ state opStates {
85
+ entry action initial;
86
+ state off; state on;
87
+ transition initial then off;
88
+ transition 'off-on' first off accept StartSig then on;
89
+ transition 'on-off' first on accept StopSig then off;
90
+ }
91
+ }
92
+ }
93
+
94
+ part def Sensor { port sensorPort : SensorPort; }
95
+ part def Wheel { attribute diameter : Real; port lugPort : LugPort; }
96
+ part def Hub { port shankPort : ShankPort; }
97
+ part def HalfAxle { port shankComposite : ShankCompositePort {} }
98
+ part def Axle { attribute mass :> ISQ::mass; }
99
+ part def FrontAxle :> Axle { attribute steeringAngle :> ISQ::angularMeasure; }
100
+ part def Driveshaft;
101
+ part def Differential;
102
+ part def AxleAssembly;
103
+ part def Transmission { attribute gearRatio : Real; port clutch : ~DrivePort; exhibit state tStates; }
104
+ part def FuelTank {
105
+ attribute mass :> ISQ::mass;
106
+ ref item fuel : Fuel { attribute :>> fuelMass; }
107
+ attribute fuelKind : FuelKind;
108
+ attribute fuelMassMax :> ISQ::mass;
109
+ assert constraint fuelConstraint { fuel.fuelMass <= fuelMassMax }
110
+ port fuelOut : FuelPort;
111
+ port fuelIn : ~FuelPort;
112
+ }
113
+ part def Body { attribute color : Colors; }
114
+ part def BodyAssy;
115
+ part def Road { attribute incline : Real; attribute friction : Real; }
116
+ part def Thermostat;
117
+ part def Sunroof;
118
+ part def StarterMotor { port gearPort : GearPort; }
119
+ part def ElectricalGenerator;
120
+ part def TorqueGenerator;
121
+ part def SteeringSubsystem;
122
+ part def BrakingSubsystem;
123
+ part def Cylinder;
124
+
125
+ // ---- Port definitions ----
126
+ port def Port1 { in item cmd : Cmd; }
127
+ port def CtrlPort;
128
+ port def SensorPort;
129
+ port def DrivePort { out torque : Torque; }
130
+ port def FuelPort { out item fuel : Fuel; }
131
+ port def FuelCmdPort :> Port1 { in item fuelCmd : FuelCmd redefines cmd; }
132
+ port def GearPort;
133
+ port def LugPort { attribute threadDia; attribute threadPitch; }
134
+ port def ShankPort { attribute threadDia; attribute threadPitch; attribute shaftLength; }
135
+ port def LugCompositePort { port lug : LugPort [*]; }
136
+ port def ShankCompositePort { port shank : ShankPort [*]; }
137
+ port def VehicleToRoadPort;
138
+ port def SetSpeedPort;
139
+ port def CruiseControlPort :> CtrlPort;
140
+ port def SpeedSensorPort;
141
+ port def DriverCmdPort { out item driverCmd : DriverCmd [*]; }
142
+ port def HandPort :> DriverCmdPort {
143
+ out item ignitionCmd : IgnCmd subsets driverCmd;
144
+ }
145
+
146
+ // ---- Item / Signal definitions ----
147
+ item def Cmd;
148
+ item def DriverCmd;
149
+ item def IgnCmd :> DriverCmd { attribute onOff : OnOff; }
150
+ item def FuelCmd :> Cmd;
151
+ item def Fuel { attribute fuelMass :> ISQ::mass; }
152
+ item def Torque;
153
+ item def SensedSpeed { attribute speed :> ISQ::speed; }
154
+ item def EngineStatus;
155
+ attribute def StartSig;
156
+ attribute def StopSig;
157
+ attribute def OffSig;
158
+ attribute def OverTemp;
159
+ attribute def ReturnNormal;
160
+ attribute def SetSpeed :> Real;
161
+ attribute def VehicleOnSig;
162
+
163
+ // ---- Interface definitions ----
164
+ interface def DriveInterface {
165
+ end p1 : DrivePort;
166
+ end p2 : ~DrivePort;
167
+ flow p1.torque to p2.torque;
168
+ }
169
+ interface def FuelInterface {
170
+ end fuelOut : FuelPort;
171
+ end fuelIn : ~FuelPort;
172
+ flow of Fuel from fuelOut.fuel to fuelIn.fuel;
173
+ }
174
+ interface def WheelFastenerInterface {
175
+ end lugPort : LugPort;
176
+ end shankPort : ShankPort;
177
+ attribute maxTorque : Torque;
178
+ constraint { lugPort.threadDia == shankPort.threadDia }
179
+ }
180
+ interface def WheelHubInterface {
181
+ end lugComposite : LugCompositePort;
182
+ end shankComposite : ShankCompositePort;
183
+ interface wfi : WheelFastenerInterface [5]
184
+ connect lugComposite.lug to shankComposite.shank;
185
+ }
186
+ // ---- End feature syntax ----
187
+ // Upstream grammar uses plain "end <name>" form only (no keyword after end).
188
+ interface def EndFeatureTest {
189
+ end ep1;
190
+ end ep2 : DrivePort;
191
+ end ep3;
192
+ }
193
+ connection def EndFeatureConnDef {
194
+ end connEnd1;
195
+ end connEnd2 : DrivePort;
196
+ }
197
+
198
+ // ---- Allocation ----
199
+ allocation def LogicalToPhysical {
200
+ end #logical logicalEnd;
201
+ end #physical physicalEnd;
202
+ }
203
+
204
+ // ---- Enum definitions ----
205
+ enum def Colors { black; grey; red; }
206
+ enum def OnOff { on; off; }
207
+ enum def FuelKind { gas; diesel; }
208
+ enum def DiamChoices :> ISQ::LengthValue {
209
+ enum = 60;
210
+ enum = 80;
211
+ }
212
+
213
+ // ---- Attribute definitions ----
214
+ attribute cylinderDia : DiamChoices = 80;
215
+ alias Torque2 for ISQ::TorqueValue;
216
+
217
+ // ---- Action definitions ----
218
+ action def ProvidePower {
219
+ in item cmd : Cmd;
220
+ out wheelTorque : Torque [2];
221
+ }
222
+ action def GenerateTorque {
223
+ in item fuelCmd : FuelCmd;
224
+ out engineTorque : Torque;
225
+ }
226
+ action def AmplifyTorque { in engineTorque : Torque; out txTorque : Torque; }
227
+ action def TransferTorque { in txTorque : Torque; out dsTorque : Torque; }
228
+ action def DistributeTorque { in dsTorque : Torque; out wheelTorque : Torque [2]; }
229
+ action def PerformSelfTest;
230
+ action def ApplyParkingBrake;
231
+ action def SenseTemperature { out temp :> ISQ::temperature; }
232
+
233
+ // ---- State definitions ----
234
+ state def VehicleStates;
235
+ state def ControllerStates;
236
+
237
+ // ---- Requirement definitions ----
238
+ requirement def MassReq {
239
+ doc /* mass shall be less than required */
240
+ attribute massRequired :> ISQ::mass;
241
+ attribute massActual :> ISQ::mass;
242
+ require constraint { massActual <= massRequired }
243
+ }
244
+ requirement def ReliabilityReq {
245
+ doc /* reliability shall be sufficient */
246
+ attribute reliabilityRequired : Real;
247
+ attribute reliabilityActual : Real;
248
+ require constraint { reliabilityActual >= reliabilityRequired }
249
+ }
250
+ requirement def TorqueReq {
251
+ doc /* engine shall generate torque */
252
+ subject gt : GenerateTorque;
253
+ }
254
+ requirement def DriveOutputReq { doc /* engine shall provide drive */ }
255
+ requirement def FuelReq {
256
+ doc /* adequate fuel economy */
257
+ attribute actualFE : Real;
258
+ attribute requiredFE : Real;
259
+ require constraint { actualFE >= requiredFE }
260
+ }
261
+
262
+ // ---- Individual definitions ----
263
+ individual def VehicleContext_1;
264
+ individual def Vehicle_1 :> Vehicle;
265
+ individual def Wheel_1 :> Wheel;
266
+ individual def Road_1 :> Road;
267
+
268
+ // ---- Metadata definitions ----
269
+ metadata def Safety { attribute isMandatory : Boolean; }
270
+ metadata def Security;
271
+ metadata def <fm> failureMode;
272
+ metadata def <l> logical;
273
+ metadata def <p> physical;
274
+
275
+ // ---- Generic context ----
276
+ part def Context {
277
+ attribute time : Real;
278
+ }
279
+
280
+ // ---- Verification ----
281
+ verification def MassTest;
282
+ verification def AccelTest;
283
+
284
+ // ---- Use cases ----
285
+ use case def TransportPassenger {
286
+ objective TransportObjective {
287
+ doc /* deliver passenger safely */
288
+ }
289
+ subject vehicle : Vehicle;
290
+ actor environment;
291
+ actor road;
292
+ actor driver;
293
+ actor passenger [0..4];
294
+ include use case getIn :> GetIn [1..5];
295
+ include use case getOut :> GetOut [1..5];
296
+ }
297
+ use case def GetIn {
298
+ subject vehicle : Vehicle;
299
+ actor driver [0..1];
300
+ actor passenger [0..1];
301
+ assert constraint { driver != null xor passenger != null }
302
+ }
303
+ use case def GetOut {
304
+ subject vehicle : Vehicle;
305
+ actor driver [0..1];
306
+ actor passenger [0..1];
307
+ assert constraint { driver != null xor passenger != null }
308
+ }
309
+
310
+ // ---- Calc definitions ----
311
+ calc def FuelConsumption {
312
+ in bestFuel : Real;
313
+ in idleFuel : Real;
314
+ in tpd : Real;
315
+ attribute f = bestFuel + idleFuel * tpd;
316
+ return dpv : Real = 1 / f;
317
+ }
318
+ calc def AvgTravelTime { in scenario : Real; return tpd : Real; }
319
+ calc def TraveledDist { in scenario : Real; return dist : Real; }
320
+ calc def IdlingFuel { in engine : Engine; return fa : Real = engine.displacement * 0.5; }
321
+ calc def BestFuel {
322
+ in mass : Real; in bsfc : Real; in tpd : Real; in dist : Real;
323
+ attribute pwr : Real;
324
+ constraint { pwr == ((1 / 2) * mass * tpd**(-3)) / dist }
325
+ return fb : Real = bsfc * 0.76 * pwr * tpd;
326
+ }
327
+ calc def ComputeBSFC { in engine : Engine; return : Real; }
328
+
329
+ // ---- Concern / Viewpoint / View ----
330
+ concern def VehicleSafety {
331
+ doc /* identify safety features */
332
+ subject;
333
+ stakeholder se : SafetyEngineer;
334
+ }
335
+ part def SafetyEngineer;
336
+ viewpoint def BehaviorViewpoint;
337
+ viewpoint def SafetyViewpoint { frame concern vs : VehicleSafety; }
338
+ view def TreeView { render asTreeDiagram; }
339
+ view def NestedView;
340
+ view def TableView;
341
+ view def PartsTreeView :> TreeView { filter @SysML::PartUsage; }
342
+
343
+ // ---- Trade study ----
344
+ analysis def TradeStudy;
345
+
346
+ // ---- Variation ----
347
+ variation part def TxChoices :> Transmission {
348
+ variant part txAuto;
349
+ variant part txManual;
350
+ }
351
+
352
+ // ---- Vehicle Configuration (exercises deep nesting, connects, binds) ----
353
+ package VehicleConfig {
354
+ part vehicle_b : Vehicle {
355
+ attribute redefines mass = dryMass + cargoMass + fuelTank.fuel.fuelMass;
356
+ attribute dryMass redefines mass = 1500;
357
+ attribute redefines count default 0;
358
+ attribute partMasses = (fuelTank.mass, engine.mass);
359
+ port fuelCmdPort : FuelCmdPort redefines p1 { in item fuelCmd redefines cmd; }
360
+ port setSpeedPort : ~SetSpeedPort;
361
+ port vehicleToRoadPort redefines p2 {
362
+ port wheelToRoadPort1 : VehicleToRoadPort;
363
+ port wheelToRoadPort2 : VehicleToRoadPort;
364
+ }
365
+ perform actionTree::providePower redefines doSomething;
366
+
367
+ part fuelTank : FuelTank {
368
+ attribute redefines mass = 75;
369
+ ref item redefines fuel { attribute redefines fuelMass = 60; }
370
+ attribute redefines fuelMassMax = 60;
371
+ }
372
+ part frontAxle : AxleAssembly {
373
+ attribute mass :> ISQ::mass = 800;
374
+ part axle : FrontAxle;
375
+ part wheels : Wheel [2];
376
+ }
377
+ part rearAxle : AxleAssembly {
378
+ attribute mass :> ISQ::mass = 875;
379
+ attribute driveTrainEff : Real = 0.6;
380
+ perform providePower.distributeTorque;
381
+ part rearWheel1 : Wheel {
382
+ attribute redefines diameter;
383
+ port wheelToRoad : VehicleToRoadPort;
384
+ port lugPort :>> lugPort { port lug :>> lug [5]; }
385
+ }
386
+ part rearWheel2 : Wheel {
387
+ attribute redefines diameter;
388
+ port wheelToRoad : VehicleToRoadPort;
389
+ }
390
+ part differential : Differential {
391
+ port shaftD; port leftDiff; port rightDiff;
392
+ }
393
+ part rearAxlePart {
394
+ part leftHalf : HalfAxle;
395
+ part rightHalf : HalfAxle;
396
+ }
397
+ bind shaftD = differential.shaftD;
398
+ connect differential.leftDiff to rearAxlePart.leftHalf.shankComposite;
399
+ connect differential.rightDiff to rearAxlePart.rightHalf.shankComposite;
400
+ interface wheelHub1 : WheelHubInterface
401
+ connect [1] rearWheel1.lugPort to [1] rearAxlePart.leftHalf.shankComposite;
402
+ interface wheelHub2 : WheelHubInterface
403
+ connect [1] rearWheel2.lugPort to [1] rearAxlePart.rightHalf.shankComposite;
404
+ }
405
+ part starterMotor : StarterMotor;
406
+ part engine : Engine {
407
+ perform providePower.generateTorque redefines generateTorque;
408
+ part cylinders : Cylinder [4..6];
409
+ part alternator { action generateElectricity; }
410
+ satisfy requirements::engineSpec by vehicle_b.engine {
411
+ requirement torqueReq :>> torqueReq { }
412
+ requirement driveReq :>> driveReq { }
413
+ }
414
+ }
415
+ part transmission : Transmission {
416
+ attribute mass :> ISQ::mass = 100;
417
+ port shaftA;
418
+ perform providePower.amplifyTorque;
419
+ }
420
+ part driveshaft : Driveshaft {
421
+ attribute mass :> ISQ::mass = 100;
422
+ port shaftB; port shaftC;
423
+ perform providePower.transferTorque;
424
+ }
425
+ part sw : Controller {
426
+ exhibit state controllerStates redefines controllerStates;
427
+ part cruise : Sensor;
428
+ }
429
+ part speedSensor : Sensor;
430
+
431
+ part bodyAssy : BodyAssy {
432
+ part body : Body { attribute :>> color = Colors::red; }
433
+ part bumper { @Safety { isMandatory = true; } }
434
+ part keylessEntry { @Security; }
435
+ }
436
+ part interior {
437
+ part alarm { @Security; }
438
+ part seatBelt [2] { @Safety { isMandatory = true; } }
439
+ part frontSeat [2];
440
+ part airbag { @Safety { isMandatory = false; } }
441
+ }
442
+
443
+ // Connections and binds
444
+ bind engine.fuelIn = fuelCmdPort;
445
+ interface eTx : DriveInterface connect engine.driveOut to transmission.clutch;
446
+ interface fuelIf : FuelInterface connect fuelTank.fuelOut to engine.fuelIn;
447
+ allocate actionTree::providePower.genToAmp to eTx;
448
+ bind engine.ctrlPort = p1;
449
+ connect starterMotor.gearPort to engine.flyWheel;
450
+ connect sw.controlPort to engine.ctrlPort;
451
+ connect transmission.shaftA to driveshaft.shaftB;
452
+ connect driveshaft.shaftC to rearAxle.shaftD;
453
+ bind rearAxle.rearWheel1.wheelToRoad = vehicleToRoadPort.wheelToRoadPort1;
454
+ bind rearAxle.rearWheel2.wheelToRoad = vehicleToRoadPort.wheelToRoadPort2;
455
+ satisfy requirements::vehicleSpec by vehicle_b {
456
+ requirement massReq :>> massReq { attribute redefines massActual = vehicle_b.mass; }
457
+ }
458
+ }
459
+ }
460
+
461
+ // ---- Action tree ----
462
+ package actionTree {
463
+ action providePower : ProvidePower {
464
+ in item fuelCmd : FuelCmd redefines cmd;
465
+ out wheelTorque redefines wheelTorque [2] = distributeTorque.wheelTorque;
466
+ action generateTorque : GenerateTorque { in item = providePower.fuelCmd; }
467
+ action amplifyTorque : AmplifyTorque;
468
+ action transferTorque : TransferTorque;
469
+ action distributeTorque : DistributeTorque;
470
+ flow genToAmp from generateTorque.engineTorque to amplifyTorque.engineTorque;
471
+ flow amplifyTorque.txTorque to transferTorque.txTorque;
472
+ flow transferTorque.dsTorque to distributeTorque.dsTorque;
473
+ }
474
+ action performSelfTest : PerformSelfTest;
475
+ action applyParkingBrake : ApplyParkingBrake;
476
+ action senseTemperature : SenseTemperature;
477
+ }
478
+
479
+ // ---- Discrete interactions (messages, events, successions) ----
480
+ package Interactions {
481
+ part def Driver { port p1; port p2; }
482
+ part part0 {
483
+ perform action startVehicle {
484
+ action turnOn send ignCmd via driver.p1 { in ignCmd : IgnCmd; }
485
+ action trigger1 accept ignCmd : IgnCmd via vehicle.p1;
486
+ flow of IgnCmd from trigger1.ignCmd to startEngine.ignCmd;
487
+ action startEngine { in item ignCmd : IgnCmd; out item es : EngineStatus; }
488
+ flow of EngineStatus from startEngine.es to sendStatus.es;
489
+ action sendStatus send es via vehicle.p2 { in es : EngineStatus; }
490
+ action trigger2 accept es : EngineStatus via driver.p2;
491
+ }
492
+ part driver : Driver {
493
+ perform startVehicle.turnOn;
494
+ perform startVehicle.trigger2;
495
+ event occurrence driverReady;
496
+ }
497
+ part vehicle : Vehicle {
498
+ perform startVehicle.trigger1;
499
+ perform startVehicle.sendStatus;
500
+ event occurrence doorClosed;
501
+ }
502
+ first vehicle.doorClosed then driver.driverReady;
503
+ message of ignCmd : IgnCmd from driver.turnOn to vehicle.trigger1;
504
+ message of es : EngineStatus from vehicle.sendStatus to driver.trigger2;
505
+ }
506
+ }
507
+
508
+ // ---- Requirements (nested, with derivation) ----
509
+ package requirements {
510
+ item marketSurvey;
511
+ dependency from vehicleSpec to marketSurvey;
512
+ requirement vehicleSpec {
513
+ subject vehicle : Vehicle;
514
+ requirement <'1'> massReq : MassReq {
515
+ doc /* total mass shall be within limits */
516
+ attribute redefines massRequired = 2000;
517
+ attribute redefines massActual default vehicle.mass;
518
+ attribute fuelMassActual :> ISQ::mass;
519
+ assume constraint { fuelMassActual == 60 }
520
+ }
521
+ allocate massReq to VehicleConfig::vehicle_b.mass;
522
+ requirement <'2'> fuelReqs {
523
+ doc /* fuel economy group */
524
+ attribute assumedCargo :> ISQ::mass;
525
+ requirement <'2_1'> cityFE : FuelReq {
526
+ redefines requiredFE = 10;
527
+ assume constraint { assumedCargo <= 500 }
528
+ }
529
+ requirement <'2_2'> hwyFE : FuelReq {
530
+ redefines requiredFE = 12.75;
531
+ assume constraint { assumedCargo <= 500 }
532
+ }
533
+ }
534
+ }
535
+ requirement engineSpec {
536
+ subject engine1 : Engine;
537
+ requirement <'1'> engineMassReq : MassReq {
538
+ doc /* engine mass within limits */
539
+ attribute redefines massRequired = 200;
540
+ attribute redefines massActual = engine1.mass;
541
+ }
542
+ requirement torqueReq : TorqueReq {
543
+ subject gt default engine1.generateTorque;
544
+ }
545
+ requirement driveReq : DriveOutputReq {
546
+ port torqueOut { out torque : Torque; }
547
+ }
548
+ }
549
+ #derivation connection {
550
+ end #original ::> vehicleSpec.massReq;
551
+ end #derive ::> engineSpec.engineMassReq;
552
+ }
553
+ }
554
+
555
+ // ---- Analysis (calc, fuel economy) ----
556
+ package vehicleAnalysis {
557
+ analysis fuelEconomyAnalysis {
558
+ subject = VehicleConfig::vehicle_b;
559
+ objective fuelEconObj {
560
+ doc /* estimate fuel economy */
561
+ require requirements::vehicleSpec.fuelReqs;
562
+ }
563
+ in attribute scenario : Real;
564
+ attribute dist = TraveledDist(scenario);
565
+ attribute tpd = AvgTravelTime(scenario);
566
+ attribute bsfc = ComputeBSFC(VehicleConfig::vehicle_b.engine);
567
+ attribute fa = BestFuel(VehicleConfig::vehicle_b.mass, bsfc, tpd, dist);
568
+ attribute fb = IdlingFuel(VehicleConfig::vehicle_b.engine);
569
+ return attribute calcFE : Real = FuelConsumption(fa, fb, tpd);
570
+ }
571
+ }
572
+
573
+ // ---- Trade-off analysis (variation, objective, evaluation) ----
574
+ package tradeOff {
575
+ analysis engineTradeOff : TradeStudy {
576
+ subject vehicleAlts :> VehicleConfig::vehicle_b [2];
577
+ part alt4cyl :> vehicleAlts {
578
+ part engine redefines engine { part cylinders :>> cylinders [4]; attribute mass redefines mass = 180; }
579
+ }
580
+ part alt6cyl :> vehicleAlts {
581
+ part engine redefines engine { part cylinders redefines cylinders [6]; attribute mass redefines mass = 220; }
582
+ }
583
+ objective;
584
+ return part selected :> VehicleConfig::vehicle_b;
585
+ }
586
+ }
587
+
588
+ // ---- Verification ----
589
+ package vehicleVerification {
590
+ verification massTests : MassTest {
591
+ subject vehicle_uut :> VehicleConfig::vehicle_b;
592
+ objective {
593
+ verify requirements::vehicleSpec.massReq {
594
+ redefines massActual = weighVehicle.massMeasured;
595
+ }
596
+ }
597
+ action weighVehicle { out massMeasured :> ISQ::mass; }
598
+ then action evaluatePassFail {
599
+ in massMeasured :> ISQ::mass;
600
+ out verdict : Real;
601
+ }
602
+ flow from weighVehicle.massMeasured to evaluatePassFail.massMeasured;
603
+ return :>> verdict = evaluatePassFail.verdict;
604
+ }
605
+ part verificationCtx {
606
+ perform massTests;
607
+ part vehicle_UUT :> VehicleConfig::vehicle_b;
608
+ part massVerifSys {
609
+ part scale { perform massTests.weighVehicle; }
610
+ part operator { perform massTests.evaluatePassFail; }
611
+ }
612
+ }
613
+ }
614
+
615
+ // ---- Individuals (snapshots, timeslices) ----
616
+ package vehicleIndividuals {
617
+ individual a : VehicleContext_1 {
618
+ timeslice t0_t2 {
619
+ snapshot t0 {
620
+ attribute t0t redefines time = 0;
621
+ snapshot t0_r : Road_1 { :>> Road::incline = 0; :>> Road::friction = 0.1; }
622
+ snapshot t0_v : Vehicle_1 {
623
+ :>> Vehicle::mass = 1500;
624
+ :>> Vehicle::ratio = 0;
625
+ }
626
+ }
627
+ snapshot t1 {
628
+ attribute t1t redefines time = 1;
629
+ snapshot t1_r : Road_1 { :>> Road::incline = 0; :>> Road::friction = 0.1; }
630
+ snapshot t1_v : Vehicle_1 { :>> Vehicle::mass = 1500; }
631
+ }
632
+ }
633
+ }
634
+ }
635
+
636
+ // ---- Use case scenario (forks, joins, successions) ----
637
+ package missionScenario {
638
+ use case transportPassenger : TransportPassenger {
639
+ first start;
640
+ then action a {
641
+ action driverGetIn subsets getIn [1];
642
+ action passengerGetIn subsets getIn [1];
643
+ }
644
+ then action trigger accept ignCmd : IgnCmd;
645
+ then action b {
646
+ action driveToDestination;
647
+ action providePower;
648
+ }
649
+ then action c {
650
+ action driverGetOut subsets getOut [1];
651
+ action passengerGetOut subsets getOut [1];
652
+ }
653
+ then done;
654
+ }
655
+ use case transportPassenger_1 : TransportPassenger {
656
+ action driverGetIn subsets getIn [1];
657
+ action passengerGetIn subsets getIn [1];
658
+ action driverGetOut subsets getOut [1];
659
+ action passengerGetOut subsets getOut [1];
660
+ action driveToDestination;
661
+ action providePower;
662
+ join join1; join join2; join join3;
663
+ action trigger accept ignCmd : IgnCmd;
664
+ first start; then fork fork1;
665
+ then driverGetIn; then passengerGetIn;
666
+ first driverGetIn then join1;
667
+ first passengerGetIn then join1;
668
+ first join1 then trigger;
669
+ first trigger then fork2;
670
+ fork fork2; then driveToDestination; then providePower;
671
+ first driveToDestination then join2;
672
+ first providePower then join2;
673
+ first join2 then fork3;
674
+ fork fork3; then driverGetOut; then passengerGetOut;
675
+ first driverGetOut then join3;
676
+ first passengerGetOut then join3;
677
+ first join3 then done;
678
+ }
679
+ }
680
+
681
+ // ---- Mission context with driver states ----
682
+ package missionCtx {
683
+ part def MissionDriver {
684
+ port handPort : HandPort {}
685
+ exhibit state driverStates {
686
+ state initial; state wait;
687
+ transition initial then wait;
688
+ transition 'w-w-1' first wait
689
+ do send new IgnCmd(onOff=OnOff::on) via handPort then wait;
690
+ transition 'w-w-2' first wait
691
+ do send new IgnCmd(onOff=OnOff::off) via handPort then wait;
692
+ }
693
+ }
694
+ part def Passenger;
695
+ part missionContext : Context {
696
+ perform missionScenario::transportPassenger;
697
+ part road : Road = missionScenario::transportPassenger.road;
698
+ part driver : MissionDriver = missionScenario::transportPassenger.driver {
699
+ perform missionScenario::transportPassenger.a.driverGetIn;
700
+ perform missionScenario::transportPassenger.b.driveToDestination;
701
+ perform missionScenario::transportPassenger.c.driverGetOut;
702
+ }
703
+ part passenger : Passenger = missionScenario::transportPassenger.passenger;
704
+ part vehicle_b_1 :> VehicleConfig::vehicle_b = missionScenario::transportPassenger.vehicle {
705
+ perform missionScenario::transportPassenger.b.providePower redefines doSomething;
706
+ perform missionScenario::transportPassenger.trigger;
707
+ }
708
+ connect driver.handPort to vehicle_b_1.p1;
709
+ connect road to vehicle_b_1.vehicleToRoadPort;
710
+ }
711
+ }
712
+
713
+ // ---- Superset model (variation, selection constraint) ----
714
+ package supersetModel {
715
+ abstract part vehicleFamily {
716
+ variation part engine : Engine {
717
+ variant part engine4Cyl;
718
+ variant part engine6Cyl;
719
+ }
720
+ part txChoices : TxChoices;
721
+ part sunroof : Sunroof [0..1];
722
+ assert constraint selectionConstraint {
723
+ (engine == engine::engine4Cyl and txChoices == TxChoices::txManual) xor
724
+ (engine == engine::engine6Cyl and txChoices == TxChoices::txAuto)
725
+ }
726
+ part driveshaft; part frontAxle; part rearAxle;
727
+ }
728
+ }
729
+
730
+ // ---- Safety/security filter groups ----
731
+ package filterGroups {
732
+ public import VehicleConfig::vehicle_b::**;
733
+ package SafetyGroup { public import vehicle_b::**; filter @Safety; }
734
+ package SecurityGroup { public import vehicle_b::**; filter @Security; }
735
+ package SafetyAndSecurity { public import vehicle_b::**; filter @Safety or @Security; }
736
+ package MandatorySafety { public import vehicle_b::**; filter @Safety and Safety::isMandatory; }
737
+ }
738
+
739
+ // ---- Views ----
740
+ package vehicleViews {
741
+ view vehiclePartsTree_Safety : PartsTreeView {
742
+ satisfy requirement sv : SafetyViewpoint;
743
+ expose VehicleConfig::**;
744
+ filter @Safety;
745
+ }
746
+ }
747
+
748
+ // ---- Occurrence / CruiseControl (messages, events, redefines) ----
749
+ occurrence CruiseControl {
750
+ part vehicle_b :> VehicleConfig::vehicle_b {
751
+ port redefines setSpeedPort { event occurrence setSpeedReceived; }
752
+ part redefines speedSensor {
753
+ port redefines sensorPort { event occurrence sensedSpeedSent; }
754
+ }
755
+ part redefines sw {
756
+ part redefines cruise {
757
+ port redefines sensorPort { event occurrence sensedSpeedReceived; }
758
+ }
759
+ }
760
+ part redefines engine {
761
+ port redefines fuelIn { event occurrence fuelCmdReceived; }
762
+ }
763
+ message sendSensed of SensedSpeed
764
+ from speedSensor.sensorPort.sensedSpeedSent
765
+ to sw.cruise.sensorPort.sensedSpeedReceived;
766
+ message sendFuelCmd of FuelCmd
767
+ from sw.cruise.controlPort
768
+ to engine.fuelIn.fuelCmdReceived;
769
+ }
770
+ }
771
+
772
+ // ---- Allocation (logical to physical) ----
773
+ package logicalAllocation {
774
+ #logical part vehicleLogical : Vehicle {
775
+ part torqueGen : TorqueGenerator { action generateTorque; }
776
+ part elecGen : ElectricalGenerator { action generateElec; }
777
+ part steeringSystem : SteeringSubsystem;
778
+ part brakingSystem : BrakingSubsystem;
779
+ }
780
+ allocation vehicleL2P : LogicalToPhysical
781
+ allocate vehicleLogical to VehicleConfig::vehicle_b {
782
+ allocate vehicleLogical.torqueGen to VehicleConfig::vehicle_b.engine {
783
+ allocate vehicleLogical.torqueGen.generateTorque
784
+ to VehicleConfig::vehicle_b.engine.generateTorque;
785
+ }
786
+ allocate vehicleLogical.elecGen to VehicleConfig::vehicle_b.engine {
787
+ allocate vehicleLogical.elecGen.generateElec
788
+ to VehicleConfig::vehicle_b.engine.alternator.generateElectricity;
789
+ }
790
+ }
791
+ }
792
+
793
+ // ---- Engine variant with refinement ----
794
+ package engine4CylVariant {
795
+ part engine : Engine { part cylinders : Cylinder [4..8] ordered; }
796
+ part engine4Cyl :> engine {
797
+ part redefines cylinders [4];
798
+ part cyl1 subsets cylinders [1];
799
+ part cyl2 subsets cylinders [1];
800
+ part cyl3 subsets cylinders [1];
801
+ part cyl4 subsets cylinders [1];
802
+ }
803
+ #refinement dependency engine4Cyl to VehicleConfig::vehicle_b::engine;
804
+ }
805
+
806
+ // ---- Wheel hub assemblies (nested interfaces with explicit connections) ----
807
+ package wheelHubAssy {
808
+ part wheelHubAssy1 {
809
+ part wheel1 : Wheel {
810
+ port :>> lugPort : LugCompositePort { port lug :>> lug [5]; }
811
+ }
812
+ part hub1 : Hub {
813
+ port :>> shankPort : ShankCompositePort { port shank :>> shank [5]; }
814
+ }
815
+ interface wheelHub : WheelHubInterface
816
+ connect [1] wheel1.lugPort to [1] hub1.shankPort;
817
+ }
818
+ part wheelHubAssy2 {
819
+ part wheel1 : Wheel {
820
+ port :>> lugPort : LugCompositePort { port lug :>> lug [5]; }
821
+ }
822
+ part hub1 : Hub {
823
+ port :>> shankPort : ShankCompositePort {
824
+ port shank :>> shank [5] {
825
+ attribute :>> threadDia = 14;
826
+ attribute :>> threadPitch = 1.5;
827
+ attribute :>> shaftLength = 70;
828
+ }
829
+ }
830
+ }
831
+ interface wheelHub : WheelHubInterface
832
+ connect [1] lugComposite ::> wheel1.lugPort
833
+ to [1] shankComposite ::> hub1.shankPort {
834
+ interface wf1 :> wfi
835
+ connect lugPort ::> lugComposite.lug
836
+ to shankPort ::> shankComposite.shank {
837
+ attribute :>> maxTorque = 90 * 1.356;
838
+ }
839
+ }
840
+ }
841
+ }
842
+
843
+ // ==== ADDITIONAL DFA WARM-UP \u2014 EXPRESSION & TYPING COVERAGE ====
844
+
845
+ // ---- Unit/bracket expressions (exercises ownedExpression LBRACK alt) ----
846
+ package unitExprs {
847
+ attribute len1 : Real = 4800 [mm];
848
+ attribute spd1 : Real = 1.96 [m / s**2];
849
+ attribute area1 : Real = 90 * 1.356 [N * m];
850
+ attribute pos3d = (0, 0, 0) [spatialCF];
851
+ attribute mixed = 2.5 * (a + b) [kg / m**3];
852
+ }
853
+
854
+ // ---- Trigger variants (accept at, accept via, complex guard) ----
855
+ package triggerPatterns {
856
+ state def TriggerStates {
857
+ state idle;
858
+ state active;
859
+ state off2;
860
+ transition t_at first idle accept at maintenanceTime then active;
861
+ transition t_via first active accept cmd : Cmd via ctrlPort then off2;
862
+ transition t_guard first idle
863
+ accept ignCmd : IgnCmd via p1
864
+ if (ignCmd.onOff == OnOff::on and flags)
865
+ do send new StartSig() to ctrl
866
+ then active;
867
+ }
868
+ }
869
+
870
+ // ---- META expression & semantic metadata ----
871
+ package metaExprs {
872
+ state fmodes [*] nonunique;
873
+ metadata def FailInfo {
874
+ :>> baseType = fmodes meta SysML::StateUsage;
875
+ }
876
+ }
877
+
878
+ // ---- Deeply nested redefines chains (4\u20135 levels) ----
879
+ package deepRedefines {
880
+ occurrence def DeepRedef {
881
+ part v :> VehicleConfig::vehicle_b {
882
+ part redefines sw {
883
+ part redefines cruise {
884
+ port redefines sensorPort {
885
+ event occurrence sensedRx;
886
+ }
887
+ }
888
+ }
889
+ part redefines engine {
890
+ port redefines fuelIn {
891
+ event occurrence fuelRx;
892
+ }
893
+ }
894
+ }
895
+ }
896
+ }
897
+
898
+ // ---- Event occurrence with .sourceEvent/.targetEvent ----
899
+ package eventPatterns {
900
+ occurrence def MsgPattern {
901
+ part sender { port sp; event occurrence eSent; }
902
+ part receiver { port rp; event occurrence eRcvd; }
903
+ message msg1 of Cmd from sender.sp.eSent to receiver.rp.eRcvd;
904
+ first sender.eSent then receiver.eRcvd;
905
+ }
906
+ }
907
+
908
+ // ---- Quantity types & derived units ----
909
+ package quantityTypes {
910
+ attribute dpv :> scalarQuantities = distance / volume;
911
+ attribute tpd :> scalarQuantities = time / distance;
912
+ attribute unitKpl : DerivedUnit = km / L;
913
+ attribute unitRpm : DerivedUnit = 1 / SI::min;
914
+ }
915
+
916
+ // ---- Rich metadata annotations ----
917
+ package richMetadata {
918
+ @Rationale about engineTradeOff {
919
+ text = "engine4cyl selected based on trade study";
920
+ }
921
+ @Risk about vehicleSafety {
922
+ totalRisk = medium;
923
+ technicalRisk = medium;
924
+ scheduleRisk = medium;
925
+ costRisk = low;
926
+ }
927
+ @StatusInfo {
928
+ status = StatusKind::closed;
929
+ originator = "Alice";
930
+ owner = "Bob";
931
+ }
932
+ @VerificationMethod {
933
+ kind = (VerificationMethodKind::test, VerificationMethodKind::analyze);
934
+ }
935
+ }
936
+
937
+ // ---- Nested invocation & PassIf pattern ----
938
+ package nestedInvocations {
939
+ verification def MassTest {
940
+ subject uut : Vehicle;
941
+ actor verifier = verCtx.massSys;
942
+ objective {
943
+ verify requirements::vehicleSpec.massReq {
944
+ redefines massActual = weigh.measured;
945
+ }
946
+ }
947
+ action weigh { out measured :> ISQ::mass; }
948
+ then action eval {
949
+ in measured :> ISQ::mass;
950
+ out verdict = PassIf(requirements::vehicleSpec.massReq(uut));
951
+ }
952
+ flow from weigh.measured to eval.measured;
953
+ return :>> verdict = eval.verdict;
954
+ }
955
+ }
956
+
957
+ // ---- Calc with :> subsetting (evaluationFunction pattern) ----
958
+ package calcPatterns {
959
+ calc :> evaluationFunction {
960
+ in part v :> alt4cyl;
961
+ return attribute ev : Real = EvalFunc(v.engine.mass, v.engine.power);
962
+ }
963
+ }
964
+
965
+ // ---- Redefines with sum() and complex value expressions ----
966
+ package sumPatterns {
967
+ part cfgPart : Vehicle {
968
+ attribute dryMass redefines mass = sum(partMasses);
969
+ attribute partMasses = (fuelTank.mass, engine.mass, rearAxle.mass);
970
+ attribute avgFE :> distancePerVolume;
971
+ }
972
+ }
973
+
974
+ // ---- Nested variation within variant ----
975
+ package nestedVariation {
976
+ variation part engineChoices : Engine {
977
+ variant part eng4;
978
+ variant part eng6 {
979
+ part cyl : Cylinder [6] {
980
+ variation attribute dia : Real {
981
+ variant attribute smallDia;
982
+ variant attribute largeDia;
983
+ }
984
+ }
985
+ }
986
+ }
987
+ }
988
+
989
+ // ---- Objective with typing, semicolon body ----
990
+ package tradeStudyPatterns {
991
+ analysis tradeA : TradeStudy {
992
+ subject alts :> VehicleConfig::vehicle_b [2];
993
+ objective : MaximizeObjective;
994
+ return part sel :> VehicleConfig::vehicle_b;
995
+ }
996
+ }
997
+
998
+ // ---- Prefix metadata on attributes (#mop, #moe) ----
999
+ package prefixMetadata {
1000
+ part monitoredPart {
1001
+ #mop attribute trackedMass :> ISQ::mass;
1002
+ #moe attribute trackedTime :> ISQ::time;
1003
+ }
1004
+ }
1005
+
1006
+ // ---- Complex feature chains (4+ segments, qualified names) ----
1007
+ package featureChains {
1008
+ bind cruiseCtrl.speedPort.value = speedSensor.outputPort.signalValue;
1009
+ bind engine.fuelPort.fuelType = fuelSys.supply.fuelPort.fuelType;
1010
+ connect [1] chassis.frontAxle.leftWheel.hubPort
1011
+ to [1] brakeSys.frontLeft.caliper.mountPort;
1012
+ }
1013
+
1014
+ // ---- Conditional / ternary / null-coalesce expressions ----
1015
+ package exprCoverage {
1016
+ attribute ternary = a > b ? a : b;
1017
+ attribute coalesce = maybeNull ?? defaultVal;
1018
+ attribute implies = p implies q;
1019
+ attribute bitwise = flags & mask | shifted ^ inverted;
1020
+ attribute range = 1..10;
1021
+ attribute cast = x as Integer;
1022
+ attribute isinstance = y istype Real;
1023
+ attribute hastype = z hastype String;
1024
+ attribute select = items.>filter(x | x > 0);
1025
+ attribute collect = items->collect(x | x.name);
1026
+ attribute all = all v : Vehicle {| v.mass > 0 |};
1027
+ }
1028
+
1029
+ // ---- Assignment actions ----
1030
+ package assignActions {
1031
+ action doAssign {
1032
+ attribute x : Integer = 0;
1033
+ assign x := x + 1;
1034
+ assign x := if x > 10 ? 0 : x;
1035
+ }
1036
+ }
1037
+
1038
+ // ---- Bare item usages & defined by ----
1039
+ // These constructs must be in the warmup text to ensure the DFA
1040
+ // snapshot covers their token transitions.
1041
+ part def DefinedByPart {
1042
+ item myItem;
1043
+ item namedItem : ItemType;
1044
+ part sub defined by SubDef, AltDef;
1045
+ part multi : TypeA, TypeB;
1046
+ }
1047
+ item def ItemType;
1048
+ part def SubDef;
1049
+ part def AltDef;
1050
+ part def TypeA;
1051
+ part def TypeB;
1052
+
1053
+ // ---- Flow / streaming / succession ----
1054
+ // The 'flow of X from Y to Z' construct exercises item-flow grammar rules.
1055
+ part def FlowSource { out item outPort : Signal; }
1056
+ part def FlowSink { in item inPort : Signal; }
1057
+ item def Signal;
1058
+ action def Focus { out xrsl : Signal; }
1059
+ action def Shoot { in xsf : Signal; }
1060
+ action takePicture {
1061
+ action focus : Focus [1];
1062
+ flow of Signal from focus.xrsl to shoot.xsf;
1063
+ action shoot : Shoot [1];
1064
+ }
1065
+ part flowExample {
1066
+ part src : FlowSource;
1067
+ part snk : FlowSink;
1068
+ flow of Signal from src.outPort to snk.inPort;
1069
+ stream of Signal from src.outPort to snk.inPort;
1070
+ }
1071
+ succession first start then doA;
1072
+ succession doA then doB;
1073
+
1074
+ }
1075
+ `;function createWarmupChunks(){let allLines=WARMUP_TEXT.split(`
1076
+ `),inner=allLines.slice(1,allLines.length-1),CHUNK_SIZE=30,chunks=[];for(let i=0;i<inner.length;i+=CHUNK_SIZE){let slice=inner.slice(i,i+CHUNK_SIZE).join(`
1077
+ `);chunks.push(`package WU_${chunks.length} {
1078
+ ${slice}
1079
+ }`)}return chunks}function parseSnippet(text){let input=CharStream.fromString(text),lexer=new SysMLv2Lexer(input),tokens=new CommonTokenStream(lexer);tokens.fill();let parser=new SysMLv2Parser(tokens);parser.removeErrorListeners(),parser.interpreter.predictionMode=PredictionMode.SLL,parser.errorHandler=new BailErrorStrategy;try{parser.rootNamespace()}catch{tokens.seek(0),parser.reset(),parser.interpreter.predictionMode=PredictionMode.LL,parser.errorHandler=new DefaultErrorStrategy,parser.removeErrorListeners();try{parser.rootNamespace()}catch{}}}var DEFINITION_KEYWORDS=new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","assert","assign","assume","attribute","bind","binding","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","feature","filter","first","flow","for","fork","frame","from","if","import","in","include","individual","inout","interface","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","type","use","variant","variation","verification","verify","view","viewpoint","when","while","datatype"]);function levenshtein(a,b){if(a.length<b.length){let t=a;a=b,b=t}let m2=a.length,n2=b.length,prev=new Uint16Array(n2+1),curr=new Uint16Array(n2+1);for(let j=0;j<=n2;j++)prev[j]=j;for(let i=1;i<=m2;i++){curr[0]=i;for(let j=1;j<=n2;j++){let cost=a.charCodeAt(i-1)===b.charCodeAt(j-1)?0:1;curr[j]=Math.min(prev[j]+1,curr[j-1]+1,prev[j-1]+cost)}[prev,curr]=[curr,prev]}return prev[n2]}function findClosestKeyword(identifier){let lower=identifier.toLowerCase();if(lower.length<4||DEFINITION_KEYWORDS.has(lower))return;let maxDistance=lower.length<=5?1:2,bestMatch,bestDist=maxDistance+1;for(let keyword of DEFINITION_KEYWORDS){if(Math.abs(keyword.length-lower.length)>maxDistance)continue;let dist=levenshtein(lower,keyword);dist>0&&dist<bestDist&&(bestDist=dist,bestMatch=keyword)}return bestMatch}var KEYWORD_CONTINUATIONS=new Set([SysMLv2Lexer.IDENTIFIER,SysMLv2Lexer.COLON,SysMLv2Lexer.DEF,SysMLv2Lexer.LBRACE,SysMLv2Lexer.LBRACK,SysMLv2Lexer.ABOUT]),NAME_PRECEDING_KEYWORDS=new Set([SysMLv2Lexer.PART,SysMLv2Lexer.PORT,SysMLv2Lexer.ITEM,SysMLv2Lexer.ATTRIBUTE,SysMLv2Lexer.ACTION,SysMLv2Lexer.CALC,SysMLv2Lexer.STATE,SysMLv2Lexer.CONSTRAINT,SysMLv2Lexer.REQUIREMENT,SysMLv2Lexer.CONCERN,SysMLv2Lexer.CASE,SysMLv2Lexer.ANALYSIS,SysMLv2Lexer.VERIFICATION,SysMLv2Lexer.VIEW,SysMLv2Lexer.VIEWPOINT,SysMLv2Lexer.RENDERING,SysMLv2Lexer.METADATA,SysMLv2Lexer.PACKAGE,SysMLv2Lexer.NAMESPACE,SysMLv2Lexer.ENUM,SysMLv2Lexer.ALLOCATION,SysMLv2Lexer.CONNECTION,SysMLv2Lexer.INTERFACE,SysMLv2Lexer.OCCURRENCE,SysMLv2Lexer.INDIVIDUAL,SysMLv2Lexer.FLOW,SysMLv2Lexer.SUCCESSION,SysMLv2Lexer.BINDING,SysMLv2Lexer.MESSAGE,SysMLv2Lexer.TRANSITION,SysMLv2Lexer.TYPE,SysMLv2Lexer.CLASSIFIER,SysMLv2Lexer.DATATYPE,SysMLv2Lexer.CLASS,SysMLv2Lexer.STRUCT,SysMLv2Lexer.ASSOC,SysMLv2Lexer.METACLASS,SysMLv2Lexer.INTERACTION,SysMLv2Lexer.BEHAVIOR,SysMLv2Lexer.FUNCTION,SysMLv2Lexer.PREDICATE,SysMLv2Lexer.FEATURE,SysMLv2Lexer.CONNECTOR,SysMLv2Lexer.STEP,SysMLv2Lexer.EXPR,SysMLv2Lexer.BOOL,SysMLv2Lexer.INV,SysMLv2Lexer.MULTIPLICITY,SysMLv2Lexer.ALIAS,SysMLv2Lexer.COMMENT,SysMLv2Lexer.DOC,SysMLv2Lexer.REP,SysMLv2Lexer.DEPENDENCY,SysMLv2Lexer.IMPORT,SysMLv2Lexer.DEF,SysMLv2Lexer.REF,SysMLv2Lexer.ALL,SysMLv2Lexer.ABSTRACT,SysMLv2Lexer.VARIATION,SysMLv2Lexer.DERIVED,SysMLv2Lexer.COMPOSITE,SysMLv2Lexer.CONST,SysMLv2Lexer.CONSTANT,SysMLv2Lexer.VAR,SysMLv2Lexer.MEMBER,SysMLv2Lexer.RETURN,SysMLv2Lexer.PUBLIC,SysMLv2Lexer.PRIVATE,SysMLv2Lexer.PROTECTED,SysMLv2Lexer.IN,SysMLv2Lexer.OUT,SysMLv2Lexer.INOUT,SysMLv2Lexer.END,SysMLv2Lexer.ACTOR,SysMLv2Lexer.STAKEHOLDER,SysMLv2Lexer.SUBJECT,SysMLv2Lexer.VARIANT,SysMLv2Lexer.SNAPSHOT,SysMLv2Lexer.TIMESLICE,SysMLv2Lexer.FORK,SysMLv2Lexer.JOIN,SysMLv2Lexer.MERGE,SysMLv2Lexer.DECIDE,SysMLv2Lexer.PERFORM,SysMLv2Lexer.EXHIBIT,SysMLv2Lexer.INCLUDE,SysMLv2Lexer.SATISFY,SysMLv2Lexer.ASSERT,SysMLv2Lexer.VERIFY,SysMLv2Lexer.RENDER,SysMLv2Lexer.CONNECT,SysMLv2Lexer.ALLOCATE,SysMLv2Lexer.BIND,SysMLv2Lexer.EXPOSE,SysMLv2Lexer.EVENT,SysMLv2Lexer.FIRST,SysMLv2Lexer.THEN,SysMLv2Lexer.TO,SysMLv2Lexer.FROM,SysMLv2Lexer.REDEFINES,SysMLv2Lexer.SUBSETS,SysMLv2Lexer.SPECIALIZES,SysMLv2Lexer.REFERENCES,SysMLv2Lexer.CONJUGATES,SysMLv2Lexer.CHAINS,SysMLv2Lexer.CROSSES,SysMLv2Lexer.UNIONS,SysMLv2Lexer.INTERSECTS,SysMLv2Lexer.DIFFERENCES,SysMLv2Lexer.SPECIALIZATION,SysMLv2Lexer.CONJUGATION,SysMLv2Lexer.DISJOINING,SysMLv2Lexer.INVERTING,SysMLv2Lexer.FEATURING,SysMLv2Lexer.TYPING,SysMLv2Lexer.REDEFINITION,SysMLv2Lexer.SUBTYPE,SysMLv2Lexer.SUBCLASSIFIER,SysMLv2Lexer.SUBSET,SysMLv2Lexer.CONJUGATE,SysMLv2Lexer.DISJOINT,SysMLv2Lexer.INVERSE,SysMLv2Lexer.ASSUME,SysMLv2Lexer.REQUIRE,SysMLv2Lexer.FRAME,SysMLv2Lexer.OBJECTIVE,SysMLv2Lexer.ENTRY,SysMLv2Lexer.DO,SysMLv2Lexer.EXIT,SysMLv2Lexer.ACCEPT,SysMLv2Lexer.SEND,SysMLv2Lexer.ASSIGN,SysMLv2Lexer.TERMINATE,SysMLv2Lexer.FOR,SysMLv2Lexer.ABOUT,SysMLv2Lexer.BY,SysMLv2Lexer.FILTER,SysMLv2Lexer.NEW,SysMLv2Lexer.META,SysMLv2Lexer.OF,SysMLv2Lexer.COLON,SysMLv2Lexer.COLON_GT,SysMLv2Lexer.COLON_GT_GT,SysMLv2Lexer.COLON_COLON,SysMLv2Lexer.COLON_COLON_GT,SysMLv2Lexer.GT,SysMLv2Lexer.FAT_ARROW,SysMLv2Lexer.TILDE,SysMLv2Lexer.COMMA,SysMLv2Lexer.HASH,SysMLv2Lexer.AT]);function validateKeywordsFromTokens(tokenStream){let diagnostics=[];tokenStream.fill();let allTokens=tokenStream.getTokens(),visible=[];for(let j=0;j<allTokens.length;j++){let t=allTokens[j];t.channel===0&&t.type!==Token.EOF&&visible.push(t)}for(let i=0;i<visible.length;i++){let tok=visible[i];if(tok.type!==SysMLv2Lexer.IDENTIFIER||!tok.text||i>0&&NAME_PRECEDING_KEYWORDS.has(visible[i-1].type))continue;if(i>0){let prevType=visible[i-1].type;if(prevType===SysMLv2Lexer.DOT||prevType===SysMLv2Lexer.EQ||prevType===SysMLv2Lexer.COLON_EQ)continue}let positionOk=i===0;if(!positionOk&&i+1<visible.length&&KEYWORD_CONTINUATIONS.has(visible[i+1].type)&&(positionOk=!0),!positionOk)continue;let suggestion=findClosestKeyword(tok.text);if(!suggestion)continue;let line=(tok.line??1)-1,char=tok.column??0,message=`Unknown keyword '${tok.text}'. Did you mean '${suggestion}'?`;diagnostics.push({severity:1,range:{start:{line,character:char},end:{line,character:char+tok.text.length}},message,source:"sysml",data:{typo:tok.text,suggestion}})}return diagnostics}var SEMANTIC_KEYWORDS=new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]),ST_VARIABLE=3,ST_KEYWORD=6,ST_COMMENT=7,ST_STRING=8,ST_NUMBER=9,ST_OPERATOR=10,OPERATOR_TOKENS=new Set([SysMLv2Lexer.BANG_EQ_EQ,SysMLv2Lexer.STAR_STAR,SysMLv2Lexer.COLON_GT,SysMLv2Lexer.COLON_GT_GT,SysMLv2Lexer.AMP,SysMLv2Lexer.COLON_COLON,SysMLv2Lexer.STAR,SysMLv2Lexer.PIPE,SysMLv2Lexer.EQ_EQ,SysMLv2Lexer.BANG_EQ,SysMLv2Lexer.PLUS,SysMLv2Lexer.MINUS,SysMLv2Lexer.ARROW,SysMLv2Lexer.SLASH,SysMLv2Lexer.LT,SysMLv2Lexer.EQ,SysMLv2Lexer.GT,SysMLv2Lexer.CARET,SysMLv2Lexer.TILDE]);function classifyTokenType(text,lexerType){if(lexerType===SysMLv2Lexer.REGULAR_COMMENT||lexerType===SysMLv2Lexer.SINGLE_LINE_NOTE)return ST_COMMENT;if(lexerType===SysMLv2Lexer.STRING||lexerType===SysMLv2Lexer.DOUBLE_STRING)return ST_STRING;if(lexerType===SysMLv2Lexer.INTEGER||lexerType===SysMLv2Lexer.REAL)return ST_NUMBER;if(OPERATOR_TOKENS.has(lexerType))return ST_OPERATOR;if(SEMANTIC_KEYWORDS.has(text))return ST_KEYWORD;if(lexerType===SysMLv2Lexer.IDENTIFIER)return ST_VARIABLE}function buildSemanticTokenData(tokenStream){tokenStream.fill();let allTokens=tokenStream.getTokens(),data=[],prevLine=0,prevChar=0;for(let i=0;i<allTokens.length;i++){let tok=allTokens[i];if(!tok.text||tok.channel!==0)continue;let tokenType=classifyTokenType(tok.text,tok.type);if(tokenType===void 0)continue;let line=(tok.line??1)-1,char=tok.column??0,length=tok.text.length,deltaLine=line-prevLine,deltaChar=deltaLine===0?char-prevChar:char;data.push(deltaLine,deltaChar,length,tokenType,0),prevLine=line,prevChar=char}return data}var BOUNDARY_TOKENS=new Set([Token.EOF,SysMLv2Lexer.RBRACE,SysMLv2Lexer.SEMI]);function improveErrorLocations(errors,tokenStream){if(errors.length===0)return errors;tokenStream.fill();let allTokens=tokenStream.getTokens(),visible=[];for(let t of allTokens)t.channel===0&&visible.push(t);return errors.map(err=>{let errToken=visible.find(t=>t.line-1===err.line&&t.column===err.column);if(!errToken||!BOUNDARY_TOKENS.has(errToken.type)&&errToken.type!==Token.EOF)return err;let errIdx=visible.indexOf(errToken);if(errIdx<=0)return err;let prev=visible[errIdx-1];return prev.text&&prev.type===SysMLv2Lexer.IDENTIFIER?{line:(prev.line??1)-1,column:prev.column??0,length:prev.text.length,message:`Unexpected identifier '${prev.text}'. Expected a SysML keyword (package, part, attribute, action, etc.)`}:err})}var STATEMENT_START_KEYWORDS=new Set(["abstract","accept","action","actor","alias","allocate","allocation","analysis","assert","assign","assume","attribute","bind","binding","calc","case","comment","concern","connect","connection","constraint","decide","dependency","doc","end","entry","enum","event","exhibit","exit","expose","feature","filter","first","flow","for","fork","frame","if","import","in","include","individual","inout","interface","item","join","merge","message","metadata","multiplicity","namespace","objective","occurrence","of","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","type","use","variant","variation","verification","verify","view","viewpoint","when","while"]);function flagUnknownIdentifiers(tokenStream){let diagnostics=[];tokenStream.fill();let allTokens=tokenStream.getTokens(),visible=[];for(let t of allTokens)t.channel===0&&t.type!==Token.EOF&&visible.push(t);for(let i=0;i<visible.length;i++){let tok=visible[i];if(tok.type!==SysMLv2Lexer.IDENTIFIER||!tok.text)continue;let lower=tok.text.toLowerCase();if(STATEMENT_START_KEYWORDS.has(lower)||DEFINITION_KEYWORDS.has(lower))continue;let isStatementPosition=i===0;if(!isStatementPosition&&i>0){let prevType=visible[i-1].type;if((prevType===SysMLv2Lexer.LBRACE||prevType===SysMLv2Lexer.RBRACE||prevType===SysMLv2Lexer.SEMI)&&(isStatementPosition=!0),NAME_PRECEDING_KEYWORDS.has(prevType)||prevType===SysMLv2Lexer.COLON||prevType===SysMLv2Lexer.COLON_GT||prevType===SysMLv2Lexer.COLON_GT_GT||prevType===SysMLv2Lexer.COLON_COLON||prevType===SysMLv2Lexer.EQ||prevType===SysMLv2Lexer.DOT)continue}if(!isStatementPosition)continue;if(i+1<visible.length){let next=visible[i+1];if(next.type===SysMLv2Lexer.COLON||next.type===SysMLv2Lexer.EQ||next.type===SysMLv2Lexer.LBRACE||next.type===SysMLv2Lexer.COLON_GT||next.type===SysMLv2Lexer.COLON_GT_GT||next.type===SysMLv2Lexer.SEMI||next.type===SysMLv2Lexer.LBRACK||next.type===SysMLv2Lexer.COLON_COLON||next.type===SysMLv2Lexer.DOT||next.type===SysMLv2Lexer.LT||next.type===SysMLv2Lexer.GT||next.type===SysMLv2Lexer.LE||next.type===SysMLv2Lexer.GE||next.type===SysMLv2Lexer.EQ_EQ||next.type===SysMLv2Lexer.BANG_EQ||next.type===SysMLv2Lexer.PLUS||next.type===SysMLv2Lexer.MINUS||next.type===SysMLv2Lexer.STAR||next.type===SysMLv2Lexer.SLASH||next.type===SysMLv2Lexer.AND||next.type===SysMLv2Lexer.OR||next.type===SysMLv2Lexer.IMPLIES)continue}let line=(tok.line??1)-1,char=tok.column??0;diagnostics.push({severity:1,range:{start:{line,character:char},end:{line,character:char+tok.text.length}},message:`Unexpected '${tok.text}'. Expected a SysML keyword (package, part, attribute, action, etc.)`,source:"sysml"})}return diagnostics}var cancelledIds=new Set;function handleParseRequest(msg){let{id,text,uri,version}=msg,lexStart=Date.now(),inputStream=CharStream.fromString(text),lexer=new SysMLv2Lexer(inputStream),tokenStream=new CommonTokenStream(lexer);tokenStream.fill();let lexMs=Date.now()-lexStart,parseStart=Date.now(),parser=new SysMLv2Parser(tokenStream);parser.removeErrorListeners(),parser.interpreter.predictionMode=PredictionMode.SLL,parser.errorHandler=new BailErrorStrategy;let errors=[],mode="SLL";try{parser.rootNamespace()}catch{mode="LL",tokenStream.seek(0),parser.reset(),parser.interpreter.predictionMode=PredictionMode.LL,parser.errorHandler=new DefaultErrorStrategy;let errorListener=new SysMLErrorListener;lexer.removeErrorListeners(),parser.removeErrorListeners(),parser.addErrorListener(errorListener);try{parser.rootNamespace()}catch{}errors=errorListener.getErrors().map(e=>({line:e.line,column:e.column,message:e.message,length:e.length}))}errors=improveErrorLocations(errors,tokenStream);let unknownIdDiags=flagUnknownIdentifiers(tokenStream),parseMs=Date.now()-parseStart;if(cancelledIds.has(id)){cancelledIds.delete(id);return}let keywordDiagnostics=validateKeywordsFromTokens(tokenStream),errorPositions=new Set(errors.map(e=>`${e.line}:${e.column}`));for(let uid of unknownIdDiags){let key=`${uid.range.start.line}:${uid.range.start.character}`;errorPositions.has(key)||keywordDiagnostics.push(uid)}let semanticTokenData=buildSemanticTokenData(tokenStream),response={id,uri,version,errors,keywordDiagnostics,semanticTokenData,timing:{lexMs,parseMs},mode};import_node_worker_threads.parentPort?.postMessage(response)}setImmediate(()=>{let chunks=createWarmupChunks(),t0=Date.now(),interrupted=!1;for(let i=0;i<chunks.length;i++){if(import_node_worker_threads.parentPort){let pending=(0,import_node_worker_threads.receiveMessageOnPort)(import_node_worker_threads.parentPort);for(;pending;){let msg=pending.message;"cancel"in msg?cancelledIds.add(msg.id):(handleParseRequest(msg),interrupted=!0),pending=(0,import_node_worker_threads.receiveMessageOnPort)(import_node_worker_threads.parentPort)}}if(interrupted){import_node_worker_threads.parentPort?.postMessage({warmup:!0,elapsed:Date.now()-t0,interrupted:!0,chunksCompleted:i,totalChunks:chunks.length});return}try{parseSnippet(chunks[i])}catch{}}import_node_worker_threads.parentPort?.postMessage({warmup:!0,elapsed:Date.now()-t0,interrupted:!1,chunksCompleted:chunks.length,totalChunks:chunks.length})});import_node_worker_threads.parentPort?.on("message",msg=>{if("cancel"in msg){cancelledIds.add(msg.id);return}handleParseRequest(msg)});0&&(module.exports={flagUnknownIdentifiers,validateKeywordsFromTokens});